new vu1 renderer, added vcl preprocessor
This commit is contained in:
@@ -11,63 +11,83 @@
|
||||
.global VU1Draw3D_CodeEnd
|
||||
VU1Draw3D_CodeStart:
|
||||
__v_draw3D_vcl_4:
|
||||
; _LNOPT_w=[ normal2 ] 23 [23 0] 23 [__v_draw3D_vcl_4]
|
||||
NOP lq VF01,0(VI00)
|
||||
NOP xtop VI02
|
||||
NOP lq VF02,1(VI00)
|
||||
NOP lq VF06,1(VI02)
|
||||
NOP lq VF09,2(VI02)
|
||||
NOP lq VF08,3(VI02)
|
||||
NOP lq VF07,4(VI02)
|
||||
NOP lq VF03,2(VI00)
|
||||
NOP iaddiu VI03,VI02,0x00000007
|
||||
NOP ilw.w VI07,0(VI02)
|
||||
NOP lq VF04,3(VI00)
|
||||
NOP fcset 0
|
||||
NOP lq.xyz VF05,0(VI02)
|
||||
NOP iadd VI04,VI03,VI07
|
||||
NOP iadd VI06,VI04,VI07
|
||||
NOP sqi VF06,(VI06++)
|
||||
; _LNOPT_w=[ normal2 ] 27 [27 0] 27 [__v_draw3D_vcl_4]
|
||||
NOP xtop VI07
|
||||
NOP lq VF01,0(VI07)
|
||||
NOP ilw.y VI05,4(VI07)
|
||||
NOP lq VF05,5(VI07)
|
||||
NOP lq VF09,6(VI07)
|
||||
NOP lq VF08,7(VI07)
|
||||
NOP lq VF07,8(VI07)
|
||||
NOP lq VF02,1(VI07)
|
||||
NOP iaddiu VI03,VI07,0x0000000a
|
||||
NOP iadd VI04,VI03,VI05
|
||||
NOP lq VF03,2(VI07)
|
||||
NOP iadd VI06,VI04,VI05
|
||||
NOP loi 0x44fff000
|
||||
NOP lq VF04,3(VI07)
|
||||
NOP ilw.z VI02,4(VI07)
|
||||
NOP sqi VF05,(VI06++)
|
||||
NOP sqi VF09,(VI06++)
|
||||
NOP sqi VF06,(VI06++)
|
||||
NOP sqi VF05,(VI06++)
|
||||
NOP sqi VF08,(VI06++)
|
||||
NOP lq VF06,5(VI02)
|
||||
NOP iadd VI05,VI04,VI07
|
||||
NOP lq VF05,9(VI07)
|
||||
NOP iaddiu VI07,VI00,0x00007fff
|
||||
NOP iadd VI05,VI04,VI05
|
||||
addi.xy VF06,VF00,I loi 0x492aaaaa
|
||||
NOP fcset 0
|
||||
NOP sqi VF07,(VI06++)
|
||||
NOP iadd VI07,VI02,VI07
|
||||
vertexLoop:
|
||||
; _LNOPT_w=[ normal2 ] 21 [31 14] 31 [vertexLoop]
|
||||
NOP iaddiu VI07,VI07,0x00000001
|
||||
addi.z VF06,VF00,I iaddiu VI08,VI00,0
|
||||
triangle_loop:
|
||||
; _LNOPT_w=[ normal ] 37 [31 30] 45 [triangle_loop]
|
||||
NOP lq VF07,0(VI03)
|
||||
mulax ACC,VF01,VF07x sq VF06,1(VI06) ; STALL_LATENCY ?3
|
||||
madday ACC,VF02,VF07y lq VF08,0(VI04)
|
||||
maddaz ACC,VF03,VF07z iaddiu VI06,VI06,0x00000003
|
||||
mulax ACC,VF01,VF07x iaddiu VI08,VI08,0x00000001 ; STALL_LATENCY ?3
|
||||
madday ACC,VF02,VF07y NOP
|
||||
maddaz ACC,VF03,VF07z NOP
|
||||
maddw VF10,VF04,VF07w lq VF08,2(VI03)
|
||||
mulax ACC,VF01,VF08x div Q,VF00w,VF10w ; STALL_LATENCY ?3
|
||||
madday ACC,VF02,VF08y NOP
|
||||
maddaz ACC,VF03,VF08z lq VF07,1(VI03)
|
||||
maddw VF08,VF04,VF08w NOP
|
||||
clipw.xyz VF10xyz,VF10w NOP
|
||||
mulax ACC,VF01,VF07x NOP ; STALL_LATENCY ?1
|
||||
madday ACC,VF02,VF07y div Q,VF00w,VF08w
|
||||
maddaz ACC,VF03,VF07z lq VF09,0(VI04)
|
||||
maddw VF07,VF04,VF07w NOP
|
||||
clipw.xyz VF07xyz,VF07w div Q,VF00w,VF07w ; STALL_LATENCY ?3
|
||||
NOP NOP
|
||||
NOP NOP
|
||||
NOP NOP
|
||||
NOP NOP
|
||||
NOP NOP
|
||||
NOP NOP
|
||||
mulq.xyz VF07,VF07,Q fcand VI01,262143
|
||||
mulaw.xyz ACC,VF05,VF00w iaddiu VI03,VI03,0x00000001
|
||||
madd.xyz VF07,VF07,VF05 iaddiu VI04,VI04,0x00000001 ; STALL_LATENCY ?2
|
||||
mulq VF08,VF08,Q isubiu VI07,VI07,1
|
||||
ftoi4.xyz VF07,VF07 iaddiu VI01,VI01,0x00007fff ; STALL_LATENCY ?2
|
||||
NOP isw.w VI01,-1(VI06)
|
||||
NOP sq VF08,-3(VI06)
|
||||
NOP ibne VI07,VI02,vertexLoop
|
||||
NOP sq.xyz VF07,-1(VI06)
|
||||
mulaw.xyz ACC,VF06,VF00w NOP
|
||||
mulq.xyz VF10,VF10,Q NOP
|
||||
mulq VF09,VF09,Q sq VF05,1(VI06)
|
||||
clipw.xyz VF07xyz,VF07w lq VF11,2(VI04)
|
||||
clipw.xyz VF08xyz,VF08w div Q,VF00w,VF07w
|
||||
mulq.xyz VF08,VF08,Q sq VF05,4(VI06)
|
||||
madd.xyz VF09,VF10,VF06 sq VF09,0(VI06)
|
||||
mulq VF10,VF11,Q sq VF05,7(VI06)
|
||||
mulaw.xyz ACC,VF06,VF00w mfir.w VF09,VI07
|
||||
madd.xyz VF08,VF08,VF06 fcand VI01,262143
|
||||
NOP iaddiu VI01,VI01,0x00007fff
|
||||
mulq.xyz VF10,VF07,Q sq VF10,6(VI06)
|
||||
ftoi4.xyz VF09,VF09 mfir.w VF07,VI01
|
||||
ftoi4.xyz VF07,VF08 lq VF11,1(VI04)
|
||||
mulaw.xyz ACC,VF06,VF00w iaddiu VI03,VI03,0x00000003
|
||||
madd.xyz VF08,VF10,VF06 iaddiu VI04,VI04,0x00000003
|
||||
NOP sq VF09,2(VI06)
|
||||
mulq VF09,VF11,Q sq VF07,8(VI06)
|
||||
NOP mfir.w VF07,VI07
|
||||
ftoi4.xyz VF07,VF08 iaddiu VI06,VI06,0x00000009
|
||||
NOP sq VF09,-6(VI06) ; STALL_LATENCY ?1
|
||||
NOP ibne VI08,VI02,triangle_loop
|
||||
NOP sq VF07,-4(VI06)
|
||||
; _LNOPT_w=[ normal2 ] 3 [1 0] 3 [__v_draw3D_vcl_7]
|
||||
NOP xgkick VI05
|
||||
NOP[E] NOP
|
||||
NOP NOP
|
||||
.align 4
|
||||
VU1Draw3D_CodeEnd:
|
||||
; iCount=47
|
||||
; iCount=67
|
||||
; register stats:
|
||||
; 8 VU User integer
|
||||
; 10 VU User floating point
|
||||
; 9 VU User integer
|
||||
; 12 VU User floating point
|
||||
;-------------------------
|
||||
;-------------------------
|
||||
;-------------------------
|
||||
|
||||
Reference in New Issue
Block a user