45 lines
776 B
ArmAsm
45 lines
776 B
ArmAsm
|
|
#include "ksia64.h"
|
|
|
|
LEAF_ENTRY (ChkSum)
|
|
|
|
alloc t22 = ar.pfs, 3, 0, 0, 0
|
|
mov t10 = 0xffff
|
|
zxt4 a2 = a2
|
|
;;
|
|
|
|
cmp4.eq pt0 = zero, a2
|
|
zxt4 a0 = a0
|
|
(pt0) br.cond.spnt cs20
|
|
|
|
cs10:
|
|
ld2 t0 = [a1], 2
|
|
add a2 = -1, a2
|
|
;;
|
|
add a0 = t0, a0
|
|
;;
|
|
|
|
cmp4.ne pt1 = zero, a2
|
|
extr.u t1 = a0, 16, 16
|
|
and t2 = a0, t10
|
|
;;
|
|
|
|
add a0 = t1, t2
|
|
nop.f 0
|
|
(pt1) br.cond.sptk cs10
|
|
;;
|
|
|
|
cs20:
|
|
|
|
nop.m 0
|
|
extr.u t1 = a0, 16, 16
|
|
;;
|
|
add a0 = t1, a0
|
|
;;
|
|
|
|
nop.m 0
|
|
and v0 = a0, t10
|
|
br.ret.sptk brp
|
|
|
|
LEAF_EXIT (ChkSum)
|