From 780d1c1cf007c25188f7e9b8fde0e2540668a562 Mon Sep 17 00:00:00 2001 From: Debian Common Lisp Team Date: Wed, 28 Aug 2019 20:39:51 +0100 Subject: [PATCH] mips-r6 Gbp-Pq: Name mips-r6.patch --- avcall/avcall-mips64eb-macro.S | 28 +++++++++++++++++++ avcall/avcall-mips64el-macro.S | 28 +++++++++++++++++++ avcall/avcall-mipsn32eb-macro.S | 28 +++++++++++++++++++ avcall/avcall-mipsn32el-macro.S | 32 ++++++++++++++++++++++ callback/trampoline_r/trampoline.c | 14 +++++++--- callback/vacall_r/vacall-mips64eb-macro.S | 28 +++++++++++++++++++ callback/vacall_r/vacall-mips64el-macro.S | 28 +++++++++++++++++++ callback/vacall_r/vacall-mipsn32eb-macro.S | 28 +++++++++++++++++++ callback/vacall_r/vacall-mipsn32el-macro.S | 28 +++++++++++++++++++ trampoline/trampoline.c | 14 +++++++--- vacall/vacall-mips64eb-macro.S | 28 +++++++++++++++++++ vacall/vacall-mips64el-macro.S | 28 +++++++++++++++++++ vacall/vacall-mipsn32eb-macro.S | 28 +++++++++++++++++++ vacall/vacall-mipsn32el-macro.S | 28 +++++++++++++++++++ 14 files changed, 360 insertions(+), 8 deletions(-) diff --git a/avcall/avcall-mips64eb-macro.S b/avcall/avcall-mips64eb-macro.S index 6858ebf..9bfa80d 100644 --- a/avcall/avcall-mips64eb-macro.S +++ b/avcall/avcall-mips64eb-macro.S @@ -119,7 +119,11 @@ avcall_call: .L130: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$0,.L131 +#else + beq $4,$0,.L131 +#endif andi $3,$3,0x80 .set macro .set reorder @@ -137,7 +141,11 @@ avcall_call: .L124: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $3,$0,.L123 +#else + beq $3,$0,.L123 +#endif slt $3,$6,9 .set macro .set reorder @@ -229,7 +237,11 @@ avcall_call: .L137: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$0,.L138 +#else + beq $4,$0,.L138 +#endif andi $3,$3,0x80 .set macro .set reorder @@ -298,7 +310,11 @@ avcall_call: li $5,1 .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$5,.L139 +#else + beq $4,$5,.L139 +#endif move $sp,$fp .set macro .set reorder @@ -410,7 +426,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 bnel $4,$5,.L139 +#else + bne $4,$5,.L139 +#endif move $sp,$fp .set macro .set reorder @@ -426,7 +446,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$0,.L38 +#else + beq $4,$0,.L38 +#endif ld $4,32($16) .set macro .set reorder @@ -456,7 +480,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $3,$4,.L140 +#else + beq $3,$4,.L140 +#endif ld $3,16($16) .set macro .set reorder diff --git a/avcall/avcall-mips64el-macro.S b/avcall/avcall-mips64el-macro.S index ed3df52..40f08bf 100644 --- a/avcall/avcall-mips64el-macro.S +++ b/avcall/avcall-mips64el-macro.S @@ -119,7 +119,11 @@ avcall_call: .L130: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$0,.L131 +#else + beq $4,$0,.L131 +#endif andi $3,$3,0x80 .set macro .set reorder @@ -137,7 +141,11 @@ avcall_call: .L124: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $3,$0,.L123 +#else + beq $3,$0,.L123 +#endif slt $3,$6,9 .set macro .set reorder @@ -229,7 +237,11 @@ avcall_call: .L137: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$0,.L138 +#else + beq $4,$0,.L138 +#endif andi $3,$3,0x80 .set macro .set reorder @@ -298,7 +310,11 @@ avcall_call: li $5,1 .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$5,.L139 +#else + beq $4,$5,.L139 +#endif move $sp,$fp .set macro .set reorder @@ -410,7 +426,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 bnel $4,$5,.L139 +#else + bne $4,$5,.L139 +#endif move $sp,$fp .set macro .set reorder @@ -426,7 +446,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$0,.L38 +#else + beq $4,$0,.L38 +#endif ld $5,32($16) .set macro .set reorder @@ -456,7 +480,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $3,$4,.L140 +#else + beq $3,$4,.L140 +#endif ld $3,16($16) .set macro .set reorder diff --git a/avcall/avcall-mipsn32eb-macro.S b/avcall/avcall-mipsn32eb-macro.S index 270e68b..39bd8a3 100644 --- a/avcall/avcall-mipsn32eb-macro.S +++ b/avcall/avcall-mipsn32eb-macro.S @@ -118,7 +118,11 @@ avcall_call: .L130: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $6,$0,.L131 +#else + beq $6,$0,.L131 +#endif andi $2,$2,0x80 .set macro .set reorder @@ -136,7 +140,11 @@ avcall_call: .L124: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $2,$0,.L123 +#else + beq $2,$0,.L123 +#endif slt $4,$4,9 .set macro .set reorder @@ -228,7 +236,11 @@ avcall_call: .L137: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $6,$0,.L138 +#else + beq $6,$0,.L138 +#endif andi $2,$2,0x80 .set macro .set reorder @@ -295,7 +307,11 @@ avcall_call: li $5,1 .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$5,.L139 +#else + beq $4,$5,.L139 +#endif move $sp,$fp .set macro .set reorder @@ -407,7 +423,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 bnel $4,$5,.L139 +#else + bne $4,$5,.L139 +#endif move $sp,$fp .set macro .set reorder @@ -423,7 +443,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$0,.L38 +#else + beq $4,$0,.L38 +#endif lw $4,16($16) .set macro .set reorder @@ -453,7 +477,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $3,$4,.L140 +#else + beq $3,$4,.L140 +#endif lw $3,8($16) .set macro .set reorder diff --git a/avcall/avcall-mipsn32el-macro.S b/avcall/avcall-mipsn32el-macro.S index 91e4fe5..2eb54b9 100644 --- a/avcall/avcall-mipsn32el-macro.S +++ b/avcall/avcall-mipsn32el-macro.S @@ -118,7 +118,11 @@ avcall_call: .L130: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $6,$0,.L131 +#else + beq $6,$0,.L131 +#endif andi $2,$2,0x80 .set macro .set reorder @@ -136,7 +140,11 @@ avcall_call: .L124: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $2,$0,.L123 +#else + beq $2,$0,.L123 +#endif slt $4,$4,9 .set macro .set reorder @@ -228,7 +236,11 @@ avcall_call: .L137: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $6,$0,.L138 +#else + beq $6,$0,.L138 +#endif andi $2,$2,0x80 .set macro .set reorder @@ -295,7 +307,11 @@ avcall_call: li $5,1 .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$5,.L139 +#else + beq $4,$5,.L139 +#endif move $sp,$fp .set macro .set reorder @@ -407,7 +423,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 bnel $4,$5,.L139 +#else + bne $4,$5,.L139 +#endif move $sp,$fp .set macro .set reorder @@ -423,7 +443,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $4,$0,.L38 +#else + beq $4,$0,.L38 +#endif lw $5,16($16) .set macro .set reorder @@ -453,7 +477,11 @@ avcall_call: .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $3,$4,.L140 +#else + beq $3,$4,.L140 +#endif lw $3,8($16) .set macro .set reorder @@ -600,7 +628,11 @@ avcall_call: sltu $3,$5,9 .set noreorder .set nomacro +#if __mips_isa_rev < 6 beql $3,$0,.L43 +#else + beq $3,$0,.L43 +#endif ld $10,0($6) .set macro .set reorder diff --git a/callback/trampoline_r/trampoline.c b/callback/trampoline_r/trampoline.c index 175eb42..eab5b9d 100644 --- a/callback/trampoline_r/trampoline.c +++ b/callback/trampoline_r/trampoline.c @@ -72,6 +72,12 @@ extern void (*tramp_r) (); /* trampoline prototype */ #endif #endif +#if __mips_isa_rev>=6 +#define JALR_ENCODE_DIFF 0x1 +#else +#define JALR_ENCODE_DIFF 0x0 +#endif + #ifndef CODE_EXECUTABLE /* How do we make the trampoline's code executable? */ #if defined(HAVE_MACH_VM) || defined(HAVE_WORKING_MPROTECT) @@ -589,7 +595,7 @@ __TR_function alloc_trampoline_r (__TR_function address, void* data0, void* data */ *(unsigned int *) (function + 0) = 0x8F220010; *(unsigned int *) (function + 4) = 0x8F390014; - *(unsigned int *) (function + 8) = 0x03200008; + *(unsigned int *) (function + 8) = 0x03200008 | JALR_ENCODE_DIFF; *(unsigned int *) (function +12) = 0x00000000; *(unsigned int *) (function +16) = (unsigned int) data; *(unsigned int *) (function +20) = (unsigned int) address; @@ -597,7 +603,7 @@ __TR_function alloc_trampoline_r (__TR_function address, void* data0, void* data #define is_tramp(function) \ *(unsigned int *) (function + 0) == 0x8F220010 && \ *(unsigned int *) (function + 4) == 0x8F390014 && \ - *(unsigned int *) (function + 8) == 0x03200008 && \ + *(unsigned int *) (function + 8) == (0x03200008 | JALR_ENCODE_DIFF) && \ *(unsigned int *) (function +12) == 0x00000000 #define tramp_address(function) \ *(unsigned int *) (function +20) @@ -684,7 +690,7 @@ __TR_function alloc_trampoline_r (__TR_function address, void* data0, void* data */ *(unsigned int *) (function + 0) = 0xDF220010; *(unsigned int *) (function + 4) = 0xDF390018; - *(unsigned int *) (function + 8) = 0x03200008; + *(unsigned int *) (function + 8) = 0x03200008 | JALR_ENCODE_DIFF; *(unsigned int *) (function +12) = 0x00000000; *(unsigned long *) (function +16) = (unsigned long) data; *(unsigned long *) (function +24) = (unsigned long) address; @@ -692,7 +698,7 @@ __TR_function alloc_trampoline_r (__TR_function address, void* data0, void* data #define is_tramp(function) \ *(unsigned int *) (function + 0) == 0xDF220010 && \ *(unsigned int *) (function + 4) == 0xDF390018 && \ - *(unsigned int *) (function + 8) == 0x03200008 && \ + *(unsigned int *) (function + 8) == (0x03200008 | JALR_ENCODE_DIFF) && \ *(unsigned int *) (function +12) == 0x00000000 #define tramp_address(function) \ *(unsigned long *) (function +24) diff --git a/callback/vacall_r/vacall-mips64eb-macro.S b/callback/vacall_r/vacall-mips64eb-macro.S index a0cd04c..ce26754 100644 --- a/callback/vacall_r/vacall-mips64eb-macro.S +++ b/callback/vacall_r/vacall-mips64eb-macro.S @@ -101,7 +101,11 @@ callback_receiver: beq $12,$13,.L44 li $13,15 +#if __mips_isa_rev < 6 bnel $12,$13,.L58 +#else + bne $12,$13,.L58 +#endif move $sp,$fp lw $12,0($fp) @@ -123,7 +127,11 @@ callback_receiver: beq $12,$13,.L55 li $13,8 +#if __mips_isa_rev < 6 bnel $12,$13,.L58 +#else + bne $12,$13,.L58 +#endif move $sp,$fp ld $12,32($fp) @@ -193,7 +201,11 @@ callback_receiver: .L19: daddiu $13,$14,-1 sltu $13,$13,16 +#if __mips_isa_rev < 6 beql $13,$0,.L59 +#else + beq $13,$0,.L59 +#endif andi $13,$12,0x800 ld $13,32($fp) @@ -219,23 +231,39 @@ callback_receiver: .L23: andi $13,$12,0x800 .L59: +#if __mips_isa_rev < 6 beql $13,$0,.L27 +#else + beq $13,$0,.L27 +#endif andi $12,$12,0x1000 li $13,4 beq $14,$13,.L56 li $13,8 +#if __mips_isa_rev < 6 beql $14,$13,.L57 +#else + beq $14,$13,.L57 +#endif ld $13,32($fp) andi $12,$12,0x1000 +#if __mips_isa_rev < 6 beql $12,$0,.L58 +#else + beq $12,$0,.L58 +#endif move $sp,$fp li $12,16 .L60: +#if __mips_isa_rev < 6 bnel $14,$12,.L58 +#else + bne $14,$12,.L58 +#endif move $sp,$fp ld $12,32($fp) diff --git a/callback/vacall_r/vacall-mips64el-macro.S b/callback/vacall_r/vacall-mips64el-macro.S index d2d7d89..07623c5 100644 --- a/callback/vacall_r/vacall-mips64el-macro.S +++ b/callback/vacall_r/vacall-mips64el-macro.S @@ -101,7 +101,11 @@ callback_receiver: beq $12,$13,.L44 li $13,15 +#if __mips_isa_rev < 6 bnel $12,$13,.L58 +#else + bne $12,$13,.L58 +#endif move $sp,$fp lw $12,0($fp) @@ -123,7 +127,11 @@ callback_receiver: beq $12,$13,.L55 li $13,8 +#if __mips_isa_rev < 6 bnel $12,$13,.L58 +#else + bne $12,$13,.L58 +#endif move $sp,$fp ld $12,32($fp) @@ -193,7 +201,11 @@ callback_receiver: .L19: daddiu $13,$14,-1 sltu $13,$13,16 +#if __mips_isa_rev < 6 beql $13,$0,.L59 +#else + beq $13,$0,.L59 +#endif andi $13,$12,0x800 ld $13,32($fp) @@ -220,23 +232,39 @@ callback_receiver: .L23: andi $13,$12,0x800 .L59: +#if __mips_isa_rev < 6 beql $13,$0,.L27 +#else + beq $13,$0,.L27 +#endif andi $12,$12,0x1000 li $13,4 beq $14,$13,.L56 li $13,8 +#if __mips_isa_rev < 6 beql $14,$13,.L57 +#else + beq $14,$13,.L57 +#endif ld $13,32($fp) andi $12,$12,0x1000 +#if __mips_isa_rev < 6 beql $12,$0,.L58 +#else + beq $12,$0,.L58 +#endif move $sp,$fp li $12,16 .L60: +#if __mips_isa_rev < 6 bnel $14,$12,.L58 +#else + bne $14,$12,.L58 +#endif move $sp,$fp ld $12,32($fp) diff --git a/callback/vacall_r/vacall-mipsn32eb-macro.S b/callback/vacall_r/vacall-mipsn32eb-macro.S index 6f1e482..307c423 100644 --- a/callback/vacall_r/vacall-mipsn32eb-macro.S +++ b/callback/vacall_r/vacall-mipsn32eb-macro.S @@ -101,7 +101,11 @@ callback_receiver: beq $12,$13,.L46 li $13,15 +#if __mips_isa_rev < 6 bnel $12,$13,.L59 +#else + bne $12,$13,.L59 +#endif move $sp,$fp lw $12,0($fp) @@ -123,7 +127,11 @@ callback_receiver: beq $12,$13,.L56 li $13,8 +#if __mips_isa_rev < 6 bnel $12,$13,.L59 +#else + bne $12,$13,.L59 +#endif move $sp,$fp lw $12,28($fp) @@ -193,7 +201,11 @@ callback_receiver: .L19: addiu $13,$24,-1 sltu $13,$13,16 +#if __mips_isa_rev < 6 beql $13,$0,.L60 +#else + beq $13,$0,.L60 +#endif andi $13,$12,0x800 lw $13,28($fp) @@ -218,23 +230,39 @@ callback_receiver: .L23: andi $13,$12,0x800 .L60: +#if __mips_isa_rev < 6 beql $13,$0,.L27 +#else + beq $13,$0,.L27 +#endif andi $12,$12,0x1000 li $13,4 beq $24,$13,.L57 li $13,8 +#if __mips_isa_rev < 6 beql $24,$13,.L58 +#else + beq $24,$13,.L58 +#endif lw $13,28($fp) andi $12,$12,0x1000 +#if __mips_isa_rev < 6 beql $12,$0,.L59 +#else + beq $12,$0,.L59 +#endif move $sp,$fp li $12,16 .L61: +#if __mips_isa_rev < 6 bnel $24,$12,.L59 +#else + bne $24,$12,.L59 +#endif move $sp,$fp lw $12,28($fp) diff --git a/callback/vacall_r/vacall-mipsn32el-macro.S b/callback/vacall_r/vacall-mipsn32el-macro.S index d1391d7..aa497fc 100644 --- a/callback/vacall_r/vacall-mipsn32el-macro.S +++ b/callback/vacall_r/vacall-mipsn32el-macro.S @@ -101,7 +101,11 @@ callback_receiver: beq $12,$13,.L46 li $13,15 +#if __mips_isa_rev < 6 bnel $12,$13,.L59 +#else + bne $12,$13,.L59 +#endif move $sp,$fp lw $12,0($fp) @@ -123,7 +127,11 @@ callback_receiver: beq $12,$13,.L56 li $13,8 +#if __mips_isa_rev < 6 bnel $12,$13,.L59 +#else + bne $12,$13,.L59 +#endif move $sp,$fp lw $12,28($fp) @@ -193,7 +201,11 @@ callback_receiver: .L19: addiu $13,$24,-1 sltu $13,$13,16 +#if __mips_isa_rev < 6 beql $13,$0,.L60 +#else + beq $13,$0,.L60 +#endif andi $13,$12,0x800 lw $13,28($fp) @@ -219,23 +231,39 @@ callback_receiver: .L23: andi $13,$12,0x800 .L60: +#if __mips_isa_rev < 6 beql $13,$0,.L27 +#else + beq $13,$0,.L27 +#endif andi $12,$12,0x1000 li $13,4 beq $24,$13,.L57 li $13,8 +#if __mips_isa_rev < 6 beql $24,$13,.L58 +#else + beq $24,$13,.L58 +#endif lw $13,28($fp) andi $12,$12,0x1000 +#if __mips_isa_rev < 6 beql $12,$0,.L59 +#else + beq $12,$0,.L59 +#endif move $sp,$fp li $12,16 .L61: +#if __mips_isa_rev < 6 bnel $24,$12,.L59 +#else + bne $24,$12,.L59 +#endif move $sp,$fp lw $12,28($fp) diff --git a/trampoline/trampoline.c b/trampoline/trampoline.c index 79f2c92..76f925e 100644 --- a/trampoline/trampoline.c +++ b/trampoline/trampoline.c @@ -72,6 +72,12 @@ extern void (*tramp) (); /* trampoline prototype */ #endif #endif +#if __mips_isa_rev>=6 +#define JALR_ENCODE_DIFF 0x1 +#else +#define JALR_ENCODE_DIFF 0x0 +#endif + #ifndef CODE_EXECUTABLE /* How do we make the trampoline's code executable? */ #if defined(HAVE_MACH_VM) || defined(HAVE_WORKING_MPROTECT) @@ -637,7 +643,7 @@ trampoline_function_t alloc_trampoline (trampoline_function_t address, void** va *(unsigned int *) (function + 4) = 0x8F23001C; *(unsigned int *) (function + 8) = 0xAC430000; *(unsigned int *) (function +12) = 0x8F390020; - *(unsigned int *) (function +16) = 0x03200008; + *(unsigned int *) (function +16) = 0x03200008 | JALR_ENCODE_DIFF; *(unsigned int *) (function +20) = 0x00000000; *(unsigned int *) (function +24) = (unsigned int) variable; *(unsigned int *) (function +28) = (unsigned int) data; @@ -648,7 +654,7 @@ trampoline_function_t alloc_trampoline (trampoline_function_t address, void** va *(int *) (function + 4) == 0x8F23001C && \ *(int *) (function + 8) == 0xAC430000 && \ *(int *) (function +12) == 0x8F390020 && \ - *(int *) (function +16) == 0x03200008 && \ + *(int *) (function +16) == (0x03200008 | JALR_ENCODE_DIFF) && \ *(int *) (function +20) == 0x00000000 #define tramp_address(function) \ *(unsigned int *) (function +32) @@ -772,7 +778,7 @@ trampoline_function_t alloc_trampoline (trampoline_function_t address, void** va *(unsigned int *) (function + 4) = 0xDF230020; *(unsigned int *) (function + 8) = 0xFC430000; *(unsigned int *) (function +12) = 0xDF390028; - *(unsigned int *) (function +16) = 0x03200008; + *(unsigned int *) (function +16) = 0x03200008 | JALR_ENCODE_DIFF; *(unsigned int *) (function +20) = 0x00000000; *(unsigned long *) (function +24) = (unsigned long) variable; *(unsigned long *) (function +32) = (unsigned long) data; @@ -783,7 +789,7 @@ trampoline_function_t alloc_trampoline (trampoline_function_t address, void** va *(unsigned int *) (function + 4) == 0xDF230020 && \ *(unsigned int *) (function + 8) == 0xFC430000 && \ *(unsigned int *) (function +12) == 0xDF390028 && \ - *(unsigned int *) (function +16) == 0x03200008 && \ + *(unsigned int *) (function +16) == (0x03200008 | JALR_ENCODE_DIFF) && \ *(unsigned int *) (function +20) == 0x00000000 #define tramp_address(function) \ *(unsigned long *) (function +40) diff --git a/vacall/vacall-mips64eb-macro.S b/vacall/vacall-mips64eb-macro.S index 87b6667..642ab12 100644 --- a/vacall/vacall-mips64eb-macro.S +++ b/vacall/vacall-mips64eb-macro.S @@ -106,7 +106,11 @@ vacall_receiver: beq $12,$13,.L44 li $13,15 +#if __mips_isa_rev < 6 bnel $12,$13,.L58 +#else + bne $12,$13,.L58 +#endif move $sp,$fp lw $12,0($fp) @@ -128,7 +132,11 @@ vacall_receiver: beq $12,$13,.L55 li $13,8 +#if __mips_isa_rev < 6 bnel $12,$13,.L58 +#else + bne $12,$13,.L58 +#endif move $sp,$fp ld $12,32($fp) @@ -200,7 +208,11 @@ vacall_receiver: .L19: daddiu $13,$14,-1 sltu $13,$13,16 +#if __mips_isa_rev < 6 beql $13,$0,.L59 +#else + beq $13,$0,.L59 +#endif andi $13,$12,0x800 ld $13,32($fp) @@ -226,23 +238,39 @@ vacall_receiver: .L23: andi $13,$12,0x800 .L59: +#if __mips_isa_rev < 6 beql $13,$0,.L27 +#else + beq $13,$0,.L27 +#endif andi $12,$12,0x1000 li $13,4 beq $14,$13,.L56 li $13,8 +#if __mips_isa_rev < 6 beql $14,$13,.L57 +#else + beq $14,$13,.L57 +#endif ld $13,32($fp) andi $12,$12,0x1000 +#if __mips_isa_rev < 6 beql $12,$0,.L58 +#else + beq $12,$0,.L58 +#endif move $sp,$fp li $12,16 .L60: +#if __mips_isa_rev < 6 bnel $14,$12,.L58 +#else + bne $14,$12,.L58 +#endif move $sp,$fp ld $12,32($fp) diff --git a/vacall/vacall-mips64el-macro.S b/vacall/vacall-mips64el-macro.S index 63b81f5..330a53d 100644 --- a/vacall/vacall-mips64el-macro.S +++ b/vacall/vacall-mips64el-macro.S @@ -106,7 +106,11 @@ vacall_receiver: beq $12,$13,.L44 li $13,15 +#if __mips_isa_rev < 6 bnel $12,$13,.L58 +#else + bne $12,$13,.L58 +#endif move $sp,$fp lw $12,0($fp) @@ -128,7 +132,11 @@ vacall_receiver: beq $12,$13,.L55 li $13,8 +#if __mips_isa_rev < 6 bnel $12,$13,.L58 +#else + bne $12,$13,.L58 +#endif move $sp,$fp ld $12,32($fp) @@ -200,7 +208,11 @@ vacall_receiver: .L19: daddiu $13,$14,-1 sltu $13,$13,16 +#if __mips_isa_rev < 6 beql $13,$0,.L59 +#else + beq $13,$0,.L59 +#endif andi $13,$12,0x800 ld $13,32($fp) @@ -227,23 +239,39 @@ vacall_receiver: .L23: andi $13,$12,0x800 .L59: +#if __mips_isa_rev < 6 beql $13,$0,.L27 +#else + beq $13,$0,.L27 +#endif andi $12,$12,0x1000 li $13,4 beq $14,$13,.L56 li $13,8 +#if __mips_isa_rev < 6 beql $14,$13,.L57 +#else + beq $14,$13,.L57 +#endif ld $13,32($fp) andi $12,$12,0x1000 +#if __mips_isa_rev < 6 beql $12,$0,.L58 +#else + beq $12,$0,.L58 +#endif move $sp,$fp li $12,16 .L60: +#if __mips_isa_rev < 6 bnel $14,$12,.L58 +#else + bne $14,$12,.L58 +#endif move $sp,$fp ld $12,32($fp) diff --git a/vacall/vacall-mipsn32eb-macro.S b/vacall/vacall-mipsn32eb-macro.S index f19511d..82428eb 100644 --- a/vacall/vacall-mipsn32eb-macro.S +++ b/vacall/vacall-mipsn32eb-macro.S @@ -105,7 +105,11 @@ vacall_receiver: beq $12,$13,.L46 li $13,15 +#if __mips_isa_rev < 6 bnel $12,$13,.L59 +#else + bne $12,$13,.L59 +#endif move $sp,$fp lw $12,0($fp) @@ -127,7 +131,11 @@ vacall_receiver: beq $12,$13,.L56 li $13,8 +#if __mips_isa_rev < 6 bnel $12,$13,.L59 +#else + bne $12,$13,.L59 +#endif move $sp,$fp lw $12,28($fp) @@ -199,7 +207,11 @@ vacall_receiver: .L19: addiu $13,$24,-1 sltu $13,$13,16 +#if __mips_isa_rev < 6 beql $13,$0,.L60 +#else + beq $13,$0,.L60 +#endif andi $13,$12,0x800 lw $13,28($fp) @@ -224,23 +236,39 @@ vacall_receiver: .L23: andi $13,$12,0x800 .L60: +#if __mips_isa_rev < 6 beql $13,$0,.L27 +#else + beq $13,$0,.L27 +#endif andi $12,$12,0x1000 li $13,4 beq $24,$13,.L57 li $13,8 +#if __mips_isa_rev < 6 beql $24,$13,.L58 +#else + beq $24,$13,.L58 +#endif lw $13,28($fp) andi $12,$12,0x1000 +#if __mips_isa_rev < 6 beql $12,$0,.L59 +#else + beq $12,$0,.L59 +#endif move $sp,$fp li $12,16 .L61: +#if __mips_isa_rev < 6 bnel $24,$12,.L59 +#else + bne $24,$12,.L59 +#endif move $sp,$fp lw $12,28($fp) diff --git a/vacall/vacall-mipsn32el-macro.S b/vacall/vacall-mipsn32el-macro.S index 0aa74c5..6bd8cf0 100644 --- a/vacall/vacall-mipsn32el-macro.S +++ b/vacall/vacall-mipsn32el-macro.S @@ -105,7 +105,11 @@ vacall_receiver: beq $12,$13,.L46 li $13,15 +#if __mips_isa_rev < 6 bnel $12,$13,.L59 +#else + bne $12,$13,.L59 +#endif move $sp,$fp lw $12,0($fp) @@ -127,7 +131,11 @@ vacall_receiver: beq $12,$13,.L56 li $13,8 +#if __mips_isa_rev < 6 bnel $12,$13,.L59 +#else + bne $12,$13,.L59 +#endif move $sp,$fp lw $12,28($fp) @@ -199,7 +207,11 @@ vacall_receiver: .L19: addiu $13,$24,-1 sltu $13,$13,16 +#if __mips_isa_rev < 6 beql $13,$0,.L60 +#else + beq $13,$0,.L60 +#endif andi $13,$12,0x800 lw $13,28($fp) @@ -225,23 +237,39 @@ vacall_receiver: .L23: andi $13,$12,0x800 .L60: +#if __mips_isa_rev < 6 beql $13,$0,.L27 +#else + beq $13,$0,.L27 +#endif andi $12,$12,0x1000 li $13,4 beq $24,$13,.L57 li $13,8 +#if __mips_isa_rev < 6 beql $24,$13,.L58 +#else + beq $24,$13,.L58 +#endif lw $13,28($fp) andi $12,$12,0x1000 +#if __mips_isa_rev < 6 beql $12,$0,.L59 +#else + beq $12,$0,.L59 +#endif move $sp,$fp li $12,16 .L61: +#if __mips_isa_rev < 6 bnel $24,$12,.L59 +#else + bne $24,$12,.L59 +#endif move $sp,$fp lw $12,28($fp) -- 2.30.2