1.syntax unified 2 3@ Loads, ARM ================================================================ 4.arm 5 6@ LDR (immediate, ARM) 7@ LDR (literal) 8@No unpredictable or undefined combinations. 9 10@ LDR (register) 11ldr r0,[r1,pc, LSL #2] @ Unpredictable 12ldr r0,[r1,pc, LSL #2]! @ ditto 13ldr r0,[r1],pc, LSL #2 @ ditto 14ldr r0,[pc,r1, LSL #2]! @ ditto 15ldr r0,[pc],r1, LSL #2 @ ditto 16 17@ LDRB (immediate, ARM) 18ldrb pc,[r0,#4] @ Unpredictable 19ldrb pc,[r0],#4 @ ditto 20ldrb pc,[r0,#4]! @ ditto 21 22@ LDRB (literal) 23ldrb pc, label @ Unpredictable 24ldrb pc,[pc,#-0] @ ditto 25 26@ LDRB (register) 27ldrb pc,[r0,r1, LSL #2] @ Unpredictable 28ldrb pc,[r0,r1, LSL #2]! @ ditto 29ldrb pc,[r0],r1, LSL #2 @ ditto 30ldrb r0,[r1,pc, LSL #2] @ ditto 31ldrb r0,[r1,pc, LSL #2]! @ ditto 32ldrb r0,[r1],pc, LSL #2 @ ditto 33ldrb r0,[pc,r1, LSL #2]! @ ditto 34ldrb r0,[pc],r1, LSL #2 @ ditto 35 36@ LDRBT 37ldrbt pc,[r0],#4 @ Unpredictable 38ldrbt r0,[pc],#4 @ ditto 39ldrbt pc,[r0],r1, LSL #4 @ ditto 40ldrbt r0,[pc],r1, LSL #4 @ ditto 41ldrbt r0,[r1],pc, LSL #4 @ ditto 42 43@ LDRD (immediate) 44ldrd r0,pc,[r1,#4] @ Unpredictable 45ldrd r0,pc,[r1],#4 @ ditto 46ldrd r0,pc,[r1,#4]! @ ditto 47 48@ LDRD (literal) 49ldrd r0,pc, label @ Unpredictable 50ldrd r0,pc,[PC,#-0] @ ditto 51 52@ LDRD (register) 53ldrd r0,pc,[r1,r2] @ Unpredictable 54ldrd r0,pc,[r1,r2]! @ ditto 55ldrd r0,pc,[r1],r2 @ ditto 56ldrd r0,r1,[r2,pc] @ ditto 57ldrd r0,r1,[r2,pc]! @ ditto 58ldrd r0,r1,[r2],pc @ ditto 59ldrd r0,r1,[pc,r2]! @ ditto 60ldrd r0,r1,[pc],r2 @ ditto 61 62@ LDREX 63ldrex pc,[r0] @ Unpredictable 64ldrex r0,[pc] @ ditto 65 66@ LDREXB 67ldrexb pc,[r0] @ Unpredictable 68ldrexb r0,[pc] @ ditto 69 70@ LDREXD 71ldrexd r0,r1,[pc] @ Unpredictable 72 73@ LDREXH 74ldrexh pc,[r0] @ Unpredictable 75ldrexh r0,[pc] @ ditto 76 77@ LDRH (immediate, ARM) 78ldrh pc,[r0,#4] @ Unpredictable 79ldrh pc,[r0],#4 @ ditto 80ldrh pc,[r0,#4]! @ ditto 81 82@ LDRH (literal) 83ldrh pc, label @ Unpredictable 84ldrh pc,[pc,#-0] @ ditto 85 86@ LDRH (register) 87ldrh pc,[r0,r1] @ Unpredictable 88ldrh pc,[r0,r1]! @ ditto 89ldrh pc,[r0],r1 @ ditto 90ldrh r0,[r1,pc] @ ditto 91ldrh r0,[r1,pc]! @ ditto 92ldrh r0,[r1],pc @ ditto 93ldrh r0,[pc,r1]! @ ditto 94ldrh r0,[pc],r1 @ ditto 95 96@ LDRHT 97ldrht pc, [r0], #4 @ Unpredictable 98ldrht r0, [pc], #4 @ ditto 99ldrht pc, [r0], r1 @ ditto 100ldrht r0, [pc], r1 @ ditto 101ldrht r0, [r1], pc @ ditto 102 103@ LDRSB (immediate) 104ldrsb pc,[r0,#4] @ Unpredictable 105ldrsb pc,[r0],#4 @ ditto 106ldrsb pc,[r0,#4]! @ ditto 107 108@ LDRSB (literal) 109ldrsb pc, label @ Unpredictable 110ldrsb pc,[pc,#-0] @ ditto 111 112@ LDRSB (register) 113ldrsb pc,[r0,r1] @ Unpredictable 114ldrsb pc,[r0,r1]! @ ditto 115ldrsb pc,[r0],r1 @ ditto 116ldrsb r0,[r1,pc] @ ditto 117ldrsb r0,[r1,pc]! @ ditto 118ldrsb r0,[r1],pc @ ditto 119ldrsb r0,[pc,r1]! @ ditto 120ldrsb r0,[pc],r1 @ ditto 121 122@ LDRSBT 123ldrsbt pc, [r0], #4 @ Unpredictable 124ldrsbt r0, [pc], #4 @ ditto 125ldrsbt pc, [r0], r1 @ ditto 126ldrsbt r0, [pc], r1 @ ditto 127ldrsbt r0, [r1], pc @ ditto 128 129@ LDRSH (immediate) 130ldrsh pc,[r0,#4] @ Unpredictable 131ldrsh pc,[r0],#4 @ ditto 132ldrsh pc,[r0,#4]! @ ditto 133 134@ LDRSH (literal) 135ldrsh pc, label @ Unpredictable 136ldrsh pc,[pc,#-0] @ ditto 137 138@ LDRSH (register) 139ldrsh pc,[r0,r1] @ Unpredictable 140ldrsh pc,[r0,r1]! @ ditto 141ldrsh pc,[r0],r1 @ ditto 142ldrsh r0,[r1,pc] @ ditto 143ldrsh r0,[r1,pc]! @ ditto 144ldrsh r0,[r1],pc @ ditto 145ldrsh r0,[pc,r1]! @ ditto 146ldrsh r0,[pc],r1 @ ditto 147 148@ LDRSHT 149ldrsht pc, [r0], #4 @ Unpredictable 150ldrsht r0, [pc], #4 @ ditto 151ldrsht pc, [r0], r1 @ ditto 152ldrsht r0, [pc], r1 @ ditto 153ldrsht r0, [r1], pc @ ditto 154 155@ LDRT 156ldrt pc, [r0], #4 @ Unpredictable 157ldrt r0, [pc], #4 @ ditto 158ldrt pc,[r0],r1, LSL #4 @ ditto 159ldrt r0,[pc],r1, LSL #4 @ ditto 160ldrt r0,[r1],pc, LSL #4 @ ditto 161 162 163@ Stores, ARM ================================================================ 164 165@ STR (immediate, ARM) 166str r0,[pc],#4 @ Unpredictable 167str r0,[pc,#4]! @ ditto 168 169@ STR (register) 170str r0,[r1,pc, LSL #4] @ Unpredictable 171str r0,[r1,pc, LSL #4]! @ ditto 172str r0,[r1],pc, LSL #4 @ ditto 173 174@ STRB (immediate, ARM) 175strb pc,[r0,#4] @ Unpredictable 176strb pc,[r0],#4 @ ditto 177strb pc,[r0,#4]! @ ditto 178strb r0,[pc],#4 @ ditto 179strb r0,[pc,#4]! @ ditto 180 181@ STRB (register) 182strb pc,[r0,r1, LSL #4] @ Unpredictable 183strb pc,[r0,r1, LSL #4]! @ ditto 184strb pc,[r0],r1, LSL #4 @ ditto 185strb r1,[r0,pc, LSL #4] @ ditto 186strb r1,[r0,pc, LSL #4]! @ ditto 187strb r1,[r0],pc, LSL #4 @ ditto 188strb r0,[pc,r1, LSL #4]! @ ditto 189strb r0,[pc],r1, LSL #4 @ ditto 190 191@ STRBT 192strbt pc,[r0],#4 @ Unpredictable 193strbt r0,[pc],#4 @ ditto 194strbt pc,[r0],r1, LSL #4 @ ditto 195strbt r0,[pc],r1, LSL #4 @ ditto 196strbt r0,[r1],pc, LSL #4 @ ditto 197 198@ STRD (immediate) 199strd r0,pc,[r1,#4] @ ditto 200strd r0,pc,[r1],#4 @ ditto 201strd r0,pc,[r1,#4]! @ ditto 202strd r0,r1,[pc],#4 @ ditto 203strd r0,r1,[pc,#4]! @ ditto 204 205@STRD (register) 206strd r0,pc,[r1,r2] @ Unpredictable 207strd r0,pc,[r1,r2]! @ ditto 208strd r0,pc,[r1],r2 @ ditto 209strd r0,r1,[r2,pc] @ ditto 210strd r0,r1,[r2,pc]! @ ditto 211strd r0,r1,[r2],pc @ ditto 212strd r0,r1,[pc,r2]! @ ditto 213strd r0,r1,[pc],r2 @ ditto 214 215@ STREX 216strex pc,r0,[r1] @ Unpredictable 217strex r0,pc,[r1] @ ditto 218strex r0,r1,[pc] @ ditto 219 220@ STREXB 221strexb pc,r0,[r1] @ Unpredictable 222strexb r0,pc,[r1] @ ditto 223strexb r0,r1,[pc] @ ditto 224 225@ STREXD 226strexd pc,r0,r1,[r2] @ Unpredictable 227strexd r0,r1,r2,[pc] @ ditto 228 229@ STREXH 230strexh pc,r0,[r1] @ Unpredictable 231strexh r0,pc,[r1] @ ditto 232strexh r0,r1,[pc] @ ditto 233 234@ STRH (immediate, ARM) 235strh pc,[r0,#4] @ Unpredictable 236strh pc,[r0],#4 @ ditto 237strh pc,[r0,#4]! @ ditto 238strh r0,[pc],#4 @ ditto 239strh r0,[pc,#4]! @ ditto 240 241@ STRH (register) 242strh pc,[r0,r1] @ Unpredictable 243strh pc,[r0,r1]! @ ditto 244strh pc,[r0],r1 @ ditto 245strh r0,[r1,pc] @ ditto 246strh r0,[r1,pc]! @ ditto 247strh r0,[r1],pc @ ditto 248strh r0,[pc,r1]! @ ditto 249strh r0,[pc],r1 @ ditto 250 251@ STRHT 252strht pc, [r0], #4 @ Unpredictable 253strht r0, [pc], #4 @ ditto 254strht pc, [r0], r1 @ ditto 255strht r0, [pc], r1 @ ditto 256strht r0, [r1], pc @ ditto 257 258@ STRT 259strt r0, [pc], #4 @ Unpredictable 260strt r0, [pc],r1, LSL #4 @ ditto 261strt r0, [r1],pc, LSL #4 @ ditto 262 263@ ============================================================================ 264 265.label: 266ldr r0, [r1] 267