1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
.syntax unified
.cpu cortex-m4
.fpu fpv4-sp-d16
.text
.align 1
.thumb
.thumb_func
.global _start
_start:
@ Create a situation where a multiple-load that should be
@ patched belongs to an IT block in the position where it can
@ be, that is the last position in the IT block.
@ Mostly to cover the IT detection logic.
@ Tests correspond to LDM CASE #1.
it eq
ldmeq.w r9, {r1-r9}
itt eq
nop.w
ldmeq.w r9, {r1-r9}
ite eq
nop.w
ldmne.w r9, {r1-r9}
ittt eq
nop.w
nop.w
ldmeq.w r9, {r1-r9}
itet eq
nop.w
nop.w
ldmeq.w r9, {r1-r9}
itte eq
nop.w
nop.w
ldmne.w r9, {r1-r9}
itee eq
nop.w
nop.w
ldmne.w r9, {r1-r9}
itttt eq
nop.w
nop.w
nop.w
ldmeq.w r9, {r1-r9}
ittte eq
nop.w
nop.w
nop.w
ldmne.w r9, {r1-r9}
ittet eq
nop.w
nop.w
nop.w
ldmeq.w r9, {r1-r9}
ittee eq
nop.w
nop.w
nop.w
ldmne.w r9, {r1-r9}
itett eq
nop.w
nop.w
nop.w
ldmeq.w r9, {r1-r9}
itete eq
nop.w
nop.w
nop.w
ldmne.w r9, {r1-r9}
iteet eq
nop.w
nop.w
nop.w
ldmeq.w r9, {r1-r9}
iteee eq
nop.w
nop.w
nop.w
ldmne.w r9, {r1-r9}
|