mirror of
https://github.com/open-goal/jak-project
synced 2026-05-23 06:54:31 -04:00
gsrc: Add convenience macros for masking VF operations (#3824)
Migrates all code, there should be no change in the compilation output (linter should check this) At first i was considering making these builtins, which short of a bunch of code generation, would require some sort of dynamic definition in `Atoms.cpp`. This isn't hard but, i figured it would be better to keep it simple and just generate the OG macros. Fixes https://github.com/open-goal/jak-project/issues/233
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1259,6 +1259,11 @@
|
||||
(defmacro string? (val)
|
||||
`(type? ,val string))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Lib Extensions
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(asm-file "goal_src/common/lib/vf-macros.gc")
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Load Project
|
||||
|
||||
@@ -1218,20 +1218,20 @@
|
||||
; )
|
||||
; (.add.vf vf6 vf5 vf5)
|
||||
; ;; set vf2
|
||||
; (.add.w.vf vf2 vf0 vf5 :mask #b0001)
|
||||
; (.add.z.vf vf2 vf0 vf5 :mask #b0010)
|
||||
; (.sub.y.vf vf2 vf0 vf5 :mask #b0100)
|
||||
; (.sub.w.vf vf2 vf0 vf0 :mask #b1000)
|
||||
; (.add.w.vf.x vf2 vf0 vf5)
|
||||
; (.add.z.vf.y vf2 vf0 vf5)
|
||||
; (.sub.y.vf.z vf2 vf0 vf5)
|
||||
; (.sub.w.vf.w vf2 vf0 vf0)
|
||||
; ;; set vf3
|
||||
; (.sub.z.vf vf3 vf0 vf5 :mask #b0001)
|
||||
; (.add.w.vf vf3 vf0 vf5 :mask #b0010)
|
||||
; (.add.x.vf vf3 vf0 vf5 :mask #b0100)
|
||||
; (.sub.w.vf vf3 vf0 vf0 :mask #b1000)
|
||||
; (.sub.z.vf.x vf3 vf0 vf5)
|
||||
; (.add.w.vf.y vf3 vf0 vf5)
|
||||
; (.add.x.vf.z vf3 vf0 vf5)
|
||||
; (.sub.w.vf.w vf3 vf0 vf0)
|
||||
; ;; set vf4
|
||||
; (.add.y.vf vf4 vf0 vf5 :mask #b0001)
|
||||
; (.sub.x.vf vf4 vf0 vf5 :mask #b0010)
|
||||
; (.add.w.vf vf4 vf0 vf5 :mask #b0100)
|
||||
; (.sub.w.vf vf4 vf0 vf0 :mask #b1000)
|
||||
; (.add.y.vf.x vf4 vf0 vf5)
|
||||
; (.sub.x.vf.y vf4 vf0 vf5)
|
||||
; (.add.w.vf.z vf4 vf0 vf5)
|
||||
; (.sub.w.vf.w vf4 vf0 vf0)
|
||||
; ;; outer prods
|
||||
; (.outer.product.a.vf acc vf6 vf2)
|
||||
; (.outer.product.b.vf vf2 vf2 vf6 acc)
|
||||
@@ -1240,9 +1240,9 @@
|
||||
; (.outer.product.a.vf acc vf6 vf4)
|
||||
; (.outer.product.b.vf vf4 vf4 vf6 acc)
|
||||
; ;; add ones
|
||||
; (.add.w.vf vf2 vf2 vf0 :mask #b0001)
|
||||
; (.add.w.vf vf3 vf3 vf0 :mask #b0010)
|
||||
; (.add.w.vf vf4 vf4 vf0 :mask #b0100)
|
||||
; (.add.w.vf.x vf2 vf2 vf0)
|
||||
; (.add.w.vf.y vf3 vf3 vf0)
|
||||
; (.add.w.vf.z vf4 vf4 vf0)
|
||||
|
||||
; ;; things for cond blocks
|
||||
; (.lvf vf7 (-> t0 transform vector 0))
|
||||
|
||||
@@ -841,8 +841,8 @@
|
||||
(set! sv-128 s2-0)
|
||||
(set! sv-112 (-> arg0 vector))
|
||||
(let ((f0-6 (* 0.8 (tan (/ arg2 2))))) (.lvf vf1 (&-> sv-112 0 quad)) (let ((v1-6 f0-6)) (.mov vf2 v1-6)))
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-128 quad) vf1)
|
||||
(vector+! s2-0 s2-0 (-> arg0 vector 2))
|
||||
(vector-normalize! s2-0 1.0)
|
||||
@@ -861,8 +861,8 @@
|
||||
(set! sv-160 s2-0)
|
||||
(set! sv-144 (-> arg0 vector 1))
|
||||
(let ((f0-15 (* 0.525 (tan (/ arg2 2))))) (.lvf vf1 (&-> sv-144 quad)) (let ((v1-23 f0-15)) (.mov vf2 v1-23)))
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-160 quad) vf1)
|
||||
(vector+! s2-0 s2-0 (-> arg0 vector 2))
|
||||
(vector-normalize! s2-0 1.0)
|
||||
@@ -917,9 +917,9 @@
|
||||
(vector-! sv-192 (-> arg0 point-of-interest) arg1)
|
||||
(vector-normalize! sv-192 (* f28-0 (-> arg0 point-of-interest-blend value)))
|
||||
(let ((v1-3 s1-0))
|
||||
(let ((a0-5 s1-0)) (.mov.vf vf6 vf0 :mask #b1000) (.lvf vf4 (&-> a0-5 quad)))
|
||||
(let ((a0-5 s1-0)) (.mov.vf.w vf6 vf0) (.lvf vf4 (&-> a0-5 quad)))
|
||||
(.lvf vf5 (&-> sv-192 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-3 quad) vf6))
|
||||
(vector-normalize! s1-0 f28-0)))
|
||||
(else (vector-! s1-0 (-> arg0 follow-pt) arg1)))
|
||||
|
||||
@@ -181,16 +181,16 @@
|
||||
(let ((a1-6 (-> obj num-prims-u))
|
||||
(a2-8 (the-as (inline-array collide-cache-tri) (-> obj tris (-> obj num-tris)))))
|
||||
(.mov vf5 v1-28)
|
||||
(.add.x.vf vf1 vf0 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf1 vf0 vf5)
|
||||
(set! (-> a2-8 0 extra-quad) (the-as uint128 0))
|
||||
(set! (-> a2-8 0 prim-index) a1-6)
|
||||
(.add.x.vf vf3 vf0 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf3 vf0 vf5)
|
||||
(set! (-> a2-8 1 extra-quad) (the-as uint128 0))
|
||||
(set! (-> a2-8 1 prim-index) a1-6)
|
||||
(.mov.vf vf2 vf1)
|
||||
(.mov.vf vf4 vf1)
|
||||
(.add.z.vf vf2 vf0 vf3 :mask #b100)
|
||||
(.add.x.vf vf4 vf0 vf3 :mask #b1)
|
||||
(.add.z.vf.z vf2 vf0 vf3)
|
||||
(.add.x.vf.x vf4 vf0 vf3)
|
||||
(.svf (&-> a2-8 0 vertex 0 quad) vf1)
|
||||
(.svf (&-> a2-8 0 vertex 1 quad) vf2)
|
||||
(.svf (&-> a2-8 0 vertex 2 quad) vf3)
|
||||
@@ -229,25 +229,25 @@
|
||||
(.lvf vf2 (&-> arg0 max quad))
|
||||
(nop!)
|
||||
(set! (-> obj proc) arg2)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(let ((a0-1 *collide-work*))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(set! (-> obj ignore-mask) arg3)
|
||||
(.ftoi.vf vf3 vf1)
|
||||
(.lvf vf6 (&-> v1-0 quad))
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(set! (-> obj num-tris) 0)
|
||||
(.add.vf vf5 vf2 vf1 :mask #b111)
|
||||
(.add.vf.xyz vf5 vf2 vf1)
|
||||
(.svf (&-> obj collide-box min quad) vf1)
|
||||
(.mul.x.vf vf5 vf5 vf6 :mask #b111)
|
||||
(.mul.x.vf.xyz vf5 vf5 vf6)
|
||||
(.svf (&-> obj collide-box max quad) vf2)
|
||||
(.sub.vf vf7 vf5 vf1 :mask #b111)
|
||||
(.sub.vf vf5 vf5 vf5 :mask #b1000)
|
||||
(.mul.vf vf7 vf7 vf7 :mask #b111)
|
||||
(.sub.vf.xyz vf7 vf5 vf1)
|
||||
(.sub.vf.w vf5 vf5 vf5)
|
||||
(.mul.vf.xyz vf7 vf7 vf7)
|
||||
(.svf (&-> obj collide-box4w min quad) vf3)
|
||||
(.add.y.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.y.vf.x vf7 vf7 vf7)
|
||||
(.svf (&-> obj collide-box4w max quad) vf4)
|
||||
(.add.z.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.z.vf.x vf7 vf7 vf7)
|
||||
(.svf (&-> a0-1 collide-box4w min quad) vf3)
|
||||
(.sqrt.vf Q vf7 :ftf #b0)
|
||||
(.svf (&-> a0-1 collide-box4w max quad) vf4)
|
||||
@@ -255,7 +255,7 @@
|
||||
(nop!)
|
||||
(.wait.vf)
|
||||
(set! (-> obj num-prims) 0)
|
||||
(.sub.vf vf5 vf5 Q :mask #b1000)
|
||||
(.sub.vf.w vf5 vf5 Q)
|
||||
(set! (-> obj collide-with) arg1)
|
||||
(nop!)
|
||||
(.svf (&-> a0-1 collide-sphere-neg-r quad) vf5)))
|
||||
@@ -343,9 +343,9 @@
|
||||
(let ((v1-0 *collide-work*))
|
||||
(.mov.vf vf1 vf2)
|
||||
(set! (-> obj ignore-mask) (the-as pat-surface arg4))
|
||||
(.add.x.vf vf2 vf2 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf2 vf2 vf5)
|
||||
(set! (-> obj num-tris) 0)
|
||||
(.sub.x.vf vf1 vf1 vf5 :mask #b10)
|
||||
(.sub.x.vf.y vf1 vf1 vf5)
|
||||
(set! (-> obj num-prims) 0)
|
||||
(nop!)
|
||||
(set! (-> obj collide-with) arg2)
|
||||
@@ -394,9 +394,9 @@
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(nop!)
|
||||
(let ((v1-0 (-> a1-0 collide-box4w min quad)))
|
||||
(.sub.w.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a1-1 (-> a1-0 collide-box4w max quad)))
|
||||
(.add.w.vf vf3 vf1 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf3 vf1 vf1)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -514,20 +514,20 @@
|
||||
(b! #t cfg-13 :delay (nop!))
|
||||
(set! v1-1 (the-as collide-work 0))
|
||||
(label cfg-3)
|
||||
(.add.y.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.y.vf.x vf8 vf8 vf8)
|
||||
(set! (-> obj num-tris) 0)
|
||||
(.min.vf vf4 vf1 vf2)
|
||||
(set! (-> obj num-prims) 0)
|
||||
(.max.vf vf5 vf1 vf2)
|
||||
(set! (-> obj collide-with) arg3)
|
||||
(.sub.x.vf vf10 vf0 vf9 :mask #b111)
|
||||
(.sub.x.vf.xyz vf10 vf0 vf9)
|
||||
(set! (-> obj proc) arg4)
|
||||
(.add.z.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.sub.x.vf vf4 vf4 vf9 :mask #b111)
|
||||
(.add.x.vf vf5 vf5 vf9 :mask #b111)
|
||||
(.add.z.vf.x vf8 vf8 vf8)
|
||||
(.sub.x.vf.xyz vf4 vf4 vf9)
|
||||
(.add.x.vf.xyz vf5 vf5 vf9)
|
||||
(.ftoi.vf vf15 vf10)
|
||||
(.isqrt.vf Q vf0 vf8 :fsf #b11 :ftf #b0)
|
||||
(.add.x.vf vf11 vf0 vf9 :mask #b111)
|
||||
(.add.x.vf.xyz vf11 vf0 vf9)
|
||||
(.svf (&-> v1-1 collide-box4w min quad) vf15)
|
||||
(.ftoi.vf vf6 vf4)
|
||||
(.svf (&-> obj collide-box min quad) vf4)
|
||||
@@ -536,39 +536,39 @@
|
||||
(.mov.vf vf13 vf0)
|
||||
(.svf (&-> obj collide-box4w min quad) vf6)
|
||||
(.svf (&-> obj collide-box4w max quad) vf7)
|
||||
(.add.vf vf8 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf8 vf0 Q)
|
||||
(.mul.x.vf vf12 vf3 vf8)
|
||||
(.div.vf Q vf0 vf8 :fsf #b11 :ftf #b0)
|
||||
(.mul.vf vf22 vf12 vf12)
|
||||
(.abs.vf vf23 vf12)
|
||||
(.add.y.vf vf22 vf22 vf22 :mask #b1)
|
||||
(.add.y.vf.x vf22 vf22 vf22)
|
||||
(.mov a0-7 vf23)
|
||||
(.wait.vf)
|
||||
(.add.vf vf8 vf0 Q :mask #b1)
|
||||
(b! (zero? a0-7) cfg-6 :likely-delay (.add.z.vf vf13 vf0 vf12 :mask #b1))
|
||||
(.sub.y.vf vf13 vf0 vf12 :mask #b1)
|
||||
(.add.vf.x vf8 vf0 Q)
|
||||
(b! (zero? a0-7) cfg-6 :likely-delay (.add.z.vf.x vf13 vf0 vf12))
|
||||
(.sub.y.vf.x vf13 vf0 vf12)
|
||||
(.isqrt.vf Q vf0 vf22 :fsf #b11 :ftf #b0)
|
||||
(.add.x.vf vf13 vf0 vf12 :mask #b10)
|
||||
(.add.x.vf.y vf13 vf0 vf12)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf13 vf13 Q :mask #b11)
|
||||
(.mul.vf.xy vf13 vf13 Q)
|
||||
(label cfg-6)
|
||||
(.outer.product.a.vf acc vf12 vf13)
|
||||
(.add.x.vf vf11 vf11 vf8 :mask #b1)
|
||||
(.add.x.vf.x vf11 vf11 vf8)
|
||||
(.outer.product.b.vf vf14 vf13 vf12 acc)
|
||||
(.ftoi.vf vf16 vf11)
|
||||
(.mov.vf vf17 vf12)
|
||||
(.mov.vf vf18 vf13)
|
||||
(.mov.vf vf19 vf14)
|
||||
(.mov.vf vf17 vf0 :mask #b1110)
|
||||
(.mov.vf.yzw vf17 vf0)
|
||||
(.svf (&-> v1-1 collide-box4w max quad) vf16)
|
||||
(.mov.vf vf18 vf0 :mask #b1101)
|
||||
(.mov.vf vf19 vf0 :mask #b1011)
|
||||
(.add.x.vf vf17 vf17 vf13 :mask #b10)
|
||||
(.add.y.vf vf18 vf18 vf12 :mask #b1)
|
||||
(.add.z.vf vf19 vf19 vf12 :mask #b1)
|
||||
(.add.x.vf vf17 vf17 vf14 :mask #b100)
|
||||
(.add.y.vf vf18 vf18 vf14 :mask #b100)
|
||||
(.add.z.vf vf19 vf19 vf13 :mask #b10)
|
||||
(.mov.vf.xzw vf18 vf0)
|
||||
(.mov.vf.xyw vf19 vf0)
|
||||
(.add.x.vf.y vf17 vf17 vf13)
|
||||
(.add.y.vf.x vf18 vf18 vf12)
|
||||
(.add.z.vf.x vf19 vf19 vf12)
|
||||
(.add.x.vf.z vf17 vf17 vf14)
|
||||
(.add.y.vf.z vf18 vf18 vf14)
|
||||
(.add.z.vf.y vf19 vf19 vf13)
|
||||
(.mul.x.vf acc vf17 vf1)
|
||||
(.add.mul.y.vf acc vf18 vf1 acc)
|
||||
(.svf (&-> v1-1 inv-mat vector 0 quad) vf17)
|
||||
@@ -618,8 +618,8 @@
|
||||
(let ((v1-0 (-> a1-0 collide-box4w min quad)))
|
||||
(.add.mul.z.vf vf10 vf3 vf5 acc)
|
||||
(let ((a1-1 (-> a1-0 collide-box4w max quad)))
|
||||
(.sub.w.vf vf6 vf10 vf5 :mask #b111)
|
||||
(.add.w.vf vf7 vf10 vf5 :mask #b111)
|
||||
(.sub.w.vf.xyz vf6 vf10 vf5)
|
||||
(.add.w.vf.xyz vf7 vf10 vf5)
|
||||
(.ftoi.vf vf8 vf6)
|
||||
(.ftoi.vf vf9 vf7)
|
||||
(.mov a2-0 vf8)
|
||||
@@ -692,7 +692,7 @@
|
||||
(vitof12.xyzw vf1 vf1)
|
||||
(vitof12.xyzw vf2 vf2)
|
||||
(vitof12.xyzw vf3 vf3)
|
||||
(.add.vf vf4 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf4 vf5)
|
||||
(.lvf vf5 (&-> arg0 bsphere quad))
|
||||
(vitof12.xyzw vf6 vf6)
|
||||
(.mul.x.vf acc vf1 vf5)
|
||||
@@ -709,9 +709,9 @@
|
||||
(let ((a1-1 (-> v1-0 collide-box4w max quad)))
|
||||
(.add.mul.z.vf acc vf9 vf11 acc)
|
||||
(.add.mul.w.vf vf11 vf10 vf0 acc)
|
||||
(.mul.w.vf vf15 vf6 vf5 :mask #b1)
|
||||
(.add.x.vf vf12 vf11 vf15 :mask #b111)
|
||||
(.sub.x.vf vf11 vf11 vf15 :mask #b111)
|
||||
(.mul.w.vf.x vf15 vf6 vf5)
|
||||
(.add.x.vf.xyz vf12 vf11 vf15)
|
||||
(.sub.x.vf.xyz vf11 vf11 vf15)
|
||||
(.ftoi.vf vf14 vf12)
|
||||
(.ftoi.vf vf13 vf11)
|
||||
(.mov v1-1 vf14)
|
||||
@@ -1465,9 +1465,9 @@
|
||||
(nop!)
|
||||
(.add.mul.z.vf vf6 vf30 vf1 acc)
|
||||
(nop!)
|
||||
(.sub.w.vf vf2 vf6 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf2 vf6 vf1)
|
||||
(nop!)
|
||||
(.add.w.vf vf3 vf6 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf3 vf6 vf1)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -1510,9 +1510,9 @@
|
||||
(nop!)
|
||||
(.add.mul.z.vf vf6 vf30 vf1 acc)
|
||||
(nop!)
|
||||
(.sub.w.vf vf2 vf6 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf2 vf6 vf1)
|
||||
(nop!)
|
||||
(.add.w.vf vf3 vf6 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf3 vf6 vf1)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -1554,9 +1554,9 @@
|
||||
(nop!)
|
||||
(.add.mul.z.vf vf6 vf30 vf1 acc)
|
||||
(nop!)
|
||||
(.sub.w.vf vf2 vf6 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf2 vf6 vf1)
|
||||
(nop!)
|
||||
(.add.w.vf vf3 vf6 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf3 vf6 vf1)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -1598,9 +1598,9 @@
|
||||
(nop!)
|
||||
(.add.mul.z.vf vf6 vf30 vf1 acc)
|
||||
(nop!)
|
||||
(.sub.w.vf vf2 vf6 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf2 vf6 vf1)
|
||||
(nop!)
|
||||
(.add.w.vf vf3 vf6 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf3 vf6 vf1)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -1708,9 +1708,9 @@
|
||||
(let ((v1-2 (logand s0-0 v1-1)))
|
||||
(.add.mul.y.vf acc vf29 vf1 acc)
|
||||
(b! (zero? v1-2) cfg-1 :delay (.add.mul.z.vf vf10 vf30 vf1 acc)))))
|
||||
(.sub.w.vf vf2 vf10 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf2 vf10 vf1)
|
||||
(nop!)
|
||||
(.add.w.vf vf3 vf10 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf3 vf10 vf1)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -1750,9 +1750,9 @@
|
||||
(set! (-> gp-0 best-u) 2.0)
|
||||
(set! (-> gp-0 ignore-pat) arg4)
|
||||
(set! (-> gp-0 tri-out) arg3)
|
||||
(.sub.x.vf vf3 vf0 vf3 :mask #b10)
|
||||
(.sub.x.vf.y vf3 vf0 vf3)
|
||||
(.svf (&-> gp-0 start-pos quad) vf1)
|
||||
(.mov.vf vf3 vf0 :mask #b1101)
|
||||
(.mov.vf.xzw vf3 vf0)
|
||||
(.svf (&-> gp-0 move-dist quad) vf3)
|
||||
(let ((s2-0 (the-as object (-> obj prims))))
|
||||
(countdown (s1-0 (-> obj num-prims))
|
||||
@@ -1808,7 +1808,7 @@
|
||||
(.lvf vf3 (&-> arg0 quad))
|
||||
(.lvf vf2 (&-> arg1 quad))
|
||||
(set! (-> s4-0 ignore-pat) arg5)
|
||||
(.mul.x.vf vf3 vf0 vf4 :mask #b1000)
|
||||
(.mul.x.vf.w vf3 vf0 vf4)
|
||||
(set! (-> s4-0 tri-out) arg4)
|
||||
(.svf (&-> s4-0 move-dist quad) vf2)
|
||||
(.svf (&-> s4-0 bsphere quad) vf3)
|
||||
@@ -1867,9 +1867,9 @@
|
||||
(b! (zero? a2-0) cfg-5 :delay (.lvf vf1 a1-1))
|
||||
(let ((a2-1 (+ a2-0 -1))
|
||||
(a1-2 (the-as (inline-array sphere) (-> a1-1 1))))
|
||||
(.sub.w.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf2 vf1 vf1)
|
||||
(.svf (&-> v1-0 0 bsphere quad) vf1)
|
||||
(.add.w.vf vf3 vf1 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf3 vf1 vf1)
|
||||
(let ((v1-1 (-> v1-0 1)))
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -1883,13 +1883,13 @@
|
||||
(b! (zero? a2-1) cfg-5 :delay (.lvf vf1 a1-2))
|
||||
(+! a2-1 -1)
|
||||
(set! a1-2 (the-as (inline-array sphere) (-> a1-2 1)))
|
||||
(.sub.w.vf vf4 vf1 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf4 vf1 vf1)
|
||||
(.svf (&-> v1-1 bsphere quad) vf1)
|
||||
(.add.w.vf vf5 vf1 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf5 vf1 vf1)
|
||||
(nop!)
|
||||
(.min.vf vf2 vf2 vf4 :mask #b111)
|
||||
(.min.vf.xyz vf2 vf2 vf4)
|
||||
(nop!)
|
||||
(.max.vf vf3 vf3 vf5 :mask #b111)
|
||||
(.max.vf.xyz vf3 vf3 vf5)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf4)
|
||||
(nop!)
|
||||
|
||||
@@ -33,15 +33,15 @@
|
||||
(set! (-> gp-0 cshape) v1-0)
|
||||
(.lvf vf3 (&-> v1-0 trans quad)))
|
||||
;; translate the cache filling box
|
||||
(.add.vf vf1 vf1 vf3 :mask #b111)
|
||||
(.add.vf vf2 vf2 vf3 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf1 vf3)
|
||||
(.add.vf.xyz vf2 vf2 vf3)
|
||||
(.svf (&-> gp-0 cache-fill-box min quad) vf1)
|
||||
(.svf (&-> gp-0 cache-fill-box max quad) vf2)
|
||||
;; translate the reach box
|
||||
(.lvf vf4 (&-> gp-0 local-within-reach-box min quad))
|
||||
(.lvf vf5 (&-> gp-0 local-within-reach-box max quad))
|
||||
(.add.vf vf4 vf4 vf3 :mask #b111)
|
||||
(.add.vf vf5 vf5 vf3 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf4 vf3)
|
||||
(.add.vf.xyz vf5 vf5 vf3)
|
||||
;; and also provide an integer version of the box.
|
||||
(.ftoi.vf vf6 vf4)
|
||||
(.ftoi.vf vf7 vf5)
|
||||
@@ -203,14 +203,14 @@
|
||||
(.outer.product.a.vf acc vf4 vf5)
|
||||
(.outer.product.b.vf vf6 vf5 vf4 acc)
|
||||
(.mul.vf vf7 vf6 vf6)
|
||||
(.mul.x.vf acc vf0 vf7 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf7 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf7 vf0 vf7 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf7)
|
||||
(.add.mul.y.vf.w acc vf0 vf7 acc)
|
||||
(.add.mul.z.vf.w vf7 vf0 vf7 acc)
|
||||
(.isqrt.vf Q vf0 vf7 :fsf #b11 :ftf #b11)
|
||||
(let ((f1-0 0.707))
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.mul.vf vf6 vf6 Q :mask #b111)
|
||||
(.mul.vf.xyz vf6 vf6 Q)
|
||||
(.mov v1-14 vf6)
|
||||
(b! (>= (the-as float (sar (the-as int v1-14) 32)) f1-0) cfg-17))
|
||||
(set! v0-0 #f)
|
||||
@@ -327,19 +327,19 @@
|
||||
(.add.vf vf10 vf10 vf1)
|
||||
(.sub.vf vf7 vf5 vf10)
|
||||
(.mul.vf vf7 vf7 vf7)
|
||||
(.add.z.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.z.vf.x vf7 vf7 vf7)
|
||||
(.mov v1-4 vf7)
|
||||
(b! (< f0-0 v1-4) cfg-4)
|
||||
(.sub.vf vf8 vf1 vf5)
|
||||
(.mul.vf vf7 vf8 vf8)
|
||||
(.add.z.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.z.vf.x vf7 vf7 vf7)
|
||||
(.isqrt.vf Q vf0 vf7 :fsf #b11 :ftf #b0)
|
||||
(nop!)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.mul.vf vf8 vf8 Q :mask #b101)
|
||||
(.mul.vf.xz vf8 vf8 Q)
|
||||
(.mul.vf vf9 vf8 vf6)
|
||||
(.add.z.vf vf9 vf9 vf9 :mask #b1)
|
||||
(.add.z.vf.x vf9 vf9 vf9)
|
||||
(.mov v1-5 vf9)
|
||||
(b! (< v1-5 f1-0) cfg-4)))
|
||||
(.sub.vf vf7 vf11 vf1)
|
||||
@@ -347,7 +347,7 @@
|
||||
(.mul.vf vf7 vf7 vf7)
|
||||
(set! (-> arg0 split) 0)
|
||||
(.svf (&-> arg0 outward-pt quad) vf10)
|
||||
(.add.z.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.z.vf.x vf7 vf7 vf7)
|
||||
(set! (-> arg0 edge) arg1)
|
||||
(.mov v1-6 vf7)
|
||||
(set! (-> arg0 rating) v1-6)
|
||||
@@ -386,23 +386,23 @@
|
||||
(.sub.vf vf4 vf1 vf2)
|
||||
(.sub.vf vf5 vf3 vf2)
|
||||
(.mul.vf vf6 vf5 vf5)
|
||||
(.add.z.vf vf6 vf6 vf6 :mask #b1)
|
||||
(.add.z.vf.x vf6 vf6 vf6)
|
||||
(.sqrt.vf Q vf6 :ftf #b0)
|
||||
(nop!)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf6 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf6 vf0 Q)
|
||||
(.nop.vf)
|
||||
(.mov v1-1 vf6)
|
||||
(let ((f1-0 v1-1))
|
||||
(.div.vf Q vf0 vf6 :fsf #b11 :ftf #b0)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf8 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf8 vf0 Q)
|
||||
(.mul.x.vf vf9 vf5 vf8)
|
||||
(.mov v1-2 vf8)
|
||||
(.mul.vf vf10 vf9 vf4)
|
||||
(.add.z.vf vf10 vf10 vf10 :mask #b1)
|
||||
(.add.z.vf.x vf10 vf10 vf10)
|
||||
(let ((f2-0 v1-2))
|
||||
(.mov v1-3 vf10)
|
||||
(let ((f3-0 v1-3))
|
||||
@@ -410,8 +410,8 @@
|
||||
(b! (< f1-0 f3-0) cfg-4 :likely-delay (set! f3-0 f1-0))
|
||||
(label cfg-4)
|
||||
(let ((v1-4 (* f3-0 f2-0))) (.mov vf11 v1-4))))))
|
||||
(.mul.x.vf vf7 vf5 vf11 :mask #b111)
|
||||
(.add.vf vf7 vf7 vf2 :mask #b111)
|
||||
(.mul.x.vf.xyz vf7 vf5 vf11)
|
||||
(.add.vf.xyz vf7 vf7 vf2)
|
||||
(.svf (&-> arg1 quad) vf7)
|
||||
(.mov v0-0 vf7)
|
||||
v0-0))
|
||||
|
||||
@@ -46,22 +46,22 @@
|
||||
(.mul.vf vf3 vf3 vf3) ;; vf3 = r^2
|
||||
(.mul.vf vf6 vf1 vf1) ;; vf6 = o.^2
|
||||
(.mul.vf vf5 vf2 vf1) ;; vf5 = u . o
|
||||
(.add.y.vf vf4 vf4 vf4 :mask #b1)
|
||||
(.add.y.vf.x vf4 vf4 vf4)
|
||||
(let ((result (the-as float 0)))
|
||||
(.add.x.vf vf6 vf6 vf6 :mask #b10)
|
||||
(.sub.x.vf vf6 vf6 vf3 :mask #b100)
|
||||
(.add.z.vf vf4 vf4 vf4 :mask #b1)
|
||||
(.add.x.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf6 vf6 vf6)
|
||||
(.sub.x.vf.z vf6 vf6 vf3)
|
||||
(.add.z.vf.x vf4 vf4 vf4)
|
||||
(.add.x.vf.y vf5 vf5 vf5)
|
||||
(let ((v1-0 (the-as float 0)))
|
||||
(.add.z.vf vf6 vf6 vf6 :mask #b10)
|
||||
(.add.z.vf.y vf6 vf6 vf6)
|
||||
(.div.vf Q vf0 vf4 :fsf #b11 :ftf #b0)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.z.vf.y vf5 vf5 vf5)
|
||||
(.mov a0-1 vf4)
|
||||
(.mul.x.vf vf7 vf6 vf4)
|
||||
(.mov a1-0 vf6)
|
||||
(.mul.vf vf8 vf5 vf5)
|
||||
(b! (< (the-as int a1-0) 0) cfg-7 :delay (set! a0-2 a0-1))
|
||||
(.mul.vf vf4 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf4 vf0 Q)
|
||||
(.sub.vf vf9 vf8 vf7)
|
||||
(b! (= a0-2 v1-0) cfg-6 :delay (.mov v1-1 vf5)))
|
||||
(.sqrt.vf Q vf9 :ftf #b1)
|
||||
@@ -70,11 +70,11 @@
|
||||
(.add.x.vf vf6 vf5 vf4)
|
||||
(.mov v1-4 vf6)
|
||||
(.mul.vf vf6 vf6 vf6)
|
||||
(.mul.vf vf9 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf9 vf0 Q)
|
||||
(.sub.vf vf6 vf9 vf6)
|
||||
(.add.w.vf vf9 vf5 vf9 :mask #b10)
|
||||
(.add.w.vf.y vf9 vf5 vf9)
|
||||
(.mov a0-3 vf6)
|
||||
(.mul.w.vf vf9 vf9 vf4 :mask #b10)
|
||||
(.mul.w.vf.y vf9 vf9 vf4)
|
||||
(b! (< (logand (the-as uint v1-4) (the-as uint a0-3)) 0) cfg-6 :delay (.sub.y.vf vf4 vf0 vf9))
|
||||
(b! #t cfg-7 :delay (.mov result vf4))
|
||||
(label cfg-6)
|
||||
@@ -120,22 +120,22 @@
|
||||
(.mul.vf vf3 vf3 vf3)
|
||||
(.mul.vf vf6 vf1 vf1)
|
||||
(.mul.vf vf5 vf2 vf1)
|
||||
(.add.y.vf vf4 vf4 vf4 :mask #b1)
|
||||
(.add.y.vf.x vf4 vf4 vf4)
|
||||
(let ((result (the-as float 0)))
|
||||
(.add.x.vf vf6 vf6 vf6 :mask #b10)
|
||||
(.sub.x.vf vf6 vf6 vf3 :mask #b100)
|
||||
(.add.z.vf vf4 vf4 vf4 :mask #b1)
|
||||
(.add.x.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf6 vf6 vf6)
|
||||
(.sub.x.vf.z vf6 vf6 vf3)
|
||||
(.add.z.vf.x vf4 vf4 vf4)
|
||||
(.add.x.vf.y vf5 vf5 vf5)
|
||||
(let ((v1-0 (the-as float 0)))
|
||||
(.add.z.vf vf6 vf6 vf6 :mask #b10)
|
||||
(.add.z.vf.y vf6 vf6 vf6)
|
||||
(.div.vf Q vf0 vf4 :fsf #b11 :ftf #b0)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.z.vf.y vf5 vf5 vf5)
|
||||
(.mov a0-1 vf4)
|
||||
(.mul.x.vf vf7 vf6 vf4)
|
||||
(.mov a1-0 vf6)
|
||||
(.mul.vf vf8 vf5 vf5)
|
||||
(b! (< (the-as int a1-0) 0) cfg-7 :delay (set! a0-2 a0-1)) ;; in the sphere
|
||||
(.mul.vf vf4 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf4 vf0 Q)
|
||||
(.sub.vf vf9 vf8 vf7)
|
||||
(b! (= a0-2 v1-0) cfg-6 :delay (.mov v1-1 vf5)) ;; bad denominator in division
|
||||
)
|
||||
@@ -145,11 +145,11 @@
|
||||
(.add.x.vf vf6 vf5 vf4)
|
||||
(.mov v1-4 vf6)
|
||||
(.mul.vf vf6 vf6 vf6)
|
||||
(.mul.vf vf9 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf9 vf0 Q)
|
||||
(.sub.vf vf6 vf9 vf6)
|
||||
(.add.w.vf vf9 vf5 vf9 :mask #b10)
|
||||
(.add.w.vf.y vf9 vf5 vf9)
|
||||
(.mov a0-3 vf6)
|
||||
(.mul.w.vf vf9 vf9 vf4 :mask #b10)
|
||||
(.mul.w.vf.y vf9 vf9 vf4)
|
||||
;; too far.
|
||||
(b! (< (logand (the-as int v1-4) (the-as int a0-3)) 0) cfg-6 :delay (.sub.y.vf vf4 vf0 vf9))
|
||||
(b! #t cfg-7 :delay (.mov result vf4))
|
||||
@@ -179,12 +179,12 @@
|
||||
(vf2 :class vf))
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> ray-origin quad))
|
||||
(.mov.vf vf1 vf0 :mask #b10)
|
||||
(.mov.vf.y vf1 vf0)
|
||||
(.lvf vf2 (&-> circle-origin quad))
|
||||
(.mov.vf vf2 vf0 :mask #b10)
|
||||
(.mov.vf.y vf2 vf0)
|
||||
(.sub.vf vf1 vf1 vf2)
|
||||
(.lvf vf2 (&-> ray-dir quad))
|
||||
(.mov.vf vf2 vf0 :mask #b10)
|
||||
(.mov.vf.y vf2 vf0)
|
||||
;;(raw-ray-sphere-intersect radius)
|
||||
(pc-port-do-raw-ray-sphere-intersect radius vf1 vf2)))
|
||||
|
||||
@@ -220,10 +220,10 @@
|
||||
(.mov vf14 cyl-len)
|
||||
(.mul.vf vf16 vf15 vf13)
|
||||
(.mul.vf vf17 vf11 vf13)
|
||||
(.add.x.vf vf16 vf16 vf16 :mask #b10)
|
||||
(.add.x.vf vf17 vf17 vf17 :mask #b10)
|
||||
(.add.z.vf vf16 vf16 vf16 :mask #b10)
|
||||
(.add.z.vf vf17 vf17 vf17 :mask #b10)
|
||||
(.add.x.vf.y vf16 vf16 vf16)
|
||||
(.add.x.vf.y vf17 vf17 vf17)
|
||||
(.add.z.vf.y vf16 vf16 vf16)
|
||||
(.add.z.vf.y vf17 vf17 vf17)
|
||||
(.mul.y.vf vf1 vf13 vf16)
|
||||
(.add.vf vf18 vf17 vf16)
|
||||
(.sub.x.vf vf19 vf16 vf14)
|
||||
@@ -245,7 +245,7 @@
|
||||
(.mul.y.vf vf13 vf13 vf16)
|
||||
(.sub.x.vf vf19 vf16 vf14)
|
||||
(.mov a0-4 vf16)
|
||||
(b! (< (the-as int a0-4) 0) cfg-6 :delay (.add.vf vf12 vf12 vf13 :mask #b111))
|
||||
(b! (< (the-as int a0-4) 0) cfg-6 :delay (.add.vf.xyz vf12 vf12 vf13))
|
||||
(.mov a0-5 vf19)
|
||||
(b! (>= (the-as int a0-5) 0) cfg-6 :delay (.svf (&-> pt-out quad) vf12))
|
||||
(b! #t cfg-7 :delay (set! v0-1 v1-4)))
|
||||
@@ -283,12 +283,12 @@
|
||||
(.mul.vf vf8 vf8 vf4)
|
||||
(.mul.vf vf9 vf7 vf4)
|
||||
(.mul.vf vf5 vf4 vf4)
|
||||
(.add.y.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.y.vf vf9 vf9 vf9 :mask #b1)
|
||||
(.add.y.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.z.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.z.vf vf9 vf9 vf9 :mask #b1)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.y.vf.x vf8 vf8 vf8)
|
||||
(.add.y.vf.x vf9 vf9 vf9)
|
||||
(.add.y.vf.x vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf8 vf8 vf8)
|
||||
(.add.z.vf.x vf9 vf9 vf9)
|
||||
(.add.z.vf.x vf5 vf5 vf5)
|
||||
(.mov v1-0 vf9)
|
||||
(.mov a2-1 vf8)
|
||||
(.isqrt.vf Q vf0 vf5 :fsf #b11 :ftf #b0)
|
||||
@@ -297,14 +297,14 @@
|
||||
(cond
|
||||
((!= f2-0 0.0)
|
||||
(let ((f1-1 (/ f1-0 f2-0)))
|
||||
(.mov.vf vf4 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf4 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf4 vf4 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf4 Q)
|
||||
(let ((v0-0 f1-1))
|
||||
(.mov vf8 v0-0)
|
||||
(.svf (&-> arg1 quad) vf4)
|
||||
(.mul.x.vf acc vf7 vf8)
|
||||
(.add.mul.w.vf vf7 vf6 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf7 vf6 vf0 acc)
|
||||
(.svf (&-> arg0 quad) vf7)
|
||||
(.mov v1-1 vf7)
|
||||
v0-0)))
|
||||
|
||||
@@ -236,11 +236,11 @@
|
||||
(let ((t1-3 (* t1-2 16)))
|
||||
(.max.vf vf9 vf9 vf3)
|
||||
(let ((t2-4 (* t2-3 16)))
|
||||
(.mul.x.vf acc vf0 vf7 :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf7)
|
||||
(let ((t3-0 (* t0-5 16)))
|
||||
(.add.mul.y.vf acc vf0 vf7 acc :mask #b1000)
|
||||
(.add.mul.y.vf.w acc vf0 vf7 acc)
|
||||
(set! t0-4 (+ t1-3 a2-1))
|
||||
(.add.mul.z.vf vf7 vf0 vf7 acc :mask #b1000)
|
||||
(.add.mul.z.vf.w vf7 vf0 vf7 acc)
|
||||
(set! t1-1 (+ t2-4 a2-1))
|
||||
(.isqrt.vf Q vf0 vf7 :fsf #b11 :ftf #b11)
|
||||
(set! t2-2 (+ t3-0 a2-1)))))))))
|
||||
@@ -252,7 +252,7 @@
|
||||
(.svf (&-> a1-1 bbox4w min quad) vf8)
|
||||
(.wait.vf)
|
||||
(.svf (&-> a1-1 bbox4w max quad) vf9)
|
||||
(.mul.vf vf6 vf6 Q :mask #b111)
|
||||
(.mul.vf.xyz vf6 vf6 Q)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(.svf (&-> a1-1 normal quad) vf6)
|
||||
@@ -314,13 +314,13 @@
|
||||
(set! v1-0 (-> s5-0 vector 1 quad))
|
||||
(set! a0-1 (-> s5-0 vector 2 quad))
|
||||
(.sub.vf vf3 vf2 vf1)
|
||||
(.mul.w.vf vf4 vf2 vf2 :mask #b1000)
|
||||
(.mul.w.vf.w vf4 vf2 vf2)
|
||||
(.mul.vf vf3 vf3 vf3)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b10)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(.add.w.vf.y vf3 vf0 vf3)
|
||||
(.mov a1-7 vf3)
|
||||
(b! (>= (the-as int a1-7) 0) cfg-1 :delay (set! s4-0 (&+ s4-0 96))))
|
||||
(let ((v0-1 #t)) (b! #t cfg-8 :delay (nop!)) (the-as none 0) (label cfg-7) (set! v0-1 #f) (label cfg-8) v0-1)))
|
||||
|
||||
@@ -266,8 +266,8 @@
|
||||
(.lvf vf1 (&-> s2-1 quad))
|
||||
(let ((f0-2 (-> *display* frames-per-second))) (.mov at-0 f0-2))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-12 quad) vf1))
|
||||
(cond
|
||||
((type-type? (-> gp-0 type) collide-shape-moving)
|
||||
|
||||
@@ -65,15 +65,15 @@
|
||||
(.lvf vf2 (&-> a1-1 prim-core world-sphere quad))
|
||||
;; see if bsphere's overlap
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf5 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf5 vf3 vf4)
|
||||
(let ((f0-1 0.0))
|
||||
(.add.w.vf vf5 vf0 vf5 :mask #b1)
|
||||
(.add.w.vf.x vf5 vf0 vf5)
|
||||
(.mov v1-4 vf5)
|
||||
(b! (<= f0-1 v1-4) cfg-8) ;; they don't, fail!
|
||||
)
|
||||
@@ -126,14 +126,14 @@
|
||||
(b! (zero? a1-2) cfg-1 :delay (nop!))))
|
||||
;; check bspheres
|
||||
(.sub.vf vf3 vf2 vf1)
|
||||
(.add.w.vf vf4 vf2 vf1 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(let ((f0-0 0.0)) (.add.w.vf vf3 vf0 vf3 :mask #b1) (.mov a1-3 vf3) (b! (<= f0-0 a1-3) cfg-1))
|
||||
(.add.w.vf.w vf4 vf2 vf1)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-0 0.0)) (.add.w.vf.x vf3 vf0 vf3) (.mov a1-3 vf3) (b! (<= f0-0 a1-3) cfg-1))
|
||||
;; bspheres overlap, more accurate test is required.
|
||||
(should-push-away-test a0-1 arg0 arg1))
|
||||
(set! v1-0 (-> arg0 prim-core collide-as))))
|
||||
@@ -173,14 +173,14 @@
|
||||
(b! (zero? a2-2) cfg-1 :delay (.lvf vf1 (&-> a1-1 prim-core world-sphere quad)))
|
||||
(b! (zero? a0-2) cfg-1 :delay (nop!))))
|
||||
(.sub.vf vf3 vf2 vf1)
|
||||
(.add.w.vf vf4 vf2 vf1 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(let ((f0-0 0.0)) (.add.w.vf vf3 vf0 vf3 :mask #b1) (.mov a0-3 vf3) (b! (<= f0-0 a0-3) cfg-1))
|
||||
(.add.w.vf.w vf4 vf2 vf1)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-0 0.0)) (.add.w.vf.x vf3 vf0 vf3) (.mov a0-3 vf3) (b! (<= f0-0 a0-3) cfg-1))
|
||||
(should-push-away-test obj a1-1 arg1))
|
||||
(set! v1-0 (-> obj collide-with))))
|
||||
(b! #t cfg-1 :delay (.lvf vf2 (&-> obj prim-core world-sphere quad)))
|
||||
@@ -277,21 +277,21 @@
|
||||
;; if we're here, it's sphere->sphere.
|
||||
(.lvf vf1 (&-> obj prim-core world-sphere quad))
|
||||
(.lvf vf2 (&-> arg0 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf2 vf1 :mask #b111)
|
||||
(.add.w.vf vf5 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf4 vf3 vf3 :mask #b111)
|
||||
(.mul.x.vf acc vf0 vf4 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf4 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf4 vf0 vf4 acc :mask #b1000)
|
||||
(.sub.vf.xyz vf3 vf2 vf1)
|
||||
(.add.w.vf.w vf5 vf1 vf2)
|
||||
(.mul.vf.xyz vf4 vf3 vf3)
|
||||
(.mul.x.vf.w acc vf0 vf4)
|
||||
(.add.mul.y.vf.w acc vf0 vf4 acc)
|
||||
(.add.mul.z.vf.w vf4 vf0 vf4 acc)
|
||||
(.sqrt.vf Q vf4 :ftf #b11)
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.add.w.vf vf5 vf0 vf5 :mask #b1)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.add.w.vf.x vf5 vf0 vf5)
|
||||
(let ((f2-0 (-> arg1 best-dist)))
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf4 vf0 Q :mask #b1)
|
||||
(.sub.x.vf vf6 vf4 vf5 :mask #b1)
|
||||
(.mul.x.vf vf3 vf3 vf4 :mask #b111)
|
||||
(.add.vf.x vf4 vf0 Q)
|
||||
(.sub.x.vf.x vf6 vf4 vf5)
|
||||
(.mul.x.vf.xyz vf3 vf3 vf4)
|
||||
(.mov v1-3 vf6)
|
||||
(let ((f1-0 v1-3))
|
||||
(b! (<= f2-0 f1-0) cfg-13)
|
||||
@@ -863,8 +863,8 @@
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(let ((f0-0 (-> *display* seconds-per-frame))) (.mov at-0 f0-0))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-1 quad) vf1)
|
||||
(t9-0 obj v1-1))
|
||||
(none)))
|
||||
@@ -1018,8 +1018,8 @@
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(let ((f0-2 (-> *display* seconds-per-frame))) (.mov at-0 f0-2))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a1-1 quad) vf1)
|
||||
(t9-1 a0-12 a1-1))
|
||||
(set! (-> obj shadow-pos quad) (-> obj trans quad))
|
||||
@@ -1190,8 +1190,8 @@
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(let ((f0-0 (-> *display* seconds-per-frame))) (.mov at-0 f0-0))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-0 quad) vf1))
|
||||
;; add a bonus size if we are target.
|
||||
(let ((f0-2 (+ (vector-length a0-1) (if (= (-> obj process type) target) 4096.0 0.0))))
|
||||
@@ -1257,14 +1257,14 @@
|
||||
((logtest? (-> a0-1 collide-with) arg2)
|
||||
(.mov vf31 arg1)
|
||||
(.lvf vf1 (&-> v1-0 quad))
|
||||
(.add.x.vf vf31 vf31 vf1 :mask #b1)
|
||||
(.add.x.vf.x vf31 vf31 vf1)
|
||||
(.svf (&-> *pc-bounding-box-work* reg-vf31 quad) vf31) ;; added
|
||||
(cond
|
||||
((add-to-bounding-box a0-1 arg2)
|
||||
(.lvf vf29 (&-> *pc-bounding-box-work* reg-vf29 quad)) ;; added
|
||||
(.lvf vf30 (&-> *pc-bounding-box-work* reg-vf30 quad)) ;; added
|
||||
(.mov.vf vf29 vf0 :mask #b1000)
|
||||
(.mov.vf vf30 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf29 vf0)
|
||||
(.mov.vf.w vf30 vf0)
|
||||
(.svf (&-> arg0 min quad) vf29)
|
||||
(.svf (&-> arg0 max quad) vf30)
|
||||
(return #t))
|
||||
@@ -1283,9 +1283,9 @@
|
||||
(vf31 :class vf))
|
||||
(load-bounding-box-work)
|
||||
(.lvf vf1 (&-> obj prim-core world-sphere quad))
|
||||
(.add.w.vf vf2 vf31 vf1 :mask #b1)
|
||||
(.add.x.vf vf30 vf1 vf2 :mask #b111)
|
||||
(.sub.x.vf vf29 vf1 vf2 :mask #b111)
|
||||
(.add.w.vf.x vf2 vf31 vf1)
|
||||
(.add.x.vf.xyz vf30 vf1 vf2)
|
||||
(.sub.x.vf.xyz vf29 vf1 vf2)
|
||||
(save-bounding-box-work)
|
||||
#t))
|
||||
|
||||
@@ -1317,9 +1317,9 @@
|
||||
(load-bounding-box-work))
|
||||
(else
|
||||
(.lvf vf1 (&-> a0-1 prim-core world-sphere quad))
|
||||
(.add.w.vf vf2 vf31 vf1 :mask #b1)
|
||||
(.add.x.vf vf30 vf1 vf2 :mask #b111)
|
||||
(b! #t cfg-12 :delay (.sub.x.vf vf29 vf1 vf2 :mask #b111))
|
||||
(.add.w.vf.x vf2 vf31 vf1)
|
||||
(.add.x.vf.xyz vf30 vf1 vf2)
|
||||
(b! #t cfg-12 :delay (.sub.x.vf.xyz vf29 vf1 vf2))
|
||||
(.mov v1-10 vf29)))))
|
||||
;; and now
|
||||
(b! #t cfg-1 :delay (set! s3-0 (+ s3-0 1)))
|
||||
@@ -1339,9 +1339,9 @@
|
||||
(load-bounding-box-work))
|
||||
(else
|
||||
(.lvf vf1 (&-> a0-2 prim-core world-sphere quad))
|
||||
(.add.w.vf vf2 vf31 vf1 :mask #b1)
|
||||
(.add.x.vf vf4 vf1 vf2 :mask #b111)
|
||||
(.sub.x.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.add.w.vf.x vf2 vf31 vf1)
|
||||
(.add.x.vf.xyz vf4 vf1 vf2)
|
||||
(.sub.x.vf.xyz vf3 vf1 vf2)
|
||||
(.min.vf vf29 vf29 vf3)
|
||||
(.max.vf vf30 vf30 vf4)
|
||||
(.mov v1-19 vf30)))))
|
||||
@@ -1376,9 +1376,9 @@
|
||||
(load-bounding-box-work))
|
||||
(else
|
||||
(.lvf vf1 (&-> a0-1 prim-core world-sphere quad))
|
||||
(.add.w.vf vf2 vf31 vf1 :mask #b1)
|
||||
(.add.x.vf vf4 vf1 vf2 :mask #b111)
|
||||
(.sub.x.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.add.w.vf.x vf2 vf31 vf1)
|
||||
(.add.x.vf.xyz vf4 vf1 vf2)
|
||||
(.sub.x.vf.xyz vf3 vf1 vf2)
|
||||
(.min.vf vf29 vf29 vf3)
|
||||
(.max.vf vf30 vf30 vf4)
|
||||
(.mov v1-8 vf30)))))
|
||||
@@ -1542,22 +1542,22 @@
|
||||
(.add.mul.x.vf acc vf2 vf1 acc)
|
||||
(.lvf vf4 (&-> v1-4 vector 2 quad)))
|
||||
(.add.mul.y.vf acc vf3 vf1 acc)
|
||||
(.add.mul.z.vf vf1 vf4 vf1 acc :mask #b111)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.add.mul.z.vf.xyz vf1 vf4 vf1 acc)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.svf (&-> obj prim-core world-sphere quad) vf1)
|
||||
(.mov a0-2 vf1))
|
||||
(else
|
||||
(when (= a0-1 -2)
|
||||
(.lvf vf1 (&-> obj local-sphere quad))
|
||||
(.lvf vf2 (&-> v1-0 trans quad))
|
||||
(.add.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> obj prim-core world-sphere quad) vf1)
|
||||
(.mov a0-4 vf1)))))
|
||||
(else
|
||||
(when (!= a0-1 -1)
|
||||
(.lvf vf1 (&-> obj local-sphere quad))
|
||||
(.lvf vf2 (&-> v1-0 trans quad))
|
||||
(.add.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> obj prim-core world-sphere quad) vf1)
|
||||
(.mov a0-6 vf1)))))
|
||||
(when (= (-> obj type) collide-shape-prim-group)
|
||||
@@ -1800,8 +1800,8 @@
|
||||
(.lvf vf5 (&-> s2-0 best-from-tri normal quad))
|
||||
(.sub.vf vf2 vf4 vf3)
|
||||
(.mul.vf vf1 vf5 vf2)
|
||||
(.add.x.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.x.vf.y vf1 vf1 vf1)
|
||||
(.add.z.vf.y vf1 vf1 vf1)
|
||||
(.mov v1-20 vf1)
|
||||
(b! (< (the-as int v1-20) 0) cfg-18 :likely-delay (.sub.vf vf2 vf0 vf2))
|
||||
(label cfg-18)
|
||||
@@ -1812,8 +1812,8 @@
|
||||
(.lvf vf1 (&-> s1-0 quad))
|
||||
(let ((f0-6 (-> *display* frames-per-second))) (.mov at-0 f0-6))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-23 quad) vf1))
|
||||
(let ((s0-0 (-> s3-0 status)))
|
||||
;; step.
|
||||
@@ -1853,8 +1853,8 @@
|
||||
(.lvf vf5 (&-> s2-1 best-from-tri normal quad))
|
||||
(.sub.vf vf2 vf4 vf3)
|
||||
(.mul.vf vf1 vf5 vf2)
|
||||
(.add.x.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.x.vf.y vf1 vf1 vf1)
|
||||
(.add.z.vf.y vf1 vf1 vf1)
|
||||
(.mov v1-53 vf1)
|
||||
(b! (< (the-as int v1-53) 0) cfg-44 :likely-delay (.sub.vf vf2 vf0 vf2))
|
||||
(label cfg-44)
|
||||
@@ -1865,8 +1865,8 @@
|
||||
(.lvf vf1 (&-> s1-1 quad))
|
||||
(let ((f0-13 (-> *display* frames-per-second))) (.mov at-1 f0-13))
|
||||
(.mov vf2 at-1)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-56 quad) vf1))
|
||||
(let ((s0-1 (-> s3-1 status))) (integrate-and-collide! s3-1 s1-1) (set! (-> s3-1 status) s0-1)))
|
||||
(+! s5-2 -1)))
|
||||
@@ -1902,8 +1902,8 @@
|
||||
(.lvf vf5 (&-> s2-2 best-from-tri normal quad))
|
||||
(.sub.vf vf2 vf4 vf3)
|
||||
(.mul.vf vf1 vf5 vf2)
|
||||
(.add.x.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.x.vf.y vf1 vf1 vf1)
|
||||
(.add.z.vf.y vf1 vf1 vf1)
|
||||
(.mov v1-85 vf1)
|
||||
(b! (< (the-as int v1-85) 0) cfg-69 :likely-delay (.sub.vf vf2 vf0 vf2))
|
||||
(label cfg-69)
|
||||
@@ -1914,8 +1914,8 @@
|
||||
(.lvf vf1 (&-> s1-2 quad))
|
||||
(let ((f0-20 (-> *display* frames-per-second))) (.mov at-2 f0-20))
|
||||
(.mov vf2 at-2)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-88 quad) vf1))
|
||||
(let ((s0-2 (-> s3-2 status))) (integrate-and-collide! s3-2 s1-2) (set! (-> s3-2 status) s0-2)))
|
||||
(+! s5-3 -1)))
|
||||
@@ -1951,8 +1951,8 @@
|
||||
(.lvf vf5 (&-> s2-3 best-from-tri normal quad))
|
||||
(.sub.vf vf2 vf4 vf3)
|
||||
(.mul.vf vf1 vf5 vf2)
|
||||
(.add.x.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.x.vf.y vf1 vf1 vf1)
|
||||
(.add.z.vf.y vf1 vf1 vf1)
|
||||
(.mov v1-116 vf1)
|
||||
(b! (< (the-as int v1-116) 0) cfg-94 :likely-delay (.sub.vf vf2 vf0 vf2))
|
||||
(label cfg-94)
|
||||
@@ -1963,8 +1963,8 @@
|
||||
(.lvf vf1 (&-> s1-3 quad))
|
||||
(let ((f0-27 (-> *display* frames-per-second))) (.mov at-3 f0-27))
|
||||
(.mov vf2 at-3)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-119 quad) vf1))
|
||||
(let ((s0-3 (-> s3-3 status))) (integrate-and-collide! s3-3 s1-3) (set! (-> s3-3 status) s0-3)))
|
||||
(+! s5-4 -1)))
|
||||
@@ -2029,15 +2029,15 @@
|
||||
(when (logtest? v1-1 (-> a2-0 prim-core collide-as))
|
||||
(.lvf vf2 (&-> a2-0 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-0 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(let ((a1-6 (-> obj process)))
|
||||
(.mov a3-0 vf3)
|
||||
(let ((a0-8 (-> a0-7 process)))
|
||||
@@ -2071,15 +2071,15 @@
|
||||
(when (logtest? v1-1 (-> a2-1 prim-core collide-as))
|
||||
(.lvf vf2 (&-> a2-1 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-1 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(let ((a1-18 (-> obj process)))
|
||||
(.mov a3-3 vf3)
|
||||
(let ((a0-23 (-> a0-22 process)))
|
||||
@@ -2111,15 +2111,15 @@
|
||||
(when (logtest? v1-1 (-> a2-2 prim-core collide-as))
|
||||
(.lvf vf2 (&-> a2-2 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-2 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(let ((a1-30 (-> obj process)))
|
||||
(.mov a3-6 vf3)
|
||||
(let ((a0-36 (-> a0-35 process)))
|
||||
@@ -2151,15 +2151,15 @@
|
||||
(when (logtest? v1-1 (-> a2-3 prim-core collide-as))
|
||||
(.lvf vf2 (&-> a2-3 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-3 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(let ((a1-42 (-> obj process)))
|
||||
(.mov a3-9 vf3)
|
||||
(let ((a0-49 (-> a0-48 process)))
|
||||
@@ -2214,14 +2214,14 @@
|
||||
(let ((a1-2 (logand (-> a0-1 collide-with) v1-0)))
|
||||
(.lvf vf2 (&-> a0-1 prim-core world-sphere quad))
|
||||
(b! (zero? a1-2) cfg-1 :delay (.sub.vf vf3 vf2 vf1)))
|
||||
(.add.w.vf vf4 vf2 vf1 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(let ((f0-0 0.0)) (.add.w.vf vf3 vf0 vf3 :mask #b1) (.mov a1-3 vf3) (b! (< f0-0 a1-3) cfg-1))
|
||||
(.add.w.vf.w vf4 vf2 vf1)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-0 0.0)) (.add.w.vf.x vf3 vf0 vf3) (.mov a1-3 vf3) (b! (< f0-0 a1-3) cfg-1))
|
||||
(let ((a0-2 (overlaps-others-test a0-1 arg0 arg1)))
|
||||
(set! v1-0 (-> arg1 prim-core collide-as))
|
||||
(b! (= a0-2 #f) cfg-1 :delay (.lvf vf1 (&-> arg1 prim-core world-sphere quad))))))
|
||||
@@ -2256,14 +2256,14 @@
|
||||
(let ((a0-2 (logand v1-0 (-> a2-1 prim-core collide-as))))
|
||||
(.lvf vf1 (&-> a2-1 prim-core world-sphere quad))
|
||||
(b! (zero? a0-2) cfg-1 :delay (.sub.vf vf3 vf2 vf1)))
|
||||
(.add.w.vf vf4 vf2 vf1 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(let ((f0-0 0.0)) (.add.w.vf vf3 vf0 vf3 :mask #b1) (.mov a0-3 vf3) (b! (< f0-0 a0-3) cfg-1))
|
||||
(.add.w.vf.w vf4 vf2 vf1)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-0 0.0)) (.add.w.vf.x vf3 vf0 vf3) (.mov a0-3 vf3) (b! (< f0-0 a0-3) cfg-1))
|
||||
(let ((a0-5 (overlaps-others-test obj arg0 a2-1)))
|
||||
(set! v1-0 (-> obj collide-with))
|
||||
(b! (= a0-5 #f) cfg-1 :delay (.lvf vf2 (&-> obj prim-core world-sphere quad))))))
|
||||
|
||||
@@ -30,9 +30,9 @@
|
||||
(nop!)
|
||||
(nop!)
|
||||
(.lvf vf1 (&-> arg0 bsphere quad))
|
||||
(.add.w.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf2 vf1 vf1)
|
||||
(let ((v1-0 (-> arg1 min quad)))
|
||||
(.sub.w.vf vf1 vf1 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf1 vf1 vf1)
|
||||
(let ((a1-1 (-> arg1 max quad)))
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -118,13 +118,13 @@
|
||||
(nop!)
|
||||
(vitof12.xyzw vf7 vf7)
|
||||
(nop!)
|
||||
(.add.vf vf8 vf8 vf9 :mask #b111)
|
||||
(.add.vf.xyz vf8 vf8 vf9)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(.lvf vf9 (&-> arg0 bsphere quad))
|
||||
(vitof12.xyzw vf10 vf10)
|
||||
(nop!)
|
||||
(.mul.w.vf vf10 vf10 vf9 :mask #b1)
|
||||
(.mul.w.vf.x vf10 vf10 vf9)
|
||||
(nop!)
|
||||
(.mul.x.vf acc vf5 vf9)
|
||||
(nop!)
|
||||
@@ -134,9 +134,9 @@
|
||||
(let ((a1-1 (-> arg2 max quad)))
|
||||
(.add.mul.w.vf vf1 vf8 vf0 acc)
|
||||
(nop!)
|
||||
(.add.x.vf vf2 vf1 vf10 :mask #b111)
|
||||
(.add.x.vf.xyz vf2 vf1 vf10)
|
||||
(nop!)
|
||||
(.sub.x.vf vf1 vf1 vf10 :mask #b111)
|
||||
(.sub.x.vf.xyz vf1 vf1 vf10)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -171,11 +171,11 @@
|
||||
(.mov vf12 v1-2)
|
||||
(.itof.vf vf12 vf12)
|
||||
(nop!)
|
||||
(.add.vf vf10 vf10 vf12 :mask #b111)
|
||||
(.add.vf.xyz vf10 vf10 vf12)
|
||||
(nop!)
|
||||
(.add.vf vf9 vf9 vf10 :mask #b111)
|
||||
(.add.vf.xyz vf9 vf9 vf10)
|
||||
(nop!)
|
||||
(.add.w.vf vf11 vf0 vf9 :mask #b1)
|
||||
(.add.w.vf.x vf11 vf0 vf9)
|
||||
(nop!)
|
||||
(.mov a3-0 vf11)
|
||||
(nop!)
|
||||
|
||||
@@ -712,7 +712,7 @@
|
||||
(a0-18 (new 'stack-no-clear 'vector)))
|
||||
(.lvf vf16 (&-> v1-36 origin quad))
|
||||
(.lvf vf17 (&-> v1-36 bounds quad))
|
||||
(.mul.x.vf vf16 vf16 vf0 :mask #b1000)
|
||||
(.mul.x.vf.w vf16 vf16 vf0)
|
||||
(.add.vf vf16 vf16 vf17)
|
||||
(.svf (&-> a0-18 quad) vf16))
|
||||
(.mov v1-37 vf16))
|
||||
@@ -1456,13 +1456,13 @@
|
||||
((< (-> v1-0 w) 0.0)
|
||||
(.lvf vf1 (&-> a0-1 conerot quad))
|
||||
(.lvf vf2 (&-> v1-0 vec quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> a0-1 conerot quad) vf1)
|
||||
(.mov a0-2 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> a0-1 conerot quad))
|
||||
(.lvf vf2 (&-> v1-0 vec quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> a0-1 conerot quad) vf1)
|
||||
(.mov a0-3 vf1))))
|
||||
0
|
||||
|
||||
@@ -52,10 +52,10 @@
|
||||
(set-vector! arg0 0. 0. 0. 1.)
|
||||
(return arg0)))
|
||||
(.wait.vf)
|
||||
(.mul.vf vf2 vf2 Q :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf2 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.svf (&-> arg0 quad) vf2)
|
||||
arg0))
|
||||
|
||||
|
||||
@@ -692,16 +692,16 @@
|
||||
(vf9 :class vf))
|
||||
(init-vf0-vector)
|
||||
(let ((v1-1 (-> this tuning gravity))) (.mov vf9 v1-1))
|
||||
(.add.x.vf vf9 vf0 vf9 :mask #b10)
|
||||
(.mov.vf vf9 vf0 :mask #b1101)
|
||||
(.add.x.vf.y vf9 vf0 vf9)
|
||||
(.mov.vf.xzw vf9 vf0)
|
||||
0
|
||||
(let ((v1-4 (-> this tuning friction))) (.mov vf12 v1-4))
|
||||
(.add.x.vf vf12 vf0 vf12 :mask #b10)
|
||||
(.add.x.vf vf12 vf0 vf12 :mask #b100)
|
||||
(.add.x.vf.y vf12 vf0 vf12)
|
||||
(.add.x.vf.z vf12 vf0 vf12)
|
||||
0
|
||||
(let ((v1-7 (/ 1.0 (-> this tuning spring-mass)))) (.mov vf14 v1-7))
|
||||
(.add.x.vf vf14 vf0 vf14 :mask #b10)
|
||||
(.add.x.vf vf14 vf0 vf14 :mask #b100)
|
||||
(.add.x.vf.y vf14 vf0 vf14)
|
||||
(.add.x.vf.z vf14 vf0 vf14)
|
||||
0
|
||||
(let ((v1-11 (+ (-> this tuning num-spring-points) -2)))
|
||||
(let* ((a2-0 (-> this spring-point))
|
||||
@@ -710,11 +710,11 @@
|
||||
(label cfg-1)
|
||||
(.lvf vf1 (&-> a1-1 extra-force quad))
|
||||
(.lvf vf3 (&-> a1-1 local-pos quad))
|
||||
(.add.vf vf1 vf1 vf9 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf1 vf9)
|
||||
(.sub.vf vf5 vf2 vf3)
|
||||
(.mul.vf vf7 vf5 vf5 :mask #b111)
|
||||
(.add.y.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.z.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.mul.vf.xyz vf7 vf5 vf5)
|
||||
(.add.y.vf.x vf7 vf7 vf7)
|
||||
(.add.z.vf.x vf7 vf7 vf7)
|
||||
(.mov a2-1 vf7)
|
||||
(let ((f0-5 (- a2-1 (-> this tuning desired-spring-len))))
|
||||
(when (< 0.0 f0-5)
|
||||
@@ -722,15 +722,15 @@
|
||||
(.wait.vf)
|
||||
(.mul.vf vf5 vf5 Q)
|
||||
(let ((a2-5 (* f0-5 (-> this tuning spring-coefficient)))) (.mov vf10 a2-5))
|
||||
(.mul.x.vf vf10 vf5 vf10 :mask #b111)
|
||||
(.add.vf vf1 vf1 vf10 :mask #b111)
|
||||
(.mul.x.vf.xyz vf10 vf5 vf10)
|
||||
(.add.vf.xyz vf1 vf1 vf10)
|
||||
0))
|
||||
(let ((a2-8 (&+ a1-1 48)))
|
||||
(.lvf vf4 (&-> a2-8 local-pos quad))
|
||||
(.sub.vf vf6 vf4 vf3)
|
||||
(.mul.vf vf8 vf6 vf6 :mask #b111)
|
||||
(.add.y.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.z.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.mul.vf.xyz vf8 vf6 vf6)
|
||||
(.add.y.vf.x vf8 vf8 vf8)
|
||||
(.add.z.vf.x vf8 vf8 vf8)
|
||||
(.mov a3-0 vf8)
|
||||
(let ((f0-8 (- a3-0 (-> this tuning desired-spring-len))))
|
||||
(when (< 0.0 f0-8)
|
||||
@@ -738,13 +738,13 @@
|
||||
(.wait.vf)
|
||||
(.mul.vf vf6 vf6 Q)
|
||||
(let ((a3-4 (* f0-8 (-> this tuning spring-coefficient)))) (.mov vf10 a3-4))
|
||||
(.mul.x.vf vf10 vf6 vf10 :mask #b111)
|
||||
(.add.vf vf1 vf1 vf10 :mask #b111)
|
||||
(.mul.x.vf.xyz vf10 vf6 vf10)
|
||||
(.add.vf.xyz vf1 vf1 vf10)
|
||||
0))
|
||||
(.mul.vf vf15 vf1 vf14 :mask #b111)
|
||||
(.mul.vf.xyz vf15 vf1 vf14)
|
||||
(.lvf vf11 (&-> a1-1 vel quad))
|
||||
(.add.vf vf11 vf11 vf15 :mask #b111)
|
||||
(.mul.vf vf11 vf11 vf12 :mask #b111)
|
||||
(.add.vf.xyz vf11 vf11 vf15)
|
||||
(.mul.vf.xyz vf11 vf11 vf12)
|
||||
(.svf (&-> a1-1 vel quad) vf11)
|
||||
(set! a1-1 a2-8)))
|
||||
(.mov.vf vf2 vf3)
|
||||
@@ -752,16 +752,16 @@
|
||||
(+! v1-11 -1)
|
||||
(b! (> v1-11 0) cfg-1 :delay (nop!)))
|
||||
(let ((v1-13 (seconds-per-frame))) (.mov vf13 v1-13))
|
||||
(.add.x.vf vf13 vf0 vf13 :mask #b10)
|
||||
(.add.x.vf vf13 vf0 vf13 :mask #b100)
|
||||
(.add.x.vf.y vf13 vf0 vf13)
|
||||
(.add.x.vf.z vf13 vf0 vf13)
|
||||
0
|
||||
(let ((v1-17 (+ (-> this tuning num-spring-points) -2)))
|
||||
(let ((a0-1 (the-as object (&-> this stack 320))))
|
||||
(label cfg-7)
|
||||
(.lvf vf11 (&-> (the-as (inline-array vector) a0-1) 1 quad))
|
||||
(.lvf vf3 (&-> (the-as (inline-array vector) a0-1) 0 quad))
|
||||
(.mul.vf vf11 vf11 vf13 :mask #b111)
|
||||
(.add.vf vf3 vf3 vf11 :mask #b111)
|
||||
(.mul.vf.xyz vf11 vf11 vf13)
|
||||
(.add.vf.xyz vf3 vf3 vf11)
|
||||
(.svf (&-> (the-as (inline-array vector) a0-1) 0 quad) vf3)
|
||||
(set! a0-1 (-> (the-as (inline-array vector) a0-1) 3)))
|
||||
(+! v1-17 -1)
|
||||
@@ -806,11 +806,11 @@
|
||||
(let ((v1-3 (the-as ropebridge-spring-point (-> this spring-point))))
|
||||
(.mov vf2 a1-2)
|
||||
(.add.x.vf vf2 vf0 vf2)
|
||||
(.mov.vf vf2 vf0 :mask #b1011)
|
||||
(.mov.vf.xyw vf2 vf0)
|
||||
(countdown (a0-5 (-> this tuning num-spring-points))
|
||||
(.svf (&-> v1-3 local-pos quad) vf1)
|
||||
(.svf (&-> v1-3 vel quad) vf0)
|
||||
(.add.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf1 vf2)
|
||||
(&+! v1-3 48)))))))
|
||||
(none)))
|
||||
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
(.add.mul.z.vf vf5 vf3 vf5 acc)
|
||||
(.div.vf Q vf9 vf5 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf5 vf5 Q :mask #b111)
|
||||
(.mul.vf.xyz vf5 vf5 Q)
|
||||
(.add.vf vf5 vf5 vf8)
|
||||
(.max.x.vf vf5 vf5 vf0 :mask #b1000)
|
||||
(.min.x.vf vf5 vf5 vf6 :mask #b1000)
|
||||
(.max.x.vf.w vf5 vf5 vf0)
|
||||
(.min.x.vf.w vf5 vf5 vf6)
|
||||
(vftoi4.xyzw vf5 vf5)
|
||||
(.svf (&-> out quad) vf5)
|
||||
out))))
|
||||
|
||||
@@ -451,7 +451,7 @@
|
||||
(tod *time-of-day-context*))
|
||||
(.lvf vf16 (&-> arg1 origin quad))
|
||||
(.lvf vf17 (&-> arg1 bounds quad))
|
||||
(.mul.x.vf vf16 vf16 vf0 :mask #b1000)
|
||||
(.mul.x.vf.w vf16 vf16 vf0)
|
||||
(.add.vf vf16 vf16 vf17)
|
||||
(.svf (&-> s4-0 quad) vf16)
|
||||
(.lvf vf28 (&-> arg1 color-mult quad))
|
||||
@@ -558,15 +558,15 @@
|
||||
(.mul.w.vf acc vf27 vf0)
|
||||
(.add.mul.x.vf acc vf24 vf15 acc)
|
||||
(.add.mul.y.vf acc vf25 vf15 acc)
|
||||
(.add.mul.z.vf vf15 vf26 vf15 acc :mask #b111)
|
||||
(.add.mul.z.vf.xyz vf15 vf26 vf15 acc)
|
||||
(.mul.vf vf28 vf15 vf15)
|
||||
(.max.w.vf vf29 vf0 vf0)
|
||||
(.add.y.vf acc vf28 vf28)
|
||||
(.add.mul.z.vf vf28 vf29 vf28 acc :mask #b1)
|
||||
(.add.mul.z.vf.x vf28 vf29 vf28 acc)
|
||||
(.sqrt.vf Q vf28 :ftf #b0)
|
||||
(.sub.w.vf vf28 vf0 vf15 :mask #b1000)
|
||||
(.sub.w.vf.w vf28 vf0 vf15)
|
||||
(.wait.vf)
|
||||
(.add.vf vf15 vf28 Q :mask #b1000)
|
||||
(.add.vf.w vf15 vf28 Q)
|
||||
(.svf (&-> v1-42 quad) vf15)
|
||||
(when (< 0.0 (+ (-> v1-42 z) (-> arg1 bounds w)))
|
||||
(let ((lod-to-use 0))
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
(.add.vf vf5 vf4 vf3)
|
||||
(.min.vf vf1 vf4 vf5)
|
||||
(.max.vf vf2 vf4 vf5)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.svf (&-> this min quad) vf1)
|
||||
(.svf (&-> this max quad) vf2)
|
||||
0))
|
||||
@@ -90,10 +90,10 @@
|
||||
(.add.vf vf6 vf5 vf4)
|
||||
(.min.vf vf2 vf5 vf6)
|
||||
(.max.vf vf3 vf5 vf6)
|
||||
(.add.x.vf vf3 vf3 vf1 :mask #b111)
|
||||
(.sub.x.vf vf2 vf2 vf1 :mask #b111)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.add.x.vf.xyz vf3 vf3 vf1)
|
||||
(.sub.x.vf.xyz vf2 vf2 vf1)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.svf (&-> this min quad) vf2)
|
||||
(.svf (&-> this max quad) vf3)
|
||||
0))
|
||||
@@ -106,10 +106,10 @@
|
||||
(vf3 :class vf))
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 arg0)
|
||||
(.sub.w.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.add.w.vf vf3 vf1 vf1 :mask #b111)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.sub.w.vf.xyz vf2 vf1 vf1)
|
||||
(.add.w.vf.xyz vf3 vf1 vf1)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.svf this vf2)
|
||||
(.svf this vf3 :offset 16)
|
||||
0))
|
||||
@@ -136,10 +136,10 @@
|
||||
(.lvf current-max (-> this max))
|
||||
(dotimes (i count)
|
||||
(.lvf sph (-> spheres i))
|
||||
(.sub.w.vf sph-min sph sph :mask #b111)
|
||||
(.add.w.vf sph-max sph sph :mask #b111)
|
||||
(.min.vf current-min current-min sph-min :mask #b111)
|
||||
(.max.vf current-max current-max sph-max :mask #b111))
|
||||
(.sub.w.vf.xyz sph-min sph sph)
|
||||
(.add.w.vf.xyz sph-max sph sph)
|
||||
(.min.vf.xyz current-min current-min sph-min)
|
||||
(.max.vf.xyz current-max current-max sph-max))
|
||||
(.svf (-> this min) current-min)
|
||||
(.svf (-> this max) current-max)))
|
||||
0)
|
||||
@@ -160,11 +160,11 @@
|
||||
(set! current-max vf0)
|
||||
(dotimes (i count)
|
||||
(.lvf sph (-> spheres i))
|
||||
(.sub.w.vf sph-min sph sph :mask #b111)
|
||||
(.add.w.vf sph-max sph sph :mask #b111)
|
||||
(.sub.w.vf.xyz sph-min sph sph)
|
||||
(.add.w.vf.xyz sph-max sph sph)
|
||||
(cond
|
||||
((zero? i) (set! current-min sph-min) (set! current-max sph-max))
|
||||
(else (.min.vf current-min current-min sph-min :mask #b111) (.max.vf current-max current-max sph-max :mask #b111))))
|
||||
(else (.min.vf.xyz current-min current-min sph-min) (.max.vf.xyz current-max current-max sph-max))))
|
||||
(.svf (-> this min) current-min)
|
||||
(.svf (-> this max) current-max))
|
||||
0)
|
||||
|
||||
@@ -74,8 +74,8 @@
|
||||
(let ((v1-5 (-> s3-0 vector 3)))
|
||||
(.lvf vf4 (&-> (-> this origin) quad))
|
||||
(.lvf vf5 (&-> sv-896 vector 0 quad))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-5 quad) vf6))
|
||||
(set! sv-912 0)
|
||||
(while (< sv-912 8)
|
||||
@@ -175,8 +175,8 @@
|
||||
(let ((v1-5 (-> s3-0 vector 3)))
|
||||
(.lvf vf4 (&-> (-> this origin) quad))
|
||||
(.lvf vf5 (&-> sv-448 quad))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-5 quad) vf6))
|
||||
(set! sv-464 0)
|
||||
(while (< sv-464 8)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> src quad))
|
||||
(.lvf vf2 (&-> plane-normal quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
;; has the right magnitude, but rotation is off by 90 degrees
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
@@ -42,14 +42,14 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> src quad))
|
||||
(.lvf vf2 (&-> plane-normal quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
;; vf3 is the projection on the plane
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf2 acc)
|
||||
(.add.vf acc vf3 vf3 :mask #b111) ;; double that part
|
||||
(.sub.mul.w.vf vf3 vf1 vf0 acc :mask #b111) ;; and subtract the original
|
||||
(.add.vf.xyz acc vf3 vf3) ;; double that part
|
||||
(.sub.mul.w.vf.xyz vf3 vf1 vf0 acc) ;; and subtract the original
|
||||
(.svf (&-> dst quad) vf3)
|
||||
dst))
|
||||
|
||||
@@ -68,13 +68,13 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> src quad))
|
||||
(.lvf vf2 (&-> plane-normal quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
;; part on the plane (requires normal to be unit)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf2 acc)
|
||||
(.add.vf vf3 vf3 vf2 :mask #b111) ;; add normal to that.
|
||||
(.add.vf.xyz vf3 vf3 vf2) ;; add normal to that.
|
||||
(.svf (&-> dst quad) vf3)
|
||||
dst))
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> src quad))
|
||||
(.lvf vf2 (&-> plane-normal quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
@@ -108,7 +108,7 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> src quad))
|
||||
(.lvf vf2 (&-> plane-normal quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
@@ -146,12 +146,12 @@
|
||||
(.sub.vf vf1 vf4 vf3)
|
||||
(.sub.vf vf6 vf5 vf3)
|
||||
(.mul.vf vf2 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.sqrt.vf Q vf2 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.add.vf vf2 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf2 vf0 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.div.vf Q vf0 vf2 :fsf #b11 :ftf #b0)
|
||||
@@ -161,8 +161,8 @@
|
||||
(.mul.vf vf1 vf1 Q)
|
||||
(.mul.vf vf7 vf1 vf6)
|
||||
(let ((f1-0 0.0))
|
||||
(.add.y.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.z.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.y.vf.x vf7 vf7 vf7)
|
||||
(.add.z.vf.x vf7 vf7 vf7)
|
||||
(.mov v1-1 vf7)
|
||||
(let ((f0-0 v1-1))
|
||||
(b! (< f0-0 f1-0) cfg-4 :likely-delay (set! f0-0 f1-0))
|
||||
@@ -170,18 +170,18 @@
|
||||
(label cfg-4)
|
||||
(let ((v1-2 f0-0)) (.mov vf7 v1-2)))))
|
||||
(.mul.x.vf vf1 vf1 vf7)
|
||||
(b! (= arg3 #f) cfg-6 :delay (.mov.vf vf8 vf0 :mask #b1000))
|
||||
(.add.vf vf8 vf3 vf1 :mask #b111)
|
||||
(b! (= arg3 #f) cfg-6 :delay (.mov.vf.w vf8 vf0))
|
||||
(.add.vf.xyz vf8 vf3 vf1)
|
||||
(.svf (&-> arg3 quad) vf8)
|
||||
(label cfg-6)
|
||||
(.sub.vf vf2 vf6 vf1)
|
||||
(.mul.vf vf2 vf2 vf2)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.sqrt.vf Q vf2 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.add.vf vf2 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf2 vf0 Q)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf2)
|
||||
v0-0))
|
||||
@@ -218,27 +218,27 @@
|
||||
(.lvf vf1 (&-> arg2 vec quad))
|
||||
(.lvf vf6 (&-> arg1 quad))
|
||||
(.add.vf vf5 vf1 vf1)
|
||||
(.add.w.vf vf2 vf0 vf1 :mask #b1)
|
||||
(.add.z.vf vf2 vf0 vf1 :mask #b10)
|
||||
(.sub.y.vf vf2 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf2 vf0 vf0 :mask #b1000)
|
||||
(.sub.z.vf vf3 vf0 vf1 :mask #b1)
|
||||
(.add.w.vf vf3 vf0 vf1 :mask #b10)
|
||||
(.add.x.vf vf3 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.y.vf vf4 vf0 vf1 :mask #b1)
|
||||
(.sub.x.vf vf4 vf0 vf1 :mask #b10)
|
||||
(.add.w.vf vf4 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.w.vf.x vf2 vf0 vf1)
|
||||
(.add.z.vf.y vf2 vf0 vf1)
|
||||
(.sub.y.vf.z vf2 vf0 vf1)
|
||||
(.sub.w.vf.w vf2 vf0 vf0)
|
||||
(.sub.z.vf.x vf3 vf0 vf1)
|
||||
(.add.w.vf.y vf3 vf0 vf1)
|
||||
(.add.x.vf.z vf3 vf0 vf1)
|
||||
(.sub.w.vf.w vf3 vf0 vf0)
|
||||
(.add.y.vf.x vf4 vf0 vf1)
|
||||
(.sub.x.vf.y vf4 vf0 vf1)
|
||||
(.add.w.vf.z vf4 vf0 vf1)
|
||||
(.sub.w.vf.w vf4 vf0 vf0)
|
||||
(.outer.product.a.vf acc vf5 vf2)
|
||||
(.outer.product.b.vf vf2 vf2 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf4)
|
||||
(.outer.product.b.vf vf4 vf4 vf5 acc)
|
||||
(.add.w.vf vf2 vf2 vf0 :mask #b1)
|
||||
(.add.w.vf vf3 vf3 vf0 :mask #b10)
|
||||
(.add.w.vf vf4 vf4 vf0 :mask #b100)
|
||||
(.add.w.vf.x vf2 vf2 vf0)
|
||||
(.add.w.vf.y vf3 vf3 vf0)
|
||||
(.add.w.vf.z vf4 vf4 vf0)
|
||||
(.mul.w.vf acc vf0 vf6)
|
||||
(.add.mul.x.vf acc vf2 vf6 acc)
|
||||
(.add.mul.y.vf acc vf3 vf6 acc)
|
||||
@@ -486,12 +486,12 @@
|
||||
(.outer.product.a.vf acc vf2 vf1)
|
||||
(.outer.product.b.vf vf4 vf1 vf2 acc)
|
||||
(.mul.vf vf5 vf4 vf4)
|
||||
(.add.y.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.y.vf.x vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf5 vf5 vf5)
|
||||
(.isqrt.vf Q vf0 vf5 :fsf #b11 :ftf #b0)
|
||||
(.mov.vf vf4 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf4 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf4 vf4 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf4 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
@@ -509,7 +509,7 @@
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.lvf vf3 (&-> arg3 quad))
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.sub.vf vf2 vf2 vf1)
|
||||
(.sub.vf vf3 vf3 vf1)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
@@ -564,13 +564,13 @@
|
||||
(.outer.product.a.vf acc vf9 vf10)
|
||||
(.outer.product.b.vf vf16 vf10 vf9 acc)
|
||||
(.mul.vf vf12 vf15 vf1)
|
||||
(.add.x.vf vf11 vf11 vf11 :mask #b10)
|
||||
(.add.x.vf.y vf11 vf11 vf11)
|
||||
(.mul.vf vf13 vf16 vf1)
|
||||
(.add.x.vf vf12 vf12 vf12 :mask #b10)
|
||||
(.add.x.vf vf13 vf13 vf13 :mask #b10)
|
||||
(.add.z.vf vf11 vf11 vf11 :mask #b10)
|
||||
(.add.z.vf vf12 vf12 vf12 :mask #b10)
|
||||
(.add.z.vf vf13 vf13 vf13 :mask #b10)
|
||||
(.add.x.vf.y vf12 vf12 vf12)
|
||||
(.add.x.vf.y vf13 vf13 vf13)
|
||||
(.add.z.vf.y vf11 vf11 vf11)
|
||||
(.add.z.vf.y vf12 vf12 vf12)
|
||||
(.add.z.vf.y vf13 vf13 vf13)
|
||||
;; og:preserve-this these types were changed to uint to make this copy 64 bits.
|
||||
(.mov v1-0 vf11)
|
||||
(.mov a1-1 vf12)
|
||||
@@ -583,12 +583,12 @@
|
||||
(v1-3 (logior (logior v1-1 a1-3) a0-3)))
|
||||
(b! (nonzero? v1-3) cfg-3 :delay (set! v1-4 (the-as uint (+ v1-3 -1)))))
|
||||
(.sub.vf vf17 vf5 vf2)
|
||||
(.mov.vf vf18 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf18 vf0)
|
||||
(.outer.product.a.vf acc vf17 vf1)
|
||||
(.outer.product.b.vf vf18 vf1 vf17 acc)
|
||||
(.outer.product.a.vf acc vf1 vf18)
|
||||
(.outer.product.b.vf vf18 vf18 vf1 acc)
|
||||
(.add.vf vf18 vf18 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf18 vf18 vf2)
|
||||
(b! #t cfg-24 :delay (.svf (&-> arg0 quad) vf18))
|
||||
(nop!)
|
||||
(label cfg-3)
|
||||
@@ -660,13 +660,13 @@
|
||||
(.mul.vf vf3 vf3 vf1)
|
||||
(.nop.vf)
|
||||
(.mul.vf vf4 vf4 vf1)
|
||||
(.add.x.vf vf2 vf2 vf2 :mask #b10)
|
||||
(.add.x.vf vf3 vf3 vf3 :mask #b10)
|
||||
(.add.x.vf vf4 vf4 vf4 :mask #b10)
|
||||
(.add.x.vf.y vf2 vf2 vf2)
|
||||
(.add.x.vf.y vf3 vf3 vf3)
|
||||
(.add.x.vf.y vf4 vf4 vf4)
|
||||
(.nop.vf)
|
||||
(.add.z.vf vf2 vf2 vf2 :mask #b10)
|
||||
(.add.z.vf vf3 vf3 vf3 :mask #b10)
|
||||
(.add.z.vf vf4 vf4 vf4 :mask #b10)
|
||||
(.add.z.vf.y vf2 vf2 vf2)
|
||||
(.add.z.vf.y vf3 vf3 vf3)
|
||||
(.add.z.vf.y vf4 vf4 vf4)
|
||||
(.nop.vf)
|
||||
(.mov a0-1 vf2)
|
||||
(.mov a1-1 vf3)
|
||||
@@ -734,11 +734,11 @@
|
||||
(.sub.vf vf5 vf4 vf3)
|
||||
(.mul.x.vf vf1 vf1 vf2)
|
||||
(.mul.x.vf vf5 vf5 vf2)
|
||||
(.mul.vf vf5 vf5 vf5 :mask #b101)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.mul.vf.xz vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf5 vf5 vf5)
|
||||
(.sqrt.vf Q vf5 :ftf #b0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf1 vf0 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> a1-2 quad) vf1)
|
||||
@@ -939,7 +939,7 @@
|
||||
;; evaluate polynomial!
|
||||
;;(.sll v1-8 v1-7 4)
|
||||
(set! v1-8 (* v1-7 16))
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(let ((v1-9 (+ v1-8 (the-as int arg2))))
|
||||
(nop!)
|
||||
(nop!)
|
||||
@@ -952,11 +952,11 @@
|
||||
(.lvf vf5 (+ v1-9 48)))
|
||||
(.mul.x.vf acc vf2 vf6)
|
||||
(nop!)
|
||||
(.add.mul.y.vf acc vf3 vf6 acc :mask #b111)
|
||||
(.add.mul.y.vf.xyz acc vf3 vf6 acc)
|
||||
(nop!)
|
||||
(.add.mul.z.vf acc vf4 vf6 acc :mask #b111)
|
||||
(.add.mul.z.vf.xyz acc vf4 vf6 acc)
|
||||
(nop!)
|
||||
(.add.mul.w.vf vf1 vf5 vf6 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf1 vf5 vf6 acc)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
|
||||
@@ -771,8 +771,8 @@
|
||||
(+! (-> temp-vec y) shadow-y)
|
||||
(.lvf vf26 (&-> temp-vec quad)))
|
||||
;; original version
|
||||
; (.add.w.vf vf26 vf26 vf0 :mask #b11)
|
||||
; (.add.w.vf vf26 vf26 vf0 :mask #b1)
|
||||
; (.add.w.vf.xy vf26 vf26 vf0)
|
||||
; (.add.w.vf.x vf26 vf26 vf0)
|
||||
(let ((v1-1 (-> arg2 mat)))
|
||||
(.lvf vf25 (&-> arg2 context-vec quad))
|
||||
(.lvf vf23 (&-> arg2 origin quad))
|
||||
@@ -782,11 +782,11 @@
|
||||
(.lvf vf30 (&-> v1-1 vector 2 quad))
|
||||
(.lvf vf31 (&-> v1-1 vector 3 quad)))
|
||||
(let ((v1-3 *video-parms*)) (.lvf vf1 (+ (the-as int v1-3) 64)))
|
||||
(.mul.vf vf25 vf25 vf1 :mask #b11)
|
||||
(.mul.vf vf23 vf23 vf1 :mask #b11)
|
||||
(.mul.vf.xy vf25 vf25 vf1)
|
||||
(.mul.vf.xy vf23 vf23 vf1)
|
||||
;; hack! fixes small font widescreen
|
||||
(unless (logtest? (-> arg2 flags) (font-flags pc-hack))
|
||||
(.mul.vf vf24 vf24 vf1 :mask #b11))
|
||||
(.mul.vf.xy vf24 vf24 vf1))
|
||||
(let ((fw *font-work*))
|
||||
(set! (-> fw buf) context)
|
||||
(let ((dma-out (-> context base)))
|
||||
@@ -912,19 +912,19 @@
|
||||
(label cfg-42)
|
||||
(.mov vf1 t6-2)
|
||||
(let ((t4-9 (+ t5-7 -45))) (b! (zero? t5-7) cfg-46 :delay (.itof.vf vf1 vf1)) (b! (zero? t4-9) cfg-45))
|
||||
(b! #t cfg-4 :delay (.add.x.vf vf23 vf23 vf1 :mask #b1))
|
||||
(b! #t cfg-4 :delay (.add.x.vf.x vf23 vf23 vf1))
|
||||
(label cfg-45)
|
||||
(b! #t cfg-4 :delay (.sub.x.vf vf23 vf23 vf1 :mask #b1))
|
||||
(b! #t cfg-4 :delay (.sub.x.vf.x vf23 vf23 vf1))
|
||||
(label cfg-46)
|
||||
(b! #t cfg-4 :delay (.add.x.vf vf23 vf0 vf1 :mask #b1))
|
||||
(b! #t cfg-4 :delay (.add.x.vf.x vf23 vf0 vf1))
|
||||
(label cfg-47)
|
||||
(.mov vf1 t6-2))
|
||||
(let ((t4-10 (+ t5-7 -45))) (b! (zero? t5-7) cfg-51 :delay (.itof.vf vf1 vf1)) (b! (zero? t4-10) cfg-50))
|
||||
(b! #t cfg-4 :delay (.add.x.vf vf23 vf23 vf1 :mask #b10))
|
||||
(b! #t cfg-4 :delay (.add.x.vf.y vf23 vf23 vf1))
|
||||
(label cfg-50)
|
||||
(b! #t cfg-4 :delay (.sub.x.vf vf23 vf23 vf1 :mask #b10))
|
||||
(b! #t cfg-4 :delay (.sub.x.vf.y vf23 vf23 vf1))
|
||||
(label cfg-51)
|
||||
(b! #t cfg-4 :delay (.add.x.vf vf23 vf0 vf1 :mask #b10))
|
||||
(b! #t cfg-4 :delay (.add.x.vf.y vf23 vf0 vf1))
|
||||
(label cfg-52)
|
||||
(b! #t cfg-4 :delay (.svf (&-> fw save quad) vf23))
|
||||
(label cfg-53)
|
||||
@@ -932,12 +932,12 @@
|
||||
(label cfg-54)
|
||||
(let ((t4-11 (-> (the-as (pointer uint8) str-in) 4)))
|
||||
(set! str-in (the-as string (&-> (the-as (pointer uint8) str-in) 1)))
|
||||
(.add.vf vf4 vf23 vf15 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf23 vf15)
|
||||
(let ((t4-12 (logand t4-11 127)))
|
||||
(.sub.vf vf1 vf25 vf23)
|
||||
(let ((t4-13 (+ t4-12 255))) (b! #t cfg-62 :delay (.sll t5-9 t4-13 4)))))
|
||||
(label cfg-55)
|
||||
(.add.vf vf4 vf23 vf15 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf23 vf15)
|
||||
(.sll t5-9 str-char 4)
|
||||
(.sub.vf vf1 vf25 vf23)
|
||||
(b! (= str-char 10) cfg-57 :delay (set! fc-cr (+ str-char -13))))
|
||||
@@ -946,22 +946,22 @@
|
||||
(.sub.vf vf1 vf23 vf24)
|
||||
(b! (logtest? flags 16) cfg-60 :delay (set! t4-16 (logand flags 4)))
|
||||
(b! (nonzero? t4-16) cfg-61)
|
||||
(.add.x.vf vf23 vf0 vf24 :mask #b1)
|
||||
(.add.x.vf.x vf23 vf0 vf24)
|
||||
(.svf (&-> (the-as font-work fw2) justify 0 quad) vf23)
|
||||
(.add.w.vf vf23 vf23 vf15 :mask #b10)
|
||||
(.add.w.vf.y vf23 vf23 vf15)
|
||||
(b! #t cfg-4 :delay (set! fw2 (-> (the-as font-work fw2) font-tmpl gif)))
|
||||
(label cfg-60)
|
||||
(.sub.vf vf23 vf24 vf1 :mask #b1)
|
||||
(.sub.vf.x vf23 vf24 vf1)
|
||||
(.svf (&-> (the-as font-work fw2) justify 0 quad) vf23)
|
||||
(.add.x.vf vf23 vf0 vf24 :mask #b1)
|
||||
(.add.w.vf vf23 vf23 vf15 :mask #b10)
|
||||
(.add.x.vf.x vf23 vf0 vf24)
|
||||
(.add.w.vf.y vf23 vf23 vf15)
|
||||
(b! #t cfg-4 :delay (set! fw2 (-> (the-as font-work fw2) font-tmpl gif)))
|
||||
(label cfg-61)
|
||||
(.mul.w.vf vf1 vf1 vf16 :mask #b1)
|
||||
(.sub.vf vf23 vf24 vf1 :mask #b1)
|
||||
(.mul.w.vf.x vf1 vf1 vf16)
|
||||
(.sub.vf.x vf23 vf24 vf1)
|
||||
(.svf (&-> (the-as font-work fw2) justify 0 quad) vf23)
|
||||
(.add.x.vf vf23 vf0 vf24 :mask #b1)
|
||||
(.add.w.vf vf23 vf23 vf15 :mask #b10)
|
||||
(.add.x.vf.x vf23 vf0 vf24)
|
||||
(.add.w.vf.y vf23 vf23 vf15)
|
||||
(b! #t cfg-4 :delay (set! fw2 (-> (the-as font-work fw2) font-tmpl gif)))
|
||||
(label cfg-62)
|
||||
(.addu t4-17 t5-9 font-table-to-use)
|
||||
@@ -970,23 +970,23 @@
|
||||
(b! (< (the-as int t4-18) 0) cfg-67 :delay (.sra t4-19 t4-18 31))
|
||||
(.mul.vf vf19 vf5 vf13)
|
||||
(b! (zero? (logand flags 2)) cfg-65)
|
||||
(b! #t cfg-66 :delay (.add.w.vf vf23 vf23 vf19 :mask #b1))
|
||||
(b! #t cfg-66 :delay (.add.w.vf.x vf23 vf23 vf19))
|
||||
(label cfg-65)
|
||||
(.add.w.vf vf23 vf23 vf14 :mask #b1)
|
||||
(.add.w.vf.x vf23 vf23 vf14)
|
||||
(label cfg-66)
|
||||
(b! #t cfg-4)
|
||||
(label cfg-67)
|
||||
(.sub.vf vf1 vf23 vf24)
|
||||
(b! (logtest? flags 16) cfg-70 :delay (set! a0-2 (logand flags 4)))
|
||||
(b! (nonzero? a0-2) cfg-71)
|
||||
(.add.x.vf vf23 vf0 vf24 :mask #b1)
|
||||
(.add.x.vf.x vf23 vf0 vf24)
|
||||
(b! #t cfg-72 :delay (.svf (&-> (the-as font-work fw2) justify 0 quad) vf23))
|
||||
(label cfg-70)
|
||||
(.sub.vf vf23 vf24 vf1 :mask #b1)
|
||||
(.sub.vf.x vf23 vf24 vf1)
|
||||
(b! #t cfg-72 :delay (.svf (&-> (the-as font-work fw2) justify 0 quad) vf23))
|
||||
(label cfg-71)
|
||||
(.mul.w.vf vf1 vf1 vf16 :mask #b1)
|
||||
(.sub.vf vf23 vf24 vf1 :mask #b1)
|
||||
(.mul.w.vf.x vf1 vf1 vf16)
|
||||
(.sub.vf.x vf23 vf24 vf1)
|
||||
(.svf (&-> (the-as font-work fw2) justify 0 quad) vf23))
|
||||
(label cfg-72)
|
||||
(let ((a0-3 (-> fw flags-signed)))
|
||||
@@ -1062,19 +1062,19 @@
|
||||
(label cfg-109)
|
||||
(.mov vf1 t6-9)
|
||||
(let ((t4-26 (+ t5-14 -45))) (b! (zero? t5-14) cfg-113 :delay (.itof.vf vf1 vf1)) (b! (zero? t4-26) cfg-112))
|
||||
(b! #t cfg-73 :delay (.add.x.vf vf23 vf23 vf1 :mask #b1))
|
||||
(b! #t cfg-73 :delay (.add.x.vf.x vf23 vf23 vf1))
|
||||
(label cfg-112)
|
||||
(b! #t cfg-73 :delay (.sub.x.vf vf23 vf23 vf1 :mask #b1))
|
||||
(b! #t cfg-73 :delay (.sub.x.vf.x vf23 vf23 vf1))
|
||||
(label cfg-113)
|
||||
(b! #t cfg-73 :delay (.add.x.vf vf23 vf0 vf1 :mask #b1))
|
||||
(b! #t cfg-73 :delay (.add.x.vf.x vf23 vf0 vf1))
|
||||
(label cfg-114)
|
||||
(.mov vf1 t6-9))
|
||||
(let ((t4-27 (+ t5-14 -45))) (b! (zero? t5-14) cfg-118 :delay (.itof.vf vf1 vf1)) (b! (zero? t4-27) cfg-117))
|
||||
(b! #t cfg-73 :delay (.add.x.vf vf23 vf23 vf1 :mask #b10))
|
||||
(b! #t cfg-73 :delay (.add.x.vf.y vf23 vf23 vf1))
|
||||
(label cfg-117)
|
||||
(b! #t cfg-73 :delay (.sub.x.vf vf23 vf23 vf1 :mask #b10))
|
||||
(b! #t cfg-73 :delay (.sub.x.vf.y vf23 vf23 vf1))
|
||||
(label cfg-118)
|
||||
(b! #t cfg-73 :delay (.add.x.vf vf23 vf0 vf1 :mask #b10))
|
||||
(b! #t cfg-73 :delay (.add.x.vf.y vf23 vf0 vf1))
|
||||
(label cfg-119)
|
||||
(b! #t cfg-73 :delay (.svf (&-> fw save quad) vf23))
|
||||
(label cfg-120)
|
||||
@@ -1082,12 +1082,12 @@
|
||||
(label cfg-121)
|
||||
(set! t4-21 (-> t3-7 4))
|
||||
(set! t3-7 (&-> t3-7 1))
|
||||
(.add.vf vf4 vf23 vf15 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf23 vf15)
|
||||
(let ((t5-15 (logand t4-21 127)))
|
||||
(.sub.vf vf1 vf25 vf23)
|
||||
(let ((t5-16 (+ t5-15 255))) (b! #t cfg-125 :delay (.sll t5-17 t5-16 4))))
|
||||
(label cfg-122)
|
||||
(.add.vf vf4 vf23 vf15 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf23 vf15)
|
||||
(.sll t5-17 t4-21 4)
|
||||
(.sub.vf vf1 vf25 vf23)
|
||||
(b! (= t4-21 10) cfg-124 :delay (set! t6-16 (+ t4-21 -13)))
|
||||
@@ -1099,14 +1099,14 @@
|
||||
(.addu t5-18 t5-17 font-table-to-use)
|
||||
(.lvf vf5 (+ t5-18 -256))
|
||||
(.mov t5-19 vf1)
|
||||
(b! (< (the-as int t5-19) 0) cfg-131 :delay (.add.vf vf6 vf5 vf16 :mask #b111))
|
||||
(b! (< (the-as int t5-19) 0) cfg-131 :delay (.add.vf.xyz vf6 vf5 vf16))
|
||||
(.sra t5-20 t5-19 31)
|
||||
(.add.vf vf7 vf5 vf17 :mask #b111)
|
||||
(b! (< t5-20 0) cfg-73 :delay (.add.vf vf8 vf5 vf18 :mask #b111))
|
||||
(.add.vf vf1 vf23 vf0 :mask #b111)
|
||||
(.add.vf vf2 vf23 vf13 :mask #b111)
|
||||
(.add.vf.xyz vf7 vf5 vf17)
|
||||
(b! (< t5-20 0) cfg-73 :delay (.add.vf.xyz vf8 vf5 vf18))
|
||||
(.add.vf.xyz vf1 vf23 vf0)
|
||||
(.add.vf.xyz vf2 vf23 vf13)
|
||||
(.svf (&-> fw current-verts tex-st 0 quad) vf5)
|
||||
(.add.vf vf3 vf23 vf14 :mask #b111)
|
||||
(.add.vf.xyz vf3 vf23 vf14)
|
||||
(.svf (&-> fw current-verts tex-st 1 quad) vf6)
|
||||
(.mul.vf vf19 vf5 vf13)
|
||||
(.svf (&-> fw current-verts tex-st 2 quad) vf7)
|
||||
@@ -1148,9 +1148,9 @@
|
||||
;; note: this relies on (somewhat) undefined behavior that the upper 64-bits of a
|
||||
;; gpr aren't changed during movn.
|
||||
(.movn-128 t5-23 q-hi-tmpl t4-28 t5-22)))))
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(set! (-> (the-as (pointer uint128) dma-out) 2) (the-as uint128 t5-23))
|
||||
(.mul.vf vf5 vf5 Q :mask #b111)
|
||||
(.mul.vf.xyz vf5 vf5 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.div.vf Q vf25 vf2 :fsf #b10 :ftf #b11)
|
||||
@@ -1158,8 +1158,8 @@
|
||||
(.add.vf vf1 vf1 vf26)
|
||||
(.lvf vf9 (&-> fw color-shadow quad))
|
||||
(vftoi4.xyzw vf1 vf1)
|
||||
(.mul.vf vf2 vf2 Q :mask #b111)
|
||||
(.mul.vf vf6 vf6 Q :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf2 Q)
|
||||
(.mul.vf.xyz vf6 vf6 Q)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 3) vf5)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1168,8 +1168,8 @@
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 5) vf1)
|
||||
(.add.vf vf2 vf2 vf26)
|
||||
(vftoi4.xyzw vf2 vf2)
|
||||
(.mul.vf vf3 vf3 Q :mask #b111)
|
||||
(.mul.vf vf7 vf7 Q :mask #b111)
|
||||
(.mul.vf.xyz vf3 vf3 Q)
|
||||
(.mul.vf.xyz vf7 vf7 Q)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 6) vf6)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1178,16 +1178,16 @@
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 8) vf2)
|
||||
(.add.vf vf3 vf3 vf26)
|
||||
(vftoi4.xyzw vf3 vf3)
|
||||
(.mul.vf vf4 vf4 Q :mask #b111)
|
||||
(.mul.vf vf8 vf8 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf4 Q)
|
||||
(.mul.vf.xyz vf8 vf8 Q)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 9) vf7)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 10) vf9)
|
||||
(.add.vf vf4 vf4 vf26)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 11) vf3)
|
||||
(let ((t4-29 (logand a0-3 2))) (b! (zero? t4-29) cfg-129)))
|
||||
(b! #t cfg-130 :delay (.add.w.vf vf23 vf23 vf19 :mask #b1))
|
||||
(b! #t cfg-130 :delay (.add.w.vf.x vf23 vf23 vf19))
|
||||
(label cfg-129)
|
||||
(.add.w.vf vf23 vf23 vf14 :mask #b1)
|
||||
(.add.w.vf.x vf23 vf23 vf14)
|
||||
(label cfg-130)
|
||||
(vftoi4.xyzw vf4 vf4)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 12) vf8)
|
||||
@@ -1297,19 +1297,19 @@
|
||||
(label cfg-167)
|
||||
(.mov vf1 t6-19)
|
||||
(let ((t4-39 (+ t5-28 -45))) (b! (zero? t5-28) cfg-171 :delay (.itof.vf vf1 vf1)) (b! (zero? t4-39) cfg-170))
|
||||
(b! #t cfg-132 :delay (.add.x.vf vf23 vf23 vf1 :mask #b1))
|
||||
(b! #t cfg-132 :delay (.add.x.vf.x vf23 vf23 vf1))
|
||||
(label cfg-170)
|
||||
(b! #t cfg-132 :delay (.sub.x.vf vf23 vf23 vf1 :mask #b1))
|
||||
(b! #t cfg-132 :delay (.sub.x.vf.x vf23 vf23 vf1))
|
||||
(label cfg-171)
|
||||
(b! #t cfg-132 :delay (.add.x.vf vf23 vf0 vf1 :mask #b1))
|
||||
(b! #t cfg-132 :delay (.add.x.vf.x vf23 vf0 vf1))
|
||||
(label cfg-172)
|
||||
(.mov vf1 t6-19))
|
||||
(let ((t4-40 (+ t5-28 -45))) (b! (zero? t5-28) cfg-176 :delay (.itof.vf vf1 vf1)) (b! (zero? t4-40) cfg-175))
|
||||
(b! #t cfg-132 :delay (.add.x.vf vf23 vf23 vf1 :mask #b10))
|
||||
(b! #t cfg-132 :delay (.add.x.vf.y vf23 vf23 vf1))
|
||||
(label cfg-175)
|
||||
(b! #t cfg-132 :delay (.sub.x.vf vf23 vf23 vf1 :mask #b10))
|
||||
(b! #t cfg-132 :delay (.sub.x.vf.y vf23 vf23 vf1))
|
||||
(label cfg-176)
|
||||
(b! #t cfg-132 :delay (.add.x.vf vf23 vf0 vf1 :mask #b10))
|
||||
(b! #t cfg-132 :delay (.add.x.vf.y vf23 vf0 vf1))
|
||||
(label cfg-177)
|
||||
(let ((t4-41 (-> fw last-color-32)))
|
||||
(.lvf vf9 (&-> fw current-verts color 0 quad))
|
||||
@@ -1341,12 +1341,12 @@
|
||||
(label cfg-179)
|
||||
(set! t4-30 (-> t3-8 4))
|
||||
(set! t3-8 (&-> t3-8 1))
|
||||
(.add.vf vf4 vf23 vf15 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf23 vf15)
|
||||
(let ((t5-37 (logand t4-30 127)))
|
||||
(.sub.vf vf1 vf25 vf23)
|
||||
(let ((t5-38 (+ t5-37 255))) (b! #t cfg-183 :delay (.sll t5-39 t5-38 4))))
|
||||
(label cfg-180)
|
||||
(.add.vf vf4 vf23 vf15 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf23 vf15)
|
||||
(.sll t5-39 t4-30 4)
|
||||
(.sub.vf vf1 vf25 vf23)
|
||||
(b! (= t4-30 10) cfg-182 :delay (set! t6-31 (+ t4-30 -13)))
|
||||
@@ -1358,15 +1358,15 @@
|
||||
(.addu t5-40 t5-39 font-table-to-use)
|
||||
(.lvf vf5 (+ t5-40 -256))
|
||||
(.mov t5-41 vf1)
|
||||
(b! (< (the-as int t5-41) 0) cfg-189 :delay (.add.vf vf6 vf5 vf16 :mask #b111))
|
||||
(b! (< (the-as int t5-41) 0) cfg-189 :delay (.add.vf.xyz vf6 vf5 vf16))
|
||||
(.sra t5-42 t5-41 31)
|
||||
(.add.vf vf7 vf5 vf17 :mask #b111)
|
||||
(b! (< t5-42 0) cfg-132 :delay (.add.vf vf8 vf5 vf18 :mask #b111))
|
||||
(.add.vf vf1 vf23 vf0 :mask #b111)
|
||||
(.add.vf vf2 vf23 vf13 :mask #b111)
|
||||
(.add.vf vf3 vf23 vf14 :mask #b111)
|
||||
(.add.vf.xyz vf7 vf5 vf17)
|
||||
(b! (< t5-42 0) cfg-132 :delay (.add.vf.xyz vf8 vf5 vf18))
|
||||
(.add.vf.xyz vf1 vf23 vf0)
|
||||
(.add.vf.xyz vf2 vf23 vf13)
|
||||
(.add.vf.xyz vf3 vf23 vf14)
|
||||
(.svf (&-> fw current-verts tex-st 0 quad) vf5)
|
||||
(.add.vf vf4 vf23 vf15 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf23 vf15)
|
||||
(.svf (&-> fw current-verts tex-st 1 quad) vf6)
|
||||
(.mul.vf vf19 vf5 vf13)
|
||||
(.svf (&-> fw current-verts tex-st 2 quad) vf7)
|
||||
@@ -1406,9 +1406,9 @@
|
||||
(let ((t4-43 (logand t4-30 128)))
|
||||
(.lvf vf7 (&-> fw current-verts tex-st 2 quad))
|
||||
(.movn-128 t5-45 q-hi-tmpl t4-43 t5-44)))))
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(set! (-> (the-as (pointer uint128) dma-out) 2) (the uint128 t5-45))
|
||||
(.mul.vf vf5 vf5 Q :mask #b111)
|
||||
(.mul.vf.xyz vf5 vf5 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.div.vf Q vf25 vf2 :fsf #b10 :ftf #b11)
|
||||
@@ -1418,8 +1418,8 @@
|
||||
(.lvf vf10 (&-> fw current-verts color 1 quad))
|
||||
(.lvf vf11 (&-> fw current-verts color 2 quad))
|
||||
(vftoi4.xyzw vf1 vf1)
|
||||
(.mul.vf vf2 vf2 Q :mask #b111)
|
||||
(.mul.vf vf6 vf6 Q :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf2 Q)
|
||||
(.mul.vf.xyz vf6 vf6 Q)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 3) vf5)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1429,8 +1429,8 @@
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 5) vf1)
|
||||
(.add.vf vf2 vf2 vf27)
|
||||
(vftoi4.xyzw vf2 vf2)
|
||||
(.mul.vf vf3 vf3 Q :mask #b111)
|
||||
(.mul.vf vf7 vf7 Q :mask #b111)
|
||||
(.mul.vf.xyz vf3 vf3 Q)
|
||||
(.mul.vf.xyz vf7 vf7 Q)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 6) vf6)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1439,17 +1439,17 @@
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 8) vf2)
|
||||
(.add.vf vf3 vf3 vf27)
|
||||
(vftoi4.xyzw vf3 vf3)
|
||||
(.mul.vf vf4 vf4 Q :mask #b111)
|
||||
(.mul.vf vf8 vf8 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf4 Q)
|
||||
(.mul.vf.xyz vf8 vf8 Q)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 9) vf7)
|
||||
(.svf (&-> (the-as (pointer uint128) dma-out) 10) vf11)
|
||||
(.add.vf vf4 vf4 vf27)
|
||||
;;(s.vf! (+ dma-out 176) vf3)
|
||||
(.svf (+ (the-as int dma-out) 176) vf3)
|
||||
(let ((t4-44 (logand a0-4 2))) (b! (zero? t4-44) cfg-187))))))
|
||||
(b! #t cfg-188 :delay (.add.w.vf vf23 vf23 vf19 :mask #b1))
|
||||
(b! #t cfg-188 :delay (.add.w.vf.x vf23 vf23 vf19))
|
||||
(label cfg-187)
|
||||
(.add.w.vf vf23 vf23 vf14 :mask #b1)
|
||||
(.add.w.vf.x vf23 vf23 vf14)
|
||||
(label cfg-188)
|
||||
(vftoi4.xyzw vf4 vf4)
|
||||
;;(s.vf! (+ dma-out 192) vf8)
|
||||
@@ -1491,11 +1491,11 @@
|
||||
(let ((flags (-> arg1 flags))
|
||||
(work *font-work*))
|
||||
(.lvf vf1 (&-> *video-parms* relative-x-scale-reciprical))
|
||||
(.mul.vf vf25 vf25 vf1 :mask #b11)
|
||||
(.mul.vf vf23 vf23 vf1 :mask #b11)
|
||||
(.mul.vf.xy vf25 vf25 vf1)
|
||||
(.mul.vf.xy vf23 vf23 vf1)
|
||||
;; hack! fixes small font widescreen
|
||||
(unless (logtest? (-> arg1 flags) (font-flags pc-hack))
|
||||
(.mul.vf vf24 vf24 vf1 :mask #b11))
|
||||
(.mul.vf.xy vf24 vf24 vf1))
|
||||
(set! (-> work str-ptr) (the-as uint arg0))
|
||||
(set! (-> work flags) flags)
|
||||
(.mov.vf vf1 vf0)
|
||||
@@ -1553,9 +1553,9 @@
|
||||
(.mov vf1 arg-val)
|
||||
(.itof.vf vf1 vf1)
|
||||
(cond
|
||||
((zero? sign-char) (.add.x.vf vf23 vf0 vf1 :mask #b1))
|
||||
((= sign-char #\-) (.sub.x.vf vf23 vf23 vf1 :mask #b1))
|
||||
(else (.add.x.vf vf23 vf23 vf1 :mask #b1)))
|
||||
((zero? sign-char) (.add.x.vf.x vf23 vf0 vf1))
|
||||
((= sign-char #\-) (.sub.x.vf.x vf23 vf23 vf1))
|
||||
(else (.add.x.vf.x vf23 vf23 vf1)))
|
||||
(goto cfg-3)))
|
||||
(when (and (>= cur-char #\0) (<= cur-char #\9))
|
||||
(set! arg-val (+ (* arg-val 10) (- cur-char #\0)))
|
||||
@@ -1565,8 +1565,8 @@
|
||||
(label cfg-48)
|
||||
(.lvf vf5 (&-> kerning-table (- cur-char 16) quad))
|
||||
(.mul.vf vf19 vf5 vf13)
|
||||
(if (logtest? flags (font-flags kerning)) (.add.w.vf vf23 vf23 vf19 :mask #b1) (.add.w.vf vf23 vf23 vf14 :mask #b1)))
|
||||
(else (.add.x.vf vf23 vf0 vf24 :mask #b1)))
|
||||
(if (logtest? flags (font-flags kerning)) (.add.w.vf.x vf23 vf23 vf19) (.add.w.vf.x vf23 vf23 vf14)))
|
||||
(else (.add.x.vf.x vf23 vf0 vf24)))
|
||||
(goto cfg-3))))
|
||||
(label cfg-51)
|
||||
(.sub.vf vf23 vf23 vf24)
|
||||
|
||||
@@ -262,13 +262,13 @@
|
||||
(set! (-> arg0 direction 1 quad) v1-1)
|
||||
(.mul.x.vf vf7 vf7 vf11)
|
||||
(set! (-> arg0 direction 2 quad) (the-as uint128 a2-2))))
|
||||
(.min.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.min.x.vf.w vf4 vf0 vf0)
|
||||
(nop!)
|
||||
(.min.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.min.x.vf.w vf5 vf0 vf0)
|
||||
(nop!)
|
||||
(.min.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.min.x.vf.w vf6 vf0 vf0)
|
||||
(nop!)
|
||||
(.max.w.vf vf7 vf0 vf0 :mask #b1000)
|
||||
(.max.w.vf.w vf7 vf0 vf0)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(.svf (&-> arg0 color 0 quad) vf4)
|
||||
@@ -413,8 +413,8 @@
|
||||
(.cross.vf nmat2 tmat0 tmat1)
|
||||
;; dot nmat0 and tmat0
|
||||
(.mul.vf acc nmat0 tmat0)
|
||||
(.add.y.vf acc acc acc :mask #b1)
|
||||
(.add.z.vf acc acc acc :mask #b1)
|
||||
(.add.y.vf.x acc acc acc)
|
||||
(.add.z.vf.x acc acc acc)
|
||||
;; divide!
|
||||
(.div.vf acc vf0 acc :fsf #b11 :ftf #b0)
|
||||
;; scale nmat:
|
||||
|
||||
@@ -344,10 +344,10 @@
|
||||
(.div.vf Q vf0 vf31 :fsf #b11 :ftf #b11)
|
||||
(.wait.vf)
|
||||
;;(.cfc2.i v1-7 Clipping)
|
||||
(.mul.vf vf28 vf28 Q :mask #b111)
|
||||
(.mul.vf.xyz vf28 vf28 Q)
|
||||
(.mul.vf vf23 vf23 Q)
|
||||
(.add.vf vf28 vf28 vf30)
|
||||
(.max.x.vf vf28 vf28 vf0 :mask #b1000)
|
||||
(.max.x.vf.w vf28 vf28 vf0)
|
||||
(.svf (&-> arg0 quad) vf28)
|
||||
(zero? (logand clip 63)))))
|
||||
|
||||
@@ -394,13 +394,13 @@
|
||||
(.wait.vf)
|
||||
;;(.cfc2.i v1-7 Clipping)
|
||||
;; perspective
|
||||
(.mul.vf vf28 vf28 Q :mask #b111)
|
||||
(.mul.vf.xyz vf28 vf28 Q)
|
||||
;; compute scale factor (w was 1.0)
|
||||
(.mul.vf vf23 vf23 Q)
|
||||
;; apply hvdf offsets
|
||||
(.add.vf vf28 vf28 vf30)
|
||||
;; saturate fog
|
||||
(.max.x.vf vf28 vf28 vf0 :mask #b1000)
|
||||
(.max.x.vf.w vf28 vf28 vf0)
|
||||
;; convert to GS fixed point
|
||||
(vftoi4.xyzw vf28 vf28)
|
||||
;; store result!
|
||||
@@ -442,10 +442,10 @@
|
||||
(.div.vf Q vf0 vf31 :fsf #b11 :ftf #b11)
|
||||
(.wait.vf)
|
||||
;;(.cfc2.i v1-7 Clipping)
|
||||
(.mul.vf vf28 vf28 Q :mask #b111)
|
||||
(.mul.vf.xyz vf28 vf28 Q)
|
||||
(.mul.vf vf23 vf23 Q)
|
||||
(.add.vf vf28 vf28 vf30)
|
||||
(.max.x.vf vf28 vf28 vf0 :mask #b1000)
|
||||
(.max.x.vf.w vf28 vf28 vf0)
|
||||
(.svf (&-> arg0 quad) vf28)
|
||||
;;(let ((a0-2 (zero? (logand v1-7 63))))
|
||||
;; )
|
||||
|
||||
@@ -67,21 +67,21 @@
|
||||
(.lvf vf1 (&-> arg0 times 0 quad))
|
||||
(nop!)
|
||||
(.lvf vf2 (&-> arg0 times 1 quad))
|
||||
(.mul.w.vf vf1 vf1 vf1 :mask #b111)
|
||||
(.mul.w.vf.xyz vf1 vf1 vf1)
|
||||
(.lvf vf3 (&-> arg0 times 2 quad))
|
||||
(.mul.w.vf vf2 vf2 vf2 :mask #b111)
|
||||
(.mul.w.vf.xyz vf2 vf2 vf2)
|
||||
(.lvf vf4 (&-> arg0 times 3 quad))
|
||||
(.mul.w.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf.xyz vf3 vf3 vf3)
|
||||
(.lvf vf5 (&-> arg0 times 4 quad))
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b111)
|
||||
(.mul.w.vf.xyz vf4 vf4 vf4)
|
||||
(.lvf vf6 (&-> arg0 times 5 quad))
|
||||
(.mul.w.vf vf5 vf5 vf5 :mask #b111)
|
||||
(.mul.w.vf.xyz vf5 vf5 vf5)
|
||||
(.lvf vf7 (&-> arg0 times 6 quad))
|
||||
(.mul.w.vf vf6 vf6 vf6 :mask #b111)
|
||||
(.mul.w.vf.xyz vf6 vf6 vf6)
|
||||
(.lvf vf8 (&-> arg0 times 7 quad))
|
||||
(.mul.w.vf vf7 vf7 vf7 :mask #b111)
|
||||
(.mul.w.vf.xyz vf7 vf7 vf7)
|
||||
(nop!)
|
||||
(.mul.w.vf vf8 vf8 vf8 :mask #b111)
|
||||
(.mul.w.vf.xyz vf8 vf8 vf8)
|
||||
(nop!)
|
||||
(vftoi12.xyzw vf1 vf1)
|
||||
(nop!)
|
||||
|
||||
@@ -362,8 +362,8 @@
|
||||
(.lvf vf3 (&-> t1-0 quad)))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a3-2 vf1)
|
||||
(when (< a3-2 309237600000.0)
|
||||
(logior! (-> (the-as (pointer uint8) (+ arg2 (the-as int arg0)))) (ash 1 arg1))
|
||||
@@ -375,8 +375,8 @@
|
||||
(.lvf vf3 (&-> t1-1 quad)))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a3-6 vf1)
|
||||
(when (< a3-6 309237600000.0)
|
||||
(logior! (-> (the-as (pointer uint8) (+ arg2 (the-as int arg0)))) (ash 1 arg1))
|
||||
@@ -388,8 +388,8 @@
|
||||
(.lvf vf3 (&-> t1-2 quad)))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a3-10 vf1)
|
||||
(when (< a3-10 309237600000.0)
|
||||
(logior! (-> (the-as (pointer uint8) (+ arg2 (the-as int arg0)))) (ash 1 arg1))
|
||||
@@ -399,8 +399,8 @@
|
||||
(.lvf vf3 (&-> t0-1 quad)))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v1-10 vf1)
|
||||
(when (< v1-10 309237600000.0)
|
||||
(logior! (-> (the-as (pointer uint8) (+ arg2 (the-as int arg0)))) (ash 1 arg1))
|
||||
|
||||
@@ -362,8 +362,8 @@
|
||||
(.lvf vf3 (&-> t1-0 quad)))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a3-2 vf1)
|
||||
(when (< a3-2 19327350000.0)
|
||||
(logior! (-> arg0 mask arg2) (ash 1 arg1))
|
||||
@@ -375,8 +375,8 @@
|
||||
(.lvf vf3 (&-> t1-1 quad)))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a3-6 vf1)
|
||||
(when (< a3-6 19327350000.0)
|
||||
(logior! (-> arg0 mask arg2) (ash 1 arg1))
|
||||
@@ -388,8 +388,8 @@
|
||||
(.lvf vf3 (&-> t1-2 quad)))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a3-10 vf1)
|
||||
(when (< a3-10 19327350000.0)
|
||||
(logior! (-> arg0 mask arg2) (ash 1 arg1))
|
||||
@@ -399,8 +399,8 @@
|
||||
(.lvf vf3 (&-> t0-1 quad)))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v1-10 vf1)
|
||||
(when (< v1-10 19327350000.0)
|
||||
(logior! (-> arg0 mask arg2) (ash 1 arg1))
|
||||
|
||||
@@ -71,13 +71,13 @@
|
||||
((< (-> s0-0 w) 0.0)
|
||||
(.lvf vf1 (&-> v1-9 vel-sxvel quad))
|
||||
(.lvf vf2 (&-> s0-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-9 vel-sxvel quad) vf1)
|
||||
(.mov v1-10 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> v1-9 vel-sxvel quad))
|
||||
(.lvf vf2 (&-> s0-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-9 vel-sxvel quad) vf1)
|
||||
(.mov v1-11 vf1))))
|
||||
(draw-shadow arg0 arg1 (-> s1-0 vel-sxvel) (the-as float s4-0) s3-0 s2-0))))
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
(.mul.vf vf30 vf30 vf14)
|
||||
(.mul.vf vf29 vf29 vf14)
|
||||
(.mul.vf vf28 vf28 vf14)
|
||||
(.mov.vf vf25 vf0 :mask #b100)
|
||||
(.mov.vf.z vf25 vf0)
|
||||
(.mov.vf vf24 vf0)
|
||||
(.mov.vf vf23 vf0)
|
||||
)
|
||||
|
||||
@@ -298,12 +298,12 @@
|
||||
((< (-> s5-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg0 conerot quad))
|
||||
(.lvf vf2 (&-> s5-0 vec quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg0 conerot quad) vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> arg0 conerot quad))
|
||||
(.lvf vf2 (&-> s5-0 vec quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg0 conerot quad) vf1))))
|
||||
;; scale the rate of rot-syvel (it's multiplied by a rate already)
|
||||
(cond
|
||||
@@ -399,8 +399,8 @@
|
||||
;; convert color/position.
|
||||
(.lvf vf4 (&-> s5-0 color quad))
|
||||
(.lvf vf5 (&-> s5-0 x-y-z-sx quad))
|
||||
(.min.x.vf vf4 vf4 vf31 :mask #b111)
|
||||
(.add.vf vf5 vf5 vf30 :mask #b111)
|
||||
(.min.x.vf.xyz vf4 vf4 vf31)
|
||||
(.add.vf.xyz vf5 vf5 vf30)
|
||||
(.svf (&-> s5-0 color quad) vf4)
|
||||
(.svf (&-> s5-0 x-y-z-sx quad) vf5)
|
||||
(when (not *death-adgif*)
|
||||
@@ -418,8 +418,8 @@
|
||||
(.lvf vf4 (&-> (-> *time-of-day-context* current-prt-color) quad))
|
||||
(.lvf vf5 (&-> s5-0 color quad))
|
||||
(.lvf vf6 (&-> gp-0 fade quad))
|
||||
(.mul.vf vf5 vf5 vf4 :mask #b111)
|
||||
(.mul.vf vf6 vf6 vf4 :mask #b111)
|
||||
(.mul.vf.xyz vf5 vf5 vf4)
|
||||
(.mul.vf.xyz vf6 vf6 vf4)
|
||||
(.svf (&-> s5-0 color quad) vf5)
|
||||
(.svf (&-> gp-0 fade quad) vf6)
|
||||
;;
|
||||
@@ -432,7 +432,7 @@
|
||||
(.lvf vf3 (&-> s5-0 color quad))
|
||||
(.svf (&-> v1-26 x-y-z-sx quad) vf1)
|
||||
(.svf (&-> v1-26 flag-rot-sy quad) vf2)
|
||||
(.sub.w.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.sub.w.vf.w vf3 vf0 vf0)
|
||||
(.svf (&-> v1-26 color quad) vf3))
|
||||
;; we're done!
|
||||
(logior! (-> gp-0 flags) (sp-cpuinfo-flag ready-to-launch))
|
||||
@@ -549,12 +549,12 @@
|
||||
((< (-> s3-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg3 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s3-0 vec quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg3 qx-qy-qz-sy quad) vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> arg3 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s3-0 vec quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg3 qx-qy-qz-sy quad) vf1)))))
|
||||
(cond
|
||||
(*sp-60-hz*
|
||||
@@ -839,13 +839,13 @@
|
||||
((< (-> s4-0 w) 0.0)
|
||||
(.lvf vf1 (&-> v1-3 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s4-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-3 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-4 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> v1-3 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s4-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-3 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-5 vf1)))))
|
||||
(set! (-> arg2 r-g-b-a x) (-> s5-0 sprite r))
|
||||
@@ -888,13 +888,13 @@
|
||||
((< (-> s4-0 w) 0.0)
|
||||
(.lvf vf1 (&-> v1-14 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s4-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-14 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-15 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> v1-14 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s4-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-14 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-16 vf1)))))
|
||||
(set! (-> arg2 r-g-b-a x) (-> s5-0 sprite r))
|
||||
|
||||
@@ -187,12 +187,12 @@
|
||||
;;(TODO.VCLIP vf10 vf10)
|
||||
(b! (zero? (-> sv-16 flag)) cfg-21)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf vf2 vf2 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.mul.vf.xyz vf2 vf2 Q)
|
||||
;;(.cfc2.i v1-25 Clipping)
|
||||
(set! v1-25 (vu-clip vf10 0)) ;; safe to just drop the higher bits.
|
||||
(b! (logtest? v1-25 63) cfg-21 :delay (.add.vf vf1 vf1 vf9))
|
||||
(.max.x.vf vf1 vf1 vf0 :mask #b1000)
|
||||
(.max.x.vf.w vf1 vf1 vf0)
|
||||
(.svf (&-> (the-as vector a0-1) quad) vf1)
|
||||
(.svf (&-> (the-as vector sv-48) quad) vf2)
|
||||
(set! (-> (the-as vector a0-1) w) 255.0)
|
||||
|
||||
@@ -389,13 +389,13 @@
|
||||
((< (-> arg1 w) 0.0)
|
||||
(.lvf vf1 (&-> arg0 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> arg1 vec quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg0 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-0 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> arg0 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> arg1 vec quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg0 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-1 vf1)))
|
||||
arg1))
|
||||
|
||||
@@ -324,11 +324,11 @@
|
||||
;; load the plane
|
||||
(.lvf vf2 (&-> real-node plane quad))
|
||||
;; elementwise multiply xyz
|
||||
(.mul.vf vf2 vf2 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf2 vf1)
|
||||
;; then horizontal sum, putting result in y.
|
||||
(.add.x.vf vf2 vf2 vf2 :mask #b10)
|
||||
(.add.z.vf vf2 vf2 vf2 :mask #b10)
|
||||
(.sub.w.vf vf2 vf2 vf2 :mask #b10)
|
||||
(.add.x.vf.y vf2 vf2 vf2)
|
||||
(.add.z.vf.y vf2 vf2 vf2)
|
||||
(.sub.w.vf.y vf2 vf2 vf2)
|
||||
;; move the result into v1-1.
|
||||
;; the sign bit of float y is now the sign bit of the int v1-1
|
||||
(.mov v1-1 vf2)
|
||||
|
||||
@@ -337,9 +337,9 @@
|
||||
(.lvf vf2 (&-> dst vector 1 quad))
|
||||
(.lvf vf3 (&-> dst vector 2 quad))
|
||||
;; set the right most column to [0, 0, 0]
|
||||
(.sub.vf vf1 vf1 vf1 :mask #b1000)
|
||||
(.sub.vf vf2 vf2 vf2 :mask #b1000)
|
||||
(.sub.vf vf3 vf3 vf3 :mask #b1000)
|
||||
(.sub.vf.w vf1 vf1 vf1)
|
||||
(.sub.vf.w vf2 vf2 vf2)
|
||||
(.sub.vf.w vf3 vf3 vf3)
|
||||
;; load the original [translation, 1]
|
||||
(.lvf vf8 (&-> src vector 3 quad))
|
||||
;; rotate the translation
|
||||
@@ -349,7 +349,7 @@
|
||||
;; negate translation
|
||||
(.sub.vf vf4 vf0 vf4)
|
||||
;; set the w to 1.0
|
||||
(.mov.vf vf4 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf4 vf0)
|
||||
;; write back the rotation with fixed right column
|
||||
(.svf (&-> dst vector 0 quad) vf1)
|
||||
(.svf (&-> dst vector 1 quad) vf2)
|
||||
@@ -425,52 +425,52 @@
|
||||
(.mul.x.vf vf13 vf25 vf24)
|
||||
(.mul.y.vf vf14 vf25 vf24)
|
||||
(.mul.z.vf vf15 vf25 vf24)
|
||||
(.mul.z.vf vf26 vf7 vf25 :mask #b10)
|
||||
(.mul.z.vf vf27 vf11 vf24 :mask #b1)
|
||||
(.mul.y.vf vf28 vf9 vf25 :mask #b1)
|
||||
(.mul.z.vf vf29 vf14 vf23 :mask #b1)
|
||||
(.mul.z.vf vf30 vf8 vf25 :mask #b1)
|
||||
(.mul.y.vf vf31 vf7 vf25 :mask #b100)
|
||||
(.add.y.vf vf16 vf27 vf26 :mask #b1)
|
||||
(.mul.z.vf.y vf26 vf7 vf25)
|
||||
(.mul.z.vf.x vf27 vf11 vf24)
|
||||
(.mul.y.vf.x vf28 vf9 vf25)
|
||||
(.mul.z.vf.x vf29 vf14 vf23)
|
||||
(.mul.z.vf.x vf30 vf8 vf25)
|
||||
(.mul.y.vf.z vf31 vf7 vf25)
|
||||
(.add.y.vf.x vf16 vf27 vf26)
|
||||
(.sub.vf vf1 vf0 vf1)
|
||||
(.add.x.vf vf17 vf29 vf30 :mask #b1)
|
||||
(.sub.z.vf vf18 vf28 vf31 :mask #b1)
|
||||
(.sub.y.vf vf23 vf14 vf15 :mask #b100)
|
||||
(.sub.z.vf vf26 vf15 vf13 :mask #b1)
|
||||
(.sub.x.vf vf29 vf13 vf14 :mask #b10)
|
||||
(.sub.vf vf19 vf16 vf17 :mask #b1)
|
||||
(.sub.z.vf vf24 vf12 vf11 :mask #b10)
|
||||
(.sub.x.vf vf27 vf10 vf12 :mask #b100)
|
||||
(.sub.y.vf vf30 vf11 vf10 :mask #b1)
|
||||
(.add.vf vf20 vf19 vf18 :mask #b1)
|
||||
(.sub.y.vf vf25 vf8 vf9 :mask #b100)
|
||||
(.sub.z.vf vf28 vf9 vf7 :mask #b1)
|
||||
(.sub.x.vf vf31 vf7 vf8 :mask #b10)
|
||||
(.add.x.vf.x vf17 vf29 vf30)
|
||||
(.sub.z.vf.x vf18 vf28 vf31)
|
||||
(.sub.y.vf.z vf23 vf14 vf15)
|
||||
(.sub.z.vf.x vf26 vf15 vf13)
|
||||
(.sub.x.vf.y vf29 vf13 vf14)
|
||||
(.sub.vf.x vf19 vf16 vf17)
|
||||
(.sub.z.vf.y vf24 vf12 vf11)
|
||||
(.sub.x.vf.z vf27 vf10 vf12)
|
||||
(.sub.y.vf.x vf30 vf11 vf10)
|
||||
(.add.vf.x vf20 vf19 vf18)
|
||||
(.sub.y.vf.z vf25 vf8 vf9)
|
||||
(.sub.z.vf.x vf28 vf9 vf7)
|
||||
(.sub.x.vf.y vf31 vf7 vf8)
|
||||
(.div.vf Q vf0 vf20 :fsf #b11 :ftf #b0)
|
||||
;;(.sub.w.vf vf3 vf3 vf3 :mask #b1000)
|
||||
;;(.sub.w.vf.w vf3 vf3 vf3)
|
||||
(.xor.vf vf3 vf3 vf3)
|
||||
;;(.sub.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
;;(.sub.w.vf.w vf4 vf4 vf4)
|
||||
(.xor.vf vf4 vf4 vf4)
|
||||
;;(.sub.w.vf vf5 vf5 vf5 :mask #b1000)
|
||||
;;(.sub.w.vf.w vf5 vf5 vf5)
|
||||
(.xor.vf vf5 vf5 vf5)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.wait.vf)
|
||||
(.add.vf vf2 vf0 Q :mask #b1)
|
||||
(.add.x.vf vf2 vf0 vf2 :mask #b111)
|
||||
(.mul.z.vf vf3 vf2 vf23 :mask #b1)
|
||||
(.mul.x.vf vf4 vf2 vf26 :mask #b1)
|
||||
(.mul.y.vf vf5 vf2 vf29 :mask #b1)
|
||||
(.mul.y.vf vf3 vf2 vf24 :mask #b10)
|
||||
(.mul.z.vf vf4 vf2 vf27 :mask #b10)
|
||||
(.mul.x.vf vf5 vf2 vf30 :mask #b10)
|
||||
(.mul.z.vf vf3 vf2 vf25 :mask #b100)
|
||||
(.mul.x.vf vf4 vf2 vf28 :mask #b100)
|
||||
(.mul.y.vf vf5 vf2 vf31 :mask #b100)
|
||||
(.add.vf.x vf2 vf0 Q)
|
||||
(.add.x.vf.xyz vf2 vf0 vf2)
|
||||
(.mul.z.vf.x vf3 vf2 vf23)
|
||||
(.mul.x.vf.x vf4 vf2 vf26)
|
||||
(.mul.y.vf.x vf5 vf2 vf29)
|
||||
(.mul.y.vf.y vf3 vf2 vf24)
|
||||
(.mul.z.vf.y vf4 vf2 vf27)
|
||||
(.mul.x.vf.y vf5 vf2 vf30)
|
||||
(.mul.z.vf.z vf3 vf2 vf25)
|
||||
(.mul.x.vf.z vf4 vf2 vf28)
|
||||
(.mul.y.vf.z vf5 vf2 vf31)
|
||||
(.mul.x.vf acc vf3 vf1)
|
||||
(.svf (&-> dst vector 0 quad) vf3)
|
||||
(.add.mul.y.vf acc vf4 vf1 acc)
|
||||
(.svf (&-> dst vector 1 quad) vf4)
|
||||
(.add.mul.z.vf vf6 vf5 vf1 acc :mask #b111)
|
||||
(.add.mul.z.vf.xyz vf6 vf5 vf1 acc)
|
||||
(.svf (&-> dst vector 2 quad) vf5)
|
||||
(.svf (&-> dst vector 3 quad) vf6)
|
||||
dst))
|
||||
@@ -782,10 +782,10 @@
|
||||
;; if all is zero, this will overflow and give us 0.
|
||||
(+! xyz-zero 1)
|
||||
;;vsubx.w vf5, vf0, vf6
|
||||
(.sub.x.vf vf5 vf0 vf6 :mask #b1000)
|
||||
(.sub.x.vf.w vf5 vf0 vf6)
|
||||
;;beq v1, r0, L15
|
||||
;;vaddx.y vf5, vf0, vf6
|
||||
(.add.x.vf vf5 vf0 vf6 :mask #b0010)
|
||||
(.add.x.vf.y vf5 vf0 vf6)
|
||||
(when-goto (zero? xyz-zero) zero-case)))
|
||||
;; Nonzero case:
|
||||
;; vsubw.w vf2, vf0, vf0
|
||||
@@ -795,39 +795,39 @@
|
||||
(.xor.vf vf3 vf3 vf3)
|
||||
(.xor.vf vf4 vf4 vf4)
|
||||
;;vmulx.xyz vf11, vf1, vf5
|
||||
(.mul.x.vf vf11 vf1 vf5 :mask #b0111)
|
||||
(.mul.x.vf.xyz vf11 vf1 vf5)
|
||||
;;vaddy.x vf7, vf0, vf5
|
||||
(.add.y.vf vf7 vf0 vf5 :mask #b0001)
|
||||
(.add.y.vf.x vf7 vf0 vf5)
|
||||
;;vaddy.y vf8, vf0, vf5
|
||||
(.add.y.vf vf8 vf0 vf5 :mask #b0010)
|
||||
(.add.y.vf.y vf8 vf0 vf5)
|
||||
;;vaddy.z vf9, vf0, vf5
|
||||
(.add.y.vf vf9 vf0 vf5 :mask #b0100)
|
||||
(.add.y.vf.z vf9 vf0 vf5)
|
||||
;;vmulw.xyz vf10, vf1, vf5
|
||||
(.mul.w.vf vf10 vf1 vf5 :mask #b0111)
|
||||
(.mul.w.vf.xyz vf10 vf1 vf5)
|
||||
;;vsubz.y vf7, vf0, vf11
|
||||
(.sub.z.vf vf7 vf0 vf11 :mask #b0010)
|
||||
(.sub.z.vf.y vf7 vf0 vf11)
|
||||
;;vaddy.z vf7, vf0, vf11
|
||||
(.add.y.vf vf7 vf0 vf11 :mask #b0100)
|
||||
(.add.y.vf.z vf7 vf0 vf11)
|
||||
;;vaddz.x vf8, vf0, vf11
|
||||
(.add.z.vf vf8 vf0 vf11 :mask #b0001)
|
||||
(.add.z.vf.x vf8 vf0 vf11)
|
||||
;;vsubx.z vf8, vf0, vf11
|
||||
(.sub.x.vf vf8 vf0 vf11 :mask #b0100)
|
||||
(.sub.x.vf.z vf8 vf0 vf11)
|
||||
;;vmulx.xyz vf2, vf10, vf1
|
||||
(.mul.x.vf vf2 vf10 vf1 :mask #b0111)
|
||||
(.mul.x.vf.xyz vf2 vf10 vf1)
|
||||
;;vmuly.xyz vf3, vf10, vf1
|
||||
(.mul.y.vf vf3 vf10 vf1 :mask #b0111)
|
||||
(.mul.y.vf.xyz vf3 vf10 vf1)
|
||||
;;vmulz.xyz vf4, vf10, vf1
|
||||
(.mul.z.vf vf4 vf10 vf1 :mask #b0111)
|
||||
(.mul.z.vf.xyz vf4 vf10 vf1)
|
||||
;;vsuby.x vf9, vf0, vf11
|
||||
(.sub.y.vf vf9 vf0 vf11 :mask #b0001)
|
||||
(.sub.y.vf.x vf9 vf0 vf11)
|
||||
;;vaddx.y vf9, vf0, vf11
|
||||
(.add.x.vf vf9 vf0 vf11 :mask #b0010)
|
||||
(.add.x.vf.y vf9 vf0 vf11)
|
||||
;;vadd.xyz vf2, vf2, vf7
|
||||
(.add.vf vf2 vf2 vf7 :mask #b0111)
|
||||
(.add.vf.xyz vf2 vf2 vf7)
|
||||
;;vadd.xyz vf3, vf3, vf8
|
||||
(.add.vf vf3 vf3 vf8 :mask #b0111)
|
||||
(.add.vf.xyz vf3 vf3 vf8)
|
||||
;;vadd.xyz vf4, vf4, vf9
|
||||
(.add.vf vf4 vf4 vf9 :mask #b0111)
|
||||
(.add.vf.xyz vf4 vf4 vf9)
|
||||
;;sqc2 vf2, 0(v0)
|
||||
;;sqc2 vf3, 16(v0)
|
||||
;;sqc2 vf0, 48(v0)
|
||||
@@ -927,9 +927,9 @@
|
||||
(.lvf vf10 (&-> arg0 vector 0 quad))
|
||||
(.outer.product.a.vf acc vf11 vf12)
|
||||
(.outer.product.b.vf vf13 vf12 vf11 acc)
|
||||
(.mul.vf vf13 vf13 vf10 :mask #b111)
|
||||
(.add.y.vf vf13 vf13 vf13 :mask #b1)
|
||||
(.add.z.vf vf13 vf13 vf13 :mask #b1)
|
||||
(.mul.vf.xyz vf13 vf13 vf10)
|
||||
(.add.y.vf.x vf13 vf13 vf13)
|
||||
(.add.z.vf.x vf13 vf13 vf13)
|
||||
(.mov v0-0 vf13)
|
||||
(the-as float v0-0)))
|
||||
|
||||
@@ -1008,15 +1008,15 @@
|
||||
(.outer.product.b.vf vf13 vf12 vf11 acc)
|
||||
(.outer.product.a.vf acc vf12 vf10)
|
||||
(.outer.product.b.vf vf14 vf10 vf12 acc)
|
||||
(.mul.vf vf1 vf10 vf13 :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf10 vf13)
|
||||
(.outer.product.a.vf acc vf10 vf11)
|
||||
(.outer.product.b.vf vf15 vf11 vf10 acc)
|
||||
(.nop.vf)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1337,7 +1337,7 @@
|
||||
;;(&+! src 64)
|
||||
(set! src (the (inline-array vector) (+ 64 (the int src))))
|
||||
;;vmaddz.xyz vf5, vf3, vf5
|
||||
(.add.mul.z.vf vf5 vf3 vf5 acc :mask #b0111)
|
||||
(.add.mul.z.vf.xyz vf5 vf3 vf5 acc)
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;daddiu v1, a3, -1
|
||||
(set! v1 (- count 1))
|
||||
@@ -1348,7 +1348,7 @@
|
||||
;; vmadday.xyzw acc, vf2, vf6
|
||||
(.add.mul.y.vf acc vf2 vf6 acc)
|
||||
;; vmaddz.xyz vf6, vf3, vf6
|
||||
(.add.mul.z.vf vf6 vf3 vf6 acc :mask #b0111)
|
||||
(.add.mul.z.vf.xyz vf6 vf3 vf6 acc)
|
||||
;;sqc2 vf5, 0(a1)
|
||||
(.svf (-> dst 0) vf5)
|
||||
;;beq v1, r0, L3
|
||||
@@ -1365,7 +1365,7 @@
|
||||
;;lqc2 vf5, 0(a2)
|
||||
(.lvf vf5 (-> src 0))
|
||||
;;vmaddz.xyz vf7, vf3, vf7
|
||||
(.add.mul.z.vf vf7 vf3 vf7 acc :mask #b0111)
|
||||
(.add.mul.z.vf.xyz vf7 vf3 vf7 acc)
|
||||
;;sqc2 vf6, 16(a1)
|
||||
(.svf (-> dst 1) vf6)
|
||||
;;beq v1, r0, L3
|
||||
@@ -1382,7 +1382,7 @@
|
||||
;;lqc2 vf6, 16(a2)
|
||||
(.lvf vf6 (-> src 1))
|
||||
;;vmaddz.xyz vf8, vf3, vf8
|
||||
(.add.mul.z.vf vf8 vf3 vf8 acc :mask #b0111)
|
||||
(.add.mul.z.vf.xyz vf8 vf3 vf8 acc)
|
||||
;;sqc2 vf7, 32(a1)
|
||||
(.svf (-> dst 2) vf7)
|
||||
;;beq v1, r0, L3
|
||||
|
||||
@@ -132,8 +132,8 @@
|
||||
(.lvf vf1 (&-> arg1 vec quad))
|
||||
;;(.sub.vf vf2 vf2 vf2)
|
||||
(.xor.vf vf2 vf2 vf2)
|
||||
(.sub.vf vf2 vf2 vf1 :mask #b111)
|
||||
(.add.vf vf2 vf2 vf1 :mask #b1000)
|
||||
(.sub.vf.xyz vf2 vf2 vf1)
|
||||
(.add.vf.w vf2 vf2 vf1)
|
||||
(.svf (&-> arg0 vec quad) vf2)
|
||||
arg0))
|
||||
|
||||
@@ -161,9 +161,9 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 vec quad))
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf acc vf1 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.add.z.vf.w acc vf1 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.x.vf.w vf1 vf0 vf1 acc)
|
||||
(.add.w.vf vf1 vf0 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0))
|
||||
@@ -177,9 +177,9 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 vec quad))
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf acc vf1 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.add.z.vf.w acc vf1 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.x.vf.w vf1 vf0 vf1 acc)
|
||||
(.add.w.vf vf1 vf0 vf1)
|
||||
(.mov v1-1 vf1)
|
||||
(sqrtf v1-1)))
|
||||
@@ -194,9 +194,9 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 vec quad))
|
||||
(.mul.vf vf2 vf1 vf1)
|
||||
(.add.z.vf acc vf2 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.add.z.vf.w acc vf2 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.x.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf0 vf2 :fsf #b11 :ftf #b11)
|
||||
;;(.wait.vf)
|
||||
(.mul.vf vf2 vf1 Q)
|
||||
@@ -219,12 +219,12 @@
|
||||
(.mul.vf vf2 vf1 vf1)
|
||||
;; (.sub.vf vf3 vf3 vf3)
|
||||
(.xor.vf vf3 vf3 vf3)
|
||||
(.add.z.vf acc vf2 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.sub.vf vf3 vf3 vf1 :mask #b111)
|
||||
(.add.z.vf.w acc vf2 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.x.vf.w vf2 vf0 vf2 acc)
|
||||
(.sub.vf.xyz vf3 vf3 vf1)
|
||||
(.div.vf Q vf0 vf2 :fsf #b11 :ftf #b11)
|
||||
(.add.vf vf3 vf3 vf1 :mask #b1000)
|
||||
(.add.vf.w vf3 vf3 vf1)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf3 vf3 Q)
|
||||
(.nop.vf)
|
||||
@@ -243,9 +243,9 @@
|
||||
(.lvf vf1 (&-> arg0 vec quad))
|
||||
(.lvf vf2 (&-> arg1 vec quad))
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
(.add.z.vf acc vf1 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.add.z.vf.w acc vf1 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.x.vf.w vf1 vf0 vf1 acc)
|
||||
(.add.w.vf vf1 vf0 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0))
|
||||
@@ -261,16 +261,16 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 vec quad))
|
||||
(.lvf vf2 (&-> arg2 vec quad))
|
||||
(.sub.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.sub.vf.w vf4 vf0 vf0)
|
||||
(.mul.vf vf3 vf1 vf2)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf4 vf2 vf1 acc)
|
||||
(.mul.w.vf acc vf1 vf2)
|
||||
(.add.mul.w.vf acc vf2 vf1 acc)
|
||||
(.sub.mul.w.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.sub.mul.z.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.sub.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.sub.mul.x.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.sub.mul.w.vf.w acc vf0 vf3 acc)
|
||||
(.sub.mul.z.vf.w acc vf0 vf3 acc)
|
||||
(.sub.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.sub.mul.x.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.w.vf vf1 vf4 vf0 acc)
|
||||
(.svf (&-> arg0 vec quad) vf1)
|
||||
arg0))
|
||||
@@ -338,27 +338,27 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 vec quad))
|
||||
(.add.vf vf5 vf1 vf1)
|
||||
(.add.w.vf vf2 vf0 vf1 :mask #b1)
|
||||
(.add.z.vf vf2 vf0 vf1 :mask #b10)
|
||||
(.sub.y.vf vf2 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf2 vf0 vf0 :mask #b1000)
|
||||
(.sub.z.vf vf3 vf0 vf1 :mask #b1)
|
||||
(.add.w.vf vf3 vf0 vf1 :mask #b10)
|
||||
(.add.x.vf vf3 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.y.vf vf4 vf0 vf1 :mask #b1)
|
||||
(.sub.x.vf vf4 vf0 vf1 :mask #b10)
|
||||
(.add.w.vf vf4 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.w.vf.x vf2 vf0 vf1)
|
||||
(.add.z.vf.y vf2 vf0 vf1)
|
||||
(.sub.y.vf.z vf2 vf0 vf1)
|
||||
(.sub.w.vf.w vf2 vf0 vf0)
|
||||
(.sub.z.vf.x vf3 vf0 vf1)
|
||||
(.add.w.vf.y vf3 vf0 vf1)
|
||||
(.add.x.vf.z vf3 vf0 vf1)
|
||||
(.sub.w.vf.w vf3 vf0 vf0)
|
||||
(.add.y.vf.x vf4 vf0 vf1)
|
||||
(.sub.x.vf.y vf4 vf0 vf1)
|
||||
(.add.w.vf.z vf4 vf0 vf1)
|
||||
(.sub.w.vf.w vf4 vf0 vf0)
|
||||
(.outer.product.a.vf acc vf5 vf2)
|
||||
(.outer.product.b.vf vf2 vf2 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf4)
|
||||
(.outer.product.b.vf vf4 vf4 vf5 acc)
|
||||
(.add.w.vf vf2 vf2 vf0 :mask #b1)
|
||||
(.add.w.vf vf3 vf3 vf0 :mask #b10)
|
||||
(.add.w.vf vf4 vf4 vf0 :mask #b100)
|
||||
(.add.w.vf.x vf2 vf2 vf0)
|
||||
(.add.w.vf.y vf3 vf3 vf0)
|
||||
(.add.w.vf.z vf4 vf4 vf0)
|
||||
(.svf (&-> arg0 vector 3 quad) vf0)
|
||||
(.svf (&-> arg0 vector 0 quad) vf2)
|
||||
(.svf (&-> arg0 vector 1 quad) vf3)
|
||||
@@ -583,17 +583,17 @@
|
||||
(vector-sincos-rad! gp-0 s5-0 s4-0)
|
||||
(.lvf vf1 (&-> gp-0 quad))
|
||||
(.lvf vf2 (&-> s5-0 quad)))
|
||||
(.mul.x.vf vf4 vf0 vf1 :mask #b1000)
|
||||
(.add.vf vf4 vf0 vf2 :mask #b111)
|
||||
(.sub.vf vf4 vf0 vf4 :mask #b110)
|
||||
(.add.vf vf3 vf0 vf1 :mask #b111)
|
||||
(.mul.x.vf vf3 vf0 vf2 :mask #b1000)
|
||||
(.mul.x.vf.w vf4 vf0 vf1)
|
||||
(.add.vf.xyz vf4 vf0 vf2)
|
||||
(.sub.vf.yz vf4 vf0 vf4)
|
||||
(.add.vf.xyz vf3 vf0 vf1)
|
||||
(.mul.x.vf.w vf3 vf0 vf2)
|
||||
(.outer.product.a.vf acc vf1 vf1)
|
||||
(.outer.product.b.vf vf6 vf0 vf0 acc)
|
||||
(.outer.product.a.vf acc vf2 vf2)
|
||||
(.outer.product.b.vf vf5 vf0 vf0 acc)
|
||||
(.mul.x.vf vf6 vf0 vf6 :mask #b1000)
|
||||
(.mul.x.vf vf5 vf0 vf5 :mask #b1000)
|
||||
(.mul.x.vf.w vf6 vf0 vf6)
|
||||
(.mul.x.vf.w vf5 vf0 vf5)
|
||||
(.mul.vf acc vf6 vf4)
|
||||
(.add.mul.vf vf7 vf5 vf3 acc)
|
||||
(.svf (&-> arg0 vec quad) vf7)
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
(.lvf vf3 (&-> arg0 vector 0 quad))
|
||||
(.lvf vf4 (&-> arg0 vector 1 quad))
|
||||
(.lvf vf5 (&-> arg0 vector 2 quad))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mul.x.vf vf3 vf3 vf1)
|
||||
(.mul.y.vf vf4 vf4 vf1)
|
||||
(.mul.z.vf vf5 vf5 vf1)
|
||||
@@ -243,14 +243,14 @@
|
||||
(.lvf vf3 (&-> arg0 vector 0 quad))
|
||||
(.lvf vf4 (&-> arg0 vector 1 quad))
|
||||
(.lvf vf5 (&-> arg0 vector 2 quad))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mul.x.vf vf3 vf3 vf1)
|
||||
(.mul.y.vf vf4 vf4 vf1)
|
||||
(.mul.z.vf vf5 vf5 vf1)
|
||||
(.mul.x.vf acc vf3 vf6)
|
||||
(.add.mul.y.vf acc vf4 vf6 acc)
|
||||
(.add.mul.z.vf acc vf5 vf6 acc)
|
||||
(.add.mul.w.vf vf2 vf2 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf2 vf2 vf0 acc)
|
||||
(.svf (&-> arg0 vector 3 quad) vf2)
|
||||
(.svf (&-> arg0 vector 0 quad) vf3)
|
||||
(.svf (&-> arg0 vector 1 quad) vf4)
|
||||
@@ -274,11 +274,11 @@
|
||||
(.lvf vf3 (&-> arg0 vector 0 quad))
|
||||
(.lvf vf4 (&-> arg0 vector 1 quad))
|
||||
(.lvf vf5 (&-> arg0 vector 2 quad))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mul.x.vf vf3 vf3 vf1)
|
||||
(.mul.y.vf vf4 vf4 vf1)
|
||||
(.mul.z.vf vf5 vf5 vf1)
|
||||
(.add.vf vf2 vf2 vf6 :mask #b111)
|
||||
(.add.vf.xyz vf2 vf2 vf6)
|
||||
(.svf (&-> arg0 vector 3 quad) vf2)
|
||||
(.svf (&-> arg0 vector 0 quad) vf3)
|
||||
(.svf (&-> arg0 vector 1 quad) vf4)
|
||||
@@ -303,7 +303,7 @@
|
||||
(set! (-> v1-0 z) (/ 1.0 (-> arg2 z)))
|
||||
(.lvf vf1 (&-> arg1 scale quad))
|
||||
(.lvf vf2 (&-> arg1 trans quad))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.lvf vf4 (&-> arg0 vector 0 quad))
|
||||
(.lvf vf5 (&-> arg0 vector 1 quad))
|
||||
(.lvf vf6 (&-> arg0 vector 2 quad))
|
||||
|
||||
@@ -369,9 +369,9 @@
|
||||
;; (.vmul.xyzw vf1 vf1 vf2)
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
;; (.vaddy.x vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
;; (.vaddz.x vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
;; (.qmfc2.i v0-0 vf1)
|
||||
(.mov result vf1)
|
||||
result))
|
||||
@@ -425,17 +425,17 @@
|
||||
;; (.vaddw.x vf3 vf0 vf0)
|
||||
;; set vf3x to 1
|
||||
(.xor.vf vf3 vf3 vf3)
|
||||
(.add.w.vf vf3 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf0)
|
||||
;; (.vmulax.x acc vf3 vf1)
|
||||
;; acc.x is now (xa * xb)
|
||||
(.mul.x.vf acc vf3 vf1 :mask #b1)
|
||||
(.mul.x.vf.x acc vf3 vf1)
|
||||
;; (.vmadday.x acc vf3 vf1)
|
||||
;; acc += thing
|
||||
(.add.mul.y.vf acc vf3 vf1 acc :mask #b1)
|
||||
(.add.mul.y.vf.x acc vf3 vf1 acc)
|
||||
;; (.vmaddaz.x acc vf3 vf1)
|
||||
(.add.mul.z.vf acc vf3 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf.x acc vf3 vf1 acc)
|
||||
;; (.vmaddw.x vf1 vf3 vf1)
|
||||
(.add.mul.w.vf vf1 vf3 vf1 acc :mask #b1)
|
||||
(.add.mul.w.vf.x vf1 vf3 vf1 acc)
|
||||
;; (.qmfc2.i v0-0 vf1)
|
||||
(.mov result vf1)
|
||||
result))
|
||||
@@ -454,7 +454,7 @@
|
||||
;; add
|
||||
(.add.vf vf1 vf2 vf3)
|
||||
;; set w = 1
|
||||
(.blend.vf vf1 vf1 vf0 :mask #b1000)
|
||||
(.blend.vf.w vf1 vf1 vf0)
|
||||
;; store
|
||||
(.svf dst vf1))
|
||||
dst)
|
||||
@@ -473,7 +473,7 @@
|
||||
;; subtract
|
||||
(.sub.vf vf1 vf2 vf3)
|
||||
;; set w = 1
|
||||
(.blend.vf vf1 vf1 vf0 :mask #b1000)
|
||||
(.blend.vf.w vf1 vf1 vf0)
|
||||
;; store
|
||||
(.svf dst vf1))
|
||||
dst)
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
(init-vf0-vector)
|
||||
(.mov vf6 arg2)
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(.add.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf vf5 vf4 vf6 :mask #b111)
|
||||
(.add.x.vf.w vf5 vf0 vf0)
|
||||
(.add.x.vf.xyz vf5 vf4 vf6)
|
||||
(.svf (&-> arg0 quad) vf5)
|
||||
arg0))
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(.lvf vf5 (&-> arg2 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> arg0 quad) vf6)
|
||||
arg0))
|
||||
|
||||
@@ -59,10 +59,10 @@
|
||||
(.mov vf7 arg3)
|
||||
(.lvf vf5 (&-> arg2 quad))
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
;; acts as just an add.
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> arg0 quad) vf6)
|
||||
arg0))
|
||||
|
||||
@@ -78,9 +78,9 @@
|
||||
(.mov vf7 arg3)
|
||||
(.lvf vf5 (&-> arg2 quad))
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.w.vf acc vf4 vf0 :mask #b111)
|
||||
(.sub.mul.x.vf vf6 vf5 vf7 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.w.vf.xyz acc vf4 vf0)
|
||||
(.sub.mul.x.vf.xyz vf6 vf5 vf7 acc)
|
||||
(.svf (&-> arg0 quad) vf6)
|
||||
arg0))
|
||||
|
||||
@@ -99,19 +99,19 @@
|
||||
;; do this before loading the second value.
|
||||
;; q = 1 / arg2.y
|
||||
(.div.vf Q vf0 vf5 :fsf #b11 :ftf #b1)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
;; use FPU to divide x while VU0 is dividing y.
|
||||
(let ((v1-0 (/ (-> arg1 data 0) (-> arg2 data 0))))
|
||||
(.wait.vf)
|
||||
(.mul.vf vf6 vf4 Q :mask #b10)
|
||||
(.mul.vf.y vf6 vf4 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.div.vf Q vf0 vf5 :fsf #b11 :ftf #b10)
|
||||
(.mov vf7 v1-0))
|
||||
(.add.x.vf vf6 vf0 vf7 :mask #b1)
|
||||
(.add.x.vf.x vf6 vf0 vf7)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf6 vf4 Q :mask #b100)
|
||||
(.mul.vf.z vf6 vf4 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> arg0 quad) vf6)
|
||||
@@ -125,8 +125,8 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.mov vf2 arg2)
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0))
|
||||
|
||||
@@ -140,9 +140,9 @@
|
||||
(vf4 :class vf))
|
||||
(init-vf0-vector)
|
||||
(let ((v1-0 #x3f000000)) (.lvf vf1 (&-> arg1 quad)) (.lvf vf2 (&-> arg2 quad)) (.mov vf3 v1-0))
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf1 vf3)
|
||||
(.add.mul.x.vf vf4 vf2 vf3 acc :mask #b111)
|
||||
(.add.mul.x.vf.xyz vf4 vf2 vf3 acc)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
arg0))
|
||||
|
||||
@@ -160,9 +160,9 @@
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.mov vf3 arg3)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
arg0))
|
||||
|
||||
@@ -179,9 +179,9 @@
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.mov vf3 arg3)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.w.vf acc vf1 vf0)
|
||||
(.sub.mul.x.vf vf4 vf2 vf3 acc :mask #b111)
|
||||
(.sub.mul.x.vf.xyz vf4 vf2 vf3 acc)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
arg0))
|
||||
|
||||
@@ -196,9 +196,9 @@
|
||||
(.mov vf3 arg2)
|
||||
(.div.vf Q vf0 vf3 :fsf #b11 :ftf #b0)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf4 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
@@ -211,8 +211,8 @@
|
||||
(vf4 :class vf))
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.sub.vf vf4 vf0 vf1 :mask #b111)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.sub.vf.xyz vf4 vf0 vf1)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
arg0))
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
(vf1 :class vf))
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.sub.vf vf1 vf0 vf1 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf1)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0))
|
||||
|
||||
@@ -271,13 +271,13 @@
|
||||
(.sub.vf vf1 vf2 vf1)
|
||||
(.abs.vf vf1 vf1)
|
||||
;; put abs.x in acc.w
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
;; add abs.y
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
;; add abs.z
|
||||
(.add.mul.z.vf vf3 vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf1 acc)
|
||||
;; set acc.x = acc.w
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(.mov v0-0 vf3)
|
||||
v0-0))
|
||||
|
||||
@@ -294,12 +294,12 @@
|
||||
(.mov vf4 arg2)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg0 quad))
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.sub.x.vf vf5 vf0 vf4 :mask #b1)
|
||||
(.sub.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.min.x.vf vf3 vf3 vf4 :mask #b111)
|
||||
(.max.x.vf vf3 vf3 vf5 :mask #b111)
|
||||
(.add.vf vf1 vf2 vf3 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.sub.x.vf.x vf5 vf0 vf4)
|
||||
(.sub.vf.xyz vf3 vf1 vf2)
|
||||
(.min.x.vf.xyz vf3 vf3 vf4)
|
||||
(.max.x.vf.xyz vf3 vf3 vf5)
|
||||
(.add.vf.xyz vf1 vf2 vf3)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0))
|
||||
|
||||
@@ -449,8 +449,8 @@
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(let ((f0-0 (-> *display* frames-per-second))) (.mov at-0 f0-0))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0))
|
||||
|
||||
@@ -464,8 +464,8 @@
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(let ((f0-0 (-> *display* seconds-per-frame))) (.mov at-0 f0-0))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0))
|
||||
|
||||
@@ -479,13 +479,13 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.z.vf.w vf1 vf0 vf1 acc)
|
||||
(.sqrt.vf Q vf1 :ftf #b11)
|
||||
(.add.w.vf vf1 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf1 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b1)
|
||||
(.mul.vf.x vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf1)
|
||||
@@ -500,11 +500,11 @@
|
||||
(vf2 :class vf))
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0))
|
||||
|
||||
@@ -530,13 +530,13 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.z.vf.w vf1 vf0 vf1 acc)
|
||||
(.sqrt.vf Q vf1 :ftf #b11)
|
||||
(.add.w.vf vf1 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf1 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b1)
|
||||
(.mul.vf.x vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf1)
|
||||
@@ -552,8 +552,8 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0))
|
||||
|
||||
@@ -571,12 +571,12 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
(.add.mul.z.vf.w vf1 vf0 vf1 acc)
|
||||
(.sqrt.vf Q vf1 :ftf #b11)
|
||||
(.add.w.vf vf1 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf1 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b1)
|
||||
(.mul.vf.x vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf1)
|
||||
@@ -592,7 +592,7 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0))
|
||||
|
||||
@@ -613,16 +613,16 @@
|
||||
; )
|
||||
; (init-vf0-vector)
|
||||
; (.lvf vf1 (&-> arg0 quad))
|
||||
; (.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
; (.mul.vf.xyz vf2 vf1 vf1)
|
||||
; (let ((v1-0 arg1))
|
||||
; (.mov vf3 v1-0)
|
||||
; )
|
||||
; (.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
; (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
; (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
; (.mul.x.vf.w acc vf0 vf2)
|
||||
; (.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
; (.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
; (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
; (.wait.vf)
|
||||
; (.mul.vf vf1 vf1 Q :mask #b111)
|
||||
; (.mul.vf.xyz vf1 vf1 Q)
|
||||
; (.nop.vf)
|
||||
; (.nop.vf)
|
||||
; (.nop.vf)
|
||||
@@ -650,19 +650,19 @@
|
||||
; )
|
||||
; (init-vf0-vector)
|
||||
; (.lvf vf1 (&-> arg0 quad))
|
||||
; (.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
; (.mul.vf.xyz vf2 vf1 vf1)
|
||||
; (let ((v1-0 arg1))
|
||||
; (.mov vf3 v1-0)
|
||||
; )
|
||||
; (.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
; (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
; (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
; (.mul.x.vf.w acc vf0 vf2)
|
||||
; (.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
; (.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
; (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
; (.add.w.vf vf2 vf0 vf2 :mask #b1)
|
||||
; (.add.w.vf.x vf2 vf0 vf2)
|
||||
; (.mov v1-1 vf2)
|
||||
; (let ((v0-0 (sqrtf v1-1)))
|
||||
; (.wait.vf)
|
||||
; (.mul.vf vf1 vf1 Q :mask #b111)
|
||||
; (.mul.vf.xyz vf1 vf1 Q)
|
||||
; (.nop.vf)
|
||||
; (.nop.vf)
|
||||
; (.nop.vf)
|
||||
@@ -783,10 +783,10 @@
|
||||
(.lvf vf1 (&-> a quad))
|
||||
(.lvf vf2 (&-> b quad))
|
||||
(.mov vf4 alpha)
|
||||
(.add.x.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf3 vf0 vf0)
|
||||
(.sub.vf vf2 vf2 vf1)
|
||||
(.mul.x.vf vf2 vf2 vf4)
|
||||
(.add.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf3 vf1 vf2)
|
||||
(.svf (&-> out quad) vf3)
|
||||
out))
|
||||
|
||||
@@ -805,10 +805,10 @@
|
||||
(else
|
||||
(let ((v1-2 out))
|
||||
(let ((f0-2 alpha)) (.lvf vf1 (&-> a quad)) (.lvf vf2 (&-> b quad)) (let ((a1-1 f0-2)) (.mov vf4 a1-1)))
|
||||
(.add.x.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf3 vf0 vf0)
|
||||
(.sub.vf vf2 vf2 vf1)
|
||||
(.mul.x.vf vf2 vf2 vf4)
|
||||
(.add.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf3 vf1 vf2)
|
||||
(.svf (&-> v1-2 quad) vf3))))
|
||||
out))
|
||||
|
||||
@@ -966,13 +966,13 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.lvf vf2 (&-> arg1 quad))
|
||||
(.sub.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.add.y.vf vf3 vf3 vf3 :mask #b1)
|
||||
(.add.z.vf vf3 vf3 vf3 :mask #b1)
|
||||
(.add.w.vf vf4 vf0 vf4 :mask #b1)
|
||||
(.sub.vf.xyz vf3 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.add.y.vf.x vf3 vf3 vf3)
|
||||
(.add.z.vf.x vf3 vf3 vf3)
|
||||
(.add.w.vf.x vf4 vf0 vf4)
|
||||
(.mov a0-1 vf4)
|
||||
(.mov v1-0 vf3)
|
||||
(>= a0-1 v1-0)))
|
||||
|
||||
@@ -250,11 +250,11 @@
|
||||
(vf9 :class vf))
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.sub.vf vf1 vf1 vf1 :mask #b1010)
|
||||
(.sub.vf.yw vf1 vf1 vf1)
|
||||
(.lvf vf3 (&-> arg3 quad))
|
||||
(.sub.vf vf2 vf2 vf2 :mask #b1010)
|
||||
(.sub.vf.yw vf2 vf2 vf2)
|
||||
(.lvf vf12 (&-> arg0 quad))
|
||||
(.sub.vf vf3 vf3 vf3 :mask #b1010)
|
||||
(.sub.vf.yw vf3 vf3 vf3)
|
||||
(.sub.vf vf4 vf2 vf1)
|
||||
(.sub.vf vf9 vf1 vf12)
|
||||
(.sub.vf vf5 vf3 vf2)
|
||||
@@ -337,11 +337,11 @@
|
||||
(when (>= arg3 f0-3)
|
||||
(.lvf vf1 (&-> v1-5 quad))
|
||||
(.lvf vf2 (&-> a1-5 quad))
|
||||
(.sub.vf vf1 vf1 vf1 :mask #b1010)
|
||||
(.sub.vf.yw vf1 vf1 vf1)
|
||||
(.lvf vf3 (&-> a0-2 quad))
|
||||
(.sub.vf vf2 vf2 vf2 :mask #b1010)
|
||||
(.sub.vf.yw vf2 vf2 vf2)
|
||||
(.lvf vf12 (&-> arg2 quad))
|
||||
(.sub.vf vf3 vf3 vf3 :mask #b1010)
|
||||
(.sub.vf.yw vf3 vf3 vf3)
|
||||
(.sub.vf vf4 vf2 vf1)
|
||||
(.sub.vf vf9 vf1 vf12)
|
||||
(.sub.vf vf5 vf3 vf2)
|
||||
@@ -568,19 +568,19 @@
|
||||
(let ((a0-5 f30-1)) (.mov vf7 a0-5))
|
||||
(.lvf vf4 a1-3)
|
||||
(.lvf vf5 v1-9))))
|
||||
(.min.vf vf1 vf3 vf4 :mask #b111)
|
||||
(.min.vf.xyz vf1 vf3 vf4)
|
||||
(.lvf vf6 (&-> arg0 quad))
|
||||
(.add.y.vf vf7 vf3 vf4 :mask #b10)
|
||||
(.add.y.vf.y vf7 vf3 vf4)
|
||||
(.svf (&-> s2-0 0 quad) vf3)
|
||||
(.max.vf vf2 vf3 vf4 :mask #b111)
|
||||
(.max.vf.xyz vf2 vf3 vf4)
|
||||
(.svf (&-> s2-0 1 quad) vf4)
|
||||
(.min.vf vf1 vf1 vf5 :mask #b111)
|
||||
(.min.vf.xyz vf1 vf1 vf5)
|
||||
(.svf (&-> s2-0 2 quad) vf5)
|
||||
(.max.vf vf2 vf2 vf5 :mask #b111)
|
||||
(.mul.x.vf vf7 vf7 vf7 :mask #b10)
|
||||
(.max.vf.xyz vf2 vf2 vf5)
|
||||
(.mul.x.vf.y vf7 vf7 vf7)
|
||||
(.svf (&-> s2-0 3 quad) vf1)
|
||||
(.svf (&-> s2-0 4 quad) vf2)
|
||||
(.sub.y.vf vf7 vf6 vf7 :mask #b10)
|
||||
(.sub.y.vf.y vf7 vf6 vf7)
|
||||
(.mov v1-10 vf7)
|
||||
(let ((v1-11 (the-as number (sar (the-as int v1-10) 32))))
|
||||
(when (and (>= arg2 (fabs (the-as float v1-11)))
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
(.lvf vf5 (&-> s5-0 vector 2 quad))
|
||||
(.div.vf Q vf0 vf2 :fsf #b11 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf2 vf2 Q :mask #b111)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mul.vf.xyz vf2 vf2 Q)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mul.x.vf vf3 vf3 vf1)
|
||||
(.mul.y.vf vf4 vf4 vf1)
|
||||
(.mul.z.vf vf5 vf5 vf1)
|
||||
|
||||
@@ -50,13 +50,13 @@
|
||||
((< (-> s4-1 w) 0.0)
|
||||
(.lvf vf1 (&-> arg2 conerot quad))
|
||||
(.lvf vf2 (&-> s4-1 vec quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 conerot quad) vf1)
|
||||
(.mov v1-11 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> arg2 conerot quad))
|
||||
(.lvf vf2 (&-> s4-1 vec quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 conerot quad) vf1)
|
||||
(.mov v1-12 vf1)))))))
|
||||
0
|
||||
@@ -87,13 +87,13 @@
|
||||
((< (-> s5-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg2 conerot quad))
|
||||
(.lvf vf2 (&-> s5-0 vec quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 conerot quad) vf1)
|
||||
(.mov v1-10 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> arg2 conerot quad))
|
||||
(.lvf vf2 (&-> s5-0 vec quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 conerot quad) vf1)
|
||||
(.mov v1-11 vf1)))))
|
||||
0
|
||||
@@ -120,13 +120,13 @@
|
||||
((< (-> s5-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg2 conerot quad))
|
||||
(.lvf vf2 (&-> s5-0 vec quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 conerot quad) vf1)
|
||||
(.mov v1-4 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> arg2 conerot quad))
|
||||
(.lvf vf2 (&-> s5-0 vec quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 conerot quad) vf1)
|
||||
(.mov v1-5 vf1))))))
|
||||
0
|
||||
|
||||
@@ -366,9 +366,9 @@
|
||||
(s1-0 projectile-init-by-other)
|
||||
(s0-0 (-> self entity)))
|
||||
(set! sv-48 s5-1)
|
||||
(let ((v0-3 (camera-pos))) (.mov.vf vf6 vf0 :mask #b1000) (.lvf vf4 (&-> v0-3 quad)))
|
||||
(let ((v0-3 (camera-pos))) (.mov.vf.w vf6 vf0) (.lvf vf4 (&-> v0-3 quad)))
|
||||
(.lvf vf5 (&-> s5-1 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-48 quad) vf6)
|
||||
(let ((t1-0 (if (>= (-> self fact eco-level) (-> *FACT-bank* eco-level-max)) 56 40))
|
||||
(t2-0 #f))
|
||||
@@ -445,9 +445,9 @@
|
||||
(s1-0 projectile-init-by-other)
|
||||
(s0-0 (-> self entity)))
|
||||
(set! sv-48 s5-1)
|
||||
(let ((v0-4 (camera-pos))) (.mov.vf vf6 vf0 :mask #b1000) (.lvf vf4 (&-> v0-4 quad)))
|
||||
(let ((v0-4 (camera-pos))) (.mov.vf.w vf6 vf0) (.lvf vf4 (&-> v0-4 quad)))
|
||||
(.lvf vf5 (&-> s5-1 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-48 quad) vf6)
|
||||
(let ((t1-0 (if (>= (-> self fact eco-level) (-> *FACT-bank* eco-level-max)) 120 104))
|
||||
(t2-0 #f))
|
||||
|
||||
@@ -68,20 +68,20 @@
|
||||
(format 0 "BAD case in setup-collide-for-line-sphere")
|
||||
(b! #t cfg-13 :delay (nop!))
|
||||
(label cfg-3)
|
||||
(.add.y.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.y.vf.x vf8 vf8 vf8)
|
||||
;;(set! (-> obj num-tris) 0)
|
||||
(.min.vf vf4 vf1 vf2)
|
||||
;;(set! (-> obj num-prims) 0)
|
||||
(.max.vf vf5 vf1 vf2)
|
||||
;;(set! (-> obj collide-with) collide-with)
|
||||
(.sub.x.vf vf10 vf0 vf9 :mask #b111)
|
||||
(.sub.x.vf.xyz vf10 vf0 vf9)
|
||||
;;(set! (-> obj proc) proc)
|
||||
(.add.z.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.sub.x.vf vf4 vf4 vf9 :mask #b111)
|
||||
(.add.x.vf vf5 vf5 vf9 :mask #b111)
|
||||
(.add.z.vf.x vf8 vf8 vf8)
|
||||
(.sub.x.vf.xyz vf4 vf4 vf9)
|
||||
(.add.x.vf.xyz vf5 vf5 vf9)
|
||||
(.ftoi.vf vf15 vf10)
|
||||
(.isqrt.vf Q vf0 vf8 :fsf #b11 :ftf #b0)
|
||||
(.add.x.vf vf11 vf0 vf9 :mask #b111)
|
||||
(.add.x.vf.xyz vf11 vf0 vf9)
|
||||
(.svf (&-> v1-1 collide-box4w min quad) vf15)
|
||||
(.ftoi.vf vf6 vf4)
|
||||
;;(.svf (&-> obj collide-box min quad) vf4)
|
||||
@@ -91,39 +91,39 @@
|
||||
;;(.svf (&-> obj collide-box4w min quad) vf6)
|
||||
;;(.svf (&-> obj collide-box4w max quad) vf7)
|
||||
(.wait.vf)
|
||||
(.add.vf vf8 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf8 vf0 Q)
|
||||
(.mul.x.vf vf12 vf3 vf8)
|
||||
(.div.vf Q vf0 vf8 :fsf #b11 :ftf #b0)
|
||||
(.mul.vf vf22 vf12 vf12)
|
||||
(.abs.vf vf23 vf12)
|
||||
(.add.y.vf vf22 vf22 vf22 :mask #b1)
|
||||
(.add.y.vf.x vf22 vf22 vf22)
|
||||
(.mov a0-7 vf23)
|
||||
(.wait.vf)
|
||||
(.add.vf vf8 vf0 Q :mask #b1)
|
||||
(b! (zero? a0-7) cfg-6 :likely-delay (.add.z.vf vf13 vf0 vf12 :mask #b1))
|
||||
(.sub.y.vf vf13 vf0 vf12 :mask #b1)
|
||||
(.add.vf.x vf8 vf0 Q)
|
||||
(b! (zero? a0-7) cfg-6 :likely-delay (.add.z.vf.x vf13 vf0 vf12))
|
||||
(.sub.y.vf.x vf13 vf0 vf12)
|
||||
(.isqrt.vf Q vf0 vf22 :fsf #b11 :ftf #b0)
|
||||
(.add.x.vf vf13 vf0 vf12 :mask #b10)
|
||||
(.add.x.vf.y vf13 vf0 vf12)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf13 vf13 Q :mask #b11)
|
||||
(.mul.vf.xy vf13 vf13 Q)
|
||||
(label cfg-6)
|
||||
(.outer.product.a.vf acc vf12 vf13)
|
||||
(.add.x.vf vf11 vf11 vf8 :mask #b1)
|
||||
(.add.x.vf.x vf11 vf11 vf8)
|
||||
(.outer.product.b.vf vf14 vf13 vf12 acc)
|
||||
(.ftoi.vf vf16 vf11)
|
||||
(.mov.vf vf17 vf12)
|
||||
(.mov.vf vf18 vf13)
|
||||
(.mov.vf vf19 vf14)
|
||||
(.mov.vf vf17 vf0 :mask #b1110)
|
||||
(.mov.vf.yzw vf17 vf0)
|
||||
(.svf (&-> v1-1 collide-box4w max quad) vf16)
|
||||
(.mov.vf vf18 vf0 :mask #b1101)
|
||||
(.mov.vf vf19 vf0 :mask #b1011)
|
||||
(.add.x.vf vf17 vf17 vf13 :mask #b10)
|
||||
(.add.y.vf vf18 vf18 vf12 :mask #b1)
|
||||
(.add.z.vf vf19 vf19 vf12 :mask #b1)
|
||||
(.add.x.vf vf17 vf17 vf14 :mask #b100)
|
||||
(.add.y.vf vf18 vf18 vf14 :mask #b100)
|
||||
(.add.z.vf vf19 vf19 vf13 :mask #b10)
|
||||
(.mov.vf.xzw vf18 vf0)
|
||||
(.mov.vf.xyw vf19 vf0)
|
||||
(.add.x.vf.y vf17 vf17 vf13)
|
||||
(.add.y.vf.x vf18 vf18 vf12)
|
||||
(.add.z.vf.x vf19 vf19 vf12)
|
||||
(.add.x.vf.z vf17 vf17 vf14)
|
||||
(.add.y.vf.z vf18 vf18 vf14)
|
||||
(.add.z.vf.y vf19 vf19 vf13)
|
||||
(.mul.x.vf acc vf17 vf1)
|
||||
(.add.mul.y.vf acc vf18 vf1 acc)
|
||||
(.svf (&-> v1-1 inv-mat vector 0 quad) vf17)
|
||||
|
||||
@@ -423,8 +423,8 @@
|
||||
(.lvf vf1 (&-> s5-0 quad))
|
||||
(let ((f0-0 (seconds-per-frame))) (.mov at-0 f0-0))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a2-0 quad) vf1))
|
||||
(vector+! a1-1 a0-2 v1-0)
|
||||
(if (points-in-air? a0-2 a1-1 *seagull-boxes* 10)
|
||||
|
||||
@@ -544,13 +544,13 @@
|
||||
((< (-> s5-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg2 vector 1 quad))
|
||||
(.lvf vf2 (&-> s5-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 vector 1 quad) vf1)
|
||||
(.mov v1-5 vf1))
|
||||
(else
|
||||
(.lvf vf1 (&-> arg2 vector 1 quad))
|
||||
(.lvf vf2 (&-> s5-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 vector 1 quad) vf1)
|
||||
(.mov v1-6 vf1)))))
|
||||
0
|
||||
|
||||
@@ -95,8 +95,8 @@
|
||||
(.lvf vf1 (&-> (-> self transv) quad))
|
||||
(let ((f0-2 (seconds-per-frame))) (.mov at-0 f0-2))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-1 quad) vf1))
|
||||
(when (>= (fill-and-probe-using-line-sphere *collide-cache*
|
||||
(-> self root trans)
|
||||
@@ -462,8 +462,8 @@
|
||||
(.lvf vf1 (&-> (-> this swing-vel) quad))
|
||||
(let ((f0-7 (seconds-per-frame))) (.mov at-0 f0-7))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-20 quad) vf1))
|
||||
(when (>= (fill-and-probe-using-line-sphere *collide-cache*
|
||||
s4-0
|
||||
|
||||
@@ -310,8 +310,8 @@
|
||||
(.lvf vf1 (&-> (-> this root transv) quad))
|
||||
(let ((f0-8 (seconds-per-frame))) (.mov at-0 f0-8))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-4 quad) vf1))
|
||||
(let ((s4-0 (new 'stack-no-clear 'check-vector-collision-with-nav-spheres-info)))
|
||||
(when (>= (nav-control-method-23 (-> this nav) (-> this nav travel) s4-0) 0.0)
|
||||
|
||||
@@ -536,8 +536,8 @@
|
||||
(.lvf vf1 (&-> (-> self collide-info transv) quad))
|
||||
(let ((f0-4 (seconds-per-frame))) (.mov at-0 f0-4))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-7 quad) vf1))
|
||||
(let ((gp-0 #f))
|
||||
(nav-control-method-28 (-> self nav) (the-as collide-kind -1))
|
||||
@@ -640,8 +640,8 @@
|
||||
(.lvf vf1 (&-> (-> self collide-info transv) quad))
|
||||
(let ((f0-4 (seconds-per-frame))) (.mov at-0 f0-4))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-7 quad) vf1))
|
||||
(let ((gp-0 #f))
|
||||
(nav-control-method-28 (-> self nav) (the-as collide-kind -1))
|
||||
|
||||
@@ -462,8 +462,8 @@
|
||||
(.lvf vf1 (&-> (-> s2-0 transv) quad))
|
||||
(let ((f0-17 (seconds-per-frame))) (.mov at-0 f0-17))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a0-21 quad) vf1)
|
||||
(vector+! a1-10 v1-42 a0-21))
|
||||
(when (< (-> s3-3 y) (-> this down y))
|
||||
@@ -492,8 +492,8 @@
|
||||
(.lvf vf1 (&-> (-> s2-0 transv) quad))
|
||||
(let ((f1-27 (seconds-per-frame))) (.mov at-1 f1-27))
|
||||
(.mov vf2 at-1)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a0-26 quad) vf1)
|
||||
(vector+! a1-14 v1-61 a0-26))
|
||||
(let ((f1-29 (- (-> this up y) (-> s3-3 y)))
|
||||
|
||||
@@ -198,8 +198,8 @@
|
||||
(.lvf vf1 (&-> (-> self orbit-rotv) quad))
|
||||
(let ((f0-11 (seconds-per-frame))) (.mov at-0 f0-11))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a0-6 quad) vf1)
|
||||
(vector+! a1-5 v1-13 a0-6))
|
||||
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
||||
|
||||
@@ -141,8 +141,8 @@
|
||||
(.lvf vf1 (&-> (-> self root transv) quad))
|
||||
(let ((f0-1 (-> *display* frames-per-second))) (.mov at-0 f0-1))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-16 quad) vf1))
|
||||
(sunkenfisha-method-23 self)))
|
||||
:code
|
||||
|
||||
@@ -675,8 +675,8 @@
|
||||
(.lvf vf1 (&-> (-> s2-0 transv) quad))
|
||||
(let ((f0-15 (-> *display* seconds-per-frame))) (.mov at-0 f0-15))
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a2-2 quad) vf1)
|
||||
(t9-14 a0-17 a1-9 a2-2))
|
||||
(when (< (-> s3-3 y) (-> obj down y))
|
||||
@@ -702,8 +702,8 @@
|
||||
(.lvf vf1 (&-> (-> s2-0 transv) quad))
|
||||
(let ((f0-29 (-> *display* seconds-per-frame))) (.mov at-1 f0-29))
|
||||
(.mov vf2 at-1)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a2-4 quad) vf1)
|
||||
(t9-17 a0-20 a1-11 a2-4))
|
||||
(let ((f0-31 (- (-> obj up y) (-> s3-3 y)))
|
||||
|
||||
@@ -99,8 +99,8 @@
|
||||
(.lvf vf4 (&-> a0-24 quad))
|
||||
(.lvf vf5 (&-> a1-18 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-26 0 trans quad) vf6)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -101,8 +101,8 @@
|
||||
(.mov at-0 f0-1)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a0-12 quad) vf1)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -502,8 +502,8 @@
|
||||
(.lvf vf4 (&-> s1-0 quad))
|
||||
(.lvf vf5 (&-> a0-11 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-19 quad) vf6)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -125,9 +125,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-28 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a1-5 quad) vf6)
|
||||
)
|
||||
(if (-> gp-0 callback)
|
||||
@@ -157,22 +157,22 @@
|
||||
(set! sv-784 (new 'stack-no-clear 'vector))
|
||||
(.lvf vf4 (&-> s0-0 quad))
|
||||
(.lvf vf5 (&-> sv-736 quad))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-784 quad) vf6)
|
||||
(set! sv-832 (new 'stack-no-clear 'vector))
|
||||
(let ((v1-49 sv-752))
|
||||
(.lvf vf4 (&-> s0-0 quad))
|
||||
(.lvf vf5 (&-> v1-49 quad))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-832 quad) vf6)
|
||||
(let ((s0-1 (new 'stack-no-clear 'vector)))
|
||||
(.lvf vf4 (&-> s1-0 quad))
|
||||
(.lvf vf5 (&-> sv-752 quad))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> s0-1 quad) vf6)
|
||||
(set! sv-928 (new 'stack-no-clear 'quaternion))
|
||||
(let ((s1-1 (new 'stack-no-clear 'quaternion)))
|
||||
@@ -218,11 +218,11 @@
|
||||
(vector-orient-by-quat! sv-784 sv-784 sv-928)
|
||||
(let ((v1-74 sv-832))
|
||||
(let ((a0-46 s2-3))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> a0-46 quad))
|
||||
)
|
||||
(.lvf vf5 (&-> sv-784 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-74 quad) vf6)
|
||||
)
|
||||
(set! sv-800 quaternion-from-two-vectors!)
|
||||
@@ -362,8 +362,8 @@
|
||||
(.lvf vf4 (&-> v1-1 quad))
|
||||
(.lvf vf5 (&-> a2-1 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> a0-1 quad) vf6)
|
||||
)
|
||||
(cspace<-parented-transformq-joint! arg0 arg1)
|
||||
@@ -964,8 +964,8 @@
|
||||
(.lvf vf4 (&-> v1-63 quad))
|
||||
(.lvf vf5 (&-> a0-46 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> a1-36 quad) vf6)
|
||||
)
|
||||
(cspace<-parented-transformq-joint! arg0 arg1)
|
||||
@@ -1289,8 +1289,8 @@
|
||||
(.lvf vf4 (&-> v1-22 quad))
|
||||
(.lvf vf5 (&-> a0-11 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> a1-9 quad) vf6)
|
||||
)
|
||||
)
|
||||
@@ -1319,8 +1319,8 @@
|
||||
(.lvf vf4 (&-> v1-0 quad))
|
||||
(.lvf vf5 (&-> a0-1 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> a2-0 quad) vf6)
|
||||
)
|
||||
(cspace<-parented-transformq-joint! arg0 arg1)
|
||||
@@ -1455,8 +1455,8 @@
|
||||
(.lvf vf4 (&-> v1-11 quad))
|
||||
(.lvf vf5 (&-> a0-4 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> a1-4 quad) vf6)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1445,8 +1445,8 @@
|
||||
(.mov vf2 v1-11)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-128 quad) vf1)
|
||||
(vector+! s2-0 s2-0 (-> arg0 vector 2))
|
||||
(vector-normalize! s2-0 f26-0)
|
||||
@@ -1478,8 +1478,8 @@
|
||||
(.mov vf2 v1-32)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-160 quad) vf1)
|
||||
(vector+! s2-0 s2-0 (-> arg0 vector 2))
|
||||
(vector-normalize! s2-0 1.0)
|
||||
@@ -1572,11 +1572,11 @@
|
||||
(vector-normalize! sv-208 (* f28-0 (-> arg0 point-of-interest-blend value)))
|
||||
(let ((v1-12 s0-0))
|
||||
(let ((a0-10 s0-0))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> a0-10 quad))
|
||||
)
|
||||
(.lvf vf5 (&-> sv-208 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-12 quad) vf6)
|
||||
)
|
||||
(vector-normalize! s0-0 f28-0)
|
||||
|
||||
@@ -100,16 +100,16 @@
|
||||
(a3-4 (the-as (inline-array collide-cache-tri) (-> this tris (-> this num-tris))))
|
||||
)
|
||||
(.mov vf5 v1-24)
|
||||
(.add.x.vf vf1 vf0 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf1 vf0 vf5)
|
||||
(set! (-> a3-4 0 clear-flags) (the-as uint128 0))
|
||||
(set! (-> a3-4 0 prim-index) a2-6)
|
||||
(.add.x.vf vf3 vf0 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf3 vf0 vf5)
|
||||
(set! (-> a3-4 1 clear-flags) (the-as uint128 0))
|
||||
(set! (-> a3-4 1 prim-index) a2-6)
|
||||
(.mov.vf vf2 vf1)
|
||||
(.mov.vf vf4 vf1)
|
||||
(.add.z.vf vf2 vf0 vf3 :mask #b100)
|
||||
(.add.x.vf vf4 vf0 vf3 :mask #b1)
|
||||
(.add.z.vf.z vf2 vf0 vf3)
|
||||
(.add.x.vf.x vf4 vf0 vf3)
|
||||
(.svf (&-> a3-4 0 vertex 0 quad) vf1)
|
||||
(.svf (&-> a3-4 0 vertex 1 quad) vf2)
|
||||
(.svf (&-> a3-4 0 vertex 2 quad) vf3)
|
||||
@@ -166,9 +166,9 @@
|
||||
(set! (-> this ignore-processes 0) (the-as process a0-2))
|
||||
(nop!)
|
||||
(set! (-> this ignore-processes 1) (the-as process a1-1))
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(nop!)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(set! (-> this ignore-mask) (the-as pat-surface a2-0))
|
||||
)
|
||||
)
|
||||
@@ -288,29 +288,29 @@
|
||||
(nop!)
|
||||
(.add.vf vf2 vf1 vf3)
|
||||
(set! (-> this ignore-mask) (the-as pat-surface v1-10))
|
||||
(.add.y.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.y.vf.x vf8 vf8 vf8)
|
||||
(set! (-> this num-tris) 0)
|
||||
(.min.vf vf4 vf1 vf2)
|
||||
(set! (-> this num-prims) 0)
|
||||
(.max.vf vf5 vf1 vf2)
|
||||
(set! (-> this collide-with) (the-as collide-spec a2-1))
|
||||
)
|
||||
(.sub.w.vf vf10 vf0 vf9 :mask #b111)
|
||||
(.sub.w.vf.xyz vf10 vf0 vf9)
|
||||
(set! (-> this ignore-processes 0) (the-as process a0-14))
|
||||
(.add.z.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.z.vf.x vf8 vf8 vf8)
|
||||
(set! (-> this ignore-processes 1) (the-as process a1-3))
|
||||
)
|
||||
)
|
||||
)
|
||||
(.sub.w.vf vf4 vf4 vf9 :mask #b111)
|
||||
(.sub.w.vf.xyz vf4 vf4 vf9)
|
||||
(nop!)
|
||||
(.add.w.vf vf5 vf5 vf9 :mask #b111)
|
||||
(.add.w.vf.xyz vf5 vf5 vf9)
|
||||
(nop!)
|
||||
(.ftoi.vf vf15 vf10)
|
||||
(nop!)
|
||||
(.isqrt.vf Q vf0 vf8 :fsf #b11 :ftf #b0)
|
||||
(nop!)
|
||||
(.add.w.vf vf11 vf0 vf9 :mask #b111)
|
||||
(.add.w.vf.xyz vf11 vf0 vf9)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
@@ -334,7 +334,7 @@
|
||||
(.svf (&-> arg0 bbox4w max quad) vf7)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf8 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf8 vf0 Q)
|
||||
(nop!)
|
||||
(.mul.x.vf vf12 vf3 vf8)
|
||||
(nop!)
|
||||
@@ -346,27 +346,27 @@
|
||||
(nop!)
|
||||
(.abs.vf vf23 vf12)
|
||||
(nop!)
|
||||
(.add.y.vf vf22 vf22 vf22 :mask #b1)
|
||||
(.add.y.vf.x vf22 vf22 vf22)
|
||||
(.mov v1-11 vf23)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf8 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf8 vf0 Q)
|
||||
(nop!)
|
||||
(b! (zero? v1-11) cfg-12 :likely-delay (.add.z.vf vf13 vf0 vf12 :mask #b1))
|
||||
(.sub.y.vf vf13 vf0 vf12 :mask #b1)
|
||||
(b! (zero? v1-11) cfg-12 :likely-delay (.add.z.vf.x vf13 vf0 vf12))
|
||||
(.sub.y.vf.x vf13 vf0 vf12)
|
||||
(nop!)
|
||||
(.isqrt.vf Q vf0 vf22 :fsf #b11 :ftf #b0)
|
||||
(nop!)
|
||||
(.add.x.vf vf13 vf0 vf12 :mask #b10)
|
||||
(.add.x.vf.y vf13 vf0 vf12)
|
||||
(nop!)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.mul.vf vf13 vf13 Q :mask #b11)
|
||||
(.mul.vf.xy vf13 vf13 Q)
|
||||
(nop!)
|
||||
(label cfg-12)
|
||||
(.outer.product.a.vf acc vf12 vf13)
|
||||
(nop!)
|
||||
(.add.x.vf vf11 vf11 vf8 :mask #b1)
|
||||
(.add.x.vf.x vf11 vf11 vf8)
|
||||
(nop!)
|
||||
(.outer.product.b.vf vf14 vf13 vf12 acc)
|
||||
(nop!)
|
||||
@@ -378,23 +378,23 @@
|
||||
(nop!)
|
||||
(.mov.vf vf19 vf14)
|
||||
(nop!)
|
||||
(.mov.vf vf17 vf0 :mask #b1110)
|
||||
(.mov.vf.yzw vf17 vf0)
|
||||
(.svf (&-> arg0 local-box4w max quad) vf16)
|
||||
(.mov.vf vf18 vf0 :mask #b1101)
|
||||
(.mov.vf.xzw vf18 vf0)
|
||||
(nop!)
|
||||
(.mov.vf vf19 vf0 :mask #b1011)
|
||||
(.mov.vf.xyw vf19 vf0)
|
||||
(nop!)
|
||||
(.add.x.vf vf17 vf17 vf13 :mask #b10)
|
||||
(.add.x.vf.y vf17 vf17 vf13)
|
||||
(nop!)
|
||||
(.add.y.vf vf18 vf18 vf12 :mask #b1)
|
||||
(.add.y.vf.x vf18 vf18 vf12)
|
||||
(nop!)
|
||||
(.add.z.vf vf19 vf19 vf12 :mask #b1)
|
||||
(.add.z.vf.x vf19 vf19 vf12)
|
||||
(nop!)
|
||||
(.add.x.vf vf17 vf17 vf14 :mask #b100)
|
||||
(.add.x.vf.z vf17 vf17 vf14)
|
||||
(nop!)
|
||||
(.add.y.vf vf18 vf18 vf14 :mask #b100)
|
||||
(.add.y.vf.z vf18 vf18 vf14)
|
||||
(nop!)
|
||||
(.add.z.vf vf19 vf19 vf13 :mask #b10)
|
||||
(.add.z.vf.y vf19 vf19 vf13)
|
||||
(nop!)
|
||||
(.mul.x.vf acc vf17 vf1)
|
||||
(nop!)
|
||||
@@ -423,11 +423,11 @@
|
||||
)
|
||||
(let ((f0-19 1.0))
|
||||
(.lvf vf1 (&-> (-> arg0 move-dist) quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-20 vf1)
|
||||
(set! (-> arg0 rlength w) (/ f0-19 v1-20))
|
||||
)
|
||||
@@ -610,11 +610,11 @@
|
||||
(s3-0 (new 'stack-no-clear 'matrix))
|
||||
)
|
||||
(.lvf vf1 (&-> (-> arg0 move-dist) quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-9 vf1)
|
||||
(let ((f0-1 v1-9))
|
||||
(if (< 0.0 f0-1)
|
||||
@@ -751,7 +751,7 @@
|
||||
(.lvf vf3 (&-> arg0 start-pos quad))
|
||||
(.lvf vf2 (&-> arg0 move-dist quad))
|
||||
(set! (-> s5-0 vertex 0 x) (the-as float (-> arg0 ignore-pat)))
|
||||
(.mul.w.vf vf3 vf0 vf4 :mask #b1000)
|
||||
(.mul.w.vf.w vf3 vf0 vf4)
|
||||
(.svf (&-> s5-0 vertex 2 quad) vf2)
|
||||
(.svf (&-> s5-0 vertex 1 quad) vf3)
|
||||
(let ((s4-0 (the-as object (-> this prims)))
|
||||
|
||||
@@ -31,14 +31,14 @@
|
||||
(set! (-> s5-0 cshape) v1-3)
|
||||
(.lvf vf3 (&-> v1-3 trans quad))
|
||||
)
|
||||
(.add.vf vf1 vf1 vf3 :mask #b111)
|
||||
(.add.vf vf2 vf2 vf3 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf1 vf3)
|
||||
(.add.vf.xyz vf2 vf2 vf3)
|
||||
(.svf (&-> s5-0 cache-fill-box min quad) vf1)
|
||||
(.svf (&-> s5-0 cache-fill-box max quad) vf2)
|
||||
(.lvf vf4 (&-> s5-0 spec local-within-reach-box min quad))
|
||||
(.lvf vf5 (&-> s5-0 spec local-within-reach-box max quad))
|
||||
(.add.vf vf4 vf4 vf3 :mask #b111)
|
||||
(.add.vf vf5 vf5 vf3 :mask #b111)
|
||||
(.add.vf.xyz vf4 vf4 vf3)
|
||||
(.add.vf.xyz vf5 vf5 vf3)
|
||||
(.ftoi.vf vf6 vf4)
|
||||
(.ftoi.vf vf7 vf5)
|
||||
(.svf (&-> s5-0 within-reach-box min quad) vf4)
|
||||
@@ -154,9 +154,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-1 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a1-1 quad) vf6)
|
||||
)
|
||||
(let ((f0-1 (get-best-hand-point this (-> arg1 right-hand-hold) s0-0 (the-as int s4-0))))
|
||||
@@ -173,9 +173,9 @@
|
||||
(.lvf vf5 (&-> v0-2 quad))
|
||||
)
|
||||
(.lvf vf4 (&-> sv-656 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> sv-672 quad) vf6)
|
||||
(let ((f0-3 (get-best-hand-point this (-> arg1 left-hand-hold) s0-0 (the-as int s4-0))))
|
||||
(if (< 491.52 f0-3)
|
||||
@@ -430,23 +430,23 @@
|
||||
(.sub.vf vf4 vf1 vf2)
|
||||
(.sub.vf vf5 vf3 vf2)
|
||||
(.mul.vf vf6 vf5 vf5)
|
||||
(.add.z.vf vf6 vf6 vf6 :mask #b1)
|
||||
(.add.z.vf.x vf6 vf6 vf6)
|
||||
(.sqrt.vf Q vf6 :ftf #b0)
|
||||
(nop!)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf6 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf6 vf0 Q)
|
||||
(.nop.vf)
|
||||
(.mov v1-1 vf6)
|
||||
(let ((f1-0 v1-1))
|
||||
(.div.vf Q vf0 vf6 :fsf #b11 :ftf #b0)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf8 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf8 vf0 Q)
|
||||
(.mul.x.vf vf9 vf5 vf8)
|
||||
(.mov v1-2 vf8)
|
||||
(.mul.vf vf10 vf9 vf4)
|
||||
(.add.z.vf vf10 vf10 vf10 :mask #b1)
|
||||
(.add.z.vf.x vf10 vf10 vf10)
|
||||
(let ((f2-0 v1-2))
|
||||
(.mov v1-3 vf10)
|
||||
(let ((f3-0 v1-3))
|
||||
@@ -460,8 +460,8 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf vf7 vf5 vf11 :mask #b111)
|
||||
(.add.vf vf7 vf7 vf2 :mask #b111)
|
||||
(.mul.x.vf.xyz vf7 vf5 vf11)
|
||||
(.add.vf.xyz vf7 vf7 vf2)
|
||||
(.svf (&-> arg1 quad) vf7)
|
||||
0.0
|
||||
)
|
||||
|
||||
@@ -57,22 +57,22 @@ If we are inside of the primitive, return 0.0
|
||||
(.mul.vf vf3 vf3 vf3) ;; vf3 = r^2
|
||||
(.mul.vf vf6 vf1 vf1) ;; vf6 = o.^2
|
||||
(.mul.vf vf5 vf2 vf1) ;; vf5 = u . o
|
||||
(.add.y.vf vf4 vf4 vf4 :mask #b1)
|
||||
(.add.y.vf.x vf4 vf4 vf4)
|
||||
(let ((result (the-as float 0)))
|
||||
(.add.x.vf vf6 vf6 vf6 :mask #b10)
|
||||
(.sub.x.vf vf6 vf6 vf3 :mask #b100)
|
||||
(.add.z.vf vf4 vf4 vf4 :mask #b1)
|
||||
(.add.x.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf6 vf6 vf6)
|
||||
(.sub.x.vf.z vf6 vf6 vf3)
|
||||
(.add.z.vf.x vf4 vf4 vf4)
|
||||
(.add.x.vf.y vf5 vf5 vf5)
|
||||
(let ((v1-0 (the-as float 0)))
|
||||
(.add.z.vf vf6 vf6 vf6 :mask #b10)
|
||||
(.add.z.vf.y vf6 vf6 vf6)
|
||||
(.div.vf Q vf0 vf4 :fsf #b11 :ftf #b0)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.z.vf.y vf5 vf5 vf5)
|
||||
(.mov a0-1 vf4)
|
||||
(.mul.x.vf vf7 vf6 vf4)
|
||||
(.mov a1-0 vf6)
|
||||
(.mul.vf vf8 vf5 vf5)
|
||||
(b! (< (the-as int a1-0) 0) cfg-7 :delay (set! a0-2 a0-1))
|
||||
(.mul.vf vf4 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf4 vf0 Q)
|
||||
(.sub.vf vf9 vf8 vf7)
|
||||
(b! (= a0-2 v1-0) cfg-6 :delay (.mov v1-1 vf5))
|
||||
)
|
||||
@@ -82,11 +82,11 @@ If we are inside of the primitive, return 0.0
|
||||
(.add.x.vf vf6 vf5 vf4)
|
||||
(.mov v1-4 vf6)
|
||||
(.mul.vf vf6 vf6 vf6)
|
||||
(.mul.vf vf9 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf9 vf0 Q)
|
||||
(.sub.vf vf6 vf9 vf6)
|
||||
(.add.w.vf vf9 vf5 vf9 :mask #b10)
|
||||
(.add.w.vf.y vf9 vf5 vf9)
|
||||
(.mov a0-3 vf6)
|
||||
(.mul.w.vf vf9 vf9 vf4 :mask #b10)
|
||||
(.mul.w.vf.y vf9 vf9 vf4)
|
||||
(b!
|
||||
(< (logand (the-as uint v1-4) (the-as uint a0-3)) 0)
|
||||
cfg-6
|
||||
@@ -153,22 +153,22 @@ If we are inside of the primitive, return 0.0
|
||||
(.mul.vf vf3 vf3 vf3)
|
||||
(.mul.vf vf6 vf1 vf1)
|
||||
(.mul.vf vf5 vf2 vf1)
|
||||
(.add.y.vf vf4 vf4 vf4 :mask #b1)
|
||||
(.add.y.vf.x vf4 vf4 vf4)
|
||||
(let ((result (the-as float 0)))
|
||||
(.add.x.vf vf6 vf6 vf6 :mask #b10)
|
||||
(.sub.x.vf vf6 vf6 vf3 :mask #b100)
|
||||
(.add.z.vf vf4 vf4 vf4 :mask #b1)
|
||||
(.add.x.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf6 vf6 vf6)
|
||||
(.sub.x.vf.z vf6 vf6 vf3)
|
||||
(.add.z.vf.x vf4 vf4 vf4)
|
||||
(.add.x.vf.y vf5 vf5 vf5)
|
||||
(let ((v1-0 (the-as float 0)))
|
||||
(.add.z.vf vf6 vf6 vf6 :mask #b10)
|
||||
(.add.z.vf.y vf6 vf6 vf6)
|
||||
(.div.vf Q vf0 vf4 :fsf #b11 :ftf #b0)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.z.vf.y vf5 vf5 vf5)
|
||||
(.mov a0-1 vf4)
|
||||
(.mul.x.vf vf7 vf6 vf4)
|
||||
(.mov a1-0 vf6)
|
||||
(.mul.vf vf8 vf5 vf5)
|
||||
(b! (< (the-as int a1-0) 0) cfg-7 :delay (set! a0-2 a0-1)) ;; in the sphere
|
||||
(.mul.vf vf4 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf4 vf0 Q)
|
||||
(.sub.vf vf9 vf8 vf7)
|
||||
(b! (= a0-2 v1-0) cfg-6 :delay (.mov v1-1 vf5)) ;; bad denominator in division
|
||||
)
|
||||
@@ -178,11 +178,11 @@ If we are inside of the primitive, return 0.0
|
||||
(.add.x.vf vf6 vf5 vf4)
|
||||
(.mov v1-4 vf6)
|
||||
(.mul.vf vf6 vf6 vf6)
|
||||
(.mul.vf vf9 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf9 vf0 Q)
|
||||
(.sub.vf vf6 vf9 vf6)
|
||||
(.add.w.vf vf9 vf5 vf9 :mask #b10)
|
||||
(.add.w.vf.y vf9 vf5 vf9)
|
||||
(.mov a0-3 vf6)
|
||||
(.mul.w.vf vf9 vf9 vf4 :mask #b10)
|
||||
(.mul.w.vf.y vf9 vf9 vf4)
|
||||
|
||||
;; too far.
|
||||
(b! (< (logand (the-as int v1-4) (the-as int a0-3)) 0)
|
||||
@@ -225,12 +225,12 @@ If we are inside of the primitive, return 0.0
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> ray-origin quad))
|
||||
(.mov.vf vf1 vf0 :mask #b10)
|
||||
(.mov.vf.y vf1 vf0)
|
||||
(.lvf vf2 (&-> circle-origin quad))
|
||||
(.mov.vf vf2 vf0 :mask #b10)
|
||||
(.mov.vf.y vf2 vf0)
|
||||
(.sub.vf vf1 vf1 vf2)
|
||||
(.lvf vf2 (&-> ray-dir quad))
|
||||
(.mov.vf vf2 vf0 :mask #b10)
|
||||
(.mov.vf.y vf2 vf0)
|
||||
;;(raw-ray-sphere-intersect radius)
|
||||
(pc-port-do-raw-ray-sphere-intersect radius vf1 vf2)
|
||||
)
|
||||
@@ -271,10 +271,10 @@ If we are inside of the primitive, return 0.0
|
||||
(.mov vf14 cyl-len)
|
||||
(.mul.vf vf16 vf15 vf13)
|
||||
(.mul.vf vf17 vf11 vf13)
|
||||
(.add.x.vf vf16 vf16 vf16 :mask #b10)
|
||||
(.add.x.vf vf17 vf17 vf17 :mask #b10)
|
||||
(.add.z.vf vf16 vf16 vf16 :mask #b10)
|
||||
(.add.z.vf vf17 vf17 vf17 :mask #b10)
|
||||
(.add.x.vf.y vf16 vf16 vf16)
|
||||
(.add.x.vf.y vf17 vf17 vf17)
|
||||
(.add.z.vf.y vf16 vf16 vf16)
|
||||
(.add.z.vf.y vf17 vf17 vf17)
|
||||
(.mul.y.vf vf1 vf13 vf16)
|
||||
(.add.vf vf18 vf17 vf16)
|
||||
(.sub.x.vf vf19 vf16 vf14)
|
||||
@@ -301,7 +301,7 @@ If we are inside of the primitive, return 0.0
|
||||
(< (the-as int a0-4) 0)
|
||||
cfg-6
|
||||
:delay
|
||||
(.add.vf vf12 vf12 vf13 :mask #b111)
|
||||
(.add.vf.xyz vf12 vf12 vf13)
|
||||
)
|
||||
(.mov a0-5 vf19)
|
||||
(b! (>= (the-as int a0-5) 0) cfg-6 :delay (.svf (&-> pt-out quad) vf12))
|
||||
@@ -344,12 +344,12 @@ If we are inside of the primitive, return 0.0
|
||||
(.mul.vf vf8 vf8 vf4)
|
||||
(.mul.vf vf9 vf7 vf4)
|
||||
(.mul.vf vf5 vf4 vf4)
|
||||
(.add.y.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.y.vf vf9 vf9 vf9 :mask #b1)
|
||||
(.add.y.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.z.vf vf8 vf8 vf8 :mask #b1)
|
||||
(.add.z.vf vf9 vf9 vf9 :mask #b1)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.y.vf.x vf8 vf8 vf8)
|
||||
(.add.y.vf.x vf9 vf9 vf9)
|
||||
(.add.y.vf.x vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf8 vf8 vf8)
|
||||
(.add.z.vf.x vf9 vf9 vf9)
|
||||
(.add.z.vf.x vf5 vf5 vf5)
|
||||
(.mov v1-0 vf9)
|
||||
(.mov a2-1 vf8)
|
||||
(.isqrt.vf Q vf0 vf5 :fsf #b11 :ftf #b0)
|
||||
@@ -359,14 +359,14 @@ If we are inside of the primitive, return 0.0
|
||||
(cond
|
||||
((!= f2-0 0.0)
|
||||
(let ((f1-1 (/ f1-0 f2-0)))
|
||||
(.mov.vf vf4 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf4 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf4 vf4 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf4 Q)
|
||||
(let ((v0-0 f1-1))
|
||||
(.mov vf8 v0-0)
|
||||
(.svf (&-> arg1 quad) vf4)
|
||||
(.mul.x.vf acc vf7 vf8)
|
||||
(.add.mul.w.vf vf7 vf6 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf7 vf6 vf0 acc)
|
||||
(.svf (&-> arg0 quad) vf7)
|
||||
(.mov v1-1 vf7)
|
||||
v0-0
|
||||
|
||||
@@ -214,20 +214,20 @@ Another limitation is that triangles don't have per-tri pat info.
|
||||
(.lvf vf7 (&-> s3-0 vertex 0 quad))
|
||||
(.mul.vf vf6 vf4 vf4)
|
||||
(.lvf vf8 (&-> s3-0 vertex 1 quad))
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.lvf vf9 (&-> s3-0 vertex 2 quad))
|
||||
(.add.x.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.x.vf.y vf5 vf5 vf5)
|
||||
(&+! s3-0 96)
|
||||
(.add.y.vf vf6 vf6 vf6 :mask #b1)
|
||||
(.add.y.vf.x vf6 vf6 vf6)
|
||||
(set! f3-0 arg3)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b10)
|
||||
(.add.z.vf vf6 vf6 vf6 :mask #b1)
|
||||
(.add.z.vf.y vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf6 vf6 vf6)
|
||||
(.sqrt.vf Q vf6 :ftf #b0)
|
||||
(.mov a2-4 vf5)
|
||||
(set! f0-0 0.0)
|
||||
(.wait.vf)
|
||||
(let ((f1-0 (-> arg2 w)))
|
||||
(.add.vf vf6 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf6 vf0 Q)
|
||||
(.mov.vf vf10 vf6)
|
||||
(b! (< (the-as int a2-4) 0) cfg-6 :likely-delay (.sub.vf vf10 vf0 vf10))
|
||||
(label cfg-6)
|
||||
@@ -242,8 +242,8 @@ Another limitation is that triangles don't have per-tri pat info.
|
||||
(.mul.vf vf11 vf4 Q)
|
||||
(set! f4-0 0.707)
|
||||
(.mul.vf vf5 vf11 vf1)
|
||||
(.add.y.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.y.vf.x vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf5 vf5 vf5)
|
||||
(.mov a2-7 vf5)
|
||||
)
|
||||
)
|
||||
@@ -528,11 +528,11 @@ Another limitation is that triangles don't have per-tri pat info.
|
||||
(let ((t1-3 (* t1-2 16)))
|
||||
(.max.vf vf9 vf9 vf3)
|
||||
(let ((t2-4 (* t2-3 16)))
|
||||
(.mul.x.vf acc vf0 vf7 :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf7)
|
||||
(let ((t3-0 (* t0-5 16)))
|
||||
(.add.mul.y.vf acc vf0 vf7 acc :mask #b1000)
|
||||
(.add.mul.y.vf.w acc vf0 vf7 acc)
|
||||
(set! t0-4 (+ t1-3 a2-1))
|
||||
(.add.mul.z.vf vf7 vf0 vf7 acc :mask #b1000)
|
||||
(.add.mul.z.vf.w vf7 vf0 vf7 acc)
|
||||
(set! t1-1 (+ t2-4 a2-1))
|
||||
(.isqrt.vf Q vf0 vf7 :fsf #b11 :ftf #b11)
|
||||
(set! t2-2 (+ t3-0 a2-1))
|
||||
@@ -551,7 +551,7 @@ Another limitation is that triangles don't have per-tri pat info.
|
||||
(.svf (&-> a1-1 bbox4w min quad) vf8)
|
||||
(.wait.vf)
|
||||
(.svf (&-> a1-1 bbox4w max quad) vf9)
|
||||
(.mul.vf vf6 vf6 Q :mask #b111)
|
||||
(.mul.vf.xyz vf6 vf6 Q)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(.svf (&-> a1-1 normal quad) vf6)
|
||||
@@ -638,13 +638,13 @@ Another limitation is that triangles don't have per-tri pat info.
|
||||
(set! v1-0 (-> s5-0 sphere-bbox4w min quad))
|
||||
(set! a0-1 (-> s5-0 sphere-bbox4w max quad))
|
||||
(.sub.vf vf3 vf2 vf1)
|
||||
(.mul.w.vf vf4 vf2 vf2 :mask #b1000)
|
||||
(.mul.w.vf.w vf4 vf2 vf2)
|
||||
(.mul.vf vf3 vf3 vf3)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b10)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(.add.w.vf.y vf3 vf0 vf3)
|
||||
(.mov a1-7 vf3)
|
||||
(b! (>= (the-as int a1-7) 0) cfg-1 :delay (set! s4-0 (&+ s4-0 96)))
|
||||
)
|
||||
|
||||
@@ -190,8 +190,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-5 vf1)
|
||||
(let ((f0-0 a2-5)
|
||||
(f1-1 (+ (-> a1-2 world-sphere w) (-> s4-0 prim-core world-sphere w)))
|
||||
@@ -231,8 +231,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-12 vf1)
|
||||
(let ((f0-1 a2-12)
|
||||
(f1-5 (+ (-> a1-14 world-sphere w) (-> s4-0 prim-core world-sphere w)))
|
||||
@@ -385,8 +385,8 @@
|
||||
(.mov at-0 f0-2)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-19 quad) vf1)
|
||||
)
|
||||
(cond
|
||||
|
||||
@@ -81,15 +81,15 @@ it returns a triangle and normal direction to push in.
|
||||
(.lvf vf1 (&-> a0-1 prim-core world-sphere quad))
|
||||
(.lvf vf2 (&-> a1-1 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf5 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf5 vf3 vf4)
|
||||
(let ((f0-1 0.0))
|
||||
(.add.w.vf vf5 vf0 vf5 :mask #b1)
|
||||
(.add.w.vf.x vf5 vf0 vf5)
|
||||
(.mov v1-3 vf5)
|
||||
(b! (<= f0-1 v1-3) cfg-8)
|
||||
)
|
||||
@@ -147,15 +147,15 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
)
|
||||
(.sub.vf vf3 vf2 vf1)
|
||||
(.add.w.vf vf4 vf2 vf1 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf2 vf1)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(set! f0-0 0.0)
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(.mov a0-3 vf3)
|
||||
)
|
||||
(should-push-away-test s4-0 other cquery)
|
||||
@@ -204,15 +204,15 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
)
|
||||
(.sub.vf vf3 vf2 vf1)
|
||||
(.add.w.vf vf4 vf2 vf1 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf2 vf1)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(set! f0-0 0.0)
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(.mov a0-3 vf3)
|
||||
)
|
||||
(should-push-away-test this (the-as collide-shape-prim s4-0) cquery)
|
||||
@@ -304,21 +304,21 @@ it returns a triangle and normal direction to push in.
|
||||
;; sphere sphere
|
||||
(.lvf vf1 (&-> this prim-core world-sphere quad))
|
||||
(.lvf vf2 (&-> other prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf2 vf1 :mask #b111)
|
||||
(.add.w.vf vf5 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf4 vf3 vf3 :mask #b111)
|
||||
(.mul.x.vf acc vf0 vf4 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf4 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf4 vf0 vf4 acc :mask #b1000)
|
||||
(.sub.vf.xyz vf3 vf2 vf1)
|
||||
(.add.w.vf.w vf5 vf1 vf2)
|
||||
(.mul.vf.xyz vf4 vf3 vf3)
|
||||
(.mul.x.vf.w acc vf0 vf4)
|
||||
(.add.mul.y.vf.w acc vf0 vf4 acc)
|
||||
(.add.mul.z.vf.w vf4 vf0 vf4 acc)
|
||||
(.sqrt.vf Q vf4 :ftf #b11)
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.add.w.vf vf5 vf0 vf5 :mask #b1)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.add.w.vf.x vf5 vf0 vf5)
|
||||
(let ((f2-0 (-> cquery best-dist)))
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf4 vf0 Q :mask #b1)
|
||||
(.sub.x.vf vf6 vf4 vf5 :mask #b1)
|
||||
(.mul.x.vf vf3 vf3 vf4 :mask #b111)
|
||||
(.add.vf.x vf4 vf0 Q)
|
||||
(.sub.x.vf.x vf6 vf4 vf5)
|
||||
(.mul.x.vf.xyz vf3 vf3 vf4)
|
||||
(.mov v1-3 vf6)
|
||||
(let ((f1-0 v1-3))
|
||||
(b! (<= f2-0 f1-0) cfg-9)
|
||||
@@ -356,9 +356,9 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
(.lvf vf5 (&-> v1-11 quad))
|
||||
(.lvf vf4 (&-> s4-1 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a0-9 quad) vf6)
|
||||
)
|
||||
)
|
||||
@@ -409,9 +409,9 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
(.lvf vf5 (&-> v1-23 quad))
|
||||
(.lvf vf4 (&-> s3-2 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a0-24 quad) vf6)
|
||||
)
|
||||
)
|
||||
@@ -1229,8 +1229,8 @@ it returns a triangle and normal direction to push in.
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-1 quad) vf1)
|
||||
(t9-0 this v1-1)
|
||||
)
|
||||
@@ -1542,8 +1542,8 @@ it returns a triangle and normal direction to push in.
|
||||
(.mov at-0 f0-2)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-4 quad) vf1)
|
||||
)
|
||||
;; run collision.
|
||||
@@ -1675,8 +1675,8 @@ it returns a triangle and normal direction to push in.
|
||||
(.mov at-0 f0-2)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a1-5 quad) vf1)
|
||||
(t9-1 this a1-5)
|
||||
)
|
||||
@@ -1970,8 +1970,8 @@ it returns a triangle and normal direction to push in.
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> a0-1 quad) vf1)
|
||||
)
|
||||
;; fill the cache.
|
||||
@@ -2020,21 +2020,21 @@ it returns a triangle and normal direction to push in.
|
||||
(a2-1 (-> v1-0 prim-core prim-type))
|
||||
)
|
||||
(b! (zero? a0-2) cfg-9 :delay (.lvf vf28 (&-> t0-0 quad)))
|
||||
(.add.x.vf vf31 vf31 vf28 :mask #b1)
|
||||
(.add.x.vf.x vf31 vf31 vf28)
|
||||
(let ((a0-3 (-> v1-0 specific 0)))
|
||||
(b! (= a2-1 (prim-type group)) cfg-3 :delay (.lvf vf24 (&-> v1-0 prim-core world-sphere quad)))
|
||||
(.add.w.vf vf25 vf31 vf24 :mask #b1)
|
||||
(.add.x.vf vf30 vf24 vf25 :mask #b111)
|
||||
(b! #t cfg-10 :delay (.sub.x.vf vf29 vf24 vf25 :mask #b111))
|
||||
(.add.w.vf.x vf25 vf31 vf24)
|
||||
(.add.x.vf.xyz vf30 vf24 vf25)
|
||||
(b! #t cfg-10 :delay (.sub.x.vf.xyz vf29 vf24 vf25))
|
||||
(label cfg-3)
|
||||
(b! (zero? a0-3) cfg-9 :delay (set! v1-0 (&+ v1-0 80)))
|
||||
(+! a0-3 -1)
|
||||
(let ((a2-3 (logand (-> v1-0 prim-core collide-with) arg2)))
|
||||
(.lvf vf24 (&-> v1-0 prim-core world-sphere quad))
|
||||
(b! (zero? a2-3) cfg-3 :delay (.add.w.vf vf25 vf31 vf24 :mask #b1))
|
||||
(b! (zero? a2-3) cfg-3 :delay (.add.w.vf.x vf25 vf31 vf24))
|
||||
)
|
||||
(.add.x.vf vf30 vf24 vf25 :mask #b111)
|
||||
(.sub.x.vf vf29 vf24 vf25 :mask #b111)
|
||||
(.add.x.vf.xyz vf30 vf24 vf25)
|
||||
(.sub.x.vf.xyz vf29 vf24 vf25)
|
||||
(label cfg-6)
|
||||
(b! (zero? a0-3) cfg-10 :delay (set! v1-0 (&+ v1-0 80)))
|
||||
(+! a0-3 -1)
|
||||
@@ -2042,11 +2042,11 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
(let ((a2-5 (logand (-> v1-0 prim-core collide-with) arg2)))
|
||||
(.lvf vf24 (&-> v1-0 prim-core world-sphere quad))
|
||||
(b! (zero? a2-5) cfg-6 :delay (.add.w.vf vf25 vf31 vf24 :mask #b1))
|
||||
(b! (zero? a2-5) cfg-6 :delay (.add.w.vf.x vf25 vf31 vf24))
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf27 vf24 vf25 :mask #b111)
|
||||
(.sub.x.vf vf26 vf24 vf25 :mask #b111)
|
||||
(.add.x.vf.xyz vf27 vf24 vf25)
|
||||
(.sub.x.vf.xyz vf26 vf24 vf25)
|
||||
(.min.vf vf29 vf29 vf26)
|
||||
(.max.vf vf30 vf30 vf27)
|
||||
(b! #t cfg-6 :delay (nop!))
|
||||
@@ -2054,8 +2054,8 @@ it returns a triangle and normal direction to push in.
|
||||
(let ((v0-0 #f))
|
||||
(b! #t cfg-11 :delay (nop!))
|
||||
(label cfg-10)
|
||||
(.mov.vf vf29 vf0 :mask #b1000)
|
||||
(.mov.vf vf30 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf29 vf0)
|
||||
(.mov.vf.w vf30 vf0)
|
||||
(.svf (&-> arg0 min quad) vf29)
|
||||
(.svf (&-> arg0 max quad) vf30)
|
||||
(set! v0-0 #t)
|
||||
@@ -2216,8 +2216,8 @@ it returns a triangle and normal direction to push in.
|
||||
(.lvf vf4 (&-> a1-4 vector 2 quad))
|
||||
)
|
||||
(.add.mul.y.vf acc vf3 vf1 acc)
|
||||
(.add.mul.z.vf vf1 vf4 vf1 acc :mask #b111)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.add.mul.z.vf.xyz vf1 vf4 vf1 acc)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.svf (&-> s5-0 prim-core world-sphere quad) vf1)
|
||||
(.mov a1-5 vf1)
|
||||
)
|
||||
@@ -2226,7 +2226,7 @@ it returns a triangle and normal direction to push in.
|
||||
(when (= a1-0 -2)
|
||||
(.lvf vf1 (&-> s5-0 local-sphere quad))
|
||||
(.lvf vf2 (&-> this trans quad))
|
||||
(.add.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> s5-0 prim-core world-sphere quad) vf1)
|
||||
(.mov a1-7 vf1)
|
||||
)
|
||||
@@ -2252,7 +2252,7 @@ it returns a triangle and normal direction to push in.
|
||||
;; just translate.
|
||||
(.lvf vf1 (&-> s5-0 local-sphere quad))
|
||||
(.lvf vf2 (&-> this trans quad))
|
||||
(.add.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> s5-0 prim-core world-sphere quad) vf1)
|
||||
(.mov v1-8 vf1)
|
||||
)
|
||||
@@ -2515,8 +2515,8 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-5 vf1)
|
||||
(let ((f0-0 a2-5)
|
||||
(f1-1 (+ (-> a1-2 world-sphere w) (-> this root-prim prim-core world-sphere w)))
|
||||
@@ -2558,8 +2558,8 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-12 vf1)
|
||||
(let ((f0-1 a2-12)
|
||||
(f1-5 (+ (-> a1-15 world-sphere w) (-> this root-prim prim-core world-sphere w)))
|
||||
@@ -2621,8 +2621,8 @@ it returns a triangle and normal direction to push in.
|
||||
(.lvf vf5 (&-> (-> gp-0 cquery) best-other-tri normal quad))
|
||||
(.sub.vf vf2 vf4 vf3)
|
||||
(.mul.vf vf1 vf5 vf2)
|
||||
(.add.x.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b10)
|
||||
(.add.x.vf.y vf1 vf1 vf1)
|
||||
(.add.z.vf.y vf1 vf1 vf1)
|
||||
(.mov v1-55 vf1)
|
||||
(b! (< (the-as int v1-55) 0) cfg-35 :likely-delay (.sub.vf vf2 vf0 vf2))
|
||||
(label cfg-35)
|
||||
@@ -2635,8 +2635,8 @@ it returns a triangle and normal direction to push in.
|
||||
(.mov at-0 f0-7)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-59 quad) vf1)
|
||||
)
|
||||
(let ((s0-0 (-> (the-as collide-shape-moving s1-0) status)))
|
||||
@@ -2703,8 +2703,8 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-5 vf1)
|
||||
(let ((f0-0 a2-5)
|
||||
(f1-1 (+ (-> a1-3 world-sphere w) (-> s3-0 prim-core world-sphere w)))
|
||||
@@ -2744,8 +2744,8 @@ it returns a triangle and normal direction to push in.
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-12 vf1)
|
||||
(let ((f0-1 a2-12)
|
||||
(f1-5 (+ (-> a1-15 world-sphere w) (-> s3-0 prim-core world-sphere w)))
|
||||
@@ -2776,15 +2776,15 @@ it returns a triangle and normal direction to push in.
|
||||
(.lvf vf1 (&-> s3-0 prim-core world-sphere quad))
|
||||
(.lvf vf2 (&-> a2-15 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-2 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(let ((v1-28 (-> this process)))
|
||||
(.mov a0-10 vf3)
|
||||
(let ((a1-26 (-> s0-0 process)))
|
||||
@@ -2861,15 +2861,15 @@ it returns a triangle and normal direction to push in.
|
||||
(.lvf vf2 (&-> s4-0 prim-core world-sphere quad))
|
||||
(b! (zero? a0-2) cfg-1 :delay (.sub.vf vf3 vf2 vf1))
|
||||
)
|
||||
(.add.w.vf vf4 vf2 vf1 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf2 vf1)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-0 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(.mov a0-3 vf3)
|
||||
(b! (< f0-0 a0-3) cfg-1)
|
||||
)
|
||||
@@ -2920,15 +2920,15 @@ it returns a triangle and normal direction to push in.
|
||||
(.lvf vf1 (&-> s4-0 prim-core world-sphere quad))
|
||||
(b! (zero? a0-3) cfg-1 :delay (.sub.vf vf3 vf2 vf1))
|
||||
)
|
||||
(.add.w.vf vf4 vf2 vf1 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf2 vf1)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-0 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(.mov a0-4 vf3)
|
||||
(b! (< f0-0 a0-4) cfg-1)
|
||||
)
|
||||
@@ -3092,8 +3092,8 @@ it returns a triangle and normal direction to push in.
|
||||
(.lvf vf5 (&-> a0-7 world-sphere quad))
|
||||
)
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-176 quad) vf6)
|
||||
(vector-normalize! sv-176 1.0)
|
||||
(when (and (< arg2 (-> sv-176 y)) (and (not (focus-test? (the-as process-focusable gp-0) dead hit board mech))
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
(nop!)
|
||||
(nop!)
|
||||
(.lvf vf1 (&-> drawable bsphere quad))
|
||||
(.add.w.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.add.w.vf.xyz vf2 vf1 vf1)
|
||||
(let ((v1-0 (-> bbox min quad)))
|
||||
(.sub.w.vf vf1 vf1 vf1 :mask #b111)
|
||||
(.sub.w.vf.xyz vf1 vf1 vf1)
|
||||
(let ((a1-1 (-> bbox max quad)))
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -116,13 +116,13 @@
|
||||
(nop!)
|
||||
(vitof12.xyzw vf7 vf7)
|
||||
(nop!)
|
||||
(.add.vf vf8 vf8 vf9 :mask #b111)
|
||||
(.add.vf.xyz vf8 vf8 vf9)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(.lvf vf9 (&-> drawable bsphere quad))
|
||||
(vitof12.xyzw vf10 vf10)
|
||||
(nop!)
|
||||
(.mul.w.vf vf10 vf10 vf9 :mask #b1)
|
||||
(.mul.w.vf.x vf10 vf10 vf9)
|
||||
(nop!)
|
||||
(.mul.x.vf acc vf5 vf9)
|
||||
(nop!)
|
||||
@@ -132,9 +132,9 @@
|
||||
(let ((a1-1 (-> bbox max quad)))
|
||||
(.add.mul.w.vf vf1 vf8 vf0 acc)
|
||||
(nop!)
|
||||
(.add.x.vf vf2 vf1 vf10 :mask #b111)
|
||||
(.add.x.vf.xyz vf2 vf1 vf10)
|
||||
(nop!)
|
||||
(.sub.x.vf vf1 vf1 vf10 :mask #b111)
|
||||
(.sub.x.vf.xyz vf1 vf1 vf10)
|
||||
(nop!)
|
||||
(.ftoi.vf vf4 vf2)
|
||||
(nop!)
|
||||
@@ -181,11 +181,11 @@
|
||||
(.mov vf12 v1-2)
|
||||
(.itof.vf vf12 vf12)
|
||||
(nop!)
|
||||
(.add.vf vf10 vf10 vf12 :mask #b111)
|
||||
(.add.vf.xyz vf10 vf10 vf12)
|
||||
(nop!)
|
||||
(.add.vf vf9 vf9 vf10 :mask #b111)
|
||||
(.add.vf.xyz vf9 vf9 vf10)
|
||||
(nop!)
|
||||
(.add.w.vf vf11 vf0 vf9 :mask #b1)
|
||||
(.add.w.vf.x vf11 vf0 vf9)
|
||||
(nop!)
|
||||
(.mov a3-0 vf11)
|
||||
(nop!)
|
||||
|
||||
@@ -192,8 +192,8 @@ and return it as well. Otherwise, set it to `0`"
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-5 vf1)
|
||||
(let ((f0-0 a2-5)
|
||||
(f1-1 (+ (-> a1-2 world-sphere w) (-> this collide-bounds r)))
|
||||
@@ -233,8 +233,8 @@ and return it as well. Otherwise, set it to `0`"
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-12 vf1)
|
||||
(let ((f0-1 a2-12)
|
||||
(f1-5 (+ (-> a1-14 world-sphere w) (-> this collide-bounds r)))
|
||||
@@ -264,15 +264,15 @@ and return it as well. Otherwise, set it to `0`"
|
||||
(.lvf vf1 (&-> this collide-bounds quad))
|
||||
(.lvf vf2 (&-> a0-9 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-2 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(.mov a0-10 vf3)
|
||||
(let ((s4-0 (-> v1-23 process)))
|
||||
(b! (< f0-2 a0-10) cfg-27)
|
||||
|
||||
@@ -208,8 +208,8 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-1 quad) vf1)
|
||||
)
|
||||
(let ((v1-2 a1-0))
|
||||
|
||||
@@ -127,9 +127,9 @@
|
||||
(.lvf vf5 (&-> a1-4 quad))
|
||||
)
|
||||
(.lvf vf4 (&-> v1-15 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a0-8 quad) vf6)
|
||||
)
|
||||
(let ((v1-16 *particle-vel*)
|
||||
|
||||
@@ -115,9 +115,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-13 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a0-13 quad) vf6)
|
||||
)
|
||||
0
|
||||
@@ -135,9 +135,9 @@
|
||||
(.lvf vf5 (&-> a0-17 quad))
|
||||
)
|
||||
(.lvf vf4 (&-> s5-0 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a1-15 quad) vf6)
|
||||
)
|
||||
0
|
||||
@@ -194,8 +194,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-5 vf1)
|
||||
(let ((f0-0 a2-5)
|
||||
(f1-1 (+ (-> a1-2 world-sphere w) (-> this collide-bounds r)))
|
||||
@@ -239,8 +239,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-12 vf1)
|
||||
(let ((f0-1 a2-12)
|
||||
(f1-5 (+ (-> a1-14 world-sphere w) (-> this collide-bounds r)))
|
||||
@@ -272,15 +272,15 @@
|
||||
(.lvf vf1 (&-> this collide-bounds quad))
|
||||
(.lvf vf2 (&-> a0-9 prim-core world-sphere quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.mul.x.vf acc vf0 vf3 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf3 acc :mask #b1000)
|
||||
(.sub.w.vf vf3 vf3 vf4 :mask #b1000)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.mul.x.vf.w acc vf0 vf3)
|
||||
(.add.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf3 acc)
|
||||
(.sub.w.vf.w vf3 vf3 vf4)
|
||||
(let ((f0-2 0.0))
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(.mov a0-10 vf3)
|
||||
(let ((s4-0 (-> v1-23 process)))
|
||||
(b! (< f0-2 a0-10) cfg-27)
|
||||
|
||||
@@ -52,10 +52,10 @@ Most functions take a boolean as their first argument. If the boolean is set to
|
||||
(.add.mul.z.vf vf5 vf3 vf5 acc)
|
||||
(.div.vf Q vf9 vf5 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf5 vf5 Q :mask #b111)
|
||||
(.mul.vf.xyz vf5 vf5 Q)
|
||||
(.add.vf vf5 vf5 vf8)
|
||||
(.max.x.vf vf5 vf5 vf0 :mask #b1000)
|
||||
(.min.x.vf vf5 vf5 vf6 :mask #b1000)
|
||||
(.max.x.vf.w vf5 vf5 vf0)
|
||||
(.min.x.vf.w vf5 vf5 vf6)
|
||||
(vftoi4.xyzw vf5 vf5)
|
||||
(.svf (&-> out quad) vf5)
|
||||
out
|
||||
|
||||
@@ -392,9 +392,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-6 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a2-2 quad) vf6)
|
||||
(t9-3 a0-8 (the-as bucket-id a1-4) a2-2 (-> gp-0 radius) *color-green*)
|
||||
)
|
||||
@@ -410,9 +410,9 @@
|
||||
(.lvf vf5 (&-> s5-1 quad))
|
||||
(.lvf vf4 (&-> v1-7 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a2-3 quad) vf6)
|
||||
(t9-4 a0-9 (the-as bucket-id a1-5) a2-3 (-> gp-0 radius) *color-green*)
|
||||
)
|
||||
@@ -474,8 +474,8 @@
|
||||
)
|
||||
(.lvf vf4 (&-> a0-11 quad))
|
||||
)
|
||||
(.add.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf vf5 vf4 vf6 :mask #b111)
|
||||
(.add.x.vf.w vf5 vf0 vf0)
|
||||
(.add.x.vf.xyz vf5 vf4 vf6)
|
||||
(.svf (&-> a1-4 quad) vf5)
|
||||
)
|
||||
(let ((a1-5 (-> v1-21 1)))
|
||||
@@ -485,8 +485,8 @@
|
||||
)
|
||||
(.lvf vf4 (&-> a0-12 quad))
|
||||
)
|
||||
(.add.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf vf5 vf4 vf6 :mask #b111)
|
||||
(.add.x.vf.w vf5 vf0 vf0)
|
||||
(.add.x.vf.xyz vf5 vf4 vf6)
|
||||
(.svf (&-> a1-5 quad) vf5)
|
||||
)
|
||||
(add-debug-box #t (bucket-id debug2) (-> v1-21 0) (-> v1-21 1) *color-yellow*)
|
||||
@@ -633,9 +633,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> s4-2 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> s0-0 quad) vf6)
|
||||
)
|
||||
(reverse-transform-point! s5-1 s2-0 s3-0 s1-0)
|
||||
@@ -662,9 +662,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-16 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a1-3 quad) vf6)
|
||||
)
|
||||
(vector+!
|
||||
@@ -1048,8 +1048,8 @@
|
||||
(.lvf vf4 (&-> v1-18 quad))
|
||||
(.lvf vf5 (&-> a0-13 quad))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-144 quad) vf6)
|
||||
(let ((a3-3 (vector-normalize-copy! (new 'stack-no-clear 'vector) s2-0 1.0))
|
||||
(t0-0 1024.0)
|
||||
@@ -1106,8 +1106,8 @@
|
||||
)
|
||||
(.lvf vf4 (&-> a0-5 quad))
|
||||
)
|
||||
(.add.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf vf5 vf4 vf6 :mask #b111)
|
||||
(.add.x.vf.w vf5 vf0 vf0)
|
||||
(.add.x.vf.xyz vf5 vf4 vf6)
|
||||
(.svf (the-as (pointer uint128) (&-> a1-1 0)) vf5)
|
||||
)
|
||||
(let ((a1-2 (&+ v1-3 16)))
|
||||
@@ -1117,8 +1117,8 @@
|
||||
)
|
||||
(.lvf vf4 (&-> a0-6 quad))
|
||||
)
|
||||
(.add.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf vf5 vf4 vf6 :mask #b111)
|
||||
(.add.x.vf.w vf5 vf0 vf0)
|
||||
(.add.x.vf.xyz vf5 vf4 vf6)
|
||||
(.svf (&-> a1-2 quad) vf5)
|
||||
)
|
||||
(add-debug-box #t (bucket-id debug2) (the-as vector (&-> v1-3 x)) (&+ v1-3 16) *color-green*)
|
||||
@@ -2148,12 +2148,12 @@
|
||||
(set! sv-160 s1-0)
|
||||
(let ((v0-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> a1-3 position) (-> v1-27 position)) 1.0))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> sv-160 quad))
|
||||
(.lvf vf5 (&-> v0-0 quad))
|
||||
)
|
||||
)
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-176 quad) vf6)
|
||||
(set! sv-112 (+ sv-112 1))
|
||||
sv-112
|
||||
@@ -2166,12 +2166,12 @@
|
||||
(set! sv-192 s0-0)
|
||||
(let ((v0-1 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (-> a1-9 position) (-> v1-40 position)) 1.0))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> sv-192 quad))
|
||||
(.lvf vf5 (&-> v0-1 quad))
|
||||
)
|
||||
)
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-208 quad) vf6)
|
||||
(set! sv-96 (+ sv-96 1))
|
||||
sv-96
|
||||
|
||||
@@ -1166,15 +1166,15 @@
|
||||
(.mul.w.vf acc vf27 vf0)
|
||||
(.add.mul.x.vf acc vf24 vf15 acc)
|
||||
(.add.mul.y.vf acc vf25 vf15 acc)
|
||||
(.add.mul.z.vf vf15 vf26 vf15 acc :mask #b111)
|
||||
(.add.mul.z.vf.xyz vf15 vf26 vf15 acc)
|
||||
(.mul.vf vf28 vf15 vf15)
|
||||
(.max.w.vf vf29 vf0 vf0)
|
||||
(.add.y.vf acc vf28 vf28)
|
||||
(.add.mul.z.vf vf28 vf29 vf28 acc :mask #b1)
|
||||
(.add.mul.z.vf.x vf28 vf29 vf28 acc)
|
||||
(.sqrt.vf Q vf28 :ftf #b0)
|
||||
(.sub.w.vf vf28 vf0 vf15 :mask #b1000)
|
||||
(.sub.w.vf.w vf28 vf0 vf15)
|
||||
(.wait.vf)
|
||||
(.add.vf vf15 vf28 Q :mask #b1000)
|
||||
(.add.vf.w vf15 vf28 Q)
|
||||
(.svf (&-> fg-dist quad) vf15)
|
||||
|
||||
;; pick lods
|
||||
|
||||
@@ -329,9 +329,9 @@
|
||||
(.lvf vf1 (&-> this color-dest quad))
|
||||
(.lvf vf2 (&-> this color quad))
|
||||
(.sub.vf vf3 vf1 vf2)
|
||||
(.add.x.vf vf4 vf4 vf4 :mask #b10)
|
||||
(.min.w.vf vf4 vf4 vf0 :mask #b10)
|
||||
(.max.y.vf vf4 vf4 vf0 :mask #b10)
|
||||
(.add.x.vf.y vf4 vf4 vf4)
|
||||
(.min.w.vf.y vf4 vf4 vf0)
|
||||
(.max.y.vf.y vf4 vf4 vf0)
|
||||
(.mul.y.vf vf3 vf3 vf4)
|
||||
(.add.vf vf1 vf2 vf3)
|
||||
(.svf (&-> this extra quad) vf4)
|
||||
|
||||
@@ -69,8 +69,8 @@ These boxes are used as a primitive in the foreground collision system.
|
||||
(.add.vf vf5 vf4 vf3)
|
||||
(.min.vf vf1 vf4 vf5)
|
||||
(.max.vf vf2 vf4 vf5)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.svf (&-> this min quad) vf1)
|
||||
(.svf (&-> this max quad) vf2)
|
||||
0
|
||||
@@ -140,10 +140,10 @@ These boxes are used as a primitive in the foreground collision system.
|
||||
(.add.vf vf6 vf5 vf4)
|
||||
(.min.vf vf2 vf5 vf6)
|
||||
(.max.vf vf3 vf5 vf6)
|
||||
(.add.x.vf vf3 vf3 vf1 :mask #b111)
|
||||
(.sub.x.vf vf2 vf2 vf1 :mask #b111)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.add.x.vf.xyz vf3 vf3 vf1)
|
||||
(.sub.x.vf.xyz vf2 vf2 vf1)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.svf (&-> this min quad) vf2)
|
||||
(.svf (&-> this max quad) vf3)
|
||||
0
|
||||
@@ -159,10 +159,10 @@ These boxes are used as a primitive in the foreground collision system.
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.sub.w.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.add.w.vf vf3 vf1 vf1 :mask #b111)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.sub.w.vf.xyz vf2 vf1 vf1)
|
||||
(.add.w.vf.xyz vf3 vf1 vf1)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.svf (&-> this min quad) vf2)
|
||||
(.svf (&-> this max quad) vf3)
|
||||
0
|
||||
@@ -194,10 +194,10 @@ These boxes are used as a primitive in the foreground collision system.
|
||||
|
||||
(dotimes (i count)
|
||||
(.lvf sph (-> spheres i))
|
||||
(.sub.w.vf sph-min sph sph :mask #b111)
|
||||
(.add.w.vf sph-max sph sph :mask #b111)
|
||||
(.min.vf current-min current-min sph-min :mask #b111)
|
||||
(.max.vf current-max current-max sph-max :mask #b111)
|
||||
(.sub.w.vf.xyz sph-min sph sph)
|
||||
(.add.w.vf.xyz sph-max sph sph)
|
||||
(.min.vf.xyz current-min current-min sph-min)
|
||||
(.max.vf.xyz current-max current-max sph-max)
|
||||
)
|
||||
|
||||
(.svf (-> this min) current-min)
|
||||
@@ -224,16 +224,16 @@ These boxes are used as a primitive in the foreground collision system.
|
||||
|
||||
(dotimes (i count)
|
||||
(.lvf sph (-> spheres i))
|
||||
(.sub.w.vf sph-min sph sph :mask #b111)
|
||||
(.add.w.vf sph-max sph sph :mask #b111)
|
||||
(.sub.w.vf.xyz sph-min sph sph)
|
||||
(.add.w.vf.xyz sph-max sph sph)
|
||||
(cond
|
||||
((zero? i)
|
||||
(set! current-min sph-min)
|
||||
(set! current-max sph-max)
|
||||
)
|
||||
(else
|
||||
(.min.vf current-min current-min sph-min :mask #b111)
|
||||
(.max.vf current-max current-max sph-max :mask #b111)
|
||||
(.min.vf.xyz current-min current-min sph-min)
|
||||
(.max.vf.xyz current-max current-max sph-max)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -84,8 +84,8 @@
|
||||
(let ((v1-6 (-> s3-0 trans)))
|
||||
(.lvf vf4 (&-> (-> this origin) quad))
|
||||
(.lvf vf5 (&-> sv-896 quad 0))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-6 quad) vf6)
|
||||
)
|
||||
(dotimes (v1-7 8)
|
||||
@@ -103,9 +103,9 @@
|
||||
(.mov vf3 v1-19)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> sv-944 quad) vf4)
|
||||
(set! sv-992 (-> s5-0 vert s0-1))
|
||||
(set! sv-960 (-> s5-0 vert s0-1))
|
||||
@@ -117,9 +117,9 @@
|
||||
(.mov vf3 v1-33)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> sv-992 quad) vf4)
|
||||
(set! sv-1040 (-> s5-0 vert (+ s0-1 16)))
|
||||
(set! sv-1008 (-> this origin))
|
||||
@@ -131,9 +131,9 @@
|
||||
(.mov vf3 v1-43)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> sv-1040 quad) vf4)
|
||||
(set! sv-1088 (-> s5-0 vert (+ s0-1 16)))
|
||||
(set! sv-1056 (-> s5-0 vert (+ s0-1 16)))
|
||||
@@ -145,9 +145,9 @@
|
||||
(.mov vf3 v1-57)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> sv-1088 quad) vf4)
|
||||
)
|
||||
(dotimes (s2-1 16)
|
||||
@@ -253,8 +253,8 @@
|
||||
(let ((v1-6 (-> s3-0 trans)))
|
||||
(.lvf vf4 (&-> (-> this origin) quad))
|
||||
(.lvf vf5 (&-> sv-448 quad))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-6 quad) vf6)
|
||||
)
|
||||
(dotimes (v1-7 8)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
@@ -40,13 +40,13 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf2 acc)
|
||||
(.add.vf acc vf3 vf3 :mask #b111)
|
||||
(.sub.mul.w.vf vf3 vf1 vf0 acc :mask #b111)
|
||||
(.add.vf.xyz acc vf3 vf3)
|
||||
(.sub.mul.w.vf.xyz vf3 vf1 vf0 acc)
|
||||
(.svf (&-> arg0 quad) vf3)
|
||||
arg0
|
||||
)
|
||||
@@ -68,12 +68,12 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf2 acc)
|
||||
(.add.vf vf3 vf3 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf3 vf3 vf2)
|
||||
(.svf (&-> arg0 quad) vf3)
|
||||
arg0
|
||||
)
|
||||
@@ -90,7 +90,7 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.mov.vf vf3 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf3 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
@@ -153,12 +153,12 @@
|
||||
(.sub.vf vf1 vf4 vf3)
|
||||
(.sub.vf vf6 vf5 vf3)
|
||||
(.mul.vf vf2 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.sqrt.vf Q vf2 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.add.vf vf2 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf2 vf0 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.div.vf Q vf0 vf2 :fsf #b11 :ftf #b0)
|
||||
@@ -168,8 +168,8 @@
|
||||
(.mul.vf vf1 vf1 Q)
|
||||
(.mul.vf vf7 vf1 vf6)
|
||||
(let ((f1-0 (the-as float 0.0)))
|
||||
(.add.y.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.z.vf vf7 vf7 vf7 :mask #b1)
|
||||
(.add.y.vf.x vf7 vf7 vf7)
|
||||
(.add.z.vf.x vf7 vf7 vf7)
|
||||
(.mov v1-1 vf7)
|
||||
(let ((f0-0 v1-1))
|
||||
(b! (< f0-0 f1-0) cfg-4 :likely-delay (set! f0-0 f1-0))
|
||||
@@ -182,18 +182,18 @@
|
||||
)
|
||||
)
|
||||
(.mul.x.vf vf1 vf1 vf7)
|
||||
(b! (= arg3 #f) cfg-6 :delay (.mov.vf vf8 vf0 :mask #b1000))
|
||||
(.add.vf vf8 vf3 vf1 :mask #b111)
|
||||
(b! (= arg3 #f) cfg-6 :delay (.mov.vf.w vf8 vf0))
|
||||
(.add.vf.xyz vf8 vf3 vf1)
|
||||
(.svf (&-> arg3 quad) vf8)
|
||||
(label cfg-6)
|
||||
(.sub.vf vf2 vf6 vf1)
|
||||
(.mul.vf vf2 vf2 vf2)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.sqrt.vf Q vf2 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.add.vf vf2 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf2 vf0 Q)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf2)
|
||||
v0-0
|
||||
@@ -284,27 +284,27 @@
|
||||
(.lvf vf1 (&-> arg2 quad))
|
||||
(.lvf vf6 (&-> arg1 quad))
|
||||
(.add.vf vf5 vf1 vf1)
|
||||
(.add.w.vf vf2 vf0 vf1 :mask #b1)
|
||||
(.add.z.vf vf2 vf0 vf1 :mask #b10)
|
||||
(.sub.y.vf vf2 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf2 vf0 vf0 :mask #b1000)
|
||||
(.sub.z.vf vf3 vf0 vf1 :mask #b1)
|
||||
(.add.w.vf vf3 vf0 vf1 :mask #b10)
|
||||
(.add.x.vf vf3 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.y.vf vf4 vf0 vf1 :mask #b1)
|
||||
(.sub.x.vf vf4 vf0 vf1 :mask #b10)
|
||||
(.add.w.vf vf4 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.w.vf.x vf2 vf0 vf1)
|
||||
(.add.z.vf.y vf2 vf0 vf1)
|
||||
(.sub.y.vf.z vf2 vf0 vf1)
|
||||
(.sub.w.vf.w vf2 vf0 vf0)
|
||||
(.sub.z.vf.x vf3 vf0 vf1)
|
||||
(.add.w.vf.y vf3 vf0 vf1)
|
||||
(.add.x.vf.z vf3 vf0 vf1)
|
||||
(.sub.w.vf.w vf3 vf0 vf0)
|
||||
(.add.y.vf.x vf4 vf0 vf1)
|
||||
(.sub.x.vf.y vf4 vf0 vf1)
|
||||
(.add.w.vf.z vf4 vf0 vf1)
|
||||
(.sub.w.vf.w vf4 vf0 vf0)
|
||||
(.outer.product.a.vf acc vf5 vf2)
|
||||
(.outer.product.b.vf vf2 vf2 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf4)
|
||||
(.outer.product.b.vf vf4 vf4 vf5 acc)
|
||||
(.add.w.vf vf2 vf2 vf0 :mask #b1)
|
||||
(.add.w.vf vf3 vf3 vf0 :mask #b10)
|
||||
(.add.w.vf vf4 vf4 vf0 :mask #b100)
|
||||
(.add.w.vf.x vf2 vf2 vf0)
|
||||
(.add.w.vf.y vf3 vf3 vf0)
|
||||
(.add.w.vf.z vf4 vf4 vf0)
|
||||
(.mul.w.vf acc vf0 vf6)
|
||||
(.add.mul.x.vf acc vf2 vf6 acc)
|
||||
(.add.mul.y.vf acc vf3 vf6 acc)
|
||||
@@ -332,29 +332,29 @@
|
||||
(.xor.vf vf7 vf7 vf7)
|
||||
(.lvf vf1 (&-> arg2 vec quad))
|
||||
(.lvf vf6 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf7 vf1 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf7 vf1)
|
||||
(.add.vf vf5 vf1 vf1)
|
||||
(.add.w.vf vf2 vf0 vf1 :mask #b1)
|
||||
(.add.z.vf vf2 vf0 vf1 :mask #b10)
|
||||
(.sub.y.vf vf2 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf2 vf0 vf0 :mask #b1000)
|
||||
(.sub.z.vf vf3 vf0 vf1 :mask #b1)
|
||||
(.add.w.vf vf3 vf0 vf1 :mask #b10)
|
||||
(.add.x.vf vf3 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.y.vf vf4 vf0 vf1 :mask #b1)
|
||||
(.sub.x.vf vf4 vf0 vf1 :mask #b10)
|
||||
(.add.w.vf vf4 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.w.vf.x vf2 vf0 vf1)
|
||||
(.add.z.vf.y vf2 vf0 vf1)
|
||||
(.sub.y.vf.z vf2 vf0 vf1)
|
||||
(.sub.w.vf.w vf2 vf0 vf0)
|
||||
(.sub.z.vf.x vf3 vf0 vf1)
|
||||
(.add.w.vf.y vf3 vf0 vf1)
|
||||
(.add.x.vf.z vf3 vf0 vf1)
|
||||
(.sub.w.vf.w vf3 vf0 vf0)
|
||||
(.add.y.vf.x vf4 vf0 vf1)
|
||||
(.sub.x.vf.y vf4 vf0 vf1)
|
||||
(.add.w.vf.z vf4 vf0 vf1)
|
||||
(.sub.w.vf.w vf4 vf0 vf0)
|
||||
(.outer.product.a.vf acc vf5 vf2)
|
||||
(.outer.product.b.vf vf2 vf2 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf4)
|
||||
(.outer.product.b.vf vf4 vf4 vf5 acc)
|
||||
(.add.w.vf vf2 vf2 vf0 :mask #b1)
|
||||
(.add.w.vf vf3 vf3 vf0 :mask #b10)
|
||||
(.add.w.vf vf4 vf4 vf0 :mask #b100)
|
||||
(.add.w.vf.x vf2 vf2 vf0)
|
||||
(.add.w.vf.y vf3 vf3 vf0)
|
||||
(.add.w.vf.z vf4 vf4 vf0)
|
||||
(.mul.w.vf acc vf0 vf6)
|
||||
(.add.mul.x.vf acc vf2 vf6 acc)
|
||||
(.add.mul.y.vf acc vf3 vf6 acc)
|
||||
@@ -796,12 +796,12 @@
|
||||
(.outer.product.a.vf acc vf2 vf1)
|
||||
(.outer.product.b.vf vf4 vf1 vf2 acc)
|
||||
(.mul.vf vf5 vf4 vf4)
|
||||
(.add.y.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.y.vf.x vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf5 vf5 vf5)
|
||||
(.isqrt.vf Q vf0 vf5 :fsf #b11 :ftf #b0)
|
||||
(.mov.vf vf4 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf4 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf4 vf4 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf4 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
@@ -822,7 +822,7 @@
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.lvf vf3 (&-> arg3 quad))
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.sub.vf vf2 vf2 vf1)
|
||||
(.sub.vf vf3 vf3 vf1)
|
||||
(.outer.product.a.vf acc vf2 vf3)
|
||||
@@ -891,13 +891,13 @@
|
||||
(.outer.product.a.vf acc vf9 vf10)
|
||||
(.outer.product.b.vf vf16 vf10 vf9 acc)
|
||||
(.mul.vf vf12 vf15 vf1)
|
||||
(.add.x.vf vf11 vf11 vf11 :mask #b10)
|
||||
(.add.x.vf.y vf11 vf11 vf11)
|
||||
(.mul.vf vf13 vf16 vf1)
|
||||
(.add.x.vf vf12 vf12 vf12 :mask #b10)
|
||||
(.add.x.vf vf13 vf13 vf13 :mask #b10)
|
||||
(.add.z.vf vf11 vf11 vf11 :mask #b10)
|
||||
(.add.z.vf vf12 vf12 vf12 :mask #b10)
|
||||
(.add.z.vf vf13 vf13 vf13 :mask #b10)
|
||||
(.add.x.vf.y vf12 vf12 vf12)
|
||||
(.add.x.vf.y vf13 vf13 vf13)
|
||||
(.add.z.vf.y vf11 vf11 vf11)
|
||||
(.add.z.vf.y vf12 vf12 vf12)
|
||||
(.add.z.vf.y vf13 vf13 vf13)
|
||||
;; og:preserve-this these types were changed to uint to make this copy 64 bits.
|
||||
(.mov v1-0 vf11)
|
||||
(.mov a1-1 vf12)
|
||||
@@ -912,12 +912,12 @@
|
||||
(b! (nonzero? v1-3) cfg-3 :delay (set! v1-4 (the-as uint (+ v1-3 -1))))
|
||||
)
|
||||
(.sub.vf vf17 vf5 vf2)
|
||||
(.mov.vf vf18 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf18 vf0)
|
||||
(.outer.product.a.vf acc vf17 vf1)
|
||||
(.outer.product.b.vf vf18 vf1 vf17 acc)
|
||||
(.outer.product.a.vf acc vf1 vf18)
|
||||
(.outer.product.b.vf vf18 vf18 vf1 acc)
|
||||
(.add.vf vf18 vf18 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf18 vf18 vf2)
|
||||
(b! #t cfg-24 :delay (.svf (&-> arg0 quad) vf18))
|
||||
(nop!)
|
||||
(label cfg-3)
|
||||
@@ -1002,13 +1002,13 @@
|
||||
(.mul.vf vf3 vf3 vf1)
|
||||
(.nop.vf)
|
||||
(.mul.vf vf4 vf4 vf1)
|
||||
(.add.x.vf vf2 vf2 vf2 :mask #b10)
|
||||
(.add.x.vf vf3 vf3 vf3 :mask #b10)
|
||||
(.add.x.vf vf4 vf4 vf4 :mask #b10)
|
||||
(.add.x.vf.y vf2 vf2 vf2)
|
||||
(.add.x.vf.y vf3 vf3 vf3)
|
||||
(.add.x.vf.y vf4 vf4 vf4)
|
||||
(.nop.vf)
|
||||
(.add.z.vf vf2 vf2 vf2 :mask #b10)
|
||||
(.add.z.vf vf3 vf3 vf3 :mask #b10)
|
||||
(.add.z.vf vf4 vf4 vf4 :mask #b10)
|
||||
(.add.z.vf.y vf2 vf2 vf2)
|
||||
(.add.z.vf.y vf3 vf3 vf3)
|
||||
(.add.z.vf.y vf4 vf4 vf4)
|
||||
(.nop.vf)
|
||||
(.mov a0-1 vf2)
|
||||
(.mov a1-1 vf3)
|
||||
@@ -1099,11 +1099,11 @@
|
||||
(.sub.vf vf5 vf4 vf3)
|
||||
(.mul.x.vf vf1 vf1 vf2)
|
||||
(.mul.x.vf vf5 vf5 vf2)
|
||||
(.mul.vf vf5 vf5 vf5 :mask #b101)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.mul.vf.xz vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf5 vf5 vf5)
|
||||
(.sqrt.vf Q vf5 :ftf #b0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf0 Q :mask #b1000)
|
||||
(.mul.vf.w vf1 vf0 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> a1-2 quad) vf1)
|
||||
@@ -1350,7 +1350,7 @@
|
||||
;; evaluate polynomial!
|
||||
;;(.sll v1-8 v1-7 4)
|
||||
(set! v1-8 (* v1-7 16))
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(let ((v1-9 (+ v1-8 (the-as int arg2))))
|
||||
(nop!)
|
||||
(nop!)
|
||||
@@ -1364,11 +1364,11 @@
|
||||
)
|
||||
(.mul.x.vf acc vf2 vf6)
|
||||
(nop!)
|
||||
(.add.mul.y.vf acc vf3 vf6 acc :mask #b111)
|
||||
(.add.mul.y.vf.xyz acc vf3 vf6 acc)
|
||||
(nop!)
|
||||
(.add.mul.z.vf acc vf4 vf6 acc :mask #b111)
|
||||
(.add.mul.z.vf.xyz acc vf4 vf6 acc)
|
||||
(nop!)
|
||||
(.add.mul.w.vf vf1 vf5 vf6 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf1 vf5 vf6 acc)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(nop!)
|
||||
|
||||
@@ -268,8 +268,8 @@ this is done by a linked list of "bone calculations", which is stashed in the dm
|
||||
|
||||
;; dot nmat0 and tmat0
|
||||
(.mul.vf acc nmat0 tmat0)
|
||||
(.add.y.vf acc acc acc :mask #b1)
|
||||
(.add.z.vf acc acc acc :mask #b1)
|
||||
(.add.y.vf.x acc acc acc)
|
||||
(.add.z.vf.x acc acc acc)
|
||||
|
||||
;; divide!
|
||||
(.div.vf acc vf0 acc :fsf #b11 :ftf #b0)
|
||||
|
||||
@@ -444,13 +444,13 @@
|
||||
(set! (-> arg0 direction 2 quad) (the-as uint128 a2-2))
|
||||
)
|
||||
)
|
||||
(.min.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.min.x.vf.w vf4 vf0 vf0)
|
||||
(nop!)
|
||||
(.min.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.min.x.vf.w vf5 vf0 vf0)
|
||||
(nop!)
|
||||
(.min.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.min.x.vf.w vf6 vf0 vf0)
|
||||
(nop!)
|
||||
(.max.w.vf vf7 vf0 vf0 :mask #b1000)
|
||||
(.max.w.vf.w vf7 vf0 vf0)
|
||||
(nop!)
|
||||
(nop!)
|
||||
(.svf (&-> arg0 color 0 quad) vf4)
|
||||
|
||||
@@ -178,8 +178,8 @@
|
||||
(.lvf vf4 (&-> v1-5 quad))
|
||||
(.lvf vf5 (&-> a0-3 quad))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-96 quad) vf6)
|
||||
(set! sv-112 (new 'stack-no-clear 'vector))
|
||||
(let ((v1-9 (-> arg0 arg3))
|
||||
@@ -188,8 +188,8 @@
|
||||
(.lvf vf4 (&-> v1-9 quad))
|
||||
(.lvf vf5 (&-> a0-5 quad))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-112 quad) vf6)
|
||||
(set! sv-144 (new 'stack-no-clear 'vector))
|
||||
(set! sv-128 (new 'stack-no-clear 'vector))
|
||||
@@ -219,29 +219,29 @@
|
||||
(let ((v1-31 sv-128)
|
||||
(a0-15 sv-128)
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> sv-96 quad))
|
||||
(.lvf vf5 (&-> sv-112 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> a0-15 quad) vf6)
|
||||
(vector-float*! v1-31 a0-15 0.5)
|
||||
)
|
||||
(let ((v1-33 sv-144))
|
||||
(let ((a0-16 sv-144))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> a0-16 quad))
|
||||
)
|
||||
(.lvf vf5 (&-> sv-128 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-33 quad) vf6)
|
||||
)
|
||||
(let ((v1-35 (-> arg0 s0-0)))
|
||||
(let ((a0-19 (-> arg1 s0-0)))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> a0-19 quad))
|
||||
)
|
||||
(.lvf vf5 (&-> sv-144 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-35 quad) vf6)
|
||||
)
|
||||
(lightning-trail-fractal-gen arg0 arg1 arg2 s0-0 (* arg4 (-> arg5 reduction)) arg5)
|
||||
@@ -638,22 +638,22 @@
|
||||
(let ((a2-45 f1-4))
|
||||
(.mov vf17 a2-45)
|
||||
)
|
||||
(.add.x.vf vf17 vf0 vf8 :mask #b10)
|
||||
(.add.w.vf vf17 vf0 vf0 :mask #b100)
|
||||
(.add.w.vf vf17 vf17 vf0 :mask #b100)
|
||||
(.add.x.vf.y vf17 vf0 vf8)
|
||||
(.add.w.vf.z vf17 vf0 vf0)
|
||||
(.add.w.vf.z vf17 vf17 vf0)
|
||||
(dotimes (a2-46 s3-0)
|
||||
(.lvf vf8 (&-> (the-as (inline-array vector) v1-73) 0 quad))
|
||||
(.mul.w.vf acc vf4 vf0 :mask #b111)
|
||||
(.add.mul.x.vf acc vf1 vf8 acc :mask #b111)
|
||||
(.add.mul.y.vf acc vf2 vf8 acc :mask #b111)
|
||||
(.add.mul.z.vf vf8 vf3 vf8 acc :mask #b111)
|
||||
(.mul.w.vf.xyz acc vf4 vf0)
|
||||
(.add.mul.x.vf.xyz acc vf1 vf8 acc)
|
||||
(.add.mul.y.vf.xyz acc vf2 vf8 acc)
|
||||
(.add.mul.z.vf.xyz vf8 vf3 vf8 acc)
|
||||
(.add.x.vf vf6 vf8 vf0)
|
||||
(b! (zero? sv-64) cfg-44 :delay (.add.x.vf vf7 vf8 vf0))
|
||||
(.add.y.vf vf6 vf6 vf17 :mask #b10)
|
||||
(b! #t cfg-45 :delay (.sub.y.vf vf7 vf7 vf17 :mask #b10))
|
||||
(.add.y.vf.y vf6 vf6 vf17)
|
||||
(b! #t cfg-45 :delay (.sub.y.vf.y vf7 vf7 vf17))
|
||||
(label cfg-44)
|
||||
(.add.y.vf vf6 vf6 vf17 :mask #b1)
|
||||
(.sub.y.vf vf7 vf7 vf17 :mask #b1)
|
||||
(.add.y.vf.x vf6 vf6 vf17)
|
||||
(.sub.y.vf.x vf7 vf7 vf17)
|
||||
(label cfg-45)
|
||||
(.svf (&-> (the-as (pointer uint128) a1-82) 2) vf6)
|
||||
(.svf (&-> (the-as (pointer uint128) a0-71) 2) vf7)
|
||||
|
||||
@@ -437,10 +437,10 @@ renderers that want a single matrix.
|
||||
(.div.vf Q vf0 vf31 :fsf #b11 :ftf #b11)
|
||||
(.wait.vf)
|
||||
;;(.cfc2.i v1-7 Clipping)
|
||||
(.mul.vf vf28 vf28 Q :mask #b111)
|
||||
(.mul.vf.xyz vf28 vf28 Q)
|
||||
(.mul.vf vf23 vf23 Q)
|
||||
(.add.vf vf28 vf28 vf30)
|
||||
(.max.x.vf vf28 vf28 vf0 :mask #b1000)
|
||||
(.max.x.vf.w vf28 vf28 vf0)
|
||||
(.svf (&-> arg0 quad) vf28)
|
||||
(not (logtest? clip 63))
|
||||
)
|
||||
@@ -504,13 +504,13 @@ renderers that want a single matrix.
|
||||
(.wait.vf)
|
||||
;;(.cfc2.i v1-7 Clipping)
|
||||
;; perspective
|
||||
(.mul.vf vf28 vf28 Q :mask #b111)
|
||||
(.mul.vf.xyz vf28 vf28 Q)
|
||||
;; compute scale factor (w was 1.0)
|
||||
(.mul.vf vf23 vf23 Q)
|
||||
;; apply hvdf offsets
|
||||
(.add.vf vf28 vf28 vf30)
|
||||
;; saturate fog
|
||||
(.max.x.vf vf28 vf28 vf0 :mask #b1000)
|
||||
(.max.x.vf.w vf28 vf28 vf0)
|
||||
;; convert to GS fixed point
|
||||
(vftoi4.xyzw vf28 vf28)
|
||||
;; store result!
|
||||
@@ -558,10 +558,10 @@ renderers that want a single matrix.
|
||||
(.div.vf Q vf0 vf31 :fsf #b11 :ftf #b11)
|
||||
(.wait.vf)
|
||||
;;(.cfc2.i v1-7 Clipping)
|
||||
(.mul.vf vf28 vf28 Q :mask #b111)
|
||||
(.mul.vf.xyz vf28 vf28 Q)
|
||||
(.mul.vf vf23 vf23 Q)
|
||||
(.add.vf vf28 vf28 vf30)
|
||||
(.max.x.vf vf28 vf28 vf0 :mask #b1000)
|
||||
(.max.x.vf.w vf28 vf28 vf0)
|
||||
(.svf (&-> arg0 quad) vf28)
|
||||
;;(let ((a0-2 (zero? (logand v1-7 63))))
|
||||
;; )
|
||||
|
||||
@@ -1932,8 +1932,8 @@
|
||||
(let ((v1-10 s0-0))
|
||||
(.lvf vf4 (&-> v0-1 quad))
|
||||
(.lvf vf5 (&-> sv-80 quad))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-10 quad) vf6)
|
||||
)
|
||||
(vector-normalize! s0-0 1.0)
|
||||
|
||||
@@ -71,21 +71,21 @@
|
||||
(.lvf vf1 (&-> arg0 times 0 quad))
|
||||
(nop!)
|
||||
(.lvf vf2 (&-> arg0 times 1 quad))
|
||||
(.mul.w.vf vf1 vf1 vf1 :mask #b111)
|
||||
(.mul.w.vf.xyz vf1 vf1 vf1)
|
||||
(.lvf vf3 (&-> arg0 times 2 quad))
|
||||
(.mul.w.vf vf2 vf2 vf2 :mask #b111)
|
||||
(.mul.w.vf.xyz vf2 vf2 vf2)
|
||||
(.lvf vf4 (&-> arg0 times 3 quad))
|
||||
(.mul.w.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.mul.w.vf.xyz vf3 vf3 vf3)
|
||||
(.lvf vf5 (&-> arg0 times 4 quad))
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b111)
|
||||
(.mul.w.vf.xyz vf4 vf4 vf4)
|
||||
(.lvf vf6 (&-> arg0 times 5 quad))
|
||||
(.mul.w.vf vf5 vf5 vf5 :mask #b111)
|
||||
(.mul.w.vf.xyz vf5 vf5 vf5)
|
||||
(.lvf vf7 (&-> arg0 times 6 quad))
|
||||
(.mul.w.vf vf6 vf6 vf6 :mask #b111)
|
||||
(.mul.w.vf.xyz vf6 vf6 vf6)
|
||||
(.lvf vf8 (&-> arg0 times 7 quad))
|
||||
(.mul.w.vf vf7 vf7 vf7 :mask #b111)
|
||||
(.mul.w.vf.xyz vf7 vf7 vf7)
|
||||
(nop!)
|
||||
(.mul.w.vf vf8 vf8 vf8 :mask #b111)
|
||||
(.mul.w.vf.xyz vf8 vf8 vf8)
|
||||
(nop!)
|
||||
(vftoi12.xyzw vf1 vf1)
|
||||
(nop!)
|
||||
|
||||
@@ -521,14 +521,14 @@
|
||||
((< (-> gp-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> gp-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-6 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> gp-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-7 vf1)
|
||||
)
|
||||
|
||||
@@ -448,8 +448,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov t0-3 vf1)
|
||||
(when (< t0-3 309237600000.0)
|
||||
(logior! (-> (the-as (pointer uint8) (+ arg2 (the-as int arg0)))) (ash 1 arg1))
|
||||
@@ -464,8 +464,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov t0-8 vf1)
|
||||
(when (< t0-8 309237600000.0)
|
||||
(logior! (-> (the-as (pointer uint8) (+ arg2 (the-as int arg0)))) (ash 1 arg1))
|
||||
@@ -480,8 +480,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov t0-13 vf1)
|
||||
(when (< t0-13 309237600000.0)
|
||||
(logior! (-> (the-as (pointer uint8) (+ arg2 (the-as int arg0)))) (ash 1 arg1))
|
||||
@@ -493,8 +493,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v1-10 vf1)
|
||||
(when (< v1-10 309237600000.0)
|
||||
(logior! (-> (the-as (pointer uint8) (+ arg2 (the-as int arg0)))) (ash 1 arg1))
|
||||
|
||||
@@ -427,8 +427,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov t0-3 vf1)
|
||||
(when (< t0-3 19327350000.0)
|
||||
(logior! (-> arg0 mask arg2) (ash 1 arg1))
|
||||
@@ -443,8 +443,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov t0-8 vf1)
|
||||
(when (< t0-8 19327350000.0)
|
||||
(logior! (-> arg0 mask arg2) (ash 1 arg1))
|
||||
@@ -459,8 +459,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov t0-13 vf1)
|
||||
(when (< t0-13 19327350000.0)
|
||||
(logior! (-> arg0 mask arg2) (ash 1 arg1))
|
||||
@@ -472,8 +472,8 @@
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v1-13 vf1)
|
||||
(when (< v1-13 19327350000.0)
|
||||
(logior! (-> arg0 mask arg2) (ash 1 arg1))
|
||||
|
||||
@@ -200,7 +200,7 @@ vf31: cam 0 (premultiplied by hmge)
|
||||
; (.mul.vf vf30 vf30 vf14)
|
||||
; (.mul.vf vf29 vf29 vf14)
|
||||
; (.mul.vf vf28 vf28 vf14)
|
||||
; (.mov.vf vf25 vf0 :mask #b100)
|
||||
; (.mov.vf.z vf25 vf0)
|
||||
; (.mov.vf vf24 vf0)
|
||||
; (.mov.vf vf23 vf0)
|
||||
; (.mov v1-1 vf23)
|
||||
@@ -247,7 +247,7 @@ vf31: cam 0 (premultiplied by hmge)
|
||||
; (.lvf vf14 (&-> a1-0 hmge-scale quad))
|
||||
; (.lvf vf25 (&-> a1-0 hvdf-off quad))
|
||||
; (.lvf vf13 (&-> this fog quad))
|
||||
; (.mov.vf vf25 vf0 :mask #b100)
|
||||
; (.mov.vf.z vf25 vf0)
|
||||
; (.mov.vf vf23 vf0)
|
||||
; (let ((v1-1 (new-stack-vector0)))
|
||||
; (set! (-> v1-1 w) (fmin 1.0 (/ 11650.845 (-> a1-0 fov))))
|
||||
|
||||
@@ -403,14 +403,14 @@
|
||||
((< (-> s5-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg0 conerot quad))
|
||||
(.lvf vf2 (&-> s5-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg0 conerot quad) vf1)
|
||||
(.mov v1-1 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> arg0 conerot quad))
|
||||
(.lvf vf2 (&-> s5-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg0 conerot quad) vf1)
|
||||
(.mov v1-2 vf1)
|
||||
)
|
||||
@@ -525,8 +525,8 @@
|
||||
(set! (-> s5-0 vector 1 z) (the float (sar (shl (the int (-> s5-0 vector 1 z)) 48) 48)))
|
||||
(.lvf vf4 (&-> s5-0 quad 2))
|
||||
(.lvf vf5 (&-> s5-0 quad 0))
|
||||
(.min.x.vf vf4 vf4 vf31 :mask #b111)
|
||||
(.add.vf vf5 vf5 vf30 :mask #b111)
|
||||
(.min.x.vf.xyz vf4 vf4 vf31)
|
||||
(.add.vf.xyz vf5 vf5 vf30)
|
||||
(.svf (&-> s5-0 quad 2) vf4)
|
||||
(.svf (&-> s5-0 quad 0) vf5)
|
||||
(when (not *death-adgif*)
|
||||
@@ -553,8 +553,8 @@
|
||||
(.lvf vf4 (&-> (-> *time-of-day-context* current-prt-color) quad))
|
||||
(.lvf vf5 (&-> s5-0 quad 2))
|
||||
(.lvf vf6 (&-> gp-0 fade quad))
|
||||
(.mul.vf vf5 vf5 vf4 :mask #b111)
|
||||
(.mul.vf vf6 vf6 vf4 :mask #b111)
|
||||
(.mul.vf.xyz vf5 vf5 vf4)
|
||||
(.mul.vf.xyz vf6 vf6 vf4)
|
||||
(.svf (&-> s5-0 quad 2) vf5)
|
||||
(.svf (&-> gp-0 fade quad) vf6)
|
||||
(.mov v1-26 vf6)
|
||||
@@ -566,7 +566,7 @@
|
||||
(.lvf vf3 (&-> s5-0 quad 2))
|
||||
(.svf (&-> v1-27 x-y-z-sx quad) vf1)
|
||||
(.svf (&-> v1-27 flag-rot-sy quad) vf2)
|
||||
(.sub.w.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.sub.w.vf.w vf3 vf0 vf0)
|
||||
(.svf (&-> v1-27 r-g-b-a quad) vf3)
|
||||
)
|
||||
(.mov v1-28 vf3)
|
||||
@@ -740,14 +740,14 @@
|
||||
((< (-> s3-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg3 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s3-0 vec quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg3 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-9 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> arg3 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s3-0 vec quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg3 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-10 vf1)
|
||||
)
|
||||
@@ -1364,14 +1364,14 @@
|
||||
((< (-> gp-0 w) 0.0)
|
||||
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> gp-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-1 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> arg2 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> gp-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-2 vf1)
|
||||
)
|
||||
@@ -1412,14 +1412,14 @@
|
||||
((< (-> s4-0 w) 0.0)
|
||||
(.lvf vf1 (&-> v1-4 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s4-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-4 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-5 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> v1-4 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s4-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-4 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-6 vf1)
|
||||
)
|
||||
@@ -1475,14 +1475,14 @@
|
||||
((< (-> s4-0 w) 0.0)
|
||||
(.lvf vf1 (&-> v1-17 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s4-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-17 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-18 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> v1-17 qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> s4-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> v1-17 qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-19 vf1)
|
||||
)
|
||||
@@ -1889,14 +1889,14 @@
|
||||
((< (-> s5-1 w) 0.0)
|
||||
(.lvf vf1 (&-> arg2 conerot quad))
|
||||
(.lvf vf2 (&-> s5-1 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 conerot quad) vf1)
|
||||
(.mov v1-0 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> arg2 conerot quad))
|
||||
(.lvf vf2 (&-> s5-1 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> arg2 conerot quad) vf1)
|
||||
(.mov v1-1 vf1)
|
||||
)
|
||||
@@ -1923,14 +1923,14 @@
|
||||
((< (-> v1-0 w) 0.0)
|
||||
(.lvf vf1 (&-> a0-1 conerot quad))
|
||||
(.lvf vf2 (&-> v1-0 quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> a0-1 conerot quad) vf1)
|
||||
(.mov a0-2 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> a0-1 conerot quad))
|
||||
(.lvf vf2 (&-> v1-0 quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> a0-1 conerot quad) vf1)
|
||||
(.mov a0-3 vf1)
|
||||
)
|
||||
|
||||
@@ -262,12 +262,12 @@ across the screen. The resolution of the circle is defined by the number of "tur
|
||||
;;(TODO.VCLIP vf10 vf10)
|
||||
(b! (zero? (-> sprite flag-rot-sy x)) cfg-22 :delay (nop!))
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf vf2 vf2 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.mul.vf.xyz vf2 vf2 Q)
|
||||
;;(.cfc2.i clip-result Clipping)
|
||||
(set! clip-result (vu-clip vf10 0)) ;; safe to just drop the higher bits.
|
||||
(b! (logtest? clip-result 63) cfg-22 :delay (.add.vf vf1 vf1 vf9))
|
||||
(.max.x.vf vf1 vf1 vf0 :mask #b1000)
|
||||
(.max.x.vf.w vf1 vf1 vf0)
|
||||
(.svf (&-> (the-as vector dma-position) quad) vf1)
|
||||
(.svf (&-> (the-as vector dma-color) quad) vf2)
|
||||
(set! (-> (the-as vector dma-position) w) 255.0)
|
||||
|
||||
@@ -452,14 +452,14 @@ the sprite renderer draw 2D or 3D sprites
|
||||
((< (-> quat w) 0.0)
|
||||
(.lvf vf1 (&-> sprite qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> quat quad))
|
||||
(.sub.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> sprite qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-0 vf1)
|
||||
)
|
||||
(else
|
||||
(.lvf vf1 (&-> sprite qx-qy-qz-sy quad))
|
||||
(.lvf vf2 (&-> quat quad))
|
||||
(.add.vf vf1 vf0 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf1 vf0 vf2)
|
||||
(.svf (&-> sprite qx-qy-qz-sy quad) vf1)
|
||||
(.mov v1-1 vf1)
|
||||
)
|
||||
|
||||
@@ -389,14 +389,14 @@
|
||||
(.add.mul.y.vf acc vf16 vf10 acc)
|
||||
(.add.mul.w.vf vf10 vf18 vf0 acc)
|
||||
(vftoi4.xyzw vf6 vf6)
|
||||
(.add.x.vf vf7 vf0 vf19 :mask #b100)
|
||||
(.add.y.vf vf8 vf0 vf19 :mask #b100)
|
||||
(.add.z.vf vf9 vf0 vf19 :mask #b100)
|
||||
(.add.w.vf vf10 vf0 vf19 :mask #b100)
|
||||
(.mul.z.vf vf7 vf7 vf7 :mask #b11)
|
||||
(.mul.z.vf vf8 vf8 vf8 :mask #b11)
|
||||
(.mul.z.vf vf9 vf9 vf9 :mask #b11)
|
||||
(.mul.z.vf vf10 vf10 vf10 :mask #b11)
|
||||
(.add.x.vf.z vf7 vf0 vf19)
|
||||
(.add.y.vf.z vf8 vf0 vf19)
|
||||
(.add.z.vf.z vf9 vf0 vf19)
|
||||
(.add.w.vf.z vf10 vf0 vf19)
|
||||
(.mul.z.vf.xy vf7 vf7 vf7)
|
||||
(.mul.z.vf.xy vf8 vf8 vf8)
|
||||
(.mul.z.vf.xy vf9 vf9 vf9)
|
||||
(.mul.z.vf.xy vf10 vf10 vf10)
|
||||
(.svf (&-> s4-0 3) vf7)
|
||||
(.svf (&-> s4-0 4) vf3)
|
||||
(.svf (&-> s4-0 5) vf8)
|
||||
|
||||
@@ -401,16 +401,16 @@ The "bsp-tree" is a bsp used to associate camera positions with lists of visibib
|
||||
;; apply scaling and offset.
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg0 bsp-offset quad))
|
||||
(.sub.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf1 vf2)
|
||||
(.div.vf Q vf0 vf3 :fsf #b11 :ftf #b0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b1)
|
||||
(.mul.vf.x vf1 vf1 Q)
|
||||
(.div.vf Q vf0 vf3 :fsf #b11 :ftf #b1)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b10)
|
||||
(.mul.vf.y vf1 vf1 Q)
|
||||
(.div.vf Q vf0 vf3 :fsf #b11 :ftf #b10)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b100)
|
||||
(.mul.vf.z vf1 vf1 Q)
|
||||
(let ((a1-1 #xffffff)
|
||||
(nidx (the-as uint 0))
|
||||
)
|
||||
|
||||
@@ -297,15 +297,15 @@ allowed to be the same memory.
|
||||
(.lvf vf1 (&-> arg0 quad 0))
|
||||
(.lvf vf2 (&-> arg0 quad 1))
|
||||
(.lvf vf3 (&-> arg0 quad 2))
|
||||
(.sub.vf vf1 vf1 vf1 :mask #b1000)
|
||||
(.sub.vf vf2 vf2 vf2 :mask #b1000)
|
||||
(.sub.vf vf3 vf3 vf3 :mask #b1000)
|
||||
(.sub.vf.w vf1 vf1 vf1)
|
||||
(.sub.vf.w vf2 vf2 vf2)
|
||||
(.sub.vf.w vf3 vf3 vf3)
|
||||
(.lvf vf8 (&-> arg1 trans quad))
|
||||
(.mul.x.vf acc vf1 vf8)
|
||||
(.add.mul.y.vf acc vf2 vf8 acc)
|
||||
(.add.mul.z.vf vf4 vf3 vf8 acc)
|
||||
(.sub.vf vf4 vf0 vf4)
|
||||
(.mov.vf vf4 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf4 vf0)
|
||||
(.svf (&-> arg0 quad 0) vf1)
|
||||
(.svf (&-> arg0 quad 1) vf2)
|
||||
(.svf (&-> arg0 quad 2) vf3)
|
||||
@@ -398,87 +398,87 @@ allowed to be the same memory.
|
||||
(nop!)
|
||||
(.mul.z.vf vf15 vf25 vf24)
|
||||
(nop!)
|
||||
(.mul.z.vf vf26 vf7 vf25 :mask #b10)
|
||||
(.mul.z.vf.y vf26 vf7 vf25)
|
||||
(nop!)
|
||||
(.mul.z.vf vf27 vf11 vf24 :mask #b1)
|
||||
(.mul.z.vf.x vf27 vf11 vf24)
|
||||
(nop!)
|
||||
(.mul.y.vf vf28 vf9 vf25 :mask #b1)
|
||||
(.mul.y.vf.x vf28 vf9 vf25)
|
||||
(nop!)
|
||||
(.mul.z.vf vf29 vf14 vf23 :mask #b1)
|
||||
(.mul.z.vf.x vf29 vf14 vf23)
|
||||
(nop!)
|
||||
(.mul.z.vf vf30 vf8 vf25 :mask #b1)
|
||||
(.mul.z.vf.x vf30 vf8 vf25)
|
||||
(nop!)
|
||||
(.mul.y.vf vf31 vf7 vf25 :mask #b100)
|
||||
(.mul.y.vf.z vf31 vf7 vf25)
|
||||
(nop!)
|
||||
(.add.y.vf vf16 vf27 vf26 :mask #b1)
|
||||
(.add.y.vf.x vf16 vf27 vf26)
|
||||
(nop!)
|
||||
(.sub.vf vf1 vf0 vf1)
|
||||
(nop!)
|
||||
(.add.x.vf vf17 vf29 vf30 :mask #b1)
|
||||
(.add.x.vf.x vf17 vf29 vf30)
|
||||
(nop!)
|
||||
(.sub.z.vf vf18 vf28 vf31 :mask #b1)
|
||||
(.sub.z.vf.x vf18 vf28 vf31)
|
||||
(nop!)
|
||||
(.sub.y.vf vf23 vf14 vf15 :mask #b100)
|
||||
(.sub.y.vf.z vf23 vf14 vf15)
|
||||
(nop!)
|
||||
(.sub.z.vf vf26 vf15 vf13 :mask #b1)
|
||||
(.sub.z.vf.x vf26 vf15 vf13)
|
||||
(nop!)
|
||||
(.sub.x.vf vf29 vf13 vf14 :mask #b10)
|
||||
(.sub.x.vf.y vf29 vf13 vf14)
|
||||
(nop!)
|
||||
(.sub.vf vf19 vf16 vf17 :mask #b1)
|
||||
(.sub.vf.x vf19 vf16 vf17)
|
||||
(nop!)
|
||||
(.sub.z.vf vf24 vf12 vf11 :mask #b10)
|
||||
(.sub.z.vf.y vf24 vf12 vf11)
|
||||
(nop!)
|
||||
(.sub.x.vf vf27 vf10 vf12 :mask #b100)
|
||||
(.sub.x.vf.z vf27 vf10 vf12)
|
||||
(nop!)
|
||||
(.sub.y.vf vf30 vf11 vf10 :mask #b1)
|
||||
(.sub.y.vf.x vf30 vf11 vf10)
|
||||
(nop!)
|
||||
(.add.vf vf20 vf19 vf18 :mask #b1)
|
||||
(.add.vf.x vf20 vf19 vf18)
|
||||
(nop!)
|
||||
(.sub.y.vf vf25 vf8 vf9 :mask #b100)
|
||||
(.sub.y.vf.z vf25 vf8 vf9)
|
||||
(nop!)
|
||||
(.sub.z.vf vf28 vf9 vf7 :mask #b1)
|
||||
(.sub.z.vf.x vf28 vf9 vf7)
|
||||
(nop!)
|
||||
(.sub.x.vf vf31 vf7 vf8 :mask #b10)
|
||||
(.sub.x.vf.y vf31 vf7 vf8)
|
||||
(nop!)
|
||||
(.div.vf Q vf0 vf20 :fsf #b11 :ftf #b0)
|
||||
(nop!)
|
||||
(.sub.w.vf vf3 vf3 vf3 :mask #b1000)
|
||||
(.sub.w.vf.w vf3 vf3 vf3)
|
||||
(nop!)
|
||||
(.sub.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.sub.w.vf.w vf4 vf4 vf4)
|
||||
(nop!)
|
||||
(.sub.w.vf vf5 vf5 vf5 :mask #b1000)
|
||||
(.sub.w.vf.w vf5 vf5 vf5)
|
||||
(nop!)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(nop!)
|
||||
(.wait.vf)
|
||||
(nop!)
|
||||
(.add.vf vf2 vf0 Q :mask #b1)
|
||||
(.add.vf.x vf2 vf0 Q)
|
||||
(nop!)
|
||||
(.add.x.vf vf2 vf0 vf2 :mask #b111)
|
||||
(.add.x.vf.xyz vf2 vf0 vf2)
|
||||
(nop!)
|
||||
(.mul.z.vf vf3 vf2 vf23 :mask #b1)
|
||||
(.mul.z.vf.x vf3 vf2 vf23)
|
||||
(nop!)
|
||||
(.mul.x.vf vf4 vf2 vf26 :mask #b1)
|
||||
(.mul.x.vf.x vf4 vf2 vf26)
|
||||
(nop!)
|
||||
(.mul.y.vf vf5 vf2 vf29 :mask #b1)
|
||||
(.mul.y.vf.x vf5 vf2 vf29)
|
||||
(nop!)
|
||||
(.mul.y.vf vf3 vf2 vf24 :mask #b10)
|
||||
(.mul.y.vf.y vf3 vf2 vf24)
|
||||
(nop!)
|
||||
(.mul.z.vf vf4 vf2 vf27 :mask #b10)
|
||||
(.mul.z.vf.y vf4 vf2 vf27)
|
||||
(nop!)
|
||||
(.mul.x.vf vf5 vf2 vf30 :mask #b10)
|
||||
(.mul.x.vf.y vf5 vf2 vf30)
|
||||
(nop!)
|
||||
(.mul.z.vf vf3 vf2 vf25 :mask #b100)
|
||||
(.mul.z.vf.z vf3 vf2 vf25)
|
||||
(nop!)
|
||||
(.mul.x.vf vf4 vf2 vf28 :mask #b100)
|
||||
(.mul.x.vf.z vf4 vf2 vf28)
|
||||
(nop!)
|
||||
(.mul.y.vf vf5 vf2 vf31 :mask #b100)
|
||||
(.mul.y.vf.z vf5 vf2 vf31)
|
||||
(nop!)
|
||||
(.mul.x.vf acc vf3 vf1)
|
||||
(.svf (&-> arg0 quad 0) vf3)
|
||||
(.add.mul.y.vf acc vf4 vf1 acc)
|
||||
(.svf (&-> arg0 quad 1) vf4)
|
||||
(.add.mul.z.vf vf6 vf5 vf1 acc :mask #b111)
|
||||
(.add.mul.z.vf.xyz vf6 vf5 vf1 acc)
|
||||
(.svf (&-> arg0 quad 2) vf5)
|
||||
(nop!)
|
||||
(.svf (&-> arg0 trans quad) vf6)
|
||||
@@ -877,11 +877,11 @@ allowed to be the same memory.
|
||||
(+! xyz-zero 1)
|
||||
|
||||
;;vsubx.w vf5, vf0, vf6
|
||||
(.sub.x.vf vf5 vf0 vf6 :mask #b1000)
|
||||
(.sub.x.vf.w vf5 vf0 vf6)
|
||||
|
||||
;;beq v1, r0, L15
|
||||
;;vaddx.y vf5, vf0, vf6
|
||||
(.add.x.vf vf5 vf0 vf6 :mask #b0010)
|
||||
(.add.x.vf.y vf5 vf0 vf6)
|
||||
(when-goto (zero? xyz-zero) zero-case)
|
||||
)
|
||||
)
|
||||
@@ -895,55 +895,55 @@ allowed to be the same memory.
|
||||
(.xor.vf vf4 vf4 vf4)
|
||||
|
||||
;;vmulx.xyz vf11, vf1, vf5
|
||||
(.mul.x.vf vf11 vf1 vf5 :mask #b0111)
|
||||
(.mul.x.vf.xyz vf11 vf1 vf5)
|
||||
|
||||
;;vaddy.x vf7, vf0, vf5
|
||||
(.add.y.vf vf7 vf0 vf5 :mask #b0001)
|
||||
(.add.y.vf.x vf7 vf0 vf5)
|
||||
|
||||
;;vaddy.y vf8, vf0, vf5
|
||||
(.add.y.vf vf8 vf0 vf5 :mask #b0010)
|
||||
(.add.y.vf.y vf8 vf0 vf5)
|
||||
|
||||
;;vaddy.z vf9, vf0, vf5
|
||||
(.add.y.vf vf9 vf0 vf5 :mask #b0100)
|
||||
(.add.y.vf.z vf9 vf0 vf5)
|
||||
|
||||
;;vmulw.xyz vf10, vf1, vf5
|
||||
(.mul.w.vf vf10 vf1 vf5 :mask #b0111)
|
||||
(.mul.w.vf.xyz vf10 vf1 vf5)
|
||||
|
||||
;;vsubz.y vf7, vf0, vf11
|
||||
(.sub.z.vf vf7 vf0 vf11 :mask #b0010)
|
||||
(.sub.z.vf.y vf7 vf0 vf11)
|
||||
|
||||
;;vaddy.z vf7, vf0, vf11
|
||||
(.add.y.vf vf7 vf0 vf11 :mask #b0100)
|
||||
(.add.y.vf.z vf7 vf0 vf11)
|
||||
|
||||
;;vaddz.x vf8, vf0, vf11
|
||||
(.add.z.vf vf8 vf0 vf11 :mask #b0001)
|
||||
(.add.z.vf.x vf8 vf0 vf11)
|
||||
|
||||
;;vsubx.z vf8, vf0, vf11
|
||||
(.sub.x.vf vf8 vf0 vf11 :mask #b0100)
|
||||
(.sub.x.vf.z vf8 vf0 vf11)
|
||||
|
||||
;;vmulx.xyz vf2, vf10, vf1
|
||||
(.mul.x.vf vf2 vf10 vf1 :mask #b0111)
|
||||
(.mul.x.vf.xyz vf2 vf10 vf1)
|
||||
|
||||
;;vmuly.xyz vf3, vf10, vf1
|
||||
(.mul.y.vf vf3 vf10 vf1 :mask #b0111)
|
||||
(.mul.y.vf.xyz vf3 vf10 vf1)
|
||||
|
||||
;;vmulz.xyz vf4, vf10, vf1
|
||||
(.mul.z.vf vf4 vf10 vf1 :mask #b0111)
|
||||
(.mul.z.vf.xyz vf4 vf10 vf1)
|
||||
|
||||
;;vsuby.x vf9, vf0, vf11
|
||||
(.sub.y.vf vf9 vf0 vf11 :mask #b0001)
|
||||
(.sub.y.vf.x vf9 vf0 vf11)
|
||||
|
||||
;;vaddx.y vf9, vf0, vf11
|
||||
(.add.x.vf vf9 vf0 vf11 :mask #b0010)
|
||||
(.add.x.vf.y vf9 vf0 vf11)
|
||||
|
||||
;;vadd.xyz vf2, vf2, vf7
|
||||
(.add.vf vf2 vf2 vf7 :mask #b0111)
|
||||
(.add.vf.xyz vf2 vf2 vf7)
|
||||
|
||||
;;vadd.xyz vf3, vf3, vf8
|
||||
(.add.vf vf3 vf3 vf8 :mask #b0111)
|
||||
(.add.vf.xyz vf3 vf3 vf8)
|
||||
|
||||
;;vadd.xyz vf4, vf4, vf9
|
||||
(.add.vf vf4 vf4 vf9 :mask #b0111)
|
||||
(.add.vf.xyz vf4 vf4 vf9)
|
||||
|
||||
;;sqc2 vf2, 0(v0)
|
||||
;;sqc2 vf3, 16(v0)
|
||||
@@ -1052,9 +1052,9 @@ allowed to be the same memory.
|
||||
(.lvf vf10 (&-> arg0 quad 0))
|
||||
(.outer.product.a.vf acc vf11 vf12)
|
||||
(.outer.product.b.vf vf13 vf12 vf11 acc)
|
||||
(.mul.vf vf13 vf13 vf10 :mask #b111)
|
||||
(.add.y.vf vf13 vf13 vf13 :mask #b1)
|
||||
(.add.z.vf vf13 vf13 vf13 :mask #b1)
|
||||
(.mul.vf.xyz vf13 vf13 vf10)
|
||||
(.add.y.vf.x vf13 vf13 vf13)
|
||||
(.add.z.vf.x vf13 vf13 vf13)
|
||||
(.mov v0-0 vf13)
|
||||
v0-0
|
||||
)
|
||||
@@ -1151,15 +1151,15 @@ allowed to be the same memory.
|
||||
(.outer.product.b.vf vf13 vf12 vf11 acc)
|
||||
(.outer.product.a.vf acc vf12 vf10)
|
||||
(.outer.product.b.vf vf14 vf10 vf12 acc)
|
||||
(.mul.vf vf1 vf10 vf13 :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf10 vf13)
|
||||
(.outer.product.a.vf acc vf10 vf11)
|
||||
(.outer.product.b.vf vf15 vf11 vf10 acc)
|
||||
(.nop.vf)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1206,28 +1206,28 @@ allowed to be the same memory.
|
||||
(let ((f2-1 (gpr->fpr v1-0)))
|
||||
(.lvf vf12 (&-> arg1 quad 2))
|
||||
(.madda.s f0-0 f0-0)
|
||||
(.sub.w.vf vf13 vf0 vf0 :mask #b1000)
|
||||
(.sub.w.vf.w vf13 vf0 vf0)
|
||||
(.madd.s f0-1 f1-0 f1-0)
|
||||
(.sub.w.vf vf14 vf0 vf0 :mask #b1000)
|
||||
(.sub.w.vf.w vf14 vf0 vf0)
|
||||
(.rsqrt.s f0-2 f2-1 f0-1)
|
||||
)
|
||||
)
|
||||
(.sub.w.vf vf15 vf0 vf0 :mask #b1000)
|
||||
(.sub.w.vf.w vf15 vf0 vf0)
|
||||
(let ((v1-1 f0-2))
|
||||
(.mov vf16 v1-1)
|
||||
)
|
||||
(.mul.x.vf vf13 vf10 vf16 :mask #b111)
|
||||
(.mul.x.vf.xyz vf13 vf10 vf16)
|
||||
(.outer.product.a.vf acc vf11 vf13)
|
||||
(.outer.product.b.vf vf14 vf13 vf11 acc)
|
||||
(.outer.product.a.vf acc vf13 vf14)
|
||||
(.outer.product.b.vf vf14 vf14 vf13 acc)
|
||||
(.mul.vf vf16 vf14 vf14 :mask #b111)
|
||||
(.mul.x.vf acc vf0 vf16 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf16 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf16 vf0 vf16 acc :mask #b1000)
|
||||
(.mul.vf.xyz vf16 vf14 vf14)
|
||||
(.mul.x.vf.w acc vf0 vf16)
|
||||
(.add.mul.y.vf.w acc vf0 vf16 acc)
|
||||
(.add.mul.z.vf.w vf16 vf0 vf16 acc)
|
||||
(.isqrt.vf Q vf0 vf16 :fsf #b11 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf14 vf14 Q :mask #b111)
|
||||
(.mul.vf.xyz vf14 vf14 Q)
|
||||
(.outer.product.a.vf acc vf13 vf14)
|
||||
(.outer.product.b.vf vf15 vf14 vf13 acc)
|
||||
(.svf (&-> arg0 quad 0) vf13)
|
||||
@@ -1593,10 +1593,10 @@ allowed to be the same memory.
|
||||
(.lvf vf2 (&-> arg0 trans quad))
|
||||
(.div.vf Q vf0 vf2 :fsf #b11 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf2 vf2 Q :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf2 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.svf (&-> arg1 quad) vf2)
|
||||
arg1
|
||||
)
|
||||
@@ -1673,10 +1673,10 @@ allowed to be the same memory.
|
||||
(.lvf vf2 (&-> arg1 trans quad))
|
||||
(.div.vf Q vf0 vf2 :fsf #b11 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf2 vf2 Q :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf2 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.svf (&-> arg0 trans quad) vf2)
|
||||
(let ((s4-0 (new 'stack-no-clear 'matrix)))
|
||||
(let* ((a2-0 arg1)
|
||||
@@ -1775,7 +1775,7 @@ allowed to be the same memory.
|
||||
(set! src (the (inline-array vector) (+ 64 (the int src))))
|
||||
|
||||
;;vmaddz.xyz vf5, vf3, vf5
|
||||
(.add.mul.z.vf vf5 vf3 vf5 acc :mask #b0111)
|
||||
(.add.mul.z.vf.xyz vf5 vf3 vf5 acc)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -1792,7 +1792,7 @@ allowed to be the same memory.
|
||||
(.add.mul.y.vf acc vf2 vf6 acc)
|
||||
|
||||
;; vmaddz.xyz vf6, vf3, vf6
|
||||
(.add.mul.z.vf vf6 vf3 vf6 acc :mask #b0111)
|
||||
(.add.mul.z.vf.xyz vf6 vf3 vf6 acc)
|
||||
|
||||
;;sqc2 vf5, 0(a1)
|
||||
(.svf (-> dst 0) vf5)
|
||||
@@ -1812,7 +1812,7 @@ allowed to be the same memory.
|
||||
;;lqc2 vf5, 0(a2)
|
||||
(.lvf vf5 (-> src 0))
|
||||
;;vmaddz.xyz vf7, vf3, vf7
|
||||
(.add.mul.z.vf vf7 vf3 vf7 acc :mask #b0111)
|
||||
(.add.mul.z.vf.xyz vf7 vf3 vf7 acc)
|
||||
;;sqc2 vf6, 16(a1)
|
||||
(.svf (-> dst 1) vf6)
|
||||
|
||||
@@ -1831,7 +1831,7 @@ allowed to be the same memory.
|
||||
;;lqc2 vf6, 16(a2)
|
||||
(.lvf vf6 (-> src 1))
|
||||
;;vmaddz.xyz vf8, vf3, vf8
|
||||
(.add.mul.z.vf vf8 vf3 vf8 acc :mask #b0111)
|
||||
(.add.mul.z.vf.xyz vf8 vf3 vf8 acc)
|
||||
;;sqc2 vf7, 32(a1)
|
||||
(.svf (-> dst 2) vf7)
|
||||
|
||||
|
||||
@@ -173,8 +173,8 @@
|
||||
(.lvf vf1 (&-> arg1 vec quad))
|
||||
;; (.sub.vf vf2 vf2 vf2)
|
||||
(.xor.vf vf2 vf2 vf2)
|
||||
(.sub.vf vf2 vf2 vf1 :mask #b111)
|
||||
(.add.vf vf2 vf2 vf1 :mask #b1000)
|
||||
(.sub.vf.xyz vf2 vf2 vf1)
|
||||
(.add.vf.w vf2 vf2 vf1)
|
||||
(.svf (&-> arg0 vec quad) vf2)
|
||||
arg0
|
||||
)
|
||||
@@ -211,9 +211,9 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 vec quad))
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf acc vf1 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.add.z.vf.w acc vf1 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.x.vf.w vf1 vf0 vf1 acc)
|
||||
(.add.w.vf vf1 vf0 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0
|
||||
@@ -230,9 +230,9 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 vec quad))
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf acc vf1 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.add.z.vf.w acc vf1 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.x.vf.w vf1 vf0 vf1 acc)
|
||||
(.add.w.vf vf1 vf0 vf1)
|
||||
(.mov v1-1 vf1)
|
||||
(sqrtf v1-1)
|
||||
@@ -250,9 +250,9 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 vec quad))
|
||||
(.mul.vf vf2 vf1 vf1)
|
||||
(.add.z.vf acc vf2 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.add.z.vf.w acc vf2 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.x.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf0 vf2 :fsf #b11 :ftf #b11)
|
||||
;; (.wait.vf)
|
||||
(.mul.vf vf2 vf1 Q)
|
||||
@@ -278,12 +278,12 @@
|
||||
(.mul.vf vf2 vf1 vf1)
|
||||
;; (.sub.vf vf3 vf3 vf3)
|
||||
(.xor.vf vf3 vf3 vf3)
|
||||
(.add.z.vf acc vf2 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.sub.vf vf3 vf3 vf1 :mask #b111)
|
||||
(.add.z.vf.w acc vf2 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.x.vf.w vf2 vf0 vf2 acc)
|
||||
(.sub.vf.xyz vf3 vf3 vf1)
|
||||
(.div.vf Q vf0 vf2 :fsf #b11 :ftf #b11)
|
||||
(.add.vf vf3 vf3 vf1 :mask #b1000)
|
||||
(.add.vf.w vf3 vf3 vf1)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf3 vf3 Q)
|
||||
(.nop.vf)
|
||||
@@ -305,9 +305,9 @@
|
||||
(.lvf vf1 (&-> arg0 vec quad))
|
||||
(.lvf vf2 (&-> arg1 vec quad))
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
(.add.z.vf acc vf1 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.x.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.add.z.vf.w acc vf1 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.x.vf.w vf1 vf0 vf1 acc)
|
||||
(.add.w.vf vf1 vf0 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0
|
||||
@@ -326,16 +326,16 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 vec quad))
|
||||
(.lvf vf2 (&-> arg2 vec quad))
|
||||
(.sub.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.sub.vf.w vf4 vf0 vf0)
|
||||
(.mul.vf vf3 vf1 vf2)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf4 vf2 vf1 acc)
|
||||
(.mul.w.vf acc vf1 vf2)
|
||||
(.add.mul.w.vf acc vf2 vf1 acc)
|
||||
(.sub.mul.w.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.sub.mul.z.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.sub.mul.y.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.sub.mul.x.vf acc vf0 vf3 acc :mask #b1000)
|
||||
(.sub.mul.w.vf.w acc vf0 vf3 acc)
|
||||
(.sub.mul.z.vf.w acc vf0 vf3 acc)
|
||||
(.sub.mul.y.vf.w acc vf0 vf3 acc)
|
||||
(.sub.mul.x.vf.w acc vf0 vf3 acc)
|
||||
(.add.mul.w.vf vf1 vf4 vf0 acc)
|
||||
(.svf (&-> arg0 vec quad) vf1)
|
||||
arg0
|
||||
@@ -414,27 +414,27 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 vec quad))
|
||||
(.add.vf vf5 vf1 vf1)
|
||||
(.add.w.vf vf2 vf0 vf1 :mask #b1)
|
||||
(.add.z.vf vf2 vf0 vf1 :mask #b10)
|
||||
(.sub.y.vf vf2 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf2 vf0 vf0 :mask #b1000)
|
||||
(.sub.z.vf vf3 vf0 vf1 :mask #b1)
|
||||
(.add.w.vf vf3 vf0 vf1 :mask #b10)
|
||||
(.add.x.vf vf3 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.y.vf vf4 vf0 vf1 :mask #b1)
|
||||
(.sub.x.vf vf4 vf0 vf1 :mask #b10)
|
||||
(.add.w.vf vf4 vf0 vf1 :mask #b100)
|
||||
(.sub.w.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.w.vf.x vf2 vf0 vf1)
|
||||
(.add.z.vf.y vf2 vf0 vf1)
|
||||
(.sub.y.vf.z vf2 vf0 vf1)
|
||||
(.sub.w.vf.w vf2 vf0 vf0)
|
||||
(.sub.z.vf.x vf3 vf0 vf1)
|
||||
(.add.w.vf.y vf3 vf0 vf1)
|
||||
(.add.x.vf.z vf3 vf0 vf1)
|
||||
(.sub.w.vf.w vf3 vf0 vf0)
|
||||
(.add.y.vf.x vf4 vf0 vf1)
|
||||
(.sub.x.vf.y vf4 vf0 vf1)
|
||||
(.add.w.vf.z vf4 vf0 vf1)
|
||||
(.sub.w.vf.w vf4 vf0 vf0)
|
||||
(.outer.product.a.vf acc vf5 vf2)
|
||||
(.outer.product.b.vf vf2 vf2 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf3)
|
||||
(.outer.product.b.vf vf3 vf3 vf5 acc)
|
||||
(.outer.product.a.vf acc vf5 vf4)
|
||||
(.outer.product.b.vf vf4 vf4 vf5 acc)
|
||||
(.add.w.vf vf2 vf2 vf0 :mask #b1)
|
||||
(.add.w.vf vf3 vf3 vf0 :mask #b10)
|
||||
(.add.w.vf vf4 vf4 vf0 :mask #b100)
|
||||
(.add.w.vf.x vf2 vf2 vf0)
|
||||
(.add.w.vf.y vf3 vf3 vf0)
|
||||
(.add.w.vf.z vf4 vf4 vf0)
|
||||
(.svf (&-> arg0 trans quad) vf0)
|
||||
(.svf (&-> arg0 quad 0) vf2)
|
||||
(.svf (&-> arg0 quad 1) vf3)
|
||||
@@ -468,24 +468,24 @@
|
||||
; (.mov vf4 a2-0)
|
||||
; (let ((a2-1 #x3f800000))
|
||||
; (.add.vf vf5 vf1 vf1)
|
||||
; (.sub.y.vf vf4 vf0 vf4 :mask #b10)
|
||||
; (.sub.y.vf.y vf4 vf0 vf4)
|
||||
; (.pextlw a3-0 v1-0 a1-2)
|
||||
; (.mov vf3 a1-2)
|
||||
; (.pextuw v1-1 v1-0 a3-0)
|
||||
; (.mov vf2 v1-1)
|
||||
; (set! (-> arg0 trans quad) (the-as uint128 0))
|
||||
; (.sub.x.vf vf3 vf0 vf3 :mask #b1)
|
||||
; (.sub.x.vf.x vf3 vf0 vf3)
|
||||
; (set! (-> arg0 trans w) (the-as float a2-1))
|
||||
; (.sub.z.vf vf2 vf0 vf2 :mask #b100)
|
||||
; (.sub.z.vf.z vf2 vf0 vf2)
|
||||
; (.outer.product.a.vf acc vf5 vf4)
|
||||
; (.outer.product.b.vf vf8 vf4 vf5 acc)
|
||||
; (.outer.product.a.vf acc vf5 vf3)
|
||||
; (.outer.product.b.vf vf7 vf3 vf5 acc)
|
||||
; (.outer.product.a.vf acc vf5 vf2)
|
||||
; (.outer.product.b.vf vf6 vf2 vf5 acc)
|
||||
; (.add.w.vf vf8 vf8 vf0 :mask #b100)
|
||||
; (.add.w.vf vf7 vf7 vf0 :mask #b10)
|
||||
; (.add.w.vf vf6 vf6 vf0 :mask #b1)
|
||||
; (.add.w.vf.z vf8 vf8 vf0)
|
||||
; (.add.w.vf.y vf7 vf7 vf0)
|
||||
; (.add.w.vf.x vf6 vf6 vf0)
|
||||
; (.svf (&-> arg0 quad 2) vf8)
|
||||
; (set! (-> arg0 data 11) (the-as float a2-1))
|
||||
; (.svf (&-> arg0 quad 1) vf7)
|
||||
@@ -834,17 +834,17 @@
|
||||
(.lvf vf1 (&-> gp-0 quad))
|
||||
(.lvf vf2 (&-> s5-0 quad))
|
||||
)
|
||||
(.mul.x.vf vf4 vf0 vf1 :mask #b1000)
|
||||
(.add.vf vf4 vf0 vf2 :mask #b111)
|
||||
(.sub.vf vf4 vf0 vf4 :mask #b110)
|
||||
(.add.vf vf3 vf0 vf1 :mask #b111)
|
||||
(.mul.x.vf vf3 vf0 vf2 :mask #b1000)
|
||||
(.mul.x.vf.w vf4 vf0 vf1)
|
||||
(.add.vf.xyz vf4 vf0 vf2)
|
||||
(.sub.vf.yz vf4 vf0 vf4)
|
||||
(.add.vf.xyz vf3 vf0 vf1)
|
||||
(.mul.x.vf.w vf3 vf0 vf2)
|
||||
(.outer.product.a.vf acc vf1 vf1)
|
||||
(.outer.product.b.vf vf6 vf0 vf0 acc)
|
||||
(.outer.product.a.vf acc vf2 vf2)
|
||||
(.outer.product.b.vf vf5 vf0 vf0 acc)
|
||||
(.mul.x.vf vf6 vf0 vf6 :mask #b1000)
|
||||
(.mul.x.vf vf5 vf0 vf5 :mask #b1000)
|
||||
(.mul.x.vf.w vf6 vf0 vf6)
|
||||
(.mul.x.vf.w vf5 vf0 vf5)
|
||||
(.mul.vf acc vf6 vf4)
|
||||
(.add.mul.vf vf7 vf5 vf3 acc)
|
||||
(.svf (&-> arg0 vec quad) vf7)
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
(.lvf vf3 (&-> arg0 quad 0))
|
||||
(.lvf vf4 (&-> arg0 quad 1))
|
||||
(.lvf vf5 (&-> arg0 quad 2))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mul.x.vf vf3 vf3 vf1)
|
||||
(.mul.y.vf vf4 vf4 vf1)
|
||||
(.mul.z.vf vf5 vf5 vf1)
|
||||
@@ -342,14 +342,14 @@
|
||||
(.lvf vf3 (&-> arg0 quad 0))
|
||||
(.lvf vf4 (&-> arg0 quad 1))
|
||||
(.lvf vf5 (&-> arg0 quad 2))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mul.x.vf vf3 vf3 vf1)
|
||||
(.mul.y.vf vf4 vf4 vf1)
|
||||
(.mul.z.vf vf5 vf5 vf1)
|
||||
(.mul.x.vf acc vf3 vf6)
|
||||
(.add.mul.y.vf acc vf4 vf6 acc)
|
||||
(.add.mul.z.vf acc vf5 vf6 acc)
|
||||
(.add.mul.w.vf vf2 vf2 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf2 vf2 vf0 acc)
|
||||
(.svf (&-> arg0 trans quad) vf2)
|
||||
(.svf (&-> arg0 quad 0) vf3)
|
||||
(.svf (&-> arg0 quad 1) vf4)
|
||||
@@ -376,11 +376,11 @@
|
||||
(.lvf vf3 (&-> arg0 quad 0))
|
||||
(.lvf vf4 (&-> arg0 quad 1))
|
||||
(.lvf vf5 (&-> arg0 quad 2))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mul.x.vf vf3 vf3 vf1)
|
||||
(.mul.y.vf vf4 vf4 vf1)
|
||||
(.mul.z.vf vf5 vf5 vf1)
|
||||
(.add.vf vf2 vf2 vf6 :mask #b111)
|
||||
(.add.vf.xyz vf2 vf2 vf6)
|
||||
(.svf (&-> arg0 trans quad) vf2)
|
||||
(.svf (&-> arg0 quad 0) vf3)
|
||||
(.svf (&-> arg0 quad 1) vf4)
|
||||
@@ -408,7 +408,7 @@
|
||||
(set! (-> v1-0 z) (/ 1.0 (-> arg2 z)))
|
||||
(.lvf vf1 (&-> arg1 scale quad))
|
||||
(.lvf vf2 (&-> arg1 trans quad))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.lvf vf4 (&-> arg0 quad 0))
|
||||
(.lvf vf5 (&-> arg0 quad 1))
|
||||
(.lvf vf6 (&-> arg0 quad 2))
|
||||
@@ -449,7 +449,7 @@
|
||||
(.lvf vf3 (&-> arg0 quad 0))
|
||||
(.lvf vf4 (&-> arg0 quad 1))
|
||||
(.lvf vf5 (&-> arg0 quad 2))
|
||||
(.mov.vf vf2 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf2 vf0)
|
||||
(.mul.x.vf vf3 vf3 vf1)
|
||||
(.mul.y.vf vf4 vf4 vf1)
|
||||
(.mul.z.vf vf5 vf5 vf1)
|
||||
@@ -457,7 +457,7 @@
|
||||
(.add.mul.y.vf acc vf4 vf6 acc)
|
||||
(.add.mul.z.vf acc vf5 vf6 acc)
|
||||
(.sub.mul.w.vf acc vf6 vf0 acc)
|
||||
(.add.mul.w.vf vf2 vf2 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf2 vf2 vf0 acc)
|
||||
(.svf (&-> arg0 trans quad) vf2)
|
||||
(.svf (&-> arg0 quad 0) vf3)
|
||||
(.svf (&-> arg0 quad 1) vf4)
|
||||
|
||||
@@ -506,8 +506,8 @@ Changes:
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.lvf vf2 (&-> arg1 quad))
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0
|
||||
)
|
||||
@@ -539,11 +539,11 @@ Changes:
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.lvf vf2 (&-> arg1 quad))
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
(.add.w.vf vf3 vf0 vf0 :mask #b1)
|
||||
(.mul.x.vf acc vf3 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf3 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf acc vf3 vf1 acc :mask #b1)
|
||||
(.add.mul.w.vf vf1 vf3 vf1 acc :mask #b1)
|
||||
(.add.w.vf.x vf3 vf0 vf0)
|
||||
(.mul.x.vf.x acc vf3 vf1)
|
||||
(.add.mul.y.vf.x acc vf3 vf1 acc)
|
||||
(.add.mul.z.vf.x acc vf3 vf1 acc)
|
||||
(.add.mul.w.vf.x vf1 vf3 vf1 acc)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0
|
||||
)
|
||||
@@ -590,7 +590,7 @@ Changes:
|
||||
;; add
|
||||
(.add.vf vf1 vf2 vf3)
|
||||
;; set w = 1
|
||||
(.blend.vf vf1 vf1 vf0 :mask #b1000)
|
||||
(.blend.vf.w vf1 vf1 vf0)
|
||||
;; store
|
||||
(.svf dst vf1)
|
||||
)
|
||||
@@ -611,7 +611,7 @@ Changes:
|
||||
;; subtract
|
||||
(.sub.vf vf1 vf2 vf3)
|
||||
;; set w = 1
|
||||
(.blend.vf vf1 vf1 vf0 :mask #b1000)
|
||||
(.blend.vf.w vf1 vf1 vf0)
|
||||
;; store
|
||||
(.svf dst vf1)
|
||||
)
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b10)
|
||||
(.add.x.vf vf2 vf0 vf0 :mask #b10)
|
||||
(.add.x.vf.y vf1 vf0 vf0)
|
||||
(.add.x.vf.y vf2 vf0 vf0)
|
||||
(.outer.product.a.vf acc vf1 vf2)
|
||||
(.outer.product.b.vf vf3 vf2 vf1 acc)
|
||||
(.svf (&-> arg0 quad) vf3)
|
||||
@@ -53,8 +53,8 @@
|
||||
(init-vf0-vector)
|
||||
(.mov vf6 arg2)
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(.add.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf vf5 vf4 vf6 :mask #b111)
|
||||
(.add.x.vf.w vf5 vf0 vf0)
|
||||
(.add.x.vf.xyz vf5 vf4 vf6)
|
||||
(.svf (&-> arg0 quad) vf5)
|
||||
arg0
|
||||
)
|
||||
@@ -70,8 +70,8 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(.lvf vf5 (&-> arg2 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> arg0 quad) vf6)
|
||||
arg0
|
||||
)
|
||||
@@ -90,9 +90,9 @@
|
||||
(.mov vf7 arg3)
|
||||
(.lvf vf5 (&-> arg2 quad))
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> arg0 quad) vf6)
|
||||
arg0
|
||||
)
|
||||
@@ -111,9 +111,9 @@
|
||||
(.mov vf7 arg3)
|
||||
(.lvf vf5 (&-> arg2 quad))
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.w.vf acc vf4 vf0 :mask #b111)
|
||||
(.sub.mul.x.vf vf6 vf5 vf7 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.w.vf.xyz acc vf4 vf0)
|
||||
(.sub.mul.x.vf.xyz vf6 vf5 vf7 acc)
|
||||
(.svf (&-> arg0 quad) vf6)
|
||||
arg0
|
||||
)
|
||||
@@ -132,19 +132,19 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf5 (&-> arg2 quad))
|
||||
(.div.vf Q vf0 vf5 :fsf #b11 :ftf #b1)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.lvf vf4 (&-> arg1 quad))
|
||||
(let ((v1-0 (/ (-> arg1 x) (-> arg2 x))))
|
||||
(.wait.vf)
|
||||
(.mul.vf vf6 vf4 Q :mask #b10)
|
||||
(.mul.vf.y vf6 vf4 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.div.vf Q vf0 vf5 :fsf #b11 :ftf #b10)
|
||||
(.mov vf7 v1-0)
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf7 :mask #b1)
|
||||
(.add.x.vf.x vf6 vf0 vf7)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf6 vf4 Q :mask #b100)
|
||||
(.mul.vf.z vf6 vf4 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> arg0 quad) vf6)
|
||||
@@ -162,8 +162,8 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.mov vf2 arg2)
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0
|
||||
)
|
||||
@@ -184,9 +184,9 @@
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.mov vf3 v1-0)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf1 vf3)
|
||||
(.add.mul.x.vf vf4 vf2 vf3 acc :mask #b111)
|
||||
(.add.mul.x.vf.xyz vf4 vf2 vf3 acc)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
arg0
|
||||
)
|
||||
@@ -205,9 +205,9 @@
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.mov vf3 arg3)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
arg0
|
||||
)
|
||||
@@ -227,9 +227,9 @@
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.mov vf3 arg3)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.w.vf acc vf1 vf0)
|
||||
(.sub.mul.x.vf vf4 vf2 vf3 acc :mask #b111)
|
||||
(.sub.mul.x.vf.xyz vf4 vf2 vf3 acc)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
arg0
|
||||
)
|
||||
@@ -247,9 +247,9 @@
|
||||
(.mov vf3 arg2)
|
||||
(.div.vf Q vf0 vf3 :fsf #b11 :ftf #b0)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf4 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
@@ -265,8 +265,8 @@
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.sub.vf vf4 vf0 vf1 :mask #b111)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.sub.vf.xyz vf4 vf0 vf1)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.svf (&-> arg0 quad) vf4)
|
||||
arg0
|
||||
)
|
||||
@@ -279,7 +279,7 @@
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.sub.vf vf1 vf0 vf1 :mask #b111)
|
||||
(.sub.vf.xyz vf1 vf0 vf1)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0
|
||||
)
|
||||
@@ -335,10 +335,10 @@
|
||||
(.lvf vf2 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf2 vf1)
|
||||
(.abs.vf vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf3 vf0 vf1 acc :mask #b1000)
|
||||
(.add.w.vf vf3 vf0 vf3 :mask #b1)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.z.vf.w vf3 vf0 vf1 acc)
|
||||
(.add.w.vf.x vf3 vf0 vf3)
|
||||
(.mov v0-0 vf3)
|
||||
v0-0
|
||||
)
|
||||
@@ -358,12 +358,12 @@
|
||||
(.mov vf4 arg2)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg0 quad))
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.sub.x.vf vf5 vf0 vf4 :mask #b1)
|
||||
(.sub.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.min.x.vf vf3 vf3 vf4 :mask #b111)
|
||||
(.max.x.vf vf3 vf3 vf5 :mask #b111)
|
||||
(.add.vf vf1 vf2 vf3 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.sub.x.vf.x vf5 vf0 vf4)
|
||||
(.sub.vf.xyz vf3 vf1 vf2)
|
||||
(.min.x.vf.xyz vf3 vf3 vf4)
|
||||
(.max.x.vf.xyz vf3 vf3 vf5)
|
||||
(.add.vf.xyz vf1 vf2 vf3)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0
|
||||
)
|
||||
@@ -390,9 +390,9 @@
|
||||
)
|
||||
(.lvf vf5 (&-> v1-0 quad))
|
||||
(.lvf vf4 (&-> arg0 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> v0-0 quad) vf6)
|
||||
v0-0
|
||||
)
|
||||
@@ -600,8 +600,8 @@
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0
|
||||
)
|
||||
@@ -621,8 +621,8 @@
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> arg0 quad) vf1)
|
||||
arg0
|
||||
)
|
||||
@@ -639,13 +639,13 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.z.vf.w vf1 vf0 vf1 acc)
|
||||
(.sqrt.vf Q vf1 :ftf #b11)
|
||||
(.add.w.vf vf1 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf1 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b1)
|
||||
(.mul.vf.x vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf1)
|
||||
@@ -663,11 +663,11 @@
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0
|
||||
)
|
||||
@@ -698,13 +698,13 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf1 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
(.add.mul.y.vf.w acc vf0 vf1 acc)
|
||||
(.add.mul.z.vf.w vf1 vf0 vf1 acc)
|
||||
(.sqrt.vf Q vf1 :ftf #b11)
|
||||
(.add.w.vf vf1 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf1 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b1)
|
||||
(.mul.vf.x vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf1)
|
||||
@@ -723,8 +723,8 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.y.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.y.vf.x vf1 vf1 vf1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0
|
||||
)
|
||||
@@ -745,12 +745,12 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.add.mul.z.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
(.add.mul.z.vf.w vf1 vf0 vf1 acc)
|
||||
(.sqrt.vf Q vf1 :ftf #b11)
|
||||
(.add.w.vf vf1 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf1 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b1)
|
||||
(.mul.vf.x vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf1)
|
||||
@@ -773,12 +773,12 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf0 vf1 :mask #b1000)
|
||||
(.add.mul.y.vf vf1 vf0 vf1 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf1)
|
||||
(.add.mul.y.vf.w vf1 vf0 vf1 acc)
|
||||
(.sqrt.vf Q vf1 :ftf #b11)
|
||||
(.add.w.vf vf1 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf1 vf0 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b1)
|
||||
(.mul.vf.x vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.mov v0-0 vf1)
|
||||
@@ -797,7 +797,7 @@
|
||||
(.lvf vf3 (&-> arg1 quad))
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v0-0 vf1)
|
||||
v0-0
|
||||
)
|
||||
@@ -823,16 +823,16 @@
|
||||
; )
|
||||
; (init-vf0-vector)
|
||||
; (.lvf vf1 (&-> arg0 quad))
|
||||
; (.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
; (.mul.vf.xyz vf2 vf1 vf1)
|
||||
; (let ((v1-0 arg1))
|
||||
; (.mov vf3 v1-0)
|
||||
; )
|
||||
; (.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
; (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
; (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
; (.mul.x.vf.w acc vf0 vf2)
|
||||
; (.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
; (.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
; (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
; (.wait.vf)
|
||||
; (.mul.vf vf1 vf1 Q :mask #b111)
|
||||
; (.mul.vf.xyz vf1 vf1 Q)
|
||||
; (.nop.vf)
|
||||
; (.nop.vf)
|
||||
; (.nop.vf)
|
||||
@@ -864,19 +864,19 @@
|
||||
; )
|
||||
; (init-vf0-vector)
|
||||
; (.lvf vf1 (&-> arg0 quad))
|
||||
; (.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
; (.mul.vf.xyz vf2 vf1 vf1)
|
||||
; (let ((v1-0 arg1))
|
||||
; (.mov vf3 v1-0)
|
||||
; )
|
||||
; (.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
; (.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
; (.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
; (.mul.x.vf.w acc vf0 vf2)
|
||||
; (.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
; (.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
; (.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
; (.add.w.vf vf2 vf0 vf2 :mask #b1)
|
||||
; (.add.w.vf.x vf2 vf0 vf2)
|
||||
; (.mov v1-1 vf2)
|
||||
; (let ((v0-0 (sqrtf v1-1)))
|
||||
; (.wait.vf)
|
||||
; (.mul.vf vf1 vf1 Q :mask #b111)
|
||||
; (.mul.vf.xyz vf1 vf1 Q)
|
||||
; (.nop.vf)
|
||||
; (.nop.vf)
|
||||
; (.nop.vf)
|
||||
@@ -1120,10 +1120,10 @@
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.mov vf4 arg3)
|
||||
(.add.x.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf3 vf0 vf0)
|
||||
(.sub.vf vf2 vf2 vf1)
|
||||
(.mul.x.vf vf2 vf2 vf4)
|
||||
(.add.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf3 vf1 vf2)
|
||||
(.svf (&-> arg0 quad) vf3)
|
||||
arg0
|
||||
)
|
||||
@@ -1155,10 +1155,10 @@
|
||||
(.mov vf4 a1-1)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf3 vf0 vf0)
|
||||
(.sub.vf vf2 vf2 vf1)
|
||||
(.mul.x.vf vf2 vf2 vf4)
|
||||
(.add.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf3 vf1 vf2)
|
||||
(.svf (&-> v1-3 quad) vf3)
|
||||
)
|
||||
)
|
||||
@@ -1567,13 +1567,13 @@
|
||||
(init-vf0-vector)
|
||||
(.lvf vf1 (&-> arg0 quad))
|
||||
(.lvf vf2 (&-> arg1 quad))
|
||||
(.sub.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.mul.vf vf3 vf3 vf3 :mask #b111)
|
||||
(.add.w.vf vf4 vf1 vf2 :mask #b1000)
|
||||
(.mul.w.vf vf4 vf4 vf4 :mask #b1000)
|
||||
(.add.y.vf vf3 vf3 vf3 :mask #b1)
|
||||
(.add.z.vf vf3 vf3 vf3 :mask #b1)
|
||||
(.add.w.vf vf4 vf0 vf4 :mask #b1)
|
||||
(.sub.vf.xyz vf3 vf1 vf2)
|
||||
(.mul.vf.xyz vf3 vf3 vf3)
|
||||
(.add.w.vf.w vf4 vf1 vf2)
|
||||
(.mul.w.vf.w vf4 vf4 vf4)
|
||||
(.add.y.vf.x vf3 vf3 vf3)
|
||||
(.add.z.vf.x vf3 vf3 vf3)
|
||||
(.add.w.vf.x vf4 vf0 vf4)
|
||||
(.mov a0-1 vf4)
|
||||
(.mov v1-0 vf3)
|
||||
(>= a0-1 v1-0)
|
||||
|
||||
@@ -364,7 +364,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-4 vf1)
|
||||
(let ((f1-0 a2-4)
|
||||
(f0-1 (+ (-> sphere r) (-> nav shape nav-radius)))
|
||||
@@ -407,7 +407,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov t0-4 vf1)
|
||||
(let ((f1-0 t0-4)
|
||||
(f0-2 (+ (-> arg2 r) (-> v1-4 shape nav-radius)))
|
||||
@@ -441,7 +441,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a2-6 vf1)
|
||||
(let ((f1-1 a2-6)
|
||||
(f0-4 (+ (-> a0-1 w) (-> v1-9 shape nav-radius)))
|
||||
@@ -550,17 +550,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(let ((f0-1 1.0))
|
||||
(.lvf vf1 (&-> a0-1 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((t2-3 f0-1))
|
||||
(.mov vf3 t2-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -592,9 +592,9 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.lvf vf4 (&-> a1-3 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> t0-1 quad) vf6)
|
||||
)
|
||||
(let ((v0-0 arg3))
|
||||
@@ -603,9 +603,9 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.lvf vf5 (&-> v1-0 quad))
|
||||
(.lvf vf4 (&-> a0-9 quad))
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> v0-0 quad) vf6)
|
||||
v0-0
|
||||
)
|
||||
@@ -730,17 +730,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-1 (-> s5-0 in-dir)))
|
||||
(let ((f0-1 1.0))
|
||||
(.lvf vf1 (&-> v1-1 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-4 f0-1))
|
||||
(.mov vf3 a0-4)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -770,7 +770,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a1-3 vf1)
|
||||
(set! (-> s5-0 dist2) a1-3)
|
||||
(let ((f0-14 (-> arg0 closest-sphere-dist2))
|
||||
@@ -899,17 +899,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-51 (-> s5-0 away-dir)))
|
||||
(let ((f0-42 1.0))
|
||||
(.lvf vf1 (&-> v1-51 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-60 f0-42))
|
||||
(.mov vf3 a0-60)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -927,10 +927,10 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(.mov vf4 a0-62)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf3 vf0 vf0)
|
||||
(.sub.vf vf2 vf2 vf1)
|
||||
(.mul.x.vf vf2 vf2 vf4)
|
||||
(.add.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf3 vf1 vf2)
|
||||
(.svf (&-> v1-52 0 quad) vf3)
|
||||
)
|
||||
(let ((v1-53 (-> s5-0 best-dir 1)))
|
||||
@@ -943,10 +943,10 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((a0-64 f0-44))
|
||||
(.mov vf4 a0-64)
|
||||
)
|
||||
(.add.x.vf vf3 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf3 vf0 vf0)
|
||||
(.sub.vf vf2 vf2 vf1)
|
||||
(.mul.x.vf vf2 vf2 vf4)
|
||||
(.add.vf vf3 vf1 vf2 :mask #b111)
|
||||
(.add.vf.xyz vf3 vf1 vf2)
|
||||
(.svf (&-> v1-53 quad) vf3)
|
||||
)
|
||||
)
|
||||
@@ -954,17 +954,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-54 (-> s5-0 best-dir)))
|
||||
(let ((f0-45 1.0))
|
||||
(.lvf vf1 (&-> v1-54 0 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-66 f0-45))
|
||||
(.mov vf3 a0-66)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -973,17 +973,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-55 (-> s5-0 best-dir 1)))
|
||||
(let ((f0-46 1.0))
|
||||
(.lvf vf1 (&-> v1-55 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-68 f0-46))
|
||||
(.mov vf3 a0-68)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1027,17 +1027,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-1 (-> s5-0 in-dir)))
|
||||
(let ((f0-1 1.0))
|
||||
(.lvf vf1 (&-> v1-1 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-4 f0-1))
|
||||
(.mov vf3 a0-4)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1065,7 +1065,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov a1-3 vf1)
|
||||
(set! (-> s5-0 dist2) a1-3)
|
||||
(let ((f0-13 (-> arg0 closest-sphere-dist2))
|
||||
@@ -1232,17 +1232,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((a1-6 (-> v1-16 dir)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> a1-6 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a2-4 f0-5))
|
||||
(.mov vf3 a2-4)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1532,17 +1532,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((t3-5 (-> v1-15 dir)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> t3-5 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((t4-6 f0-5))
|
||||
(.mov vf3 t4-6)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1738,17 +1738,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-21 (-> arg1 pref-dir)))
|
||||
(let ((f0-6 1.0))
|
||||
(.lvf vf1 (&-> v1-21 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-12 f0-6))
|
||||
(.mov vf3 a0-12)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1964,17 +1964,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((a0-6 (-> v1-10 dir)))
|
||||
(let ((f0-1 1.0))
|
||||
(.lvf vf1 (&-> a0-6 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a1-8 f0-1))
|
||||
(.mov vf3 a1-8)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -2142,7 +2142,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v1-2 vf1)
|
||||
(let ((f1-0 v1-2))
|
||||
(let ((v1-3 arg0)
|
||||
@@ -2153,7 +2153,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
(.sub.vf vf1 vf3 vf2)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.add.z.vf vf1 vf1 vf1 :mask #b1)
|
||||
(.add.z.vf.x vf1 vf1 vf1)
|
||||
(.mov v1-4 vf1)
|
||||
(let ((v0-0 (>= f0-2 (fmin f1-0 v1-4))))
|
||||
(when (not v0-0)
|
||||
@@ -2355,11 +2355,11 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
)
|
||||
)
|
||||
(.lvf vf1 (&-> (-> this travel) quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-117 vf1)
|
||||
(let ((f0-15 v1-117)
|
||||
(f1-10 (-> this nav nav-cull-radius))
|
||||
@@ -2418,17 +2418,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((t0-3 (-> a3-3 dir)))
|
||||
(let ((f0-2 1.0))
|
||||
(.lvf vf1 (&-> t0-3 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((t1-2 f0-2))
|
||||
(.mov vf3 t1-2)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -2588,17 +2588,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((a2-3 (-> a1-4 dir)))
|
||||
(let ((f0-2 1.0))
|
||||
(.lvf vf1 (&-> a2-3 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a3-2 f0-2))
|
||||
(.mov vf3 a3-2)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -2717,17 +2717,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-1 (-> this target-dir)))
|
||||
(let ((f0-0 1.0))
|
||||
(.lvf vf1 (&-> v1-1 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-4 f0-0))
|
||||
(.mov vf3 a0-4)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -2746,17 +2746,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-12 (-> this heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-12 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-9 f0-5))
|
||||
(.mov vf3 a0-9)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -2793,17 +2793,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-30 (-> this heading)))
|
||||
(let ((f0-12 1.0))
|
||||
(.lvf vf1 (&-> v1-30 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-15 f0-12))
|
||||
(.mov vf3 a0-15)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -2920,17 +2920,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-12 (-> this heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-12 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-3 f0-5))
|
||||
(.mov vf3 a0-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -3067,17 +3067,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-12 (-> s5-0 heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-12 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-3 f0-5))
|
||||
(.mov vf3 a0-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -3207,17 +3207,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((a3-3 (-> a2-3 dir)))
|
||||
(let ((f0-2 1.0))
|
||||
(.lvf vf1 (&-> a3-3 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((t0-2 f0-2))
|
||||
(.mov vf3 t0-2)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -3347,11 +3347,11 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((s3-0 (-> this nav sphere-array s4-0)))
|
||||
(vector-! (-> s5-0 right-dir) (-> this current-pos-local) (the-as vector s3-0))
|
||||
(.lvf vf1 (&-> (-> s5-0 right-dir) quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-11 vf1)
|
||||
(let ((f30-0 v1-11))
|
||||
(vector-normalize! (-> s5-0 right-dir) 2.0)
|
||||
@@ -3370,11 +3370,11 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(set! (-> this target-dir y) 0.0)
|
||||
(vector+float*! (-> this velocity) (-> this velocity) (-> this target-dir) (-> this nav sec-per-frame))
|
||||
(.lvf vf1 (&-> (-> this velocity) quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-25 vf1)
|
||||
(let ((f0-11 v1-25)
|
||||
(f1-4 (-> this nav target-speed))
|
||||
@@ -3422,17 +3422,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-13 (-> this heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-13 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-5 f0-5))
|
||||
(.mov vf3 a0-5)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -3473,17 +3473,17 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
|
||||
(let ((v1-12 (-> s5-0 heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-12 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-3 f0-5))
|
||||
(.mov vf3 a0-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
|
||||
@@ -368,17 +368,17 @@
|
||||
(let ((v1-12 (-> gp-0 heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-12 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-3 f0-5))
|
||||
(.mov vf3 a0-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -463,17 +463,17 @@
|
||||
(let ((v1-12 (-> gp-0 heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-12 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-3 f0-5))
|
||||
(.mov vf3 a0-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -615,17 +615,17 @@
|
||||
(let ((v1-14 (-> gp-0 heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-14 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-3 f0-5))
|
||||
(.mov vf3 a0-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -734,17 +734,17 @@
|
||||
(let ((v1-14 (-> gp-0 heading)))
|
||||
(let ((f0-5 1.0))
|
||||
(.lvf vf1 (&-> v1-14 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-3 f0-5))
|
||||
(.mov vf3 a0-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1947,17 +1947,17 @@ This commonly includes things such as:
|
||||
(let ((v1-23 gp-0))
|
||||
(let ((f0-2 1.0))
|
||||
(.lvf vf1 (&-> v1-23 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-9 f0-2))
|
||||
(.mov vf3 a0-9)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
|
||||
@@ -242,17 +242,17 @@ and declared out of order (cannot use forward declared structures in inline arra
|
||||
(let ((v0-0 arg0))
|
||||
(let ((f0-0 1.0))
|
||||
(.lvf vf1 (&-> v0-0 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((v1-1 f0-0))
|
||||
(.mov vf3 v1-1)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -275,17 +275,17 @@ and declared out of order (cannot use forward declared structures in inline arra
|
||||
(let ((v0-0 arg0))
|
||||
(let ((f0-0 1.0))
|
||||
(.lvf vf1 (&-> v0-0 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((v1-2 f0-0))
|
||||
(.mov vf3 v1-2)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -313,17 +313,17 @@ and declared out of order (cannot use forward declared structures in inline arra
|
||||
(let ((v1-1 (-> arg0 dir)))
|
||||
(let ((f0-1 1.0))
|
||||
(.lvf vf1 (&-> v1-1 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a1-2 f0-1))
|
||||
(.mov vf3 a1-2)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
|
||||
@@ -202,8 +202,8 @@
|
||||
)
|
||||
(.lvf vf4 (&-> a0-5 quad))
|
||||
)
|
||||
(.add.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf vf5 vf4 vf6 :mask #b111)
|
||||
(.add.x.vf.w vf5 vf0 vf0)
|
||||
(.add.x.vf.xyz vf5 vf4 vf6)
|
||||
(.svf (&-> a1-3 quad) vf5)
|
||||
)
|
||||
(let ((a1-4 (-> v1-12 1)))
|
||||
@@ -213,8 +213,8 @@
|
||||
)
|
||||
(.lvf vf4 (&-> a0-6 quad))
|
||||
)
|
||||
(.add.x.vf vf5 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf vf5 vf4 vf6 :mask #b111)
|
||||
(.add.x.vf.w vf5 vf0 vf0)
|
||||
(.add.x.vf.xyz vf5 vf4 vf6)
|
||||
(.svf (&-> a1-4 quad) vf5)
|
||||
)
|
||||
(update-grid-for-objects-in-box
|
||||
@@ -429,8 +429,8 @@
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-0 quad) vf1)
|
||||
)
|
||||
(let ((s3-1 (new 'stack-no-clear 'nav-find-poly-parms)))
|
||||
@@ -455,8 +455,8 @@
|
||||
(.mov at-1 f0-2)
|
||||
)
|
||||
(.mov vf2 at-1)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-7 quad) vf1)
|
||||
)
|
||||
)
|
||||
@@ -1557,11 +1557,11 @@
|
||||
)
|
||||
(.lvf vf1 (&-> arg1 quad))
|
||||
(.lvf vf2 (&-> arg2 quad))
|
||||
(.sub.vf vf1 vf1 vf1 :mask #b1010)
|
||||
(.sub.vf.yw vf1 vf1 vf1)
|
||||
(.lvf vf3 (&-> arg3 quad))
|
||||
(.sub.vf vf2 vf2 vf2 :mask #b1010)
|
||||
(.sub.vf.yw vf2 vf2 vf2)
|
||||
(.lvf vf12 (&-> arg0 quad))
|
||||
(.sub.vf vf3 vf3 vf3 :mask #b1010)
|
||||
(.sub.vf.yw vf3 vf3 vf3)
|
||||
(.sub.vf vf4 vf2 vf1)
|
||||
(.sub.vf vf9 vf1 vf12)
|
||||
(.sub.vf vf5 vf3 vf2)
|
||||
@@ -1659,11 +1659,11 @@
|
||||
(f0-5 (* f0-3 f0-3))
|
||||
)
|
||||
(.lvf vf1 (&-> sv-20 quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-3 vf1)
|
||||
(when (>= f0-5 v1-3)
|
||||
(let ((s5-0 (new 'stack-no-clear 'nav-find-poly-parms)))
|
||||
@@ -1710,17 +1710,17 @@
|
||||
(let ((a0-2 (-> v1-2 dir)))
|
||||
(let ((f0-1 1.0))
|
||||
(.lvf vf1 (&-> a0-2 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a1-3 f0-1))
|
||||
(.mov vf3 a1-3)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -1765,9 +1765,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-1 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a1-3 quad) vf6)
|
||||
)
|
||||
(let ((v1-2 arg0))
|
||||
@@ -1776,17 +1776,17 @@
|
||||
(let ((a0-2 (-> v1-2 dir)))
|
||||
(let ((f0-2 1.0))
|
||||
(.lvf vf1 (&-> a0-2 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a1-6 f0-2))
|
||||
(.mov vf3 a1-6)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -2179,17 +2179,17 @@
|
||||
(let ((v1-9 sv-32))
|
||||
(let ((f0-1 1.0))
|
||||
(.lvf vf1 (&-> v1-9 quad))
|
||||
(.mul.vf vf2 vf1 vf1 :mask #b111)
|
||||
(.mul.vf.xyz vf2 vf1 vf1)
|
||||
(let ((a0-11 f0-1))
|
||||
(.mov vf3 a0-11)
|
||||
)
|
||||
)
|
||||
(.mul.x.vf acc vf0 vf2 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf2 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf2 vf0 vf2 acc :mask #b1000)
|
||||
(.mul.x.vf.w acc vf0 vf2)
|
||||
(.add.mul.y.vf.w acc vf0 vf2 acc)
|
||||
(.add.mul.z.vf.w vf2 vf0 vf2 acc)
|
||||
(.isqrt.vf Q vf3 vf2 :fsf #b0 :ftf #b11)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf1 vf1 Q :mask #b111)
|
||||
(.mul.vf.xyz vf1 vf1 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -2383,12 +2383,12 @@
|
||||
(.outer.product.a.vf acc vf2 vf1)
|
||||
(.outer.product.b.vf vf4 vf1 vf2 acc)
|
||||
(.mul.vf vf5 vf4 vf4)
|
||||
(.add.y.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.z.vf vf5 vf5 vf5 :mask #b1)
|
||||
(.add.y.vf.x vf5 vf5 vf5)
|
||||
(.add.z.vf.x vf5 vf5 vf5)
|
||||
(.isqrt.vf Q vf0 vf5 :fsf #b11 :ftf #b0)
|
||||
(.mov.vf vf4 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf4 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf4 vf4 Q :mask #b111)
|
||||
(.mul.vf.xyz vf4 vf4 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.svf (&-> v1-0 quad) vf4)
|
||||
@@ -2498,11 +2498,11 @@
|
||||
(when s3-0
|
||||
(vector-! (-> sv-64 point) sv-76 (-> s3-0 bounds))
|
||||
(.lvf vf1 (&-> (-> sv-64 point) quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-15 vf1)
|
||||
(let ((f0-1 v1-15)
|
||||
(f1-0 (-> s3-0 bounds w))
|
||||
|
||||
@@ -146,11 +146,11 @@
|
||||
(apply-gravity this sv-288 s0-0 arg0)
|
||||
(let ((v1-34 sv-528))
|
||||
(let ((a0-10 sv-528))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> a0-10 quad))
|
||||
)
|
||||
(.lvf vf5 (&-> sv-288 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-34 quad) vf6)
|
||||
)
|
||||
(when (< s0-0 (the-as int (+ (-> this root-joint-index) -1)))
|
||||
@@ -158,11 +158,11 @@
|
||||
(chain-physics-method-14 this sv-304 s0-0)
|
||||
(let ((v1-40 sv-528))
|
||||
(let ((a0-13 sv-528))
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.lvf vf4 (&-> a0-13 quad))
|
||||
)
|
||||
(.lvf vf5 (&-> sv-304 quad))
|
||||
(.add.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.add.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> v1-40 quad) vf6)
|
||||
)
|
||||
)
|
||||
@@ -174,8 +174,8 @@
|
||||
(.lvf vf4 (&-> v1-43 quad))
|
||||
(.lvf vf5 (&-> a0-16 quad))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-400 quad) vf6)
|
||||
(let ((f28-1 (vector-normalize-ret-len! sv-400 1.0))
|
||||
(f24-0 (vector-dot sv-400 s1-0))
|
||||
@@ -198,9 +198,9 @@
|
||||
(.mov vf3 v1-55)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> sv-384 quad) vf4)
|
||||
(vector+float*! sv-528 s3-0 sv-400 f28-1)
|
||||
)
|
||||
@@ -213,8 +213,8 @@
|
||||
(.lvf vf4 (&-> v1-61 quad))
|
||||
(.lvf vf5 (&-> a0-27 quad))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-432 quad) vf6)
|
||||
(vector-normalize-ret-len! sv-432 1.0)
|
||||
(set! sv-416 (new 'stack-no-clear 'vector))
|
||||
@@ -224,8 +224,8 @@
|
||||
(.lvf vf4 (&-> v1-64 quad))
|
||||
(.lvf vf5 (&-> a0-30 quad))
|
||||
)
|
||||
(.mov.vf vf6 vf0 :mask #b1000)
|
||||
(.sub.vf vf6 vf4 vf5 :mask #b111)
|
||||
(.mov.vf.w vf6 vf0)
|
||||
(.sub.vf.xyz vf6 vf4 vf5)
|
||||
(.svf (&-> sv-416 quad) vf6)
|
||||
(let ((f28-2 (vector-dot sv-432 sv-416)))
|
||||
(vector--float*! sv-416 sv-416 sv-432 f28-2)
|
||||
@@ -246,19 +246,19 @@
|
||||
(let ((a0-37 f0-11))
|
||||
(.mov vf3 a0-37)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> v1-73 quad) vf4)
|
||||
)
|
||||
(vector+! sv-528 (-> sv-272 position) (-> sv-272 velocity))
|
||||
(let ((a2-9 (vector-! (new 'stack-no-clear 'vector) s3-0 sv-528)))
|
||||
(.lvf vf1 (&-> a2-9 quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-78 vf1)
|
||||
(let* ((f0-13 v1-78)
|
||||
(f1-6 (* (-> this maximum-stretch) (-> this joint-length)))
|
||||
@@ -306,8 +306,8 @@
|
||||
(.mov vf2 v1-107)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf1 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.add.x.vf.w vf1 vf0 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> sv-464 0 quad) vf1)
|
||||
(set! sv-512 (-> s4-0 vector))
|
||||
(set! sv-480 (-> s4-0 vector))
|
||||
@@ -318,9 +318,9 @@
|
||||
(.mov vf3 v1-113)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.add.x.vf.w vf4 vf0 vf0)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf4 vf1 vf0 acc)
|
||||
(.svf (&-> sv-512 0 quad) vf4)
|
||||
(set! (-> sv-272 old-x quad) (-> s4-0 vector 0 quad))
|
||||
)
|
||||
|
||||
@@ -198,9 +198,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-0 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a2-0 quad) vf6)
|
||||
)
|
||||
(let ((a2-1 (-> this ang-momentum)))
|
||||
@@ -213,9 +213,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-1 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a2-1 quad) vf6)
|
||||
)
|
||||
(let* ((f0-3 (* 500000000.0 (-> this info mass)))
|
||||
@@ -223,11 +223,11 @@
|
||||
(f1-3 (* f1-1 f1-1))
|
||||
)
|
||||
(.lvf vf1 (&-> (-> this ang-momentum) quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.add.w.vf.x vf2 vf0 vf0)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mul.x.vf.x acc vf2 vf1)
|
||||
(.add.mul.y.vf.x acc vf2 vf1 acc)
|
||||
(.add.mul.z.vf.x vf1 vf2 vf1 acc)
|
||||
(.mov v1-6 vf1)
|
||||
(if (< f1-3 v1-6)
|
||||
(vector-normalize! (-> this ang-momentum) f0-3)
|
||||
@@ -270,9 +270,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-0 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a1-1 quad) vf6)
|
||||
)
|
||||
(let ((s4-0 (new 'stack-no-clear 'quaternion)))
|
||||
@@ -375,8 +375,8 @@
|
||||
(.mul.x.vf acc vf1 vf5)
|
||||
(.add.mul.y.vf acc vf2 vf5 acc)
|
||||
(.add.mul.z.vf acc vf3 vf5 acc)
|
||||
(.add.mul.w.vf vf7 vf4 vf0 acc :mask #b111)
|
||||
(.sub.vf vf8 vf7 vf6 :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf7 vf4 vf0 acc)
|
||||
(.sub.vf.xyz vf8 vf7 vf6)
|
||||
(.svf (&-> arg1 move-dist quad) vf8)
|
||||
(let ((s1-0 (the-as collide-cache-prim (-> s4-0 prims))))
|
||||
(countdown (s0-0 (-> s4-0 num-prims))
|
||||
@@ -428,7 +428,7 @@
|
||||
(.mul.x.vf acc vf1 vf5)
|
||||
(.add.mul.y.vf acc vf2 vf5 acc)
|
||||
(.add.mul.z.vf acc vf3 vf5 acc)
|
||||
(.add.mul.w.vf vf5 vf4 vf0 acc :mask #b111)
|
||||
(.add.mul.w.vf.xyz vf5 vf4 vf0 acc)
|
||||
(.svf (&-> v1-0 prim-core world-sphere quad) vf5)
|
||||
(&+! v1-0 80)
|
||||
)
|
||||
@@ -498,14 +498,14 @@
|
||||
(.lvf vf7 (&-> (-> s5-0 cquery) best-other-tri intersect quad))
|
||||
(.lvf vf6 (&-> v1-37 prim-core world-sphere quad))
|
||||
(.sub.vf vf8 vf6 vf7)
|
||||
(.mul.vf vf9 vf8 vf8 :mask #b111)
|
||||
(.mul.x.vf acc vf0 vf9 :mask #b1000)
|
||||
(.add.mul.y.vf acc vf0 vf9 acc :mask #b1000)
|
||||
(.add.mul.z.vf vf9 vf0 vf9 acc :mask #b1000)
|
||||
(.mul.vf.xyz vf9 vf8 vf8)
|
||||
(.mul.x.vf.w acc vf0 vf9)
|
||||
(.add.mul.y.vf.w acc vf0 vf9 acc)
|
||||
(.add.mul.z.vf.w vf9 vf0 vf9 acc)
|
||||
(.isqrt.vf Q vf0 vf9 :fsf #b11 :ftf #b11)
|
||||
(.mov.vf vf8 vf0 :mask #b1000)
|
||||
(.mov.vf.w vf8 vf0)
|
||||
(.wait.vf)
|
||||
(.mul.vf vf8 vf8 Q :mask #b111)
|
||||
(.mul.vf.xyz vf8 vf8 Q)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
(.nop.vf)
|
||||
@@ -711,9 +711,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> v1-46 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> a1-20 quad) vf6)
|
||||
)
|
||||
(vector-rotate*! (-> this ang-velocity) (-> this ang-momentum) (-> this inv-i-world))
|
||||
|
||||
@@ -337,8 +337,8 @@
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.mov.vf.w vf1 vf0)
|
||||
(.mul.x.vf.xyz vf1 vf1 vf2)
|
||||
(.svf (&-> v1-12 quad) vf1)
|
||||
)
|
||||
arg0
|
||||
@@ -422,9 +422,9 @@
|
||||
)
|
||||
(.lvf vf4 (&-> a1-3 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.add.x.vf.w vf6 vf0 vf0)
|
||||
(.mul.x.vf.xyz acc vf5 vf7)
|
||||
(.add.mul.w.vf.xyz vf6 vf4 vf0 acc)
|
||||
(.svf (&-> t1-7 quad) vf6)
|
||||
)
|
||||
(vector-! (-> v1-2 initial-position) (-> v1-2 initial-position) arg3)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user