mips/ffi.c: fix encoding for jr on r6
mips/ffi.c: instruction jr has a different encoding for r6
This commit is contained in:
@@ -715,7 +715,11 @@ ffi_prep_closure_loc (ffi_closure *closure,
|
||||
/* lui $12,high(codeloc) */
|
||||
tramp[2] = 0x3c0c0000 | ((unsigned)codeloc >> 16);
|
||||
/* jr $25 */
|
||||
#if !defined(__mips_isa_rev) || (__mips_isa_rev<6)
|
||||
tramp[3] = 0x03200008;
|
||||
#else
|
||||
tramp[3] = 0x03200009;
|
||||
#endif
|
||||
/* ori $12,low(codeloc) */
|
||||
tramp[4] = 0x358c0000 | ((unsigned)codeloc & 0xffff);
|
||||
#else
|
||||
@@ -743,7 +747,11 @@ ffi_prep_closure_loc (ffi_closure *closure,
|
||||
/* ori $25,low(fn) */
|
||||
tramp[10] = 0x37390000 | ((unsigned long)fn & 0xffff);
|
||||
/* jr $25 */
|
||||
#if !defined(__mips_isa_rev) || (__mips_isa_rev<6)
|
||||
tramp[11] = 0x03200008;
|
||||
#else
|
||||
tramp[11] = 0x03200009;
|
||||
#endif
|
||||
/* ori $12,low(codeloc) */
|
||||
tramp[12] = 0x358c0000 | ((unsigned long)codeloc & 0xffff);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user