summaryrefslogtreecommitdiffstats
path: root/binutils-2.17/gas/testsuite/gas/arm/thumb32.s
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.17/gas/testsuite/gas/arm/thumb32.s')
-rw-r--r--binutils-2.17/gas/testsuite/gas/arm/thumb32.s771
1 files changed, 0 insertions, 771 deletions
diff --git a/binutils-2.17/gas/testsuite/gas/arm/thumb32.s b/binutils-2.17/gas/testsuite/gas/arm/thumb32.s
deleted file mode 100644
index b75a0850..00000000
--- a/binutils-2.17/gas/testsuite/gas/arm/thumb32.s
+++ /dev/null
@@ -1,771 +0,0 @@
- .text
- .thumb
- .syntax unified
-
-encode_thumb32_immediate:
- orr r0, r1, #0x00000000
- orr r0, r1, #0x000000a5
- orr r0, r1, #0x00a500a5
- orr r0, r1, #0xa500a500
- orr r0, r1, #0xa5a5a5a5
-
- orr r0, r1, #0xa5 << 31
- orr r0, r1, #0xa5 << 30
- orr r0, r1, #0xa5 << 29
- orr r0, r1, #0xa5 << 28
- orr r0, r1, #0xa5 << 27
- orr r0, r1, #0xa5 << 26
- orr r0, r1, #0xa5 << 25
- orr r0, r1, #0xa5 << 24
- orr r0, r1, #0xa5 << 23
- orr r0, r1, #0xa5 << 22
- orr r0, r1, #0xa5 << 21
- orr r0, r1, #0xa5 << 20
- orr r0, r1, #0xa5 << 19
- orr r0, r1, #0xa5 << 18
- orr r0, r1, #0xa5 << 17
- orr r0, r1, #0xa5 << 16
- orr r0, r1, #0xa5 << 15
- orr r0, r1, #0xa5 << 14
- orr r0, r1, #0xa5 << 13
- orr r0, r1, #0xa5 << 12
- orr r0, r1, #0xa5 << 11
- orr r0, r1, #0xa5 << 10
- orr r0, r1, #0xa5 << 9
- orr r0, r1, #0xa5 << 8
- orr r0, r1, #0xa5 << 7
- orr r0, r1, #0xa5 << 6
- orr r0, r1, #0xa5 << 5
- orr r0, r1, #0xa5 << 4
- orr r0, r1, #0xa5 << 3
- orr r0, r1, #0xa5 << 2
- orr r0, r1, #0xa5 << 1
-
-add_sub:
- @ Should be format 1, Some have equivalent format 2 encodings
- adds r0, r0, #0
- adds r5, r0, #0
- adds r0, r5, #0
- adds r0, r2, #5
-
- adds r0, #129 @ format 2
- adds r0, r0, #129
- adds r5, #126
-
- adds r0, r0, r0 @ format 3
- adds r5, r0, r0
- adds r0, r5, r0
- adds r0, r0, r5
- adds r1, r2, r3
-
- add r8, r0 @ format 4
- add r0, r8
- add r0, r8, r0
- add r0, r0, r8
- add r8, r0, r0 @ ... not this one
-
- add r1, r0
- add r0, r1
-
- add r0, pc, #0 @ format 5
- add r5, pc, #0
- add r0, pc, #516
-
- add r0, sp, #0 @ format 6
- add r5, sp, #0
- add r0, sp, #516
-
- add sp, #0 @ format 7
- add sp, sp, #0
- add sp, #260
-
- add.w r0, r0, #0 @ T32 format 1
- adds.w r0, r0, #0
- add.w r9, r0, #0
- add.w r0, r9, #0
- add.w r0, r0, #129
- adds r5, r3, #0x10000
- add r0, sp, #1
- add r9, sp, #0
- add.w sp, sp, #4
-
- add.w r0, r0, r0 @ T32 format 2
- adds.w r0, r0, r0
- add.w r9, r0, r0
- add.w r0, r9, r0
- add.w r0, r0, r9
-
- add.w r8, r9, r10
- add.w r8, r9, r10, lsl #17
- add.w r8, r8, r10, lsr #32
- add.w r8, r8, r10, lsr #17
- add.w r8, r9, r10, asr #32
- add.w r8, r9, r10, asr #17
- add.w r8, r9, r10, rrx
- add.w r8, r9, r10, ror #17
-
- subs r0, r0, #0 @ format 1
- subs r5, r0, #0
- subs r0, r5, #0
- subs r0, r2, #5
-
- subs r0, r0, #129
- subs r5, #8
-
- subs r0, r0, r0 @ format 3
- subs r5, r0, r0
- subs r0, r5, r0
- subs r0, r0, r5
-
- sub sp, #260 @ format 4
- sub sp, sp, #260
-
- subs r8, r0 @ T32 format 2
- subs r0, r8
- subs r0, #260 @ T32 format 1
- subs.w r1, r2, #4
- subs r5, r3, #0x10000
- sub r1, sp, #4
- sub r9, sp, #0
- sub.w sp, sp, #4
-
-arit3:
- .macro arit3 op ops opw opsw
- \ops r0, r0
- \ops r5, r0
- \ops r0, r5
- \ops r0, r0, r5
- \ops r0, r5, r0
- \op r0, r5, r0
- \op r0, r1, r2
- \op r9, r0, r0
- \op r0, r9, r0
- \op r0, r0, r9
- \opsw r0, r0, r0
- \opw r0, r1, r2, asr #17
- \opw r0, r1, #129
- .endm
-
- arit3 adc adcs adc.w adcs.w
- arit3 and ands and.w ands.w
- arit3 bic bics bic.w bics.w
- arit3 eor eors eor.w eors.w
- arit3 orr orrs orr.w orrs.w
- arit3 rsb rsbs rsb.w rsbs.w
- arit3 sbc sbcs sbc.w sbcs.w
-
- .purgem arit3
-
-bfc_bfi_bfx:
- bfc r0, #0, #1
- bfc r9, #0, #1
- bfi r9, #0, #0, #1
- bfc r0, #21, #1
- bfc r0, #0, #18
-
- bfi r0, r0, #0, #1
- bfi r9, r0, #0, #1
- bfi r0, r9, #0, #1
- bfi r0, r0, #21, #1
- bfi r0, r0, #0, #18
-
- sbfx r0, r0, #0, #1
- ubfx r9, r0, #0, #1
- sbfx r0, r9, #0, #1
- ubfx r0, r0, #21, #1
- sbfx r0, r0, #0, #18
-
- .globl branches
-branches:
- .macro bra op
- \op 1b
- \op 1f
- .endm
-1:
- bra beq.n
- bra bne.n
- bra bcs.n
- bra bhs.n
- bra bcc.n
- bra bul.n
- bra blo.n
- bra bmi.n
- bra bpl.n
- bra bvs.n
- bra bvc.n
- bra bhi.n
- bra bls.n
- bra bvc.n
- bra bhi.n
- bra bls.n
- bra bge.n
- bra blt.n
- bra bgt.n
- bra ble.n
- bra bal.n
- bra b.n
- @ bl, blx have no short form.
- .balign 4
-1:
- bra beq.w
- bra bne.w
- bra bcs.w
- bra bhs.w
- bra bcc.w
- bra bul.w
- bra blo.w
- bra bmi.w
- bra bpl.w
- bra bvs.w
- bra bvc.w
- bra bhi.w
- bra bls.w
- bra bvc.w
- bra bhi.w
- bra bls.w
- bra bge.w
- bra blt.w
- bra bgt.w
- bra ble.w
- bra b.w
- bra bl
- bra blx
- .balign 4
-1:
- bx r9
- blx r0
- blx r9
- bxj r0
- bxj r9
- .purgem bra
-
-clz:
- clz r0, r0
- clz r9, r0
- clz r0, r9
-
-cps:
- cpsie f
- cpsid i
- cpsie a
- cpsid.w f
- cpsie.w i
- cpsid.w a
- cpsie i, #0
- cpsid i, #17
- cps #0
- cps #17
-
-cpy:
- cpy r0, r0
- cpy r9, r0
- cpy r0, r9
- cpy.w r0, r0
- cpy.w r9, r0
- cpy.w r0, r9
-
-czb:
- cbnz r0, 2f
- cbz r5, 1f
-
-nop_hint:
- nop
-1: yield
-2: wfe
- wfi
- sev
-
- nop.w
- yield.w
- wfe.w
- wfi.w
- sev.w
-
- nop {9}
- nop {129}
-
-it:
- .macro nop1 cond ncond a
- .ifc \a,t
- nop\cond
- .else
- nop\ncond
- .endif
- .endm
- .macro it0 cond m=
- it\m \cond
- nop\cond
- .endm
- .macro it1 cond ncond a m=
- it0 \cond \a\m
- nop1 \cond \ncond \a
- .endm
- .macro it2 cond ncond a b m=
- it1 \cond \ncond \a \b\m
- nop1 \cond \ncond \b
- .endm
- .macro it3 cond ncond a b c
- it2 \cond \ncond \a \b \c
- nop1 \cond \ncond \c
- .endm
-
- it0 eq
- it0 ne
- it0 cs
- it0 hs
- it0 cc
- it0 ul
- it0 lo
- it0 mi
- it0 pl
- it0 vs
- it0 vc
- it0 hi
- it0 ge
- it0 lt
- it0 gt
- it0 le
- it0 al
- it1 eq ne t
- it1 eq ne e
- it2 eq ne t t
- it2 eq ne e t
- it2 eq ne t e
- it2 eq ne e e
- it3 eq ne t t t
- it3 eq ne e t t
- it3 eq ne t e t
- it3 eq ne t t e
- it3 eq ne t e e
- it3 eq ne e t e
- it3 eq ne e e t
- it3 eq ne e e e
-
- it1 ne eq t
- it1 ne eq e
- it2 ne eq t t
- it2 ne eq e t
- it2 ne eq t e
- it2 ne eq e e
- it3 ne eq t t t
- it3 ne eq e t t
- it3 ne eq t e t
- it3 ne eq t t e
- it3 ne eq t e e
- it3 ne eq e t e
- it3 ne eq e e t
- it3 ne eq e e e
-
-ldst:
-1:
- pld [r5]
- pld [r5, #0x330]
- pld [r5, #-0x30]
- pld [r5], #0x30
- pld [r5], #-0x30
- pld [r5, #0x30]!
- pld [r5, #-0x30]!
- pld [r5, r4]
- pld [r9, ip]
- pld 1f
- pld 1b
-1:
-
- ldrd r2, r3, [r5]
- ldrd r2, [r5, #0x30]
- ldrd r2, [r5, #-0x30]
- strd r2, r3, [r5]
- strd r2, [r5, #0x30]
- strd r2, [r5, #-0x30]
-
- ldrbt r1, [r5]
- ldrbt r1, [r5, #0x30]
- ldrsbt r1, [r5]
- ldrsbt r1, [r5, #0x30]
- ldrht r1, [r5]
- ldrht r1, [r5, #0x30]
- ldrsht r1, [r5]
- ldrsht r1, [r5, #0x30]
- ldrt r1, [r5]
- ldrt r1, [r5, #0x30]
-
-ldxstx:
- ldrexb r1, [r4]
- ldrexh r1, [r4]
- ldrex r1, [r4]
- ldrexd r1, r2, [r4]
-
- strexb r1, r2, [r4]
- strexh r1, r2, [r4]
- strex r1, r2, [r4]
- strexd r1, r2, r3, [r4]
-
- ldrex r1, [r4,#516]
- strex r1, r2, [r4,#516]
-
-ldmstm:
- ldmia r0!, {r1,r2,r3}
- ldmia r2, {r0,r1,r2}
- ldmia.w r2, {r0,r1,r2}
- ldmia r9, {r0,r1,r2}
- ldmia r0, {r7,r8,r10}
- ldmia r0!, {r7,r8,r10}
-
- stmia r0!, {r1,r2,r3}
- stmia r2!, {r0,r1,r3}
- stmia.w r2!, {r0,r1,r3}
- stmia r9, {r0,r1,r2}
- stmia r0, {r7,r8,r10}
- stmia r0!, {r7,r8,r10}
-
- ldmdb r0, {r7,r8,r10}
- stmdb r0, {r7,r8,r10}
-
-mlas:
- mla r0, r0, r0, r0
- mls r0, r0, r0, r0
- mla r9, r0, r0, r0
- mla r0, r9, r0, r0
- mla r0, r0, r9, r0
- mla r0, r0, r0, r9
-
-tst_teq_cmp_cmn_mov_mvn:
- .macro mt op ops opw opsw
- \ops r0, r0
- \op r0, r0
- \ops r5, r0
- \op r0, r5
- \op r0, r5, asr #17
- \opw r0, r0
- \ops r9, r0
- \opsw r0, r9
- \opw r0, #129
- \opw r5, #129
- .endm
-
- mt tst tsts tst.w tsts.w
- mt teq teqs teq.w teqs.w
- mt cmp cmps cmp.w cmps.w
- mt cmn cmns cmn.w cmns.w
- mt mov movs mov.w movs.w
- mt mvn mvns mvn.w mvns.w
- .purgem mt
-
-mov16:
- movw r0, #0
- movt r0, #0
- movw r9, #0
- movw r0, #0x9000
- movw r0, #0x0800
- movw r0, #0x0500
- movw r0, #0x0081
- movw r0, #0xffff
-
-mrs_msr:
- mrs r0, CPSR
- mrs r0, SPSR
- mrs r9, CPSR_all
- mrs r9, SPSR_all
-
- msr CPSR_c, r0
- msr SPSR_c, r0
- msr CPSR_c, r9
- msr CPSR_x, r0
- msr CPSR_s, r0
- msr CPSR_f, r0
-
-mul:
- mul r0, r0, r0
- mul r0, r9, r0
- mul r0, r0, r9
- mul r0, r0
- mul r9, r0
- muls r5, r0
- muls r5, r0, r5
- muls r0, r5
-
-mull:
- smull r0, r1, r0, r0
- umull r0, r1, r0, r0
- smlal r0, r1, r0, r0
- umlal r0, r1, r0, r0
- smull r9, r0, r0, r0
- smull r0, r9, r0, r0
- smull r0, r1, r9, r0
- smull r0, r1, r0, r9
-
-neg:
- negs r0, r0
- negs r0, r5
- negs r5, r0
- negs.w r0, r0
- negs.w r5, r0
- negs.w r0, r5
-
- neg r0, r9
- neg r9, r0
- negs r0, r9
- negs r9, r0
-
-pkh:
- pkhbt r0, r0, r0
- pkhbt r9, r0, r0
- pkhbt r0, r9, r0
- pkhbt r0, r0, r9
- pkhbt r0, r0, r0, lsl #0x14
- pkhbt r0, r0, r0, lsl #3
- pkhtb r1, r2, r3
- pkhtb r1, r2, r3, asr #0x11
-
-push_pop:
- push {r0}
- pop {r0}
- push {r1,lr}
- pop {r1,pc}
- push {r8,r9,r10,r11,r12}
- pop {r8,r9,r10,r11,r12}
-
-qadd:
- qadd16 r1, r2, r3
- qadd8 r1, r2, r3
- qaddsubx r1, r2, r3
- qsub16 r1, r2, r3
- qsub8 r1, r2, r3
- qsubaddx r1, r2, r3
- sadd16 r1, r2, r3
- sadd8 r1, r2, r3
- saddsubx r1, r2, r3
- ssub16 r1, r2, r3
- ssub8 r1, r2, r3
- ssubaddx r1, r2, r3
- shadd16 r1, r2, r3
- shadd8 r1, r2, r3
- shaddsubx r1, r2, r3
- shsub16 r1, r2, r3
- shsub8 r1, r2, r3
- shsubaddx r1, r2, r3
- uadd16 r1, r2, r3
- uadd8 r1, r2, r3
- uaddsubx r1, r2, r3
- usub16 r1, r2, r3
- usub8 r1, r2, r3
- usubaddx r1, r2, r3
- uhadd16 r1, r2, r3
- uhadd8 r1, r2, r3
- uhaddsubx r1, r2, r3
- uhsub16 r1, r2, r3
- uhsub8 r1, r2, r3
- uhsubaddx r1, r2, r3
- uqadd16 r1, r2, r3
- uqadd8 r1, r2, r3
- uqaddsubx r1, r2, r3
- uqsub16 r1, r2, r3
- uqsub8 r1, r2, r3
- uqsubaddx r1, r2, r3
- sel r1, r2, r3
-
-rbit_rev:
- .macro rx op opw
- \op r0, r0
- \opw r0, r0
- \op r0, r5
- \op r5, r0
- \op r0, r9
- \op r9, r0
- .endm
-
- rx rev rev.w
- rx rev16 rev16.w
- rx revsh revsh.w
- rx rbit rbit.w
-
- .purgem rx
-
-shift:
- .macro sh op ops opw opsw
- \ops r0, #17 @ 16-bit format 1
- \ops r0, r0, #14
- \ops r5, r0, #17
- \ops r0, r5, #14
- \ops r0, r0 @ 16-bit format 2
- \ops r0, r5
- \ops r0, r0, r5
- \op r9, #17 @ 32-bit format 1
- \op r9, r9, #14
- \ops r0, r9, #17
- \op r9, r0, #14
- \opw r0, r0, r0 @ 32-bit format 2
- \op r9, r9
- \ops r9, r0
- \op r0, r9
- \op r0, r5
- \ops r0, r1, r2
- .endm
-
- sh lsl lsls lsl.w lsls.w
- sh lsr lsrs lsr.w lsrs.w
- sh asr asrs asr.w asrs.w
- sh ror rors ror.w rors.w
-
- .purgem sh
-
-smc:
- smc #0
- smc #0xabcd
-
-smla:
- smlabb r0, r0, r0, r0
- smlabb r9, r0, r0, r0
- smlabb r0, r9, r0, r0
- smlabb r0, r0, r9, r0
- smlabb r0, r0, r0, r9
-
- smlatb r0, r0, r0, r0
- smlabt r0, r0, r0, r0
- smlatt r0, r0, r0, r0
- smlawb r0, r0, r0, r0
- smlawt r0, r0, r0, r0
- smlad r0, r0, r0, r0
- smladx r0, r0, r0, r0
- smlsd r0, r0, r0, r0
- smlsdx r0, r0, r0, r0
- smmla r0, r0, r0, r0
- smmlar r0, r0, r0, r0
- smmls r0, r0, r0, r0
- smmlsr r0, r0, r0, r0
- usada8 r0, r0, r0, r0
-
-smlal:
- smlalbb r0, r0, r0, r0
- smlalbb r9, r0, r0, r0
- smlalbb r0, r9, r0, r0
- smlalbb r0, r0, r9, r0
- smlalbb r0, r0, r0, r9
-
- smlaltb r0, r0, r0, r0
- smlalbt r0, r0, r0, r0
- smlaltt r0, r0, r0, r0
- smlald r0, r0, r0, r0
- smlaldx r0, r0, r0, r0
- smlsld r0, r0, r0, r0
- smlsldx r0, r0, r0, r0
- umaal r0, r0, r0, r0
-
-smul:
- smulbb r0, r0, r0
- smulbb r9, r0, r0
- smulbb r0, r9, r0
- smulbb r0, r0, r9
-
- smultb r0, r0, r0
- smulbt r0, r0, r0
- smultt r0, r0, r0
- smulwb r0, r0, r0
- smulwt r0, r0, r0
- smmul r0, r0, r0
- smmulr r0, r0, r0
- smuad r0, r0, r0
- smuadx r0, r0, r0
- smusd r0, r0, r0
- smusdx r0, r0, r0
- usad8 r0, r0, r0
-
-sat:
- ssat r0, #1, r0
- ssat r0, #1, r0, lsl #0
- ssat r0, #1, r0, asr #0
- ssat r9, #1, r0
- ssat r0, #18, r0
- ssat r0, #1, r9
- ssat r0, #1, r0, lsl #0x1c
- ssat r0, #1, r0, asr #0x03
-
- ssat16 r0, #1, r0
- ssat16 r9, #1, r0
- ssat16 r0, #10, r0
- ssat16 r0, #1, r9
-
- usat r0, #0, r0
- usat r0, #0, r0, lsl #0
- usat r0, #0, r0, asr #0
- usat r9, #0, r0
- usat r0, #17, r0
- usat r0, #0, r9
- usat r0, #0, r0, lsl #0x1c
- usat r0, #0, r0, asr #0x03
-
- usat16 r0, #0, r0
- usat16 r9, #0, r0
- usat16 r0, #9, r0
- usat16 r0, #0, r9
-
-xt:
- sxtb r0, r0
- sxtb r0, r0, ror #0
- sxtb r5, r0
- sxtb r0, r5
- sxtb.w r1, r2
- sxtb r1, r2, ror #8
- sxtb r1, r2, ror #16
- sxtb r1, r2, ror #24
-
- sxtb16 r1, r2
- sxtb16 r8, r9
- sxth r1, r2
- sxth r8, r9
- uxtb r1, r2
- uxtb r8, r9
- uxtb16 r1, r2
- uxtb16 r8, r9
- uxth r1, r2
- uxth r8, r9
-
-xta:
- sxtab r0, r0, r0
- sxtab r0, r0, r0, ror #0
- sxtab r9, r0, r0, ror #8
- sxtab r0, r9, r0, ror #16
- sxtab r0, r0, r9, ror #24
-
- sxtab16 r1, r2, r3
- sxtah r1, r2, r3
- uxtab r1, r2, r3
- uxtab16 r1, r2, r3
- uxtah r1, r2, r3
-
- .macro ldpcimm op
- \op r1, [pc, #0x2aa]
- \op r1, [pc, #0x155]
- \op r1, [pc, #-0x2aa]
- \op r1, [pc, #-0x155]
- .endm
- ldpcimm ldrb
- ldpcimm ldrsb
- ldpcimm ldrh
- ldpcimm ldrsh
- ldpcimm ldr
- addw r9, r0, #0
- addw r6, pc, #0xfff
- subw r6, r9, #0xa85
- subw r6, r9, #0x57a
- tbb [pc, r6]
- tbb [r0, r9]
- tbh [pc, r7, lsl #1]
- tbh [r0, r8, lsl #1]
-
- push {r8}
- pop {r8}
-
- ldmdb r0!, {r7,r8,r10}
- stmdb r0!, {r7,r8,r10}
-
- ldm r0!, {r1, r2}
- stm r0!, {r1, r2}
- ldm r0, {r8, r9}
- stm r0, {r8, r9}
- itttt eq
- ldmeq r0!, {r1, r2}
- stmeq r0!, {r1, r2}
- ldmeq r0, {r8, r9}
- stmeq r0, {r8, r9}
- nop