diff --git a/include/xo/jit/intrinsics.hpp b/include/xo/jit/intrinsics.hpp new file mode 100644 index 00000000..a0528dc2 --- /dev/null +++ b/include/xo/jit/intrinsics.hpp @@ -0,0 +1,13 @@ +/** @file intrinsics.hpp + * + * Author: Roland Conybeare + **/ + +#pragma once + +#include + +extern "C" int32_t mul_i32(int32_t x, int32_t y); +extern "C" double mul_f64(double x, double y); + +/** end intrinsics.hpp **/ diff --git a/src/jit/intrinsics.cpp b/src/jit/intrinsics.cpp new file mode 100644 index 00000000..2abdf7d8 --- /dev/null +++ b/src/jit/intrinsics.cpp @@ -0,0 +1,20 @@ +/* @file intrinsics.cpp */ + +#include "intrinsics.hpp" + +/* FIXME: don't know how to mangle symbols yet, + * so putting functions invoked from jit into global namespace + */ +extern "C" +int32_t +mul_i32(int32_t x, int32_t y) { + return x * y; +} + +extern "C" +double +mul_f64(double x, double y) { + return x * y; +} + +/* end intrinsics.cpp */