summaryrefslogtreecommitdiff
path: root/reference/0ad-cycladic-archipelago/0ad-cycladic-archipelago-81.asm
diff options
context:
space:
mode:
Diffstat (limited to 'reference/0ad-cycladic-archipelago/0ad-cycladic-archipelago-81.asm')
-rw-r--r--reference/0ad-cycladic-archipelago/0ad-cycladic-archipelago-81.asm83
1 files changed, 27 insertions, 56 deletions
diff --git a/reference/0ad-cycladic-archipelago/0ad-cycladic-archipelago-81.asm b/reference/0ad-cycladic-archipelago/0ad-cycladic-archipelago-81.asm
index f46066a..df4bfc0 100644
--- a/reference/0ad-cycladic-archipelago/0ad-cycladic-archipelago-81.asm
+++ b/reference/0ad-cycladic-archipelago/0ad-cycladic-archipelago-81.asm
@@ -2,65 +2,36 @@
; FRAG: new compiler
@in(r0.x) in0
@in(r0.y) in1
-@out(r2.x) out0
-@out(r2.y) out1
-@out(r2.z) out2
-@out(r2.w) out3
-(sy)(ss)bary.f r0.z, 1, r0.x
-bary.f r0.w, 0, r0.x
-bary.f (ei)r0.x, 2, r0.x
+@out(r1.x) out0
+@out(r1.y) out1
+@out(r1.z) out2
+@out(r1.w) out3
+@const(c0.x) 0x3e800000, 0x40800000, 0x00000000, 0x00000000
+(sy)(ss)bary.f r0.w, 1, r0.x
+bary.f r0.z, 0, r0.x
+bary.f (ei)r1.x, 2, r0.x
nop
-add.f r0.y, c0.x, (neg)r0.z
-mov.f32f32 r0.w, r0.w
-cmps.f.lt r1.x, c0.z, r0.z
-mov.f32f32 r0.x, r0.x
-mul.f r0.y, r0.y, c0.y
-mov.f32f32 r1.y, r0.w
-mov.f32f32 r0.z, r0.z
-cov.u32f32 r0.w, r1.x
-mov.f32f32 r0.y, r0.y
-mov.f32f32 r1.w, r0.x
-mov.f32f32 r1.z, r0.z
+add.f r0.x, c0.x, (neg)r0.w
+cmps.f.lt r0.y, c0.z, r0.w
+(rpt1)nop
+mul.f r0.x, r0.x, c0.y
+sam.3d (f32)(xyzw)r2.x, r0.z, s#0, t#0
+cov.u32f32 r0.y, r0.y
+(rpt1)nop
+(ss)mov.f32f32 r0.z, r0.x
+(sy)mul.f r0.x, r2.x, r0.x
+cmps.f.ne r0.y, r0.y, c0.z
nop
-mov.f32f32 r0.x, r0.y
-mov.f32f32 r0.z, r0.y
-mov.f32f32 r1.x, r0.y
-mov.f32f32 r0.y, r0.y
-cmps.f.ne r0.w, r0.w, c0.z
-sam.3d (f32)(xyzw)r1.y, r1.y, s#0, t#0
-(sy)mov.f32f32 r2.y, r2.x
-mov.f32f32 r2.z, r1.w
-mov.f32f32 r2.w, r1.z
-mov.f32f32 r3.x, r1.y
-mul.f r0.x, r2.y, r0.x
-mul.f r0.z, r2.z, r0.z
-mul.f r1.x, r2.w, r1.x
-mul.f r0.y, r3.x, r0.y
-mov.f32f32 r0.x, r0.x
-mov.f32f32 r2.x, r2.x
-mov.f32f32 r0.z, r0.z
-mov.f32f32 r1.x, r1.x
-mov.f32f32 r0.y, r0.y
-mov.f32f32 r2.x, r2.x
-(ss)mov.f32f32 r1.w, r1.w
-mov.f32f32 r1.z, r1.z
-mov.f32f32 r1.y, r1.y
-sel.b32 r0.x, r0.x, r0.w, r2.x
-mov.f32f32 r1.w, r1.w
-mov.f32f32 r1.z, r1.z
-mov.f32f32 r1.y, r1.y
-mov.f32f32 r2.w, r0.x
-sel.b32 r0.x, r0.z, r0.w, r1.w
-sel.b32 r0.z, r1.x, r0.w, r1.z
-sel.b32 r0.y, r0.y, r0.w, r1.y
+mul.f r0.w, r2.w, r0.z
+mul.f r1.x, r2.z, r0.z
+mul.f r0.z, r2.y, r0.z
nop
-mov.f32f32 r2.z, r0.x
-mov.f32f32 r2.y, r0.z
-mov.f32f32 r2.x, r0.y
+sel.b32 r1.w, r0.w, r0.y, r2.w
+sel.b32 r1.z, r1.x, r0.y, r2.z
+sel.b32 r1.y, r0.z, r0.y, r2.y
+sel.b32 r1.x, r0.x, r0.y, r2.x
end
-; FRAG: outputs: r2.x (1:0)
+; FRAG: outputs: r1.x (1:0)
; FRAG: inputs: r0.x (5:9,cm=f,il=8,b=1)
-; FRAG: 52 instructions, 0 half, 4 full
-; pos (bary): r0.x
-; color: r2.x
+; FRAG: 26 instructions, 0 half, 3 full