Files

2111 lines
26 KiB
ArmAsm
Raw Permalink Normal View History

// Branch relaxation on riscv64: overlong conditional branches become an
// inverted branch over an inserted JMP, the layout the toolchain produces.
#include "textflag.h"
// func FarForward(x int64) int64
TEXT ·FarForward(SB), NOSPLIT, $0-16
MOV x+0(FP), X5
BEQ X5, X6, done
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
done:
MOV X5, ret+8(FP)
RET
// func FarBackward(x int64) int64
TEXT ·FarBackward(SB), NOSPLIT, $0-16
MOV x+0(FP), X5
MOV $0, X7
loop:
BEQZ X7, out
BGTZ X5, skip
ADD $2, X7
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
ADD $1, X5
skip:
SUB $1, X5
BNEZ X7, loop
out:
MOV X7, ret+8(FP)
RET