summaryrefslogtreecommitdiff
path: root/reference/0ad-alpine-valley/0ad-127.asm
diff options
context:
space:
mode:
Diffstat (limited to 'reference/0ad-alpine-valley/0ad-127.asm')
-rw-r--r--reference/0ad-alpine-valley/0ad-127.asm48
1 files changed, 19 insertions, 29 deletions
diff --git a/reference/0ad-alpine-valley/0ad-127.asm b/reference/0ad-alpine-valley/0ad-127.asm
index 3be9d09..85a697c 100644
--- a/reference/0ad-alpine-valley/0ad-127.asm
+++ b/reference/0ad-alpine-valley/0ad-127.asm
@@ -6,44 +6,34 @@
@out(r2.y) out1
@out(r2.z) out2
@out(r2.w) out3
+@const(c4.x) 0x3f000000, 0x00000000, 0x3f800000, 0x3fb8aa65
+@const(c5.x) 0x00000000, 0x3f800000, 0x43000000, 0x00000000
(sy)(ss)add.f r0.x, r0.w, c4.y
-mov.f32f32 r0.y, c0.w
-absneg.f r0.w, (neg)c2.x
+absneg.f r0.y, (neg)c2.x
+mov.f32f32 r2.w, c0.w
add.f r0.z, r0.z, c4.y
(rpt2)nop
rcp r0.x, r0.x
(ss)mul.f r0.x, r0.z, r0.x
-mov.f32f32 r2.w, r0.y
-mul.f r0.y, r0.w, c2.x
-nop
-mov.f32f32 r0.x, r0.x
+mul.f r0.y, r0.y, c2.x
(rpt2)nop
mul.f r0.y, r0.y, r0.x
-(rpt2)nop
-mov.f32f32 r0.y, r0.y
+mov.f32f32 r0.x, r0.x
(rpt2)nop
mul.f r0.x, r0.y, r0.x
(rpt2)nop
-mov.f32f32 r0.x, r0.x
-(rpt2)nop
mul.f r0.x, r0.x, c4.w
-(rpt2)nop
-mov.f32f32 r0.x, r0.x
(rpt5)nop
exp2 r0.x, r0.x
-(ss)mov.f32f32 r0.x, r0.x
-(rpt2)nop
-add.f r0.y, c5.y, (neg)r0.x
-mul.f r0.x, r0.x, c4.z
+(ss)mov.f32f32 r0.y, r0.x
+(ss)mul.f r0.x, r0.x, c4.z
(rpt1)nop
+add.f r0.y, c5.y, (neg)r0.y
+(rpt2)nop
mul.f r0.y, r0.y, c2.y
(rpt2)nop
add.f r0.x, r0.x, r0.y
(rpt2)nop
-mov.f32f32 r0.x, r0.x
-(rpt2)nop
-mov.f32f32 r0.x, r0.x
-(rpt2)nop
max.f r0.x, r0.x, c4.y
(rpt2)nop
min.f r0.x, r0.x, c4.z
@@ -55,18 +45,18 @@ mul.f r1.x, r0.x, c0.z
mul.f r0.y, r0.y, c1.z
mul.f r0.z, r0.z, c1.y
mul.f r0.w, r0.w, c1.x
-mul.f r1.y, r0.x, c0.y
-add.f r0.y, r1.x, r0.y
+nop
+add.f r2.z, r1.x, r0.y
+mul.f r0.y, r0.x, c0.y
mul.f r0.x, r0.x, c0.x
(rpt1)nop
-mov.f32f32 r2.z, r0.y
-add.f r0.y, r1.y, r0.z
-add.f r0.x, r0.x, r0.w
-(rpt1)nop
-mov.f32f32 r2.y, r0.y
-mov.f32f32 r2.x, r0.x
+add.f r2.y, r0.y, r0.z
+add.f r2.x, r0.x, r0.w
end
+nop
+nop
+nop
; FRAG: outputs: r2.x (1:0)
; FRAG: inputs: r0.x (0:0,cm=f,il=8,b=0)
-; FRAG: 96 instructions, 0 half, 3 full
+; FRAG: 70 instructions, 0 half, 3 full