mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
82 lines
849 B
ArmAsm
82 lines
849 B
ArmAsm
|
.syntax unified
|
||
|
.cpu cortex-a8
|
||
|
.thumb
|
||
|
.text
|
||
|
|
||
|
@ expansion 32 bytes
|
||
|
.macro bw1
|
||
|
1:
|
||
|
add.w r0, r1, r2
|
||
|
blx.w arm_target
|
||
|
add.w r0, r1, r2
|
||
|
blx.w arm_target
|
||
|
add.w r0, r1, r2
|
||
|
blx.w arm_target
|
||
|
add.w r0, r1, r2
|
||
|
blx.w arm_target
|
||
|
.endm
|
||
|
|
||
|
@ expansion 128 bytes
|
||
|
.macro bw2
|
||
|
bw1
|
||
|
bw1
|
||
|
bw1
|
||
|
bw1
|
||
|
.endm
|
||
|
|
||
|
@ expansion 32 bytes
|
||
|
.macro bw3
|
||
|
1:
|
||
|
add.w r0, r1, r2
|
||
|
bne.w 1b
|
||
|
add.w r0, r1, r2
|
||
|
bne.w 1b
|
||
|
add.w r0, r1, r2
|
||
|
bne.w 1b
|
||
|
add.w r0, r1, r2
|
||
|
bne.w 1b
|
||
|
.endm
|
||
|
|
||
|
@ expansion 128 bytes
|
||
|
.macro bw4
|
||
|
bw3
|
||
|
bw3
|
||
|
bw3
|
||
|
bw3
|
||
|
.endm
|
||
|
|
||
|
.align 3
|
||
|
.global _start
|
||
|
|
||
|
.thumb
|
||
|
.thumb_func
|
||
|
.type _start, %function
|
||
|
_start:
|
||
|
nop
|
||
|
|
||
|
@ Trigger Cortex-A8 erratum workaround with b<cond> instructions.
|
||
|
bw4
|
||
|
bw4
|
||
|
|
||
|
nop
|
||
|
|
||
|
.rept 957
|
||
|
nop.w
|
||
|
.endr
|
||
|
|
||
|
.arm
|
||
|
arm_target:
|
||
|
add r3, r4, r5
|
||
|
bx lr
|
||
|
|
||
|
.thumb
|
||
|
bl_insns:
|
||
|
|
||
|
nop
|
||
|
|
||
|
@ ...and again with bl instructions.
|
||
|
bw2
|
||
|
bw2
|
||
|
|
||
|
bx lr
|