From 1f02ec02effd0ad69fee0b1fdc9d22e372122928 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 19 Jun 2024 18:18:15 -0400 Subject: [PATCH] xo-pyexpression: experiment: try moving xo intrinsics into xo-jit --- include/xo/jit/intrinsics.hpp | 13 +++++++++++++ src/jit/intrinsics.cpp | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 include/xo/jit/intrinsics.hpp create mode 100644 src/jit/intrinsics.cpp 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 */