@@ -556,6 +556,7 @@ void patch_got_symbol(jit_state *state, int ordinal);
556556void patch_aarch64_trampoline (unsigned char * location , int ordinal , jit_state * state );
557557void patch_aarch64_trampoline_addr (unsigned char * location , int ordinal , uint64_t value , jit_state * state );
558558void patch_x86_64_trampoline (unsigned char * location , int ordinal , jit_state * state );
559+ void patch_x86_64_trampoline_addr (unsigned char * location , int ordinal , uint64_t value , jit_state * state );
559560
560561#include "jit_stencils.h"
561562
@@ -618,7 +619,13 @@ void
618619patch_x86_64_trampoline (unsigned char * location , int ordinal , jit_state * state )
619620{
620621 uint64_t value = (uintptr_t )symbols_map [ordinal ];
621- int64_t range = (int64_t )value - 4 - (int64_t )location ;
622+ patch_x86_64_trampoline_addr (location , ordinal , value , state );
623+ }
624+
625+ void
626+ patch_x86_64_trampoline_addr (unsigned char * location , int ordinal , uint64_t value , jit_state * state )
627+ {
628+ int64_t range = (int64_t )value - 4 - (int64_t )(uintptr_t )location ;
622629
623630 // If we are in range of 32 signed bits, we can patch directly
624631 if (range >= - (1LL << 31 ) && range < (1LL << 31 )) {
0 commit comments