Browse Source
gas/ * config/tc-mips.c (mips_fix_pmc_rm7000): Declare. (options): Add OPTION_FIX_PMC_RM7000 and OPTION_NO_FIX_PMC_RM7000. (md_longopts): Add mfix-pmc-rm7000 and mno-fix-pmc-rm7000. (INSN_DMULT): Define. (INSN_DMULTU): Define. (insns_between): Detect PMC RM7000 errata. (md_parse_option): Supprt OPTION_FIX_PMC_RM7000 and OPTION_NO_FIX_PMC_RM7000. * doc/as.texinfo: Document new options. * doc/c-mips.texi: Likewise. gas/testsuite/ * gas/mips/fix-pmc-rm7000-1.d: New. * gas/mips/fix-pmc-rm7000-1.s: New. * gas/mips/fix-pmc-rm7000-2.d: New. * gas/mips/fix-pmc-rm7000-2.s: New. * gas/mips/micromips@fix-pmc-rm7000-1.d: New. * gas/mips/micromips@fix-pmc-rm7000-2.d: New. * gas/mips/mips.exp: Run new tests.gdb-7.7-branch
12 changed files with 230 additions and 2 deletions
@ -0,0 +1,22 @@ |
|||
#as: -mfix-rm7000 -mgp64 -mabi=64 |
|||
#objdump: -dz --prefix-addresses |
|||
#name: MIPS RM7000 workarounds test 1 |
|||
#source: fix-rm7000-1.s |
|||
|
|||
.*file format.* |
|||
|
|||
Disassembly.* |
|||
|
|||
0+0000 <[^>]*> move v0,a0 |
|||
0+0004 <[^>]*> dmult a2,v1 |
|||
0+0008 <[^>]*> nop |
|||
0+000c <[^>]*> nop |
|||
0+0010 <[^>]*> nop |
|||
0+0014 <[^>]*> ld a3,0\(s8\) |
|||
0+0018 <[^>]*> ld a0,0\(s8\) |
|||
0+001c <[^>]*> move a0,a3 |
|||
0+0020 <[^>]*> dmult v0,a3 |
|||
0+0024 <[^>]*> nop |
|||
0+0028 <[^>]*> nop |
|||
0+002c <[^>]*> nop |
|||
0+0030 <[^>]*> ld a0,0\(s8\) |
|||
@ -0,0 +1,10 @@ |
|||
.section .text2, "ax", @progbits |
|||
.align 2 |
|||
test1: |
|||
move $2,$4 |
|||
dmult $6,$3 |
|||
ld $7,0($fp) |
|||
ld $4,0($fp) |
|||
move $4,$7 |
|||
dmult $2,$7 |
|||
ld $4,0($fp) |
|||
@ -0,0 +1,57 @@ |
|||
#as: -mfix-rm7000 |
|||
#objdump: -dz --prefix-addresses |
|||
#name: MIPS RM7000 workarounds test 2 |
|||
#source: fix-rm7000-2.s |
|||
|
|||
.*file format.* |
|||
|
|||
Disassembly.* |
|||
0+0000 <[^>]*> move v0,a0 |
|||
0+0004 <[^>]*> dmultu a1,a3 |
|||
0+0008 <[^>]*> nop |
|||
0+000c <[^>]*> nop |
|||
0+0010 <[^>]*> nop |
|||
0+0014 <[^>]*> lb a0,0\(s8\) |
|||
0+0018 <[^>]*> dmult a2,v1 |
|||
0+001c <[^>]*> nop |
|||
0+0020 <[^>]*> nop |
|||
0+0024 <[^>]*> nop |
|||
0+0028 <[^>]*> lbu a3,0\(s8\) |
|||
0+002c <[^>]*> move v0,a0 |
|||
0+0030 <[^>]*> dmultu a1,a3 |
|||
0+0034 <[^>]*> addiu a0,s8,0 |
|||
0+0038 <[^>]*> move v0,a0 |
|||
0+003c <[^>]*> dmult a2,v1 |
|||
0+0040 <[^>]*> nop |
|||
0+0044 <[^>]*> nop |
|||
0+0048 <[^>]*> nop |
|||
0+004c <[^>]*> lh a3,0\(s8\) |
|||
0+0050 <[^>]*> dmultu a1,a3 |
|||
0+0054 <[^>]*> nop |
|||
0+0058 <[^>]*> nop |
|||
0+005c <[^>]*> nop |
|||
0+0060 <[^>]*> lhu a0,0\(s8\) |
|||
0+0064 <[^>]*> dmult a2,v1 |
|||
0+0068 <[^>]*> nop |
|||
0+006c <[^>]*> nop |
|||
0+0070 <[^>]*> nop |
|||
0+0074 <[^>]*> ll a3,0\(s8\) |
|||
0+0078 <[^>]*> dmultu a1,a3 |
|||
0+007c <[^>]*> nop |
|||
0+0080 <[^>]*> nop |
|||
0+0084 <[^>]*> nop |
|||
0+0088 <[^>]*> lld a0,0\(s8\) |
|||
0+008c <[^>]*> dmultu a1,a3 |
|||
0+0090 <[^>]*> nop |
|||
0+0094 <[^>]*> nop |
|||
0+0098 <[^>]*> nop |
|||
0+009c <[^>]*> lw a0,0\(s8\) |
|||
0+00a0 <[^>]*> dmult a2,v1 |
|||
0+00a4 <[^>]*> nop |
|||
0+00a8 <[^>]*> nop |
|||
0+00ac <[^>]*> nop |
|||
0+00b0 <[^>]*> lwr a3,0\(s8\) |
|||
0+00b4 <[^>]*> dmultu a1,a3 |
|||
0+00b8 <[^>]*> nop |
|||
0+00bc <[^>]*> nop |
|||
0+00c0 <[^>]*> nop |
|||
@ -0,0 +1,25 @@ |
|||
.section .text2, "ax", @progbits |
|||
.align 2 |
|||
test2: |
|||
move $2,$4 |
|||
dmultu $5,$7 |
|||
lb $4,0($fp) |
|||
dmult $6,$3 |
|||
lbu $7,0($fp) |
|||
move $2,$4 |
|||
dmultu $5,$7 |
|||
lca $4,0($fp) |
|||
move $2,$4 |
|||
dmult $6,$3 |
|||
lh $7,0($fp) |
|||
dmultu $5,$7 |
|||
lhu $4,0($fp) |
|||
dmult $6,$3 |
|||
ll $7,0($fp) |
|||
dmultu $5,$7 |
|||
lld $4,0($fp) |
|||
dmultu $5,$7 |
|||
lw $4,0($fp) |
|||
dmult $6,$3 |
|||
lwr $7,0($fp) |
|||
dmultu $5,$7 |
|||
@ -0,0 +1,16 @@ |
|||
#as: -mfix-rm7000 -mgp64 -mabi=64 |
|||
#objdump: -dz --prefix-addresses |
|||
#name: MIPS RM7000 workarounds test 1 |
|||
#source: fix-rm7000-1.s |
|||
|
|||
.*file format.* |
|||
|
|||
Disassembly.* |
|||
|
|||
0+0000 <[^>]*> move v0,a0 |
|||
0+0002 <[^>]*> dmult a2,v1 |
|||
0+0006 <[^>]*> ld a3,0\(s8\) |
|||
0+000a <[^>]*> ld a0,0\(s8\) |
|||
0+000e <[^>]*> move a0,a3 |
|||
0+0010 <[^>]*> dmult v0,a3 |
|||
0+0014 <[^>]*> ld a0,0\(s8\) |
|||
@ -0,0 +1,31 @@ |
|||
#as: -mfix-rm7000 |
|||
#objdump: -dz --prefix-addresses |
|||
#name: MIPS RM7000 workarounds test 2 |
|||
#source: fix-rm7000-2.s |
|||
|
|||
.*file format.* |
|||
|
|||
Disassembly.* |
|||
0+0000 <[^>]*> move v0,a0 |
|||
0+0002 <[^>]*> dmultu a1,a3 |
|||
0+0006 <[^>]*> lb a0,0\(s8\) |
|||
0+000a <[^>]*> dmult a2,v1 |
|||
0+000e <[^>]*> lbu a3,0\(s8\) |
|||
0+0012 <[^>]*> move v0,a0 |
|||
0+0014 <[^>]*> dmultu a1,a3 |
|||
0+0018 <[^>]*> addiu a0,s8,0 |
|||
0+001c <[^>]*> move v0,a0 |
|||
0+001e <[^>]*> dmult a2,v1 |
|||
0+0022 <[^>]*> lh a3,0\(s8\) |
|||
0+0026 <[^>]*> dmultu a1,a3 |
|||
0+002a <[^>]*> lhu a0,0\(s8\) |
|||
0+002e <[^>]*> dmult a2,v1 |
|||
0+0032 <[^>]*> ll a3,0\(s8\) |
|||
0+0036 <[^>]*> dmultu a1,a3 |
|||
0+003a <[^>]*> lld a0,0\(s8\) |
|||
0+003e <[^>]*> dmultu a1,a3 |
|||
0+0042 <[^>]*> lw a0,0\(s8\) |
|||
0+0046 <[^>]*> dmult a2,v1 |
|||
0+004a <[^>]*> lwr a3,0\(s8\) |
|||
0+004e <[^>]*> dmultu a1,a3 |
|||
0+0052 <[^>]*> nop |
|||
Loading…
Reference in new issue