Browse Source
2013-05-22 Jürgen Urban <JuergenUrban@gmx.de> * mips.h (M_LQC2_AB, M_SQC2_AB): New macros. opcodes/ 2013-05-22 Jürgen Urban <JuergenUrban@gmx.de> * mips-opc.c (mips_builtin_opcodes): Add R5900 VU0 instructions. gas/ 2013-05-22 Jürgen Urban <JuergenUrban@gmx.de> * config/tc-mips.c (macro): Handle M_LQC2_AB and M_SQC2_AB. gas/testsuite/ 2013-05-22 Jürgen Urban <JuergenUrban@gmx.de> * gas/mips/r5900-full.s, gas/mips/r5900-full.d: Add tests for LQ and SQ macros. * gas/mips/r5900-vu0.s, gas/mips/r5900-vu0.d: New test. * gas/mips/mips.exp: Run it.binutils-2_24-branch
12 changed files with 226 additions and 9 deletions
@ -0,0 +1,66 @@ |
|||
#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric -mmips:5900 |
|||
#name: MIPS R5900 VU0 |
|||
#as: -march=r5900 |
|||
|
|||
.*: +file format .*mips.* |
|||
|
|||
Disassembly of section \.text: |
|||
[0-9a-f]+ <[^>]*> d8000000 lqc2 \$0,0\(\$0\) |
|||
[0-9a-f]+ <[^>]*> d8217fff lqc2 \$1,32767\(\$1\) |
|||
[0-9a-f]+ <[^>]*> d9088000 lqc2 \$8,-32768\(\$8\) |
|||
[0-9a-f]+ <[^>]*> dbffffff lqc2 \$31,-1\(\$31\) |
|||
[0-9a-f]+ <[^>]*> 3c010001 lui \$1,0x1 |
|||
[0-9a-f]+ <[^>]*> 00220821 addu \$1,\$1,\$2 |
|||
[0-9a-f]+ <[^>]*> d8208000 lqc2 \$0,-32768\(\$1\) |
|||
[0-9a-f]+ <[^>]*> 3c01ffff lui \$1,0xffff |
|||
[0-9a-f]+ <[^>]*> 003f0821 addu \$1,\$1,\$31 |
|||
[0-9a-f]+ <[^>]*> d8287fff lqc2 \$8,32767\(\$1\) |
|||
[0-9a-f]+ <[^>]*> 3c01f123 lui \$1,0xf123 |
|||
[0-9a-f]+ <[^>]*> 00240821 addu \$1,\$1,\$4 |
|||
[0-9a-f]+ <[^>]*> d83f4567 lqc2 \$31,17767\(\$1\) |
|||
[0-9a-f]+ <[^>]*> f8000000 sqc2 \$0,0\(\$0\) |
|||
[0-9a-f]+ <[^>]*> f8217fff sqc2 \$1,32767\(\$1\) |
|||
[0-9a-f]+ <[^>]*> f9088000 sqc2 \$8,-32768\(\$8\) |
|||
[0-9a-f]+ <[^>]*> fbffffff sqc2 \$31,-1\(\$31\) |
|||
[0-9a-f]+ <[^>]*> 3c010001 lui \$1,0x1 |
|||
[0-9a-f]+ <[^>]*> 00220821 addu \$1,\$1,\$2 |
|||
[0-9a-f]+ <[^>]*> f8208000 sqc2 \$0,-32768\(\$1\) |
|||
[0-9a-f]+ <[^>]*> 3c01ffff lui \$1,0xffff |
|||
[0-9a-f]+ <[^>]*> 003f0821 addu \$1,\$1,\$31 |
|||
[0-9a-f]+ <[^>]*> f8287fff sqc2 \$8,32767\(\$1\) |
|||
[0-9a-f]+ <[^>]*> 3c01f123 lui \$1,0xf123 |
|||
[0-9a-f]+ <[^>]*> 00240821 addu \$1,\$1,\$4 |
|||
[0-9a-f]+ <[^>]*> f83f4567 sqc2 \$31,17767\(\$1\) |
|||
[0-9a-f]+ <[^>]*> 48400000 cfc2 \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 4840f800 cfc2 \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48400001 cfc2.i \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 4840f801 cfc2.i \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48400000 cfc2 \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 4840f800 cfc2 \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48c00000 ctc2 \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 48c0f800 ctc2 \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48c00001 ctc2.i \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 48c0f801 ctc2.i \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48c00000 ctc2 \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 48c0f800 ctc2 \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48200000 qmfc2 \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 4820f800 qmfc2 \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48200001 qmfc2.i \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 4820f801 qmfc2.i \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48200000 qmfc2 \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 4820f800 qmfc2 \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48a00000 qmtc2 \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 48a0f800 qmtc2 \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48a00001 qmtc2.i \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 48a0f801 qmtc2.i \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 48a00000 qmtc2 \$0,\$0 |
|||
[0-9a-f]+ <[^>]*> 48a0f800 qmtc2 \$0,\$31 |
|||
[0-9a-f]+ <[^>]*> 4900ffff bc2f [0-9a-f]+ <branch_label> |
|||
[0-9a-f]+ <[^>]*> 00000000 nop |
|||
[0-9a-f]+ <[^>]*> 4902fffd bc2fl [0-9a-f]+ <branch_label> |
|||
[0-9a-f]+ <[^>]*> 00000000 nop |
|||
[0-9a-f]+ <[^>]*> 4901fffb bc2t [0-9a-f]+ <branch_label> |
|||
[0-9a-f]+ <[^>]*> 00000000 nop |
|||
[0-9a-f]+ <[^>]*> 4903fff9 bc2tl [0-9a-f]+ <branch_label> |
|||
[0-9a-f]+ <[^>]*> 00000000 nop |
|||
\.\.\. |
|||
@ -0,0 +1,76 @@ |
|||
.text |
|||
|
|||
.set noreorder |
|||
.set noat |
|||
|
|||
.ent text_label |
|||
.global text_label |
|||
text_label: |
|||
# Floating point transfer to VU |
|||
lqc2 $0,0($0) |
|||
lqc2 $1, 0x7fff($1) |
|||
lqc2 $8, -0x8000($8) |
|||
lqc2 $31, -1($31) |
|||
.set at |
|||
lqc2 $0, 0x8000($2) |
|||
lqc2 $8, -0x8001($31) |
|||
lqc2 $31, 0xF1234567($4) |
|||
.set noat |
|||
|
|||
# Floating point transfer from VU |
|||
sqc2 $0,0($0) |
|||
sqc2 $1, 0x7fff($1) |
|||
sqc2 $8, -0x8000($8) |
|||
sqc2 $31, -1($31) |
|||
.set at |
|||
sqc2 $0, 0x8000($2) |
|||
sqc2 $8, -0x8001($31) |
|||
sqc2 $31, 0xF1234567($4) |
|||
.set noat |
|||
|
|||
# Integer transfer from VU |
|||
cfc2 $0,$0 |
|||
cfc2 $0,$31 |
|||
cfc2.i $0,$0 |
|||
cfc2.i $0,$31 |
|||
cfc2.ni $0,$0 |
|||
cfc2.ni $0,$31 |
|||
|
|||
# Integer transfer to VU |
|||
ctc2 $0,$0 |
|||
ctc2 $0,$31 |
|||
ctc2.i $0,$0 |
|||
ctc2.i $0,$31 |
|||
ctc2.ni $0,$0 |
|||
ctc2.ni $0,$31 |
|||
|
|||
# Floating point transfer from VU |
|||
qmfc2 $0,$0 |
|||
qmfc2 $0,$31 |
|||
qmfc2.i $0,$0 |
|||
qmfc2.i $0,$31 |
|||
qmfc2.ni $0,$0 |
|||
qmfc2.ni $0,$31 |
|||
|
|||
# Floating point transfer to VU |
|||
qmtc2 $0,$0 |
|||
qmtc2 $0,$31 |
|||
qmtc2.i $0,$0 |
|||
qmtc2.i $0,$31 |
|||
qmtc2.ni $0,$0 |
|||
qmtc2.ni $0,$31 |
|||
|
|||
# COP2 conditional branch instructions |
|||
branch_label: |
|||
bc2f branch_label |
|||
nop |
|||
bc2fl branch_label |
|||
nop |
|||
bc2t branch_label |
|||
nop |
|||
bc2tl branch_label |
|||
nop |
|||
|
|||
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... |
|||
.space 8 |
|||
.end text_label |
|||
Loading…
Reference in new issue