19 lines
No EOL
383 B
ArmAsm
19 lines
No EOL
383 B
ArmAsm
.data
|
|
N: .word 5
|
|
X: .double 2
|
|
W: .double 1
|
|
|
|
.text
|
|
lw r2, N(r0) ; r2=n
|
|
l.d f1, W(r0) ; f1=w
|
|
l.d f2, X(r0) ; f2=x
|
|
loop:
|
|
andi $t0, r2, 1 ; n&1
|
|
beqz $t0, pair ; if n pair
|
|
mul.d f1, f1, f2 ; w*=x sinon
|
|
pair:
|
|
mul.d f2, f2, f2
|
|
dsrl r2, r2, 1 ; n>>1
|
|
bnez r2, loop ; while(n)
|
|
s.d f1, W(r0)
|
|
halt |