MIPS: Support MIPS16 interlinking.

This commit is contained in:
Mike Pall
2016-06-08 10:24:00 +02:00
parent f5983437a6
commit 287a5347cf
5 changed files with 9 additions and 3 deletions

View File

@@ -721,8 +721,12 @@ static uint32_t jit_cpudetect(lua_State *L)
#if defined(__GNUC__)
if (!(flags & JIT_F_MIPSXXR2)) {
int x;
#ifdef __mips16
x = 0; /* Runtime detection is difficult. Ensure optimal -march flags. */
#else
/* On MIPS32R1 rotr is treated as srl. rotr r2,r2,1 -> srl r2,r2,1. */
__asm__("li $2, 1\n\t.long 0x00221042\n\tmove %0, $2" : "=r"(x) : : "$2");
#endif
if (x) flags |= JIT_F_MIPSXXR2; /* Either 0x80000000 (R2) or 0 (R1). */
}
#endif