movseq r1, #12
moveq r1, #12
movne.w r1, #12
+ mov.w r6, #450
@ CHECK: movs r1, #21 @ encoding: [0x15,0x21]
@ CHECK: movs.w r1, #21 @ encoding: [0x5f,0xf0,0x15,0x01]
@ CHECK: movseq.w r1, #12 @ encoding: [0x5f,0xf0,0x0c,0x01]
@ CHECK: moveq r1, #12 @ encoding: [0x0c,0x21]
@ CHECK: movne.w r1, #12 @ encoding: [0x4f,0xf0,0x0c,0x01]
+@ CHECK: mov.w r6, #450 @ encoding: [0x4f,0xf4,0xe1,0x76]
@------------------------------------------------------------------------------
@ CHECK: it eq @ encoding: [0x08,0xbf]
@ CHECK: muleq r3, r4, r5 @ encoding: [0x04,0xfb,0x05,0xf3]
+
+@------------------------------------------------------------------------------
+@ MVN(immediate)
+@------------------------------------------------------------------------------
+ mvns r8, #21
+ mvn r0, #0x3fc0000
+ mvns r0, #0x3fc0000
+ itte eq
+ mvnseq r1, #12
+ mvneq r1, #12
+ mvnne r1, #12
+
+@ CHECK: mvns r8, #21 @ encoding: [0x7f,0xf0,0x15,0x08]
+@ CHECK: mvn r0, #66846720 @ encoding: [0x6f,0xf0,0x7f,0x70]
+@ CHECK: mvns r0, #66846720 @ encoding: [0x7f,0xf0,0x7f,0x70]
+@ CHECK: itte eq @ encoding: [0x06,0xbf]
+@ CHECK: mvnseq r1, #12 @ encoding: [0x7f,0xf0,0x0c,0x01]
+@ CHECK: mvneq r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01]
+@ CHECK: mvnne r1, #12 @ encoding: [0x6f,0xf0,0x0c,0x01]
+
+
+@------------------------------------------------------------------------------
+@ MVN(register)
+@------------------------------------------------------------------------------
+ mvn r2, r3
+ mvns r2, r3
+ mvn r5, r6, lsl #19
+ mvn r5, r6, lsr #9
+ mvn r5, r6, asr #4
+ mvn r5, r6, ror #6
+ mvn r5, r6, rrx
+ it eq
+ mvneq r2, r3
+
+@ CHECK: mvn.w r2, r3 @ encoding: [0x6f,0xea,0x03,0x02]
+@ CHECK: mvns r2, r3 @ encoding: [0xda,0x43]
+@ CHECK: mvn.w r5, r6, lsl #19 @ encoding: [0x6f,0xea,0xc6,0x45]
+@ CHECK: mvn.w r5, r6, lsr #9 @ encoding: [0x6f,0xea,0x56,0x25]
+@ CHECK: mvn.w r5, r6, asr #4 @ encoding: [0x6f,0xea,0x26,0x15]
+@ CHECK: mvn.w r5, r6, ror #6 @ encoding: [0x6f,0xea,0xb6,0x15]
+@ CHECK: mvn.w r5, r6, rrx @ encoding: [0x6f,0xea,0x36,0x05]
+@ CHECK: it eq @ encoding: [0x08,0xbf]
+@ CHECK: mvneq r2, r3 @ encoding: [0xda,0x43]
+
+@------------------------------------------------------------------------------
+@ NOP
+@------------------------------------------------------------------------------
+ nop.w
+
+@ CHECK: nop.w @ encoding: [0xaf,0xf3,0x00,0x80]
+
+
+@------------------------------------------------------------------------------
+@ ORN
+@------------------------------------------------------------------------------
+ orn r4, r5, #0xf000
+ orn r4, r5, r6
+ orns r4, r5, r6
+ orn r4, r5, r6, lsl #5
+ orns r4, r5, r6, lsr #5
+ orn r4, r5, r6, lsr #5
+ orns r4, r5, r6, asr #5
+ orn r4, r5, r6, ror #5
+
+@ CHECK: orn r4, r5, #61440 @ encoding: [0x65,0xf4,0x70,0x44]
+@ CHECK: orn r4, r5, r6 @ encoding: [0x65,0xea,0x06,0x04]
+@ CHECK: orns r4, r5, r6 @ encoding: [0x75,0xea,0x06,0x04]
+@ CHECK: orn r4, r5, r6, lsl #5 @ encoding: [0x65,0xea,0x46,0x14]
+@ CHECK: orns r4, r5, r6, lsr #5 @ encoding: [0x75,0xea,0x56,0x14]
+@ CHECK: orn r4, r5, r6, lsr #5 @ encoding: [0x65,0xea,0x56,0x14]
+@ CHECK: orns r4, r5, r6, asr #5 @ encoding: [0x75,0xea,0x66,0x14]
+@ CHECK: orn r4, r5, r6, ror #5 @ encoding: [0x65,0xea,0x76,0x14]
+
+
+@------------------------------------------------------------------------------
+@ ORR
+@------------------------------------------------------------------------------
+ orr r4, r5, #0xf000
+ orr r4, r5, r6
+ orr r4, r5, r6, lsl #5
+ orrs r4, r5, r6, lsr #5
+ orr r4, r5, r6, lsr #5
+ orrs r4, r5, r6, asr #5
+ orr r4, r5, r6, ror #5
+
+@ CHECK: orr r4, r5, #61440 @ encoding: [0x45,0xf4,0x70,0x44]
+@ CHECK: orr.w r4, r5, r6 @ encoding: [0x45,0xea,0x06,0x04]
+@ CHECK: orr.w r4, r5, r6, lsl #5 @ encoding: [0x45,0xea,0x46,0x14]
+@ CHECK: orrs.w r4, r5, r6, lsr #5 @ encoding: [0x55,0xea,0x56,0x14]
+@ CHECK: orr.w r4, r5, r6, lsr #5 @ encoding: [0x45,0xea,0x56,0x14]
+@ CHECK: orrs.w r4, r5, r6, asr #5 @ encoding: [0x55,0xea,0x66,0x14]
+@ CHECK: orr.w r4, r5, r6, ror #5 @ encoding: [0x45,0xea,0x76,0x14]
+
+
+@------------------------------------------------------------------------------
+@ PKH
+@------------------------------------------------------------------------------
+ pkhbt r2, r2, r3
+ pkhbt r2, r2, r3, lsl #31
+ pkhbt r2, r2, r3, lsl #0
+ pkhbt r2, r2, r3, lsl #15
+
+ pkhtb r2, r2, r3
+ pkhtb r2, r2, r3, asr #31
+ pkhtb r2, r2, r3, asr #15
+
+@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
+@ CHECK: pkhbt r2, r2, r3, lsl #31 @ encoding: [0xc2,0xea,0xc3,0x72]
+@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
+@ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0xc2,0xea,0xc3,0x32]
+
+@ CHECK: pkhbt r2, r2, r3 @ encoding: [0xc2,0xea,0x03,0x02]
+@ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xc2,0xea,0xe3,0x72]
+@ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xc2,0xea,0xe3,0x32]
+
+
+@------------------------------------------------------------------------------
+@ PLD(immediate)
+@------------------------------------------------------------------------------
+ pld [r5, #-4]
+ pld [r6, #32]
+ pld [r6, #33]
+ pld [r6, #257]
+ pld [r7, #257]
+
+@ CHECK: pld [r5, #-4] @ encoding: [0x15,0xf8,0x04,0xfc]
+@ CHECK: pld [r6, #32] @ encoding: [0x96,0xf8,0x20,0xf0]
+@ CHECK: pld [r6, #33] @ encoding: [0x96,0xf8,0x21,0xf0]
+@ CHECK: pld [r6, #257] @ encoding: [0x96,0xf8,0x01,0xf1]
+@ CHECK: pld [r7, #257] @ encoding: [0x97,0xf8,0x01,0xf1]
+
+
+@------------------------------------------------------------------------------
+@ PLD(literal)
+@------------------------------------------------------------------------------
+ pld _foo
+
+@ CHECK: pld _foo @ encoding: [0x9f'A',0xf8'A',A,0xf0'A']
+ @ fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
+
+
+@------------------------------------------------------------------------------
+@ PLD(register)
+@------------------------------------------------------------------------------
+ pld [r8, r1]
+ pld [r5, r2]
+ pld [r0, r2, lsl #3]
+ pld [r8, r2, lsl #2]
+ pld [sp, r2, lsl #1]
+ pld [sp, r2, lsl #0]
+
+@ CHECK: pld [r8, r1] @ encoding: [0x18,0xf8,0x01,0xf0]
+@ CHECK: pld [r5, r2] @ encoding: [0x15,0xf8,0x02,0xf0]
+@ CHECK: pld [r0, r2, lsl #3] @ encoding: [0x10,0xf8,0x32,0xf0]
+@ CHECK: pld [r8, r2, lsl #2] @ encoding: [0x18,0xf8,0x22,0xf0]
+@ CHECK: pld [sp, r2, lsl #1] @ encoding: [0x1d,0xf8,0x12,0xf0]
+@ CHECK: pld [sp, r2] @ encoding: [0x1d,0xf8,0x02,0xf0]
+
@------------------------------------------------------------------------------
@ IT
@------------------------------------------------------------------------------