32 lines
508 B
ArmAsm
32 lines
508 B
ArmAsm
.global _start
|
|
.global _stop
|
|
|
|
_start:
|
|
setwd wsz=4, nfx=1
|
|
|
|
.macro loop r, p=0, l=0, e=0, s=0
|
|
{
|
|
nop 3
|
|
addd 0, 0, \r
|
|
disp %ctpr1, 0f
|
|
rwd (\s << 53) | (\p << 48) | (1UL << 37) | (\e << 32) | \l, %lsr
|
|
}
|
|
0:
|
|
addd \r, 1, \r
|
|
alc alcf=1, alct=1
|
|
ct %ctpr1 ? #NOT_LOOP_END
|
|
.endm
|
|
|
|
loop %r0, 0UL, 0, 0UL
|
|
loop %r1, 0UL, 1, 0UL
|
|
loop %r2, 0UL, 2, 0UL
|
|
loop %r3, 0UL, 3, 0UL
|
|
loop %r4, 4UL, 8, 0UL
|
|
loop %r5, 8UL, 2, 0UL
|
|
loop %r6, 4UL, 8, 2UL
|
|
loop %r7, 4UL, 0, 8UL
|
|
|
|
_stop:
|
|
udivs 0, 0, %empty
|
|
|