+2002-01-14 Richard Earnshaw <rearnsha@arm.com>
+
+ * gas/arm/armv1.s, arm/armv1.d, arm/fpa-mem.s, arm/fpa-mem.d
+ arm/fpa-monadic.s, arm/fpa-monadic.d, arm/fpa-dyadic.s,
+ arm/fpa-dyadic.d: New tests.
+ * gas/arm/le-fpconst.d (objdump): pass --section=.text
+ * gas/arm/arm.exp: Add new tests. Run le-fpconst test on elf targets.
+
2002-01-14 Richard Earnshaw <rearnsha@arm.com>
* gas/arm/armv1-bad.s gas/arm/armv1-bad.l: New files.
run_dump_test "ldconst"
+ run_dump_test "armv1"
+
run_errors_test "armv1-bad" "-marm1" "ARM v1 errors"
gas_test "arm3.s" "-marm3" $stdoptlist "Arm 3 instructions"
gas_test "float.s" "" $stdoptlist "Core floating point instructions"
+ run_dump_test "fpa-monadic"
+
+ run_dump_test "fpa-dyadic"
+
+ run_dump_test "fpa-mem"
+
run_dump_test "xscale"
run_dump_test "adrl"
--- /dev/null
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: ARM v1 instructions
+#as: -marm1
+
+# Test the ARM v1 instructions
+
+.*: +file format .*arm.*
+
+Disassembly of section .text:
+0+00 <[^>]*> e0000000 ? and r0, r0, r0
+0+04 <[^>]*> e0100000 ? ands r0, r0, r0
+0+08 <[^>]*> e0200000 ? eor r0, r0, r0
+0+0c <[^>]*> e0300000 ? eors r0, r0, r0
+0+10 <[^>]*> e0400000 ? sub r0, r0, r0
+0+14 <[^>]*> e0500000 ? subs r0, r0, r0
+0+18 <[^>]*> e0600000 ? rsb r0, r0, r0
+0+1c <[^>]*> e0700000 ? rsbs r0, r0, r0
+0+20 <[^>]*> e0800000 ? add r0, r0, r0
+0+24 <[^>]*> e0900000 ? adds r0, r0, r0
+0+28 <[^>]*> e0a00000 ? adc r0, r0, r0
+0+2c <[^>]*> e0b00000 ? adcs r0, r0, r0
+0+30 <[^>]*> e0c00000 ? sbc r0, r0, r0
+0+34 <[^>]*> e0d00000 ? sbcs r0, r0, r0
+0+38 <[^>]*> e0e00000 ? rsc r0, r0, r0
+0+3c <[^>]*> e0f00000 ? rscs r0, r0, r0
+0+40 <[^>]*> e1800000 ? orr r0, r0, r0
+0+44 <[^>]*> e1900000 ? orrs r0, r0, r0
+0+48 <[^>]*> e1c00000 ? bic r0, r0, r0
+0+4c <[^>]*> e1d00000 ? bics r0, r0, r0
+0+50 <[^>]*> e1100000 ? tst r0, r0
+0+54 <[^>]*> e1100000 ? tst r0, r0
+0+58 <[^>]*> e110f000 ? tstp r0, r0
+0+5c <[^>]*> e1300000 ? teq r0, r0
+0+60 <[^>]*> e1300000 ? teq r0, r0
+0+64 <[^>]*> e130f000 ? teqp r0, r0
+0+68 <[^>]*> e1500000 ? cmp r0, r0
+0+6c <[^>]*> e1500000 ? cmp r0, r0
+0+70 <[^>]*> e150f000 ? cmpp r0, r0
+0+74 <[^>]*> e1700000 ? cmn r0, r0
+0+78 <[^>]*> e1700000 ? cmn r0, r0
+0+7c <[^>]*> e170f000 ? cmnp r0, r0
+0+80 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\)
+0+84 <[^>]*> e1b00000 ? movs r0, r0
+0+88 <[^>]*> e1e00000 ? mvn r0, r0
+0+8c <[^>]*> e1f00000 ? mvns r0, r0
+0+90 <[^>]*> ef000000 ? swi 0x00000000
+0+94 <[^>]*> e5900000 ? ldr r0, \[r0\]
+0+98 <[^>]*> e5d00000 ? ldrb r0, \[r0\]
+0+9c <[^>]*> e4b10000 ? ldrt r0, \[r1\]
+0+a0 <[^>]*> e4f10000 ? ldrbt r0, \[r1\]
+0+a4 <[^>]*> e5800000 ? str r0, \[r0\]
+0+a8 <[^>]*> e5c00000 ? strb r0, \[r0\]
+0+ac <[^>]*> e4a10000 ? strt r0, \[r1\]
+0+b0 <[^>]*> e4e10000 ? strbt r0, \[r1\]
+0+b4 <[^>]*> e8800001 ? stmia r0, {r0}
+0+b8 <[^>]*> e9800001 ? stmib r0, {r0}
+0+bc <[^>]*> e8000001 ? stmda r0, {r0}
+0+c0 <[^>]*> e9000001 ? stmdb r0, {r0}
+0+c4 <[^>]*> e9000001 ? stmdb r0, {r0}
+0+c8 <[^>]*> e9800001 ? stmib r0, {r0}
+0+cc <[^>]*> e8800001 ? stmia r0, {r0}
+0+d0 <[^>]*> e8000001 ? stmda r0, {r0}
+0+d4 <[^>]*> e8900001 ? ldmia r0, {r0}
+0+d8 <[^>]*> e9900001 ? ldmib r0, {r0}
+0+dc <[^>]*> e8100001 ? ldmda r0, {r0}
+0+e0 <[^>]*> e9100001 ? ldmdb r0, {r0}
+0+e4 <[^>]*> e8900001 ? ldmia r0, {r0}
+0+e8 <[^>]*> e8100001 ? ldmda r0, {r0}
+0+ec <[^>]*> e9100001 ? ldmdb r0, {r0}
+0+f0 <[^>]*> e9900001 ? ldmib r0, {r0}
--- /dev/null
+ .global entry
+ .text
+entry:
+ and r0, r0, r0
+ ands r0, r0, r0
+ eor r0, r0, r0
+ eors r0, r0, r0
+ sub r0, r0, r0
+ subs r0, r0, r0
+ rsb r0, r0, r0
+ rsbs r0, r0, r0
+ add r0, r0, r0
+ adds r0, r0, r0
+ adc r0, r0, r0
+ adcs r0, r0, r0
+ sbc r0, r0, r0
+ sbcs r0, r0, r0
+ rsc r0, r0, r0
+ rscs r0, r0, r0
+ orr r0, r0, r0
+ orrs r0, r0, r0
+ bic r0, r0, r0
+ bics r0, r0, r0
+
+ tst r0, r0
+ tsts r0, r0
+ tstp r0, r0
+ teq r0, r0
+ teqs r0, r0
+ teqp r0, r0
+ cmp r0, r0
+ cmps r0, r0
+ cmpp r0, r0
+ cmn r0, r0
+ cmns r0, r0
+ cmnp r0, r0
+
+ mov r0, r0
+ movs r0, r0
+ mvn r0, r0
+ mvns r0, r0
+
+ swi #0
+
+ ldr r0, [r0, #-0]
+ ldrb r0, [r0, #-0]
+ ldrt r0, [r1]
+ ldrbt r0, [r1]
+ str r0, [r0, #-0]
+ strb r0, [r0, #-0]
+ strt r0, [r1]
+ strbt r0, [r1]
+
+ stmia r0, {r0}
+ stmib r0, {r0}
+ stmda r0, {r0}
+ stmdb r0, {r0}
+ stmfd r0, {r0}
+ stmfa r0, {r0}
+ stmea r0, {r0}
+ stmed r0, {r0}
+
+ ldmia r0, {r0}
+ ldmib r0, {r0}
+ ldmda r0, {r0}
+ ldmdb r0, {r0}
+ ldmfd r0, {r0}
+ ldmfa r0, {r0}
+ ldmea r0, {r0}
+ ldmed r0, {r0}
--- /dev/null
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: FPA Dyadic instructions
+#as: -mfpe-old
+
+# Test FPA Dyadic instructions
+# This test should work for both big and little-endian assembly.
+
+.*: *file format .*arm.*
+
+Disassembly of section .text:
+0+000 <[^>]*> ee000100 ? adfs f0, f0, f0
+0+004 <[^>]*> ee000120 ? adfsp f0, f0, f0
+0+008 <[^>]*> ee000140 ? adfsm f0, f0, f0
+0+00c <[^>]*> ee000160 ? adfsz f0, f0, f0
+0+010 <[^>]*> ee000180 ? adfd f0, f0, f0
+0+014 <[^>]*> ee0001a0 ? adfdp f0, f0, f0
+0+018 <[^>]*> ee0001c0 ? adfdm f0, f0, f0
+0+01c <[^>]*> ee0001e0 ? adfdz f0, f0, f0
+0+020 <[^>]*> ee080100 ? adfe f0, f0, f0
+0+024 <[^>]*> ee080120 ? adfep f0, f0, f0
+0+028 <[^>]*> ee080140 ? adfem f0, f0, f0
+0+02c <[^>]*> ee080160 ? adfez f0, f0, f0
+0+030 <[^>]*> ee200100 ? sufs f0, f0, f0
+0+034 <[^>]*> ee200120 ? sufsp f0, f0, f0
+0+038 <[^>]*> ee200140 ? sufsm f0, f0, f0
+0+03c <[^>]*> ee200160 ? sufsz f0, f0, f0
+0+040 <[^>]*> ee200180 ? sufd f0, f0, f0
+0+044 <[^>]*> ee2001a0 ? sufdp f0, f0, f0
+0+048 <[^>]*> ee2001c0 ? sufdm f0, f0, f0
+0+04c <[^>]*> ee2001e0 ? sufdz f0, f0, f0
+0+050 <[^>]*> ee280100 ? sufe f0, f0, f0
+0+054 <[^>]*> ee280120 ? sufep f0, f0, f0
+0+058 <[^>]*> ee280140 ? sufem f0, f0, f0
+0+05c <[^>]*> ee280160 ? sufez f0, f0, f0
+0+060 <[^>]*> ee300100 ? rsfs f0, f0, f0
+0+064 <[^>]*> ee300120 ? rsfsp f0, f0, f0
+0+068 <[^>]*> ee300140 ? rsfsm f0, f0, f0
+0+06c <[^>]*> ee300160 ? rsfsz f0, f0, f0
+0+070 <[^>]*> ee300180 ? rsfd f0, f0, f0
+0+074 <[^>]*> ee3001a0 ? rsfdp f0, f0, f0
+0+078 <[^>]*> ee3001c0 ? rsfdm f0, f0, f0
+0+07c <[^>]*> ee3001e0 ? rsfdz f0, f0, f0
+0+080 <[^>]*> ee380100 ? rsfe f0, f0, f0
+0+084 <[^>]*> ee380120 ? rsfep f0, f0, f0
+0+088 <[^>]*> ee380140 ? rsfem f0, f0, f0
+0+08c <[^>]*> ee380160 ? rsfez f0, f0, f0
+0+090 <[^>]*> ee100100 ? mufs f0, f0, f0
+0+094 <[^>]*> ee100120 ? mufsp f0, f0, f0
+0+098 <[^>]*> ee100140 ? mufsm f0, f0, f0
+0+09c <[^>]*> ee100160 ? mufsz f0, f0, f0
+0+0a0 <[^>]*> ee100180 ? mufd f0, f0, f0
+0+0a4 <[^>]*> ee1001a0 ? mufdp f0, f0, f0
+0+0a8 <[^>]*> ee1001c0 ? mufdm f0, f0, f0
+0+0ac <[^>]*> ee1001e0 ? mufdz f0, f0, f0
+0+0b0 <[^>]*> ee180100 ? mufe f0, f0, f0
+0+0b4 <[^>]*> ee180120 ? mufep f0, f0, f0
+0+0b8 <[^>]*> ee180140 ? mufem f0, f0, f0
+0+0bc <[^>]*> ee180160 ? mufez f0, f0, f0
+0+0c0 <[^>]*> ee400100 ? dvfs f0, f0, f0
+0+0c4 <[^>]*> ee400120 ? dvfsp f0, f0, f0
+0+0c8 <[^>]*> ee400140 ? dvfsm f0, f0, f0
+0+0cc <[^>]*> ee400160 ? dvfsz f0, f0, f0
+0+0d0 <[^>]*> ee400180 ? dvfd f0, f0, f0
+0+0d4 <[^>]*> ee4001a0 ? dvfdp f0, f0, f0
+0+0d8 <[^>]*> ee4001c0 ? dvfdm f0, f0, f0
+0+0dc <[^>]*> ee4001e0 ? dvfdz f0, f0, f0
+0+0e0 <[^>]*> ee480100 ? dvfe f0, f0, f0
+0+0e4 <[^>]*> ee480120 ? dvfep f0, f0, f0
+0+0e8 <[^>]*> ee480140 ? dvfem f0, f0, f0
+0+0ec <[^>]*> ee480160 ? dvfez f0, f0, f0
+0+0f0 <[^>]*> ee500100 ? rdfs f0, f0, f0
+0+0f4 <[^>]*> ee500120 ? rdfsp f0, f0, f0
+0+0f8 <[^>]*> ee500140 ? rdfsm f0, f0, f0
+0+0fc <[^>]*> ee500160 ? rdfsz f0, f0, f0
+0+100 <[^>]*> ee500180 ? rdfd f0, f0, f0
+0+104 <[^>]*> ee5001a0 ? rdfdp f0, f0, f0
+0+108 <[^>]*> ee5001c0 ? rdfdm f0, f0, f0
+0+10c <[^>]*> ee5001e0 ? rdfdz f0, f0, f0
+0+110 <[^>]*> ee580100 ? rdfe f0, f0, f0
+0+114 <[^>]*> ee580120 ? rdfep f0, f0, f0
+0+118 <[^>]*> ee580140 ? rdfem f0, f0, f0
+0+11c <[^>]*> ee580160 ? rdfez f0, f0, f0
+0+120 <[^>]*> ee600100 ? pows f0, f0, f0
+0+124 <[^>]*> ee600120 ? powsp f0, f0, f0
+0+128 <[^>]*> ee600140 ? powsm f0, f0, f0
+0+12c <[^>]*> ee600160 ? powsz f0, f0, f0
+0+130 <[^>]*> ee600180 ? powd f0, f0, f0
+0+134 <[^>]*> ee6001a0 ? powdp f0, f0, f0
+0+138 <[^>]*> ee6001c0 ? powdm f0, f0, f0
+0+13c <[^>]*> ee6001e0 ? powdz f0, f0, f0
+0+140 <[^>]*> ee680100 ? powe f0, f0, f0
+0+144 <[^>]*> ee680120 ? powep f0, f0, f0
+0+148 <[^>]*> ee680140 ? powem f0, f0, f0
+0+14c <[^>]*> ee680160 ? powez f0, f0, f0
+0+150 <[^>]*> ee700100 ? rpws f0, f0, f0
+0+154 <[^>]*> ee700120 ? rpwsp f0, f0, f0
+0+158 <[^>]*> ee700140 ? rpwsm f0, f0, f0
+0+15c <[^>]*> ee700160 ? rpwsz f0, f0, f0
+0+160 <[^>]*> ee700180 ? rpwd f0, f0, f0
+0+164 <[^>]*> ee7001a0 ? rpwdp f0, f0, f0
+0+168 <[^>]*> ee7001c0 ? rpwdm f0, f0, f0
+0+16c <[^>]*> ee7001e0 ? rpwdz f0, f0, f0
+0+170 <[^>]*> ee780100 ? rpwe f0, f0, f0
+0+174 <[^>]*> ee780120 ? rpwep f0, f0, f0
+0+178 <[^>]*> ee780140 ? rpwem f0, f0, f0
+0+17c <[^>]*> ee780160 ? rpwez f0, f0, f0
+0+180 <[^>]*> ee800100 ? rmfs f0, f0, f0
+0+184 <[^>]*> ee800120 ? rmfsp f0, f0, f0
+0+188 <[^>]*> ee800140 ? rmfsm f0, f0, f0
+0+18c <[^>]*> ee800160 ? rmfsz f0, f0, f0
+0+190 <[^>]*> ee800180 ? rmfd f0, f0, f0
+0+194 <[^>]*> ee8001a0 ? rmfdp f0, f0, f0
+0+198 <[^>]*> ee8001c0 ? rmfdm f0, f0, f0
+0+19c <[^>]*> ee8001e0 ? rmfdz f0, f0, f0
+0+1a0 <[^>]*> ee880100 ? rmfe f0, f0, f0
+0+1a4 <[^>]*> ee880120 ? rmfep f0, f0, f0
+0+1a8 <[^>]*> ee880140 ? rmfem f0, f0, f0
+0+1ac <[^>]*> ee880160 ? rmfez f0, f0, f0
+0+1b0 <[^>]*> ee900100 ? fmls f0, f0, f0
+0+1b4 <[^>]*> ee900120 ? fmlsp f0, f0, f0
+0+1b8 <[^>]*> ee900140 ? fmlsm f0, f0, f0
+0+1bc <[^>]*> ee900160 ? fmlsz f0, f0, f0
+0+1c0 <[^>]*> ee900180 ? fmld f0, f0, f0
+0+1c4 <[^>]*> ee9001a0 ? fmldp f0, f0, f0
+0+1c8 <[^>]*> ee9001c0 ? fmldm f0, f0, f0
+0+1cc <[^>]*> ee9001e0 ? fmldz f0, f0, f0
+0+1d0 <[^>]*> ee980100 ? fmle f0, f0, f0
+0+1d4 <[^>]*> ee980120 ? fmlep f0, f0, f0
+0+1d8 <[^>]*> ee980140 ? fmlem f0, f0, f0
+0+1dc <[^>]*> ee980160 ? fmlez f0, f0, f0
+0+1e0 <[^>]*> eea00100 ? fdvs f0, f0, f0
+0+1e4 <[^>]*> eea00120 ? fdvsp f0, f0, f0
+0+1e8 <[^>]*> eea00140 ? fdvsm f0, f0, f0
+0+1ec <[^>]*> eea00160 ? fdvsz f0, f0, f0
+0+1f0 <[^>]*> eea00180 ? fdvd f0, f0, f0
+0+1f4 <[^>]*> eea001a0 ? fdvdp f0, f0, f0
+0+1f8 <[^>]*> eea001c0 ? fdvdm f0, f0, f0
+0+1fc <[^>]*> eea001e0 ? fdvdz f0, f0, f0
+0+200 <[^>]*> eea80100 ? fdve f0, f0, f0
+0+204 <[^>]*> eea80120 ? fdvep f0, f0, f0
+0+208 <[^>]*> eea80140 ? fdvem f0, f0, f0
+0+20c <[^>]*> eea80160 ? fdvez f0, f0, f0
+0+210 <[^>]*> eeb00100 ? frds f0, f0, f0
+0+214 <[^>]*> eeb00120 ? frdsp f0, f0, f0
+0+218 <[^>]*> eeb00140 ? frdsm f0, f0, f0
+0+21c <[^>]*> eeb00160 ? frdsz f0, f0, f0
+0+220 <[^>]*> eeb00180 ? frdd f0, f0, f0
+0+224 <[^>]*> eeb001a0 ? frddp f0, f0, f0
+0+228 <[^>]*> eeb001c0 ? frddm f0, f0, f0
+0+22c <[^>]*> eeb001e0 ? frddz f0, f0, f0
+0+230 <[^>]*> eeb80100 ? frde f0, f0, f0
+0+234 <[^>]*> eeb80120 ? frdep f0, f0, f0
+0+238 <[^>]*> eeb80140 ? frdem f0, f0, f0
+0+23c <[^>]*> eeb80160 ? frdez f0, f0, f0
+0+240 <[^>]*> eec00100 ? pols f0, f0, f0
+0+244 <[^>]*> eec00120 ? polsp f0, f0, f0
+0+248 <[^>]*> eec00140 ? polsm f0, f0, f0
+0+24c <[^>]*> eec00160 ? polsz f0, f0, f0
+0+250 <[^>]*> eec00180 ? pold f0, f0, f0
+0+254 <[^>]*> eec001a0 ? poldp f0, f0, f0
+0+258 <[^>]*> eec001c0 ? poldm f0, f0, f0
+0+25c <[^>]*> eec001e0 ? poldz f0, f0, f0
+0+260 <[^>]*> eec80100 ? pole f0, f0, f0
+0+264 <[^>]*> eec80120 ? polep f0, f0, f0
+0+268 <[^>]*> eec80140 ? polem f0, f0, f0
+0+26c <[^>]*> eec80160 ? polez f0, f0, f0
--- /dev/null
+ .text
+ .globl F
+F:
+ adfs f0, f0, f0
+ adfsp f0, f0, f0
+ adfsm f0, f0, f0
+ adfsz f0, f0, f0
+ adfd f0, f0, f0
+ adfdp f0, f0, f0
+ adfdm f0, f0, f0
+ adfdz f0, f0, f0
+ adfe f0, f0, f0
+ adfep f0, f0, f0
+ adfem f0, f0, f0
+ adfez f0, f0, f0
+
+ sufs f0, f0, f0
+ sufsp f0, f0, f0
+ sufsm f0, f0, f0
+ sufsz f0, f0, f0
+ sufd f0, f0, f0
+ sufdp f0, f0, f0
+ sufdm f0, f0, f0
+ sufdz f0, f0, f0
+ sufe f0, f0, f0
+ sufep f0, f0, f0
+ sufem f0, f0, f0
+ sufez f0, f0, f0
+
+ rsfs f0, f0, f0
+ rsfsp f0, f0, f0
+ rsfsm f0, f0, f0
+ rsfsz f0, f0, f0
+ rsfd f0, f0, f0
+ rsfdp f0, f0, f0
+ rsfdm f0, f0, f0
+ rsfdz f0, f0, f0
+ rsfe f0, f0, f0
+ rsfep f0, f0, f0
+ rsfem f0, f0, f0
+ rsfez f0, f0, f0
+
+ mufs f0, f0, f0
+ mufsp f0, f0, f0
+ mufsm f0, f0, f0
+ mufsz f0, f0, f0
+ mufd f0, f0, f0
+ mufdp f0, f0, f0
+ mufdm f0, f0, f0
+ mufdz f0, f0, f0
+ mufe f0, f0, f0
+ mufep f0, f0, f0
+ mufem f0, f0, f0
+ mufez f0, f0, f0
+
+ dvfs f0, f0, f0
+ dvfsp f0, f0, f0
+ dvfsm f0, f0, f0
+ dvfsz f0, f0, f0
+ dvfd f0, f0, f0
+ dvfdp f0, f0, f0
+ dvfdm f0, f0, f0
+ dvfdz f0, f0, f0
+ dvfe f0, f0, f0
+ dvfep f0, f0, f0
+ dvfem f0, f0, f0
+ dvfez f0, f0, f0
+
+ rdfs f0, f0, f0
+ rdfsp f0, f0, f0
+ rdfsm f0, f0, f0
+ rdfsz f0, f0, f0
+ rdfd f0, f0, f0
+ rdfdp f0, f0, f0
+ rdfdm f0, f0, f0
+ rdfdz f0, f0, f0
+ rdfe f0, f0, f0
+ rdfep f0, f0, f0
+ rdfem f0, f0, f0
+ rdfez f0, f0, f0
+
+ pows f0, f0, f0
+ powsp f0, f0, f0
+ powsm f0, f0, f0
+ powsz f0, f0, f0
+ powd f0, f0, f0
+ powdp f0, f0, f0
+ powdm f0, f0, f0
+ powdz f0, f0, f0
+ powe f0, f0, f0
+ powep f0, f0, f0
+ powem f0, f0, f0
+ powez f0, f0, f0
+
+ rpws f0, f0, f0
+ rpwsp f0, f0, f0
+ rpwsm f0, f0, f0
+ rpwsz f0, f0, f0
+ rpwd f0, f0, f0
+ rpwdp f0, f0, f0
+ rpwdm f0, f0, f0
+ rpwdz f0, f0, f0
+ rpwe f0, f0, f0
+ rpwep f0, f0, f0
+ rpwem f0, f0, f0
+ rpwez f0, f0, f0
+
+ rmfs f0, f0, f0
+ rmfsp f0, f0, f0
+ rmfsm f0, f0, f0
+ rmfsz f0, f0, f0
+ rmfd f0, f0, f0
+ rmfdp f0, f0, f0
+ rmfdm f0, f0, f0
+ rmfdz f0, f0, f0
+ rmfe f0, f0, f0
+ rmfep f0, f0, f0
+ rmfem f0, f0, f0
+ rmfez f0, f0, f0
+
+ fmls f0, f0, f0
+ fmlsp f0, f0, f0
+ fmlsm f0, f0, f0
+ fmlsz f0, f0, f0
+ fmld f0, f0, f0
+ fmldp f0, f0, f0
+ fmldm f0, f0, f0
+ fmldz f0, f0, f0
+ fmle f0, f0, f0
+ fmlep f0, f0, f0
+ fmlem f0, f0, f0
+ fmlez f0, f0, f0
+
+ fdvs f0, f0, f0
+ fdvsp f0, f0, f0
+ fdvsm f0, f0, f0
+ fdvsz f0, f0, f0
+ fdvd f0, f0, f0
+ fdvdp f0, f0, f0
+ fdvdm f0, f0, f0
+ fdvdz f0, f0, f0
+ fdve f0, f0, f0
+ fdvep f0, f0, f0
+ fdvem f0, f0, f0
+ fdvez f0, f0, f0
+
+ frds f0, f0, f0
+ frdsp f0, f0, f0
+ frdsm f0, f0, f0
+ frdsz f0, f0, f0
+ frdd f0, f0, f0
+ frddp f0, f0, f0
+ frddm f0, f0, f0
+ frddz f0, f0, f0
+ frde f0, f0, f0
+ frdep f0, f0, f0
+ frdem f0, f0, f0
+ frdez f0, f0, f0
+
+ pols f0, f0, f0
+ polsp f0, f0, f0
+ polsm f0, f0, f0
+ polsz f0, f0, f0
+ pold f0, f0, f0
+ poldp f0, f0, f0
+ poldm f0, f0, f0
+ poldz f0, f0, f0
+ pole f0, f0, f0
+ polep f0, f0, f0
+ polem f0, f0, f0
+ polez f0, f0, f0
+
--- /dev/null
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: FPA memory insructions
+#as: -mfpa10
+
+# Test FPA memory instructions
+# This test should work for both big and little-endian assembly.
+
+.*: *file format .*arm.*
+
+Disassembly of section .text:
+0+00 <[^>]*> ed900100 ? ldfs f0, \[r0\]
+0+04 <[^>]*> ec300101 ? ldfs f0, \[r0\], -#4
+0+08 <[^>]*> ed908100 ? ldfd f0, \[r0\]
+0+0c <[^>]*> ec308101 ? ldfd f0, \[r0\], -#4
+0+10 <[^>]*> edd00100 ? ldfe f0, \[r0\]
+0+14 <[^>]*> ec700101 ? ldfe f0, \[r0\], -#4
+0+18 <[^>]*> edd08100 ? ldfp f0, \[r0\]
+0+1c <[^>]*> ec708101 ? ldfp f0, \[r0\], -#4
+0+20 <[^>]*> ed800100 ? stfs f0, \[r0\]
+0+24 <[^>]*> ec200101 ? stfs f0, \[r0\], -#4
+0+28 <[^>]*> ed808100 ? stfd f0, \[r0\]
+0+2c <[^>]*> ec208101 ? stfd f0, \[r0\], -#4
+0+30 <[^>]*> edc00100 ? stfe f0, \[r0\]
+0+34 <[^>]*> ec600101 ? stfe f0, \[r0\], -#4
+0+38 <[^>]*> edc08100 ? stfp f0, \[r0\]
+0+3c <[^>]*> ec608101 ? stfp f0, \[r0\], -#4
+0+40 <[^>]*> ed900200 ? lfm f0, 4, \[r0\]
+0+44 <[^>]*> ed900200 ? lfm f0, 4, \[r0\]
+0+48 <[^>]*> ed10020c ? lfm f0, 4, \[r0, -#48\]
+0+4c <[^>]*> ed800200 ? sfm f0, 4, \[r0\]
+0+50 <[^>]*> ed00020c ? sfm f0, 4, \[r0, -#48\]
+0+54 <[^>]*> ed800200 ? sfm f0, 4, \[r0\]
--- /dev/null
+ .text
+ .globl F
+F:
+ ldfs f0, [r0]
+ ldfs f0, [r0], #-4
+ ldfd f0, [r0]
+ ldfd f0, [r0], #-4
+ ldfe f0, [r0]
+ ldfe f0, [r0], #-4
+ ldfp f0, [r0]
+ ldfp f0, [r0], #-4
+
+ stfs f0, [r0]
+ stfs f0, [r0], #-4
+ stfd f0, [r0]
+ stfd f0, [r0], #-4
+ stfe f0, [r0]
+ stfe f0, [r0], #-4
+ stfp f0, [r0]
+ stfp f0, [r0], #-4
+ lfm f0, 4, [r0]
+ lfmfd f0, 4, [r0]
+ lfmea f0, 4, [r0]
+ sfm f0, 4, [r0]
+ sfmfd f0, 4, [r0]
+ sfmea f0, 4, [r0]
--- /dev/null
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: FPA Monadic instructions
+#as: -mfpe-old
+
+# Test FPA Monadic instructions
+# This test should work for both big and little-endian assembly.
+
+.*: *file format .*arm.*
+
+Disassembly of section .text:
+0+000 <[^>]*> ee008100 ? mvfs f0, f0
+0+004 <[^>]*> ee008120 ? mvfsp f0, f0
+0+008 <[^>]*> ee008140 ? mvfsm f0, f0
+0+00c <[^>]*> ee008160 ? mvfsz f0, f0
+0+010 <[^>]*> ee008180 ? mvfd f0, f0
+0+014 <[^>]*> ee0081a0 ? mvfdp f0, f0
+0+018 <[^>]*> ee0081c0 ? mvfdm f0, f0
+0+01c <[^>]*> ee0081e0 ? mvfdz f0, f0
+0+020 <[^>]*> ee088100 ? mvfe f0, f0
+0+024 <[^>]*> ee088120 ? mvfep f0, f0
+0+028 <[^>]*> ee088140 ? mvfem f0, f0
+0+02c <[^>]*> ee088160 ? mvfez f0, f0
+0+030 <[^>]*> ee108100 ? mnfs f0, f0
+0+034 <[^>]*> ee108120 ? mnfsp f0, f0
+0+038 <[^>]*> ee108140 ? mnfsm f0, f0
+0+03c <[^>]*> ee108160 ? mnfsz f0, f0
+0+040 <[^>]*> ee108180 ? mnfd f0, f0
+0+044 <[^>]*> ee1081a0 ? mnfdp f0, f0
+0+048 <[^>]*> ee1081c0 ? mnfdm f0, f0
+0+04c <[^>]*> ee1081e0 ? mnfdz f0, f0
+0+050 <[^>]*> ee188100 ? mnfe f0, f0
+0+054 <[^>]*> ee188120 ? mnfep f0, f0
+0+058 <[^>]*> ee188140 ? mnfem f0, f0
+0+05c <[^>]*> ee188160 ? mnfez f0, f0
+0+060 <[^>]*> ee208100 ? abss f0, f0
+0+064 <[^>]*> ee208120 ? abssp f0, f0
+0+068 <[^>]*> ee208140 ? abssm f0, f0
+0+06c <[^>]*> ee208160 ? abssz f0, f0
+0+070 <[^>]*> ee208180 ? absd f0, f0
+0+074 <[^>]*> ee2081a0 ? absdp f0, f0
+0+078 <[^>]*> ee2081c0 ? absdm f0, f0
+0+07c <[^>]*> ee2081e0 ? absdz f0, f0
+0+080 <[^>]*> ee288100 ? abse f0, f0
+0+084 <[^>]*> ee288120 ? absep f0, f0
+0+088 <[^>]*> ee288140 ? absem f0, f0
+0+08c <[^>]*> ee288160 ? absez f0, f0
+0+090 <[^>]*> ee308100 ? rnds f0, f0
+0+094 <[^>]*> ee308120 ? rndsp f0, f0
+0+098 <[^>]*> ee308140 ? rndsm f0, f0
+0+09c <[^>]*> ee308160 ? rndsz f0, f0
+0+0a0 <[^>]*> ee308180 ? rndd f0, f0
+0+0a4 <[^>]*> ee3081a0 ? rnddp f0, f0
+0+0a8 <[^>]*> ee3081c0 ? rnddm f0, f0
+0+0ac <[^>]*> ee3081e0 ? rnddz f0, f0
+0+0b0 <[^>]*> ee388100 ? rnde f0, f0
+0+0b4 <[^>]*> ee388120 ? rndep f0, f0
+0+0b8 <[^>]*> ee388140 ? rndem f0, f0
+0+0bc <[^>]*> ee388160 ? rndez f0, f0
+0+0c0 <[^>]*> ee408100 ? sqts f0, f0
+0+0c4 <[^>]*> ee408120 ? sqtsp f0, f0
+0+0c8 <[^>]*> ee408140 ? sqtsm f0, f0
+0+0cc <[^>]*> ee408160 ? sqtsz f0, f0
+0+0d0 <[^>]*> ee408180 ? sqtd f0, f0
+0+0d4 <[^>]*> ee4081a0 ? sqtdp f0, f0
+0+0d8 <[^>]*> ee4081c0 ? sqtdm f0, f0
+0+0dc <[^>]*> ee4081e0 ? sqtdz f0, f0
+0+0e0 <[^>]*> ee488100 ? sqte f0, f0
+0+0e4 <[^>]*> ee488120 ? sqtep f0, f0
+0+0e8 <[^>]*> ee488140 ? sqtem f0, f0
+0+0ec <[^>]*> ee488160 ? sqtez f0, f0
+0+0f0 <[^>]*> ee508100 ? logs f0, f0
+0+0f4 <[^>]*> ee508120 ? logsp f0, f0
+0+0f8 <[^>]*> ee508140 ? logsm f0, f0
+0+0fc <[^>]*> ee508160 ? logsz f0, f0
+0+100 <[^>]*> ee508180 ? logd f0, f0
+0+104 <[^>]*> ee5081a0 ? logdp f0, f0
+0+108 <[^>]*> ee5081c0 ? logdm f0, f0
+0+10c <[^>]*> ee5081e0 ? logdz f0, f0
+0+110 <[^>]*> ee588100 ? loge f0, f0
+0+114 <[^>]*> ee588120 ? logep f0, f0
+0+118 <[^>]*> ee588140 ? logem f0, f0
+0+11c <[^>]*> ee588160 ? logez f0, f0
+0+120 <[^>]*> ee608100 ? lgns f0, f0
+0+124 <[^>]*> ee608120 ? lgnsp f0, f0
+0+128 <[^>]*> ee608140 ? lgnsm f0, f0
+0+12c <[^>]*> ee608160 ? lgnsz f0, f0
+0+130 <[^>]*> ee608180 ? lgnd f0, f0
+0+134 <[^>]*> ee6081a0 ? lgndp f0, f0
+0+138 <[^>]*> ee6081c0 ? lgndm f0, f0
+0+13c <[^>]*> ee6081e0 ? lgndz f0, f0
+0+140 <[^>]*> ee688100 ? lgne f0, f0
+0+144 <[^>]*> ee688120 ? lgnep f0, f0
+0+148 <[^>]*> ee688140 ? lgnem f0, f0
+0+14c <[^>]*> ee688160 ? lgnez f0, f0
+0+150 <[^>]*> ee708100 ? exps f0, f0
+0+154 <[^>]*> ee708120 ? expsp f0, f0
+0+158 <[^>]*> ee708140 ? expsm f0, f0
+0+15c <[^>]*> ee708160 ? expsz f0, f0
+0+160 <[^>]*> ee708180 ? expd f0, f0
+0+164 <[^>]*> ee7081a0 ? expdp f0, f0
+0+168 <[^>]*> ee7081c0 ? expdm f0, f0
+0+16c <[^>]*> ee7081e0 ? expdz f0, f0
+0+170 <[^>]*> ee788100 ? expe f0, f0
+0+174 <[^>]*> ee788120 ? expep f0, f0
+0+178 <[^>]*> ee788140 ? expem f0, f0
+0+17c <[^>]*> ee7081e0 ? expdz f0, f0
+0+180 <[^>]*> ee808100 ? sins f0, f0
+0+184 <[^>]*> ee808120 ? sinsp f0, f0
+0+188 <[^>]*> ee808140 ? sinsm f0, f0
+0+18c <[^>]*> ee808160 ? sinsz f0, f0
+0+190 <[^>]*> ee808180 ? sind f0, f0
+0+194 <[^>]*> ee8081a0 ? sindp f0, f0
+0+198 <[^>]*> ee8081c0 ? sindm f0, f0
+0+19c <[^>]*> ee8081e0 ? sindz f0, f0
+0+1a0 <[^>]*> ee888100 ? sine f0, f0
+0+1a4 <[^>]*> ee888120 ? sinep f0, f0
+0+1a8 <[^>]*> ee888140 ? sinem f0, f0
+0+1ac <[^>]*> ee888160 ? sinez f0, f0
+0+1b0 <[^>]*> ee908100 ? coss f0, f0
+0+1b4 <[^>]*> ee908120 ? cossp f0, f0
+0+1b8 <[^>]*> ee908140 ? cossm f0, f0
+0+1bc <[^>]*> ee908160 ? cossz f0, f0
+0+1c0 <[^>]*> ee908180 ? cosd f0, f0
+0+1c4 <[^>]*> ee9081a0 ? cosdp f0, f0
+0+1c8 <[^>]*> ee9081c0 ? cosdm f0, f0
+0+1cc <[^>]*> ee9081e0 ? cosdz f0, f0
+0+1d0 <[^>]*> ee988100 ? cose f0, f0
+0+1d4 <[^>]*> ee988120 ? cosep f0, f0
+0+1d8 <[^>]*> ee988140 ? cosem f0, f0
+0+1dc <[^>]*> ee988160 ? cosez f0, f0
+0+1e0 <[^>]*> eea08100 ? tans f0, f0
+0+1e4 <[^>]*> eea08120 ? tansp f0, f0
+0+1e8 <[^>]*> eea08140 ? tansm f0, f0
+0+1ec <[^>]*> eea08160 ? tansz f0, f0
+0+1f0 <[^>]*> eea08180 ? tand f0, f0
+0+1f4 <[^>]*> eea081a0 ? tandp f0, f0
+0+1f8 <[^>]*> eea081c0 ? tandm f0, f0
+0+1fc <[^>]*> eea081e0 ? tandz f0, f0
+0+200 <[^>]*> eea88100 ? tane f0, f0
+0+204 <[^>]*> eea88120 ? tanep f0, f0
+0+208 <[^>]*> eea88140 ? tanem f0, f0
+0+20c <[^>]*> eea88160 ? tanez f0, f0
+0+210 <[^>]*> eeb08100 ? asns f0, f0
+0+214 <[^>]*> eeb08120 ? asnsp f0, f0
+0+218 <[^>]*> eeb08140 ? asnsm f0, f0
+0+21c <[^>]*> eeb08160 ? asnsz f0, f0
+0+220 <[^>]*> eeb08180 ? asnd f0, f0
+0+224 <[^>]*> eeb081a0 ? asndp f0, f0
+0+228 <[^>]*> eeb081c0 ? asndm f0, f0
+0+22c <[^>]*> eeb081e0 ? asndz f0, f0
+0+230 <[^>]*> eeb88100 ? asne f0, f0
+0+234 <[^>]*> eeb88120 ? asnep f0, f0
+0+238 <[^>]*> eeb88140 ? asnem f0, f0
+0+23c <[^>]*> eeb88160 ? asnez f0, f0
+0+240 <[^>]*> eec08100 ? acss f0, f0
+0+244 <[^>]*> eec08120 ? acssp f0, f0
+0+248 <[^>]*> eec08140 ? acssm f0, f0
+0+24c <[^>]*> eec08160 ? acssz f0, f0
+0+250 <[^>]*> eec08180 ? acsd f0, f0
+0+254 <[^>]*> eec081a0 ? acsdp f0, f0
+0+258 <[^>]*> eec081c0 ? acsdm f0, f0
+0+25c <[^>]*> eec081e0 ? acsdz f0, f0
+0+260 <[^>]*> eec88100 ? acse f0, f0
+0+264 <[^>]*> eec88120 ? acsep f0, f0
+0+268 <[^>]*> eec88140 ? acsem f0, f0
+0+26c <[^>]*> eec88160 ? acsez f0, f0
+0+270 <[^>]*> eed08100 ? atns f0, f0
+0+274 <[^>]*> eed08120 ? atnsp f0, f0
+0+278 <[^>]*> eed08140 ? atnsm f0, f0
+0+27c <[^>]*> eed08160 ? atnsz f0, f0
+0+280 <[^>]*> eed08180 ? atnd f0, f0
+0+284 <[^>]*> eed081a0 ? atndp f0, f0
+0+288 <[^>]*> eed081c0 ? atndm f0, f0
+0+28c <[^>]*> eed081e0 ? atndz f0, f0
+0+290 <[^>]*> eed88100 ? atne f0, f0
+0+294 <[^>]*> eed88120 ? atnep f0, f0
+0+298 <[^>]*> eed88140 ? atnem f0, f0
+0+29c <[^>]*> eed88160 ? atnez f0, f0
+0+2a0 <[^>]*> eee08100 ? urds f0, f0
+0+2a4 <[^>]*> eee08120 ? urdsp f0, f0
+0+2a8 <[^>]*> eee08140 ? urdsm f0, f0
+0+2ac <[^>]*> eee08160 ? urdsz f0, f0
+0+2b0 <[^>]*> eee08180 ? urdd f0, f0
+0+2b4 <[^>]*> eee081a0 ? urddp f0, f0
+0+2b8 <[^>]*> eee081c0 ? urddm f0, f0
+0+2bc <[^>]*> eee081e0 ? urddz f0, f0
+0+2c0 <[^>]*> eee88100 ? urde f0, f0
+0+2c4 <[^>]*> eee88120 ? urdep f0, f0
+0+2c8 <[^>]*> eee88140 ? urdem f0, f0
+0+2cc <[^>]*> eee88160 ? urdez f0, f0
+0+2d0 <[^>]*> eef08100 ? nrms f0, f0
+0+2d4 <[^>]*> eef08120 ? nrmsp f0, f0
+0+2d8 <[^>]*> eef08140 ? nrmsm f0, f0
+0+2dc <[^>]*> eef08160 ? nrmsz f0, f0
+0+2e0 <[^>]*> eef08180 ? nrmd f0, f0
+0+2e4 <[^>]*> eef081a0 ? nrmdp f0, f0
+0+2e8 <[^>]*> eef081c0 ? nrmdm f0, f0
+0+2ec <[^>]*> eef081e0 ? nrmdz f0, f0
+0+2f0 <[^>]*> eef88100 ? nrme f0, f0
+0+2f4 <[^>]*> eef88120 ? nrmep f0, f0
+0+2f8 <[^>]*> eef88140 ? nrmem f0, f0
+0+2fc <[^>]*> eef88160 ? nrmez f0, f0
--- /dev/null
+ .text
+ .globl F
+F:
+ mvfs f0, f0
+ mvfsp f0, f0
+ mvfsm f0, f0
+ mvfsz f0, f0
+ mvfd f0, f0
+ mvfdp f0, f0
+ mvfdm f0, f0
+ mvfdz f0, f0
+ mvfe f0, f0
+ mvfep f0, f0
+ mvfem f0, f0
+ mvfez f0, f0
+
+ mnfs f0, f0
+ mnfsp f0, f0
+ mnfsm f0, f0
+ mnfsz f0, f0
+ mnfd f0, f0
+ mnfdp f0, f0
+ mnfdm f0, f0
+ mnfdz f0, f0
+ mnfe f0, f0
+ mnfep f0, f0
+ mnfem f0, f0
+ mnfez f0, f0
+
+ abss f0, f0
+ abssp f0, f0
+ abssm f0, f0
+ abssz f0, f0
+ absd f0, f0
+ absdp f0, f0
+ absdm f0, f0
+ absdz f0, f0
+ abse f0, f0
+ absep f0, f0
+ absem f0, f0
+ absez f0, f0
+
+ rnds f0, f0
+ rndsp f0, f0
+ rndsm f0, f0
+ rndsz f0, f0
+ rndd f0, f0
+ rnddp f0, f0
+ rnddm f0, f0
+ rnddz f0, f0
+ rnde f0, f0
+ rndep f0, f0
+ rndem f0, f0
+ rndez f0, f0
+
+ sqts f0, f0
+ sqtsp f0, f0
+ sqtsm f0, f0
+ sqtsz f0, f0
+ sqtd f0, f0
+ sqtdp f0, f0
+ sqtdm f0, f0
+ sqtdz f0, f0
+ sqte f0, f0
+ sqtep f0, f0
+ sqtem f0, f0
+ sqtez f0, f0
+
+ logs f0, f0
+ logsp f0, f0
+ logsm f0, f0
+ logsz f0, f0
+ logd f0, f0
+ logdp f0, f0
+ logdm f0, f0
+ logdz f0, f0
+ loge f0, f0
+ logep f0, f0
+ logem f0, f0
+ logez f0, f0
+
+ lgns f0, f0
+ lgnsp f0, f0
+ lgnsm f0, f0
+ lgnsz f0, f0
+ lgnd f0, f0
+ lgndp f0, f0
+ lgndm f0, f0
+ lgndz f0, f0
+ lgne f0, f0
+ lgnep f0, f0
+ lgnem f0, f0
+ lgnez f0, f0
+
+ exps f0, f0
+ expsp f0, f0
+ expsm f0, f0
+ expsz f0, f0
+ expd f0, f0
+ expdp f0, f0
+ expdm f0, f0
+ expdz f0, f0
+ expe f0, f0
+ expep f0, f0
+ expem f0, f0
+ expdz f0, f0
+
+ sins f0, f0
+ sinsp f0, f0
+ sinsm f0, f0
+ sinsz f0, f0
+ sind f0, f0
+ sindp f0, f0
+ sindm f0, f0
+ sindz f0, f0
+ sine f0, f0
+ sinep f0, f0
+ sinem f0, f0
+ sinez f0, f0
+
+ coss f0, f0
+ cossp f0, f0
+ cossm f0, f0
+ cossz f0, f0
+ cosd f0, f0
+ cosdp f0, f0
+ cosdm f0, f0
+ cosdz f0, f0
+ cose f0, f0
+ cosep f0, f0
+ cosem f0, f0
+ cosez f0, f0
+
+ tans f0, f0
+ tansp f0, f0
+ tansm f0, f0
+ tansz f0, f0
+ tand f0, f0
+ tandp f0, f0
+ tandm f0, f0
+ tandz f0, f0
+ tane f0, f0
+ tanep f0, f0
+ tanem f0, f0
+ tanez f0, f0
+
+ asns f0, f0
+ asnsp f0, f0
+ asnsm f0, f0
+ asnsz f0, f0
+ asnd f0, f0
+ asndp f0, f0
+ asndm f0, f0
+ asndz f0, f0
+ asne f0, f0
+ asnep f0, f0
+ asnem f0, f0
+ asnez f0, f0
+
+ acss f0, f0
+ acssp f0, f0
+ acssm f0, f0
+ acssz f0, f0
+ acsd f0, f0
+ acsdp f0, f0
+ acsdm f0, f0
+ acsdz f0, f0
+ acse f0, f0
+ acsep f0, f0
+ acsem f0, f0
+ acsez f0, f0
+
+ atns f0, f0
+ atnsp f0, f0
+ atnsm f0, f0
+ atnsz f0, f0
+ atnd f0, f0
+ atndp f0, f0
+ atndm f0, f0
+ atndz f0, f0
+ atne f0, f0
+ atnep f0, f0
+ atnem f0, f0
+ atnez f0, f0
+
+ urds f0, f0
+ urdsp f0, f0
+ urdsm f0, f0
+ urdsz f0, f0
+ urdd f0, f0
+ urddp f0, f0
+ urddm f0, f0
+ urddz f0, f0
+ urde f0, f0
+ urdep f0, f0
+ urdem f0, f0
+ urdez f0, f0
+
+ nrms f0, f0
+ nrmsp f0, f0
+ nrmsm f0, f0
+ nrmsz f0, f0
+ nrmd f0, f0
+ nrmdp f0, f0
+ nrmdm f0, f0
+ nrmdz f0, f0
+ nrme f0, f0
+ nrmep f0, f0
+ nrmem f0, f0
+ nrmez f0, f0
-#objdump: -s
+#objdump: -s --section=.text
#as: -EL
#name: arm little-endian fpconst