26 #ifndef VM_JIT_ARM_MD_HPP_
27 #define VM_JIT_ARM_MD_HPP_
71 ra = *((
void **) (((uintptr_t) sp) + stackframesize - SIZEOF_VOID_P));
98 if ((mcode & 0xfff0ff00) == 0xe240c700 ) {
99 pv -= (uintptr_t) ((mcode & 0x000000ff) << 18);
100 mcode = pc[++mcode_idx];
104 if ((mcode & 0xfff0ff00) == 0xe240cb00 ) {
105 pv -= (uintptr_t) ((mcode & 0x000000ff) << 10);
106 mcode = pc[++mcode_idx];
110 if ((mcode & 0xfff0ff00) == 0xe240cf00 )
111 pv -= (uintptr_t) ((mcode & 0x000000ff) << 2);
112 else if ((mcode & 0xffffff00) == 0xe24fc000 )
113 pv -= (uintptr_t) (mcode & 0x000000ff);
116 vm_abort(
"Unable to find method: %p (instr=%x)", ra, mcode);
164 __asm__ __volatile__ (
"" : : :
"memory");
167 #endif // VM_JIT_ARM_MD_HPP_
void asm_cacheflush(void *addr, int nbytes)
static void * md_codegen_get_pv_from_pc(void *ra)
static void md_dcacheflush(void *addr, int nbytes)
void vm_abort(const char *text,...)
static int32_t md_stacktrace_get_framesize(codeinfo *code)
Returns the size (in bytes) of the current stackframe, specified by the passed codeinfo structure...
static void * md_stacktrace_get_returnaddress(void *sp, int32_t stackframesize)
static void md_icacheflush(void *addr, int nbytes)
static void md_cacheflush(void *addr, int nbytes)