summaryrefslogtreecommitdiff
path: root/libguile
diff options
context:
space:
mode:
Diffstat (limited to 'libguile')
-rw-r--r--libguile/lightening/lightening.h2
-rw-r--r--libguile/lightening/lightening/lightening.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/libguile/lightening/lightening.h b/libguile/lightening/lightening.h
index 23635a01d..32e3e3acc 100644
--- a/libguile/lightening/lightening.h
+++ b/libguile/lightening/lightening.h
@@ -218,6 +218,8 @@ JIT_API void* jit_end(jit_state_t*, size_t*);
JIT_API void jit_align(jit_state_t*, unsigned);
JIT_API jit_pointer_t jit_address(jit_state_t*);
+typedef void (*jit_function_pointer_t)();
+JIT_API jit_function_pointer_t jit_address_to_function_pointer(jit_pointer_t);
JIT_API void jit_patch_here(jit_state_t*, jit_reloc_t);
JIT_API void jit_patch_there(jit_state_t*, jit_reloc_t, jit_pointer_t);
diff --git a/libguile/lightening/lightening/lightening.c b/libguile/lightening/lightening/lightening.c
index 97bf29411..6d6d5ee73 100644
--- a/libguile/lightening/lightening/lightening.c
+++ b/libguile/lightening/lightening/lightening.c
@@ -206,6 +206,12 @@ jit_reset(jit_state_t *_jit)
#endif
}
+jit_function_pointer_t
+jit_address_to_function_pointer(jit_pointer_t p)
+{
+ return bless_function_pointer(p);
+}
+
void*
jit_end(jit_state_t *_jit, size_t *length)
{
@@ -237,7 +243,7 @@ jit_end(jit_state_t *_jit, size_t *length)
clear_literal_pool(_jit->pool);
#endif
- return bless_function_pointer(start);
+ return jit_address_to_function_pointer(start);
}
static int