mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-08 09:43:04 -04:00
src(phase-36): T5 batch gte1 — gte_consolidate: batch gte1 — 400 files: 400 consolidated, 0 defs-only, 0 unchanged, 0 refused, 0 no-recipe · definitions deleted 8056 / renamed as lever variants 5 (variant trials: 416 freed, 5 kept) · header-bound definitions kept 80 · use renames 930 · direct statements → calls 460 / lever 252 / unmatched 185 · markers 276 · compiles 1146 · final 400/400 identical | R22 check-all: 218 passed, 0 failed of 218 | census: THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 33,901 sites in 12,601 bodies (1,756 distinct) · marked !FAKE 33,665 · UNMARKED 236 (delever_cycle)
This commit is contained in:
@@ -0,0 +1,476 @@
|
|||||||
|
clean: removed build/, expected/, and the regenerated splat tree (asm/, assets/, undefined_*_auto.txt).
|
||||||
|
disc-extract: up to date — extracted/retail/ matches the committed manifest (sha1 e5c6019249dec3c71bb2cf40658a78439dddb037)
|
||||||
|
splat 0.41.0 (powered by spimdisasm 1.41.0)
|
||||||
|
|
||||||
|
0%| | 0/1096 [00:00<?, ?it/s]
|
||||||
|
Loading symbols (symbols.us): 0%| | 0/1096 [00:00<?, ?it/s]
|
||||||
|
Loading symbols (symbols.us): 100%|██████████| 1096/1096 [00:00<00:00, 212497.44it/s]
|
||||||
|
|
||||||
|
0%| | 0/47 [00:00<?, ?it/s]
|
||||||
|
Loading symbols (symbols.us.ram): 0%| | 0/47 [00:00<?, ?it/s]
|
||||||
|
Loading symbols (symbols.us.ram): 100%|██████████| 47/47 [00:00<00:00, 646335.37it/s]
|
||||||
|
|
||||||
|
0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Scanning header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Scanning main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Rodata segment '800' may belong to the text segment '800'
|
||||||
|
Based on the usage from the function LzssDecodeSector to the symbol jtbl_80072A38
|
||||||
|
|
||||||
|
The rodata segment '800' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||||
|
File split suggestions for this segment will follow in config yaml format:
|
||||||
|
- [0x6324C, .rodata]
|
||||||
|
- [0x63388, .rodata]
|
||||||
|
- [0x633FC, .rodata]
|
||||||
|
|
||||||
|
|
||||||
|
Rodata segment '800_b' may belong to the text segment '800_b'
|
||||||
|
Based on the usage from the function func_8002B0B4 to the symbol jtbl_80072E44
|
||||||
|
|
||||||
|
Rodata segment '800_b_2' may belong to the text segment '800_b_2'
|
||||||
|
Based on the usage from the function func_8002DC68 to the symbol jtbl_80072F3C
|
||||||
|
|
||||||
|
The rodata segment '800_b_2' has jumptables that are not aligned properly file-wise, indicating one or more likely file split.
|
||||||
|
File split suggestions for this segment will follow in config yaml format:
|
||||||
|
- [0x63920, .rodata]
|
||||||
|
|
||||||
|
|
||||||
|
Rodata segment '800_c' may belong to the text segment '800_c'
|
||||||
|
Based on the usage from the function func_80035270 to the symbol jtbl_800732A0
|
||||||
|
|
||||||
|
Scanning main: 100%|██████████| 2/2 [00:01<00:00, 1.06it/s]
|
||||||
|
Scanning main: 100%|██████████| 2/2 [00:01<00:00, 1.06it/s]
|
||||||
|
|
||||||
|
0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Splitting header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Splitting main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Splitting main: 100%|██████████| 2/2 [00:00<00:00, 2.21it/s]
|
||||||
|
Splitting main: 100%|██████████| 2/2 [00:00<00:00, 2.21it/s]
|
||||||
|
|
||||||
|
0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Linker script header: 0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Linker script main: 0%| | 0/2 [00:00<?, ?it/s]
|
||||||
|
Linker script main: 100%|██████████| 2/2 [00:00<00:00, 78.28it/s]
|
||||||
|
Split 340 KB (82.28%) in defined segments
|
||||||
|
header: 2 KB (0.50%) 1 split, 0 cached
|
||||||
|
c: 338 KB (81.78%) 85 split, 0 cached
|
||||||
|
unknown: 0 B (0.00%) from unknown bin files
|
||||||
|
ld_interleave --order: .main island = 8 pieces [53198.data.o, 800.o, 63470.data.o, 800_b.o, 800_b_2.o, 63940.data.o, 800_c.o, 63C4C.data.o]; pre=0 text=85 empties=166 bss=85
|
||||||
|
[ OK ] resident
|
||||||
|
[ OK ] ov_SC05_000
|
||||||
|
[ OK ] ov_SC01_000
|
||||||
|
[ OK ] ov_SC04_000
|
||||||
|
[ OK ] ov_SC06_000
|
||||||
|
[ OK ] ov_SC03_002
|
||||||
|
[ OK ] ov_SC01_006
|
||||||
|
[ OK ] ov_SC01_005
|
||||||
|
[ OK ] ov_SC02_003
|
||||||
|
[ OK ] ov_SC02_000
|
||||||
|
[ OK ] ov_SC01_077
|
||||||
|
[ OK ] ov_SC03_001
|
||||||
|
[ OK ] ov_SC04_019
|
||||||
|
[ OK ] ov_SC01_004
|
||||||
|
[ OK ] ov_SC01_001
|
||||||
|
[ OK ] ov_SC03_006
|
||||||
|
[ OK ] ov_SC04_018
|
||||||
|
[ OK ] ov_SC01_074
|
||||||
|
[ OK ] ov_SC01_008
|
||||||
|
[ OK ] ov_SC02_004
|
||||||
|
[ OK ] ov_SC07_000
|
||||||
|
[ OK ] ov_SC02_015
|
||||||
|
[ OK ] ov_SC02_021
|
||||||
|
[ OK ] ov_SC01_080
|
||||||
|
[ OK ] ov_SC01_009
|
||||||
|
[ OK ] ov_SC02_016
|
||||||
|
[ OK ] ov_SC01_084
|
||||||
|
[ OK ] ov_SC02_005
|
||||||
|
[ OK ] ov_SC02_011
|
||||||
|
[ OK ] ov_SC02_026
|
||||||
|
[ OK ] ov_SC02_039
|
||||||
|
[ OK ] ov_SC02_027
|
||||||
|
[ OK ] ov_SC02_035
|
||||||
|
[ OK ] ov_SC02_031
|
||||||
|
[ OK ] ov_SC03_003
|
||||||
|
[ OK ] ov_SC02_028
|
||||||
|
[ OK ] ov_SC02_041
|
||||||
|
[ OK ] ov_SC02_017
|
||||||
|
[ OK ] ov_SC03_010
|
||||||
|
[ OK ] ov_SC03_012
|
||||||
|
[ OK ] ov_SC03_011
|
||||||
|
[ OK ] ov_SC03_023
|
||||||
|
[ OK ] ov_SC03_013
|
||||||
|
[ OK ] ov_SC03_007
|
||||||
|
[ OK ] ov_SC03_024
|
||||||
|
[ OK ] ov_SC03_031
|
||||||
|
[ OK ] ov_SC03_015
|
||||||
|
[ OK ] ov_SC03_089
|
||||||
|
[ OK ] ov_SC03_014
|
||||||
|
[ OK ] ov_SC03_029
|
||||||
|
[ OK ] ov_SC03_030
|
||||||
|
[ OK ] ov_SC03_090
|
||||||
|
[ OK ] ov_SC03_092
|
||||||
|
[ OK ] ov_SC03_028
|
||||||
|
[ OK ] ov_SC03_095
|
||||||
|
[ OK ] ov_SC03_093
|
||||||
|
[ OK ] ov_SC03_094
|
||||||
|
[ OK ] ov_SC03_091
|
||||||
|
[ OK ] ov_SC03_097
|
||||||
|
[ OK ] ov_SC03_096
|
||||||
|
[ OK ] ov_SC03_098
|
||||||
|
[ OK ] ov_SC03_099
|
||||||
|
[ OK ] ov_SC03_101
|
||||||
|
[ OK ] ov_SC03_100
|
||||||
|
[ OK ] ov_SC03_109
|
||||||
|
[ OK ] ov_SC03_108
|
||||||
|
[ OK ] ov_SC03_102
|
||||||
|
[ OK ] ov_SC03_110
|
||||||
|
[ OK ] ov_SC03_103
|
||||||
|
[ OK ] ov_SC03_113
|
||||||
|
[ OK ] ov_SC03_105
|
||||||
|
[ OK ] ov_SC03_104
|
||||||
|
[ OK ] ov_SC03_114
|
||||||
|
[ OK ] ov_SC03_115
|
||||||
|
[ OK ] ov_SC03_112
|
||||||
|
[ OK ] ov_SC03_111
|
||||||
|
[ OK ] ov_SC03_116
|
||||||
|
[ OK ] ov_SC03_126
|
||||||
|
[ OK ] ov_SC04_008
|
||||||
|
[ OK ] ov_SC04_009
|
||||||
|
[ OK ] ov_SC04_006
|
||||||
|
[ OK ] ov_SC03_121
|
||||||
|
[ OK ] ov_SC04_003
|
||||||
|
[ OK ] ov_SC03_117
|
||||||
|
[ OK ] ov_SC03_119
|
||||||
|
[ OK ] ov_SC03_118
|
||||||
|
[ OK ] ov_SC03_125
|
||||||
|
[ OK ] ov_SC04_004
|
||||||
|
[ OK ] ov_SC04_010
|
||||||
|
[ OK ] ov_SC04_005
|
||||||
|
[ OK ] ov_SC04_002
|
||||||
|
[ OK ] ov_SC04_007
|
||||||
|
[ OK ] ov_SC03_124
|
||||||
|
[ OK ] ov_SC04_012
|
||||||
|
[ OK ] ov_SC04_021
|
||||||
|
[ OK ] ov_SC04_016
|
||||||
|
[ OK ] ov_SC05_002
|
||||||
|
[ OK ] ov_SC05_006
|
||||||
|
[ OK ] ov_SC05_004
|
||||||
|
[ OK ] ov_SC05_001
|
||||||
|
[ OK ] ov_SC04_015
|
||||||
|
[ OK ] ov_SC05_003
|
||||||
|
[ OK ] ov_SC04_020
|
||||||
|
[ OK ] ov_SC04_011
|
||||||
|
[ OK ] ov_SC05_007
|
||||||
|
[ OK ] ov_SC05_005
|
||||||
|
[ OK ] ov_SC05_009
|
||||||
|
[ OK ] ov_SC05_008
|
||||||
|
[ OK ] ov_SC05_011
|
||||||
|
[ OK ] ov_SC05_010
|
||||||
|
[ OK ] ov_SC05_019
|
||||||
|
[ OK ] ov_SC06_008
|
||||||
|
[ OK ] ov_SC06_013
|
||||||
|
[ OK ] ov_SC06_015
|
||||||
|
[ OK ] ov_SC06_010
|
||||||
|
[ OK ] ov_SC06_016
|
||||||
|
[ OK ] ov_SC06_014
|
||||||
|
[ OK ] ov_SC06_011
|
||||||
|
[ OK ] ov_SC05_017
|
||||||
|
[ OK ] ov_SC05_018
|
||||||
|
[ OK ] ov_SC06_006
|
||||||
|
[ OK ] ov_SC06_027
|
||||||
|
[ OK ] ov_SC06_018
|
||||||
|
[ OK ] ov_SC06_020
|
||||||
|
[ OK ] ov_SC06_025
|
||||||
|
[ OK ] ov_SC06_022
|
||||||
|
[ OK ] ov_SC06_024
|
||||||
|
[ OK ] ov_SC07_002
|
||||||
|
[ OK ] ov_SC07_008
|
||||||
|
[ OK ] ov_SC07_001
|
||||||
|
[ OK ] md_MAIN_014
|
||||||
|
[ OK ] md_MAIN_013
|
||||||
|
[ OK ] md_MAIN_015
|
||||||
|
[ OK ] md_MAIN_017
|
||||||
|
[ OK ] md_MAIN_016
|
||||||
|
[ OK ] md_MAIN_018
|
||||||
|
[ OK ] md_MAIN_019
|
||||||
|
[ OK ] md_MAIN_021
|
||||||
|
[ OK ] md_MAIN_022
|
||||||
|
[ OK ] md_MAIN_023
|
||||||
|
[ OK ] md_MAIN_020
|
||||||
|
[ OK ] ov_SC07_011
|
||||||
|
[ OK ] ov_MAIN_012
|
||||||
|
[ OK ] ov_SC06_030
|
||||||
|
[ OK ] ov_SC07_009
|
||||||
|
[ OK ] md_MAIN_024
|
||||||
|
[ OK ] ov_SC07_010
|
||||||
|
[ OK ] ov_SC07_007
|
||||||
|
[ OK ] ov_SC06_033
|
||||||
|
[ OK ] ov_SC06_032
|
||||||
|
[ OK ] ov_SC06_029
|
||||||
|
[ OK ] md_MAIN_025
|
||||||
|
[ OK ] md_MAIN_026
|
||||||
|
[ OK ] md_MAIN_028
|
||||||
|
[ OK ] md_MAIN_029
|
||||||
|
[ OK ] md_MAIN_027
|
||||||
|
[ OK ] md_MAIN_030
|
||||||
|
[ OK ] md_MAIN_033
|
||||||
|
[ OK ] md_MAIN_036
|
||||||
|
[ OK ] md_MAIN_035
|
||||||
|
[ OK ] md_MAIN_031
|
||||||
|
[ OK ] md_MAIN_032
|
||||||
|
[ OK ] md_MAIN_034
|
||||||
|
[ OK ] md_MAIN_037
|
||||||
|
[ OK ] ov_SC03_107
|
||||||
|
[ OK ] md_MAIN_040
|
||||||
|
[ OK ] md_MAIN_039
|
||||||
|
[ OK ] md_MAIN_042
|
||||||
|
[ OK ] md_MAIN_038
|
||||||
|
[ OK ] md_MAIN_041
|
||||||
|
[ OK ] ov_SC07_006
|
||||||
|
[ OK ] md_MAIN_043
|
||||||
|
[ OK ] md_MAIN_044
|
||||||
|
[ OK ] md_MAIN_045
|
||||||
|
[ OK ] md_MAIN_046
|
||||||
|
[ OK ] md_MAIN_047
|
||||||
|
[ OK ] md_MAIN_008
|
||||||
|
[ OK ] md_MAIN_011
|
||||||
|
[ OK ] ov_SC02_037
|
||||||
|
[ OK ] md_MAIN_001
|
||||||
|
[ OK ] md_SC03_078
|
||||||
|
[ OK ] md_SC03_074
|
||||||
|
[ OK ] md_SC03_077
|
||||||
|
[ OK ] md_SC03_073
|
||||||
|
[ OK ] md_SC03_075
|
||||||
|
[ OK ] md_SC03_076
|
||||||
|
[ OK ] md_SC03_133
|
||||||
|
[ OK ] md_SC03_134
|
||||||
|
[ OK ] md_SC03_137
|
||||||
|
[ OK ] md_SC03_079
|
||||||
|
[ OK ] md_SC03_132
|
||||||
|
[ OK ] md_SC03_135
|
||||||
|
[ OK ] md_SC03_136
|
||||||
|
[ OK ] md_SC04_024
|
||||||
|
[ OK ] md_SC04_029
|
||||||
|
[ OK ] md_SC04_026
|
||||||
|
[ OK ] md_SC03_138
|
||||||
|
[ OK ] md_SC04_025
|
||||||
|
[ OK ] md_SC05_024
|
||||||
|
[ OK ] md_MAIN_003
|
||||||
|
[ OK ] md_SC05_023
|
||||||
|
[ OK ] md_SC04_028
|
||||||
|
[ OK ] md_SC04_030
|
||||||
|
[ OK ] md_SC05_025
|
||||||
|
[ OK ] md_SC04_027
|
||||||
|
[ OK ] md_MAIN_009
|
||||||
|
[ OK ] md_MAIN_007
|
||||||
|
[ OK ] md_SC05_027
|
||||||
|
[ OK ] md_SC03_056
|
||||||
|
[ OK ] md_SC05_028
|
||||||
|
[ OK ] md_SC03_054
|
||||||
|
[ OK ] md_SC03_053
|
||||||
|
[ OK ] md_SC05_026
|
||||||
|
[ OK ] md_SC05_029
|
||||||
|
[ OK ] md_SC02_009
|
||||||
|
[ OK ] md_SC07_004
|
||||||
|
[ OK ] md_SC07_003
|
||||||
|
extract-all: 217 extracted, 0 failed of 217 (+ main, serial)
|
||||||
|
[ OK ] resident
|
||||||
|
[ OK ] ov_SC01_000
|
||||||
|
[ OK ] ov_SC04_000
|
||||||
|
[ OK ] ov_SC01_005
|
||||||
|
[ OK ] ov_SC03_006
|
||||||
|
[ OK ] ov_SC01_001
|
||||||
|
[ OK ] ov_SC05_000
|
||||||
|
[ OK ] ov_SC03_002
|
||||||
|
[ OK ] ov_SC01_006
|
||||||
|
[ OK ] ov_SC06_000
|
||||||
|
[ OK ] ov_SC01_077
|
||||||
|
[ OK ] ov_SC02_003
|
||||||
|
[ OK ] ov_SC03_001
|
||||||
|
[ OK ] ov_SC04_019
|
||||||
|
[ OK ] ov_SC04_018
|
||||||
|
[ OK ] ov_SC02_000
|
||||||
|
[ OK ] ov_SC07_000
|
||||||
|
[ OK ] ov_SC01_074
|
||||||
|
[ OK ] ov_SC01_004
|
||||||
|
[ OK ] ov_SC02_004
|
||||||
|
[ OK ] ov_SC01_008
|
||||||
|
[ OK ] ov_SC01_080
|
||||||
|
[ OK ] ov_SC01_084
|
||||||
|
[ OK ] ov_SC01_009
|
||||||
|
[ OK ] ov_SC02_015
|
||||||
|
[ OK ] ov_SC02_016
|
||||||
|
[ OK ] ov_SC02_011
|
||||||
|
[ OK ] ov_SC02_021
|
||||||
|
[ OK ] ov_SC02_017
|
||||||
|
[ OK ] ov_SC02_026
|
||||||
|
[ OK ] ov_SC02_005
|
||||||
|
[ OK ] ov_SC02_027
|
||||||
|
[ OK ] ov_SC02_031
|
||||||
|
[ OK ] ov_SC02_039
|
||||||
|
[ OK ] ov_SC02_035
|
||||||
|
[ OK ] ov_SC03_003
|
||||||
|
[ OK ] ov_SC02_028
|
||||||
|
[ OK ] ov_SC03_010
|
||||||
|
[ OK ] ov_SC02_041
|
||||||
|
[ OK ] ov_SC03_012
|
||||||
|
[ OK ] ov_SC03_007
|
||||||
|
[ OK ] ov_SC03_011
|
||||||
|
[ OK ] ov_SC03_023
|
||||||
|
[ OK ] ov_SC03_013
|
||||||
|
[ OK ] ov_SC03_014
|
||||||
|
[ OK ] ov_SC03_015
|
||||||
|
[ OK ] ov_SC03_024
|
||||||
|
[ OK ] ov_SC03_031
|
||||||
|
[ OK ] ov_SC03_030
|
||||||
|
[ OK ] ov_SC03_029
|
||||||
|
[ OK ] ov_SC03_092
|
||||||
|
[ OK ] ov_SC03_028
|
||||||
|
[ OK ] ov_SC03_089
|
||||||
|
[ OK ] ov_SC03_090
|
||||||
|
[ OK ] ov_SC03_091
|
||||||
|
[ OK ] ov_SC03_095
|
||||||
|
[ OK ] ov_SC03_096
|
||||||
|
[ OK ] ov_SC03_094
|
||||||
|
[ OK ] ov_SC03_093
|
||||||
|
[ OK ] ov_SC03_098
|
||||||
|
[ OK ] main
|
||||||
|
[ OK ] ov_SC03_097
|
||||||
|
[ OK ] ov_SC03_099
|
||||||
|
[ OK ] ov_SC03_109
|
||||||
|
[ OK ] ov_SC03_108
|
||||||
|
[ OK ] ov_SC03_103
|
||||||
|
[ OK ] ov_SC03_100
|
||||||
|
[ OK ] ov_SC03_101
|
||||||
|
[ OK ] ov_SC03_110
|
||||||
|
[ OK ] ov_SC03_102
|
||||||
|
[ OK ] ov_SC03_115
|
||||||
|
[ OK ] ov_SC03_104
|
||||||
|
[ OK ] ov_SC03_113
|
||||||
|
[ OK ] ov_SC03_111
|
||||||
|
[ OK ] ov_SC03_105
|
||||||
|
[ OK ] ov_SC03_114
|
||||||
|
[ OK ] ov_SC03_112
|
||||||
|
[ OK ] ov_SC03_116
|
||||||
|
[ OK ] ov_SC03_117
|
||||||
|
[ OK ] ov_SC03_125
|
||||||
|
[ OK ] ov_SC04_008
|
||||||
|
[ OK ] ov_SC04_006
|
||||||
|
[ OK ] ov_SC03_126
|
||||||
|
[ OK ] ov_SC03_118
|
||||||
|
[ OK ] ov_SC04_002
|
||||||
|
[ OK ] ov_SC04_009
|
||||||
|
[ OK ] ov_SC03_121
|
||||||
|
[ OK ] ov_SC04_003
|
||||||
|
[ OK ] ov_SC03_119
|
||||||
|
[ OK ] ov_SC03_124
|
||||||
|
[ OK ] ov_SC04_004
|
||||||
|
[ OK ] ov_SC04_007
|
||||||
|
[ OK ] ov_SC04_005
|
||||||
|
[ OK ] ov_SC04_010
|
||||||
|
[ OK ] ov_SC04_011
|
||||||
|
[ OK ] ov_SC04_012
|
||||||
|
[ OK ] ov_SC04_016
|
||||||
|
[ OK ] ov_SC04_015
|
||||||
|
[ OK ] ov_SC05_007
|
||||||
|
[ OK ] ov_SC04_020
|
||||||
|
[ OK ] ov_SC05_005
|
||||||
|
[ OK ] ov_SC05_009
|
||||||
|
[ OK ] ov_SC05_003
|
||||||
|
[ OK ] ov_SC05_004
|
||||||
|
[ OK ] ov_SC05_002
|
||||||
|
[ OK ] ov_SC04_021
|
||||||
|
[ OK ] ov_SC05_001
|
||||||
|
[ OK ] ov_SC05_006
|
||||||
|
[ OK ] ov_SC05_008
|
||||||
|
[ OK ] ov_SC05_010
|
||||||
|
[ OK ] ov_SC05_011
|
||||||
|
[ OK ] ov_SC05_019
|
||||||
|
[ OK ] ov_SC06_010
|
||||||
|
[ OK ] ov_SC06_013
|
||||||
|
[ OK ] ov_SC06_015
|
||||||
|
[ OK ] ov_SC06_008
|
||||||
|
[ OK ] ov_SC06_011
|
||||||
|
[ OK ] ov_SC05_017
|
||||||
|
[ OK ] ov_SC06_014
|
||||||
|
[ OK ] ov_SC06_016
|
||||||
|
[ OK ] ov_SC06_006
|
||||||
|
[ OK ] ov_SC05_018
|
||||||
|
[ OK ] ov_SC06_020
|
||||||
|
[ OK ] ov_SC06_022
|
||||||
|
[ OK ] ov_SC06_018
|
||||||
|
[ OK ] ov_SC06_024
|
||||||
|
[ OK ] ov_SC06_025
|
||||||
|
[ OK ] ov_SC06_027
|
||||||
|
[ OK ] md_MAIN_013
|
||||||
|
[ OK ] md_MAIN_014
|
||||||
|
[ OK ] ov_SC07_008
|
||||||
|
[ OK ] md_MAIN_015
|
||||||
|
[ OK ] ov_SC06_030
|
||||||
|
[ OK ] md_MAIN_016
|
||||||
|
[ OK ] md_MAIN_017
|
||||||
|
[ OK ] ov_SC06_029
|
||||||
|
[ OK ] md_MAIN_018
|
||||||
|
[ OK ] md_MAIN_020
|
||||||
|
[ OK ] md_MAIN_019
|
||||||
|
[ OK ] md_MAIN_021
|
||||||
|
[ OK ] md_MAIN_024
|
||||||
|
[ OK ] md_MAIN_023
|
||||||
|
[ OK ] md_MAIN_022
|
||||||
|
[ OK ] ov_SC07_009
|
||||||
|
[ OK ] ov_SC07_001
|
||||||
|
[ OK ] md_MAIN_025
|
||||||
|
[ OK ] ov_SC07_007
|
||||||
|
[ OK ] ov_SC07_002
|
||||||
|
[ OK ] ov_SC07_006
|
||||||
|
[ OK ] md_MAIN_028
|
||||||
|
[ OK ] ov_SC07_010
|
||||||
|
[ OK ] md_MAIN_029
|
||||||
|
[ OK ] md_MAIN_030
|
||||||
|
[ OK ] md_MAIN_026
|
||||||
|
[ OK ] md_MAIN_033
|
||||||
|
[ OK ] md_MAIN_027
|
||||||
|
[ OK ] md_MAIN_032
|
||||||
|
[ OK ] md_MAIN_031
|
||||||
|
[ OK ] md_MAIN_035
|
||||||
|
[ OK ] md_MAIN_034
|
||||||
|
[ OK ] md_MAIN_037
|
||||||
|
[ OK ] md_MAIN_042
|
||||||
|
[ OK ] md_MAIN_036
|
||||||
|
[ OK ] md_MAIN_039
|
||||||
|
[ OK ] md_MAIN_040
|
||||||
|
[ OK ] md_MAIN_041
|
||||||
|
[ OK ] md_MAIN_043
|
||||||
|
[ OK ] md_MAIN_045
|
||||||
|
[ OK ] md_MAIN_038
|
||||||
|
[ OK ] md_MAIN_044
|
||||||
|
[ OK ] md_MAIN_046
|
||||||
|
[ OK ] md_MAIN_001
|
||||||
|
[ OK ] md_MAIN_008
|
||||||
|
[ OK ] ov_SC06_032
|
||||||
|
[ OK ] md_MAIN_011
|
||||||
|
[ OK ] md_MAIN_047
|
||||||
|
[ OK ] md_SC03_074
|
||||||
|
[ OK ] md_SC03_073
|
||||||
|
[ OK ] md_SC03_075
|
||||||
|
[ OK ] ov_MAIN_012
|
||||||
|
[ OK ] ov_SC06_033
|
||||||
|
[ OK ] md_SC03_132
|
||||||
|
[ OK ] md_SC03_079
|
||||||
|
[ OK ] md_SC03_078
|
||||||
|
[ OK ] md_SC07_003
|
||||||
|
[ OK ] md_SC03_133
|
||||||
|
[ OK ] md_SC03_077
|
||||||
|
[ OK ] md_SC03_134
|
||||||
|
[ OK ] md_SC03_076
|
||||||
|
[ OK ] ov_SC07_011
|
||||||
|
[ OK ] md_SC03_138
|
||||||
|
[ OK ] md_SC03_135
|
||||||
|
[ OK ] md_SC03_137
|
||||||
|
[ OK ] md_SC04_025
|
||||||
|
[ OK ] md_SC04_030
|
||||||
|
[ OK ] md_SC04_026
|
||||||
|
[ OK ] md_SC04_029
|
||||||
|
[ OK ] md_SC03_136
|
||||||
|
[ OK ] md_SC04_024
|
||||||
|
[ OK ] md_MAIN_003
|
||||||
|
[ OK ] md_SC04_028
|
||||||
+229
-187
@@ -3,36 +3,36 @@
|
|||||||
"gte_header": "include/gte_inline.h",
|
"gte_header": "include/gte_inline.h",
|
||||||
"gte_header_sites": 0,
|
"gte_header_sites": 0,
|
||||||
"gte_mnemonics": {
|
"gte_mnemonics": {
|
||||||
"gte_SetRotMatrix": 150,
|
"LDV": 3,
|
||||||
"gte_SetTransMatrix": 145,
|
"SRM_80186B78": 12,
|
||||||
|
"STM_80186B78": 12,
|
||||||
|
"STSV": 3,
|
||||||
|
"cfc2": 1,
|
||||||
|
"gte_SetRotMatrix": 33,
|
||||||
|
"gte_SetTransMatrix": 32,
|
||||||
"gte_dpcl": 133,
|
"gte_dpcl": 133,
|
||||||
"gte_ldIR0z": 133,
|
"gte_ldIR0z": 133,
|
||||||
"gte_ldIRGB": 133,
|
"gte_ldIRGB": 133,
|
||||||
"gte_ldrgb": 162,
|
"gte_ldlv0": 1,
|
||||||
"gte_ldv0": 653,
|
"gte_ldrgb": 133,
|
||||||
"gte_ldv3": 140,
|
"gte_ldv0": 71,
|
||||||
"gte_ldv3c": 159,
|
"gte_ldv3_80181E04": 1,
|
||||||
"gte_mvmva0": 131,
|
"gte_mvmva0": 52,
|
||||||
"gte_nclip": 96,
|
"gte_rt": 21,
|
||||||
"gte_rt": 155,
|
"gte_rtps": 1,
|
||||||
"gte_rtps": 356,
|
"gte_rtpt_80181E04": 1,
|
||||||
"gte_rtpt": 289,
|
"gte_rtv0": 1,
|
||||||
"gte_stORGB": 133,
|
"gte_stORGB": 133,
|
||||||
"gte_stflg": 319,
|
"gte_stflg_80181E04": 1,
|
||||||
"gte_stlvnl": 143,
|
"gte_stlvnl": 53,
|
||||||
"gte_stopz": 96,
|
"gte_stsv": 18,
|
||||||
"gte_stsv": 145,
|
"gte_stsxy": 1,
|
||||||
"gte_stsxy": 361,
|
"gte_stsxy01_80181E04": 1,
|
||||||
"gte_stsxy3": 191,
|
"gte_stsz3_80181E04": 1,
|
||||||
"gte_stsxy3_f3": 61,
|
"lw": 26,
|
||||||
"gte_stsxy3c": 94,
|
"lwc2": 267,
|
||||||
"gte_stsz3": 123,
|
"nop": 1,
|
||||||
"gte_stsz4": 126,
|
"swc2": 129
|
||||||
"gte_stszotz": 113,
|
|
||||||
"lhu": 66,
|
|
||||||
"lwc2": 432,
|
|
||||||
"mfc2": 61,
|
|
||||||
"swc2": 449
|
|
||||||
},
|
},
|
||||||
"instruction_mnemonics": {
|
"instruction_mnemonics": {
|
||||||
".section": 7,
|
".section": 7,
|
||||||
@@ -56,10 +56,11 @@
|
|||||||
"asm-body/direct": 13,
|
"asm-body/direct": 13,
|
||||||
"barrier/direct": 4576,
|
"barrier/direct": 4576,
|
||||||
"barrier/via-macro": 2,
|
"barrier/via-macro": 2,
|
||||||
"gte-lever/direct": 49,
|
"gte-lever/direct": 252,
|
||||||
|
"gte-lever/via-macro": 24,
|
||||||
"gte-unsigned/direct": 3,
|
"gte-unsigned/direct": 3,
|
||||||
"gte/direct": 1088,
|
"gte/direct": 425,
|
||||||
"gte/via-macro": 5751,
|
"gte/via-macro": 987,
|
||||||
"instruction/direct": 1690,
|
"instruction/direct": 1690,
|
||||||
"instruction/via-macro": 22,
|
"instruction/via-macro": 22,
|
||||||
"keepalive/direct": 2000,
|
"keepalive/direct": 2000,
|
||||||
@@ -72,7 +73,7 @@
|
|||||||
"classes": {
|
"classes": {
|
||||||
"A": {
|
"A": {
|
||||||
"bodies": 10329,
|
"bodies": 10329,
|
||||||
"distinct_bodies": 1330,
|
"distinct_bodies": 1332,
|
||||||
"file_scope": 0,
|
"file_scope": 0,
|
||||||
"in_bodies": 20646,
|
"in_bodies": 20646,
|
||||||
"kinds": {
|
"kinds": {
|
||||||
@@ -84,29 +85,29 @@
|
|||||||
"unmarked": 0
|
"unmarked": 0
|
||||||
},
|
},
|
||||||
"B": {
|
"B": {
|
||||||
"bodies": 9758,
|
"bodies": 9469,
|
||||||
"distinct_bodies": 1054,
|
"distinct_bodies": 928,
|
||||||
"file_scope": 13,
|
"file_scope": 13,
|
||||||
"in_bodies": 22539,
|
"in_bodies": 17339,
|
||||||
"kinds": {
|
"kinds": {
|
||||||
"asm-body": 13,
|
"asm-body": 13,
|
||||||
"barrier": 4578,
|
"barrier": 4578,
|
||||||
"gte": 6839,
|
"gte": 1412,
|
||||||
"gte-lever": 49,
|
"gte-lever": 276,
|
||||||
"gte-unsigned": 3,
|
"gte-unsigned": 3,
|
||||||
"instruction": 1712,
|
"instruction": 1712,
|
||||||
"keepalive": 2000,
|
"keepalive": 2000,
|
||||||
"launder": 4676,
|
"launder": 4676,
|
||||||
"verbatim-body": 2682
|
"verbatim-body": 2682
|
||||||
},
|
},
|
||||||
"marked": 13155,
|
"marked": 13154,
|
||||||
"sites": 22552,
|
"sites": 17352,
|
||||||
"tus": 2289,
|
"tus": 2287,
|
||||||
"unmarked": 9397
|
"unmarked": 4198
|
||||||
},
|
},
|
||||||
"C": {
|
"C": {
|
||||||
"bodies": 628,
|
"bodies": 628,
|
||||||
"distinct_bodies": 97,
|
"distinct_bodies": 99,
|
||||||
"file_scope": 152,
|
"file_scope": 152,
|
||||||
"in_bodies": 1570,
|
"in_bodies": 1570,
|
||||||
"kinds": {
|
"kinds": {
|
||||||
@@ -206,9 +207,9 @@
|
|||||||
"coverage": {
|
"coverage": {
|
||||||
"asm": {
|
"asm": {
|
||||||
"comment_dead": 6792,
|
"comment_dead": 6792,
|
||||||
"live": 46804,
|
"live": 45070,
|
||||||
"macro_block": 7189,
|
"macro_block": 407,
|
||||||
"raw": 60785
|
"raw": 52269
|
||||||
},
|
},
|
||||||
"attribute": {
|
"attribute": {
|
||||||
"comment_dead": 0,
|
"comment_dead": 0,
|
||||||
@@ -230,186 +231,227 @@
|
|||||||
},
|
},
|
||||||
"volatile": {
|
"volatile": {
|
||||||
"comment_dead": 2607,
|
"comment_dead": 2607,
|
||||||
"live": 3437,
|
"live": 2172,
|
||||||
"macro_block": 6510,
|
"macro_block": 157,
|
||||||
"raw": 12554
|
"raw": 4936
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"coverage_ok": true,
|
"coverage_ok": true,
|
||||||
"elapsed_s": 50.8,
|
"elapsed_s": 36.4,
|
||||||
"generated": "2026-09-09",
|
"generated": "2026-09-09",
|
||||||
"gte_levers": {
|
"gte_levers": {
|
||||||
"direct": 49,
|
"direct": 252,
|
||||||
"marked": 0,
|
"marked": 40,
|
||||||
"sites": 49,
|
"sites": 276,
|
||||||
"unmarked": 49,
|
"unmarked": 236,
|
||||||
"unsigned": 3,
|
"unsigned": 3,
|
||||||
"via_macro": 0,
|
"via_macro": 24,
|
||||||
"what": "GTE ops whose clobbers exceed the canonical macro's (a scheduling steer): levers for T7, outside the headline number"
|
"what": "GTE ops whose clobbers exceed the canonical macro's (a scheduling steer): class-B levers INSIDE the headline number since T5 (2026-09-09), marked, 0 at the close"
|
||||||
},
|
},
|
||||||
"head": "917c68afd",
|
"head": "0bd784c64",
|
||||||
"headers": 3181,
|
"headers": 3181,
|
||||||
"levers_AB": {
|
"levers_AB": {
|
||||||
"asm": 13028,
|
"asm": 13255,
|
||||||
"bodies": 12518,
|
"bodies": 12601,
|
||||||
"distinct_bodies": 1745,
|
"distinct_bodies": 1756,
|
||||||
"marked": 33625,
|
"marked": 33665,
|
||||||
"pins": 20646,
|
"pins": 20646,
|
||||||
"sites": 33674,
|
"sites": 33901,
|
||||||
"unmarked": 49,
|
"unmarked": 236,
|
||||||
"what": "register pins + asm statements excluding GTE ops: the classes the phase drives to 0"
|
"what": "register pins + asm statements excluding GTE ops: the classes the phase drives to 0"
|
||||||
},
|
},
|
||||||
"macro_definitions": {
|
"macro_definitions": {
|
||||||
"kinds": {
|
"kinds": {
|
||||||
"barrier": 1,
|
"barrier": 1,
|
||||||
"gte": 9102,
|
"gte": 1046,
|
||||||
"instruction": 9,
|
"instruction": 9,
|
||||||
"launder": 428
|
"launder": 428
|
||||||
},
|
},
|
||||||
"names": 338,
|
"names": 45,
|
||||||
"names_with_multiple_texts": 32,
|
"names_with_multiple_texts": 5,
|
||||||
"top": [
|
"top": [
|
||||||
[
|
|
||||||
"gte_SetRotMatrix",
|
|
||||||
982,
|
|
||||||
4
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_SetTransMatrix",
|
|
||||||
978,
|
|
||||||
4
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_ldv0",
|
|
||||||
839,
|
|
||||||
8
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stflg",
|
|
||||||
674,
|
|
||||||
7
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_rtps",
|
|
||||||
658,
|
|
||||||
4
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stsxy",
|
|
||||||
655,
|
|
||||||
4
|
|
||||||
],
|
|
||||||
[
|
[
|
||||||
"SHB",
|
"SHB",
|
||||||
416,
|
416,
|
||||||
2
|
2
|
||||||
],
|
],
|
||||||
[
|
|
||||||
"gte_stlvnl",
|
|
||||||
282,
|
|
||||||
4
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_rtpt",
|
|
||||||
228,
|
|
||||||
5
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_ldv3",
|
|
||||||
207,
|
|
||||||
5
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stsxy3",
|
|
||||||
203,
|
|
||||||
3
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stszotz",
|
|
||||||
201,
|
|
||||||
2
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_nclip",
|
|
||||||
186,
|
|
||||||
5
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stopz",
|
|
||||||
186,
|
|
||||||
4
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stsz4",
|
|
||||||
166,
|
|
||||||
4
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stsz3",
|
|
||||||
165,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_ldv3c",
|
|
||||||
163,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stsxy3c",
|
|
||||||
162,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_ldrgb",
|
|
||||||
155,
|
|
||||||
3
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_ldlv0",
|
|
||||||
139,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_rtv0tr",
|
|
||||||
139,
|
|
||||||
3
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_stsxy3_ft3",
|
|
||||||
137,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
"gte_mvmva0",
|
|
||||||
136,
|
|
||||||
1
|
|
||||||
],
|
|
||||||
[
|
[
|
||||||
"gte_ldIR0z",
|
"gte_ldIR0z",
|
||||||
136,
|
136,
|
||||||
1
|
1
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
"gte_ldrgb",
|
||||||
|
136,
|
||||||
|
1
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"gte_ldIRGB",
|
"gte_ldIRGB",
|
||||||
136,
|
136,
|
||||||
1
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_dpcl",
|
||||||
|
136,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_stORGB",
|
||||||
|
136,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_stsxy3_f4",
|
||||||
|
80,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_ldv0",
|
||||||
|
61,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_stlvnl",
|
||||||
|
58,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_mvmva0",
|
||||||
|
57,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_SetRotMatrix",
|
||||||
|
34,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_SetTransMatrix",
|
||||||
|
33,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"RTP_SND",
|
||||||
|
9,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"SRM_80186B78",
|
||||||
|
8,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"STM_80186B78",
|
||||||
|
8,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_rt",
|
||||||
|
4,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"DRAW",
|
||||||
|
3,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_stsv",
|
||||||
|
3,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_rtv0tr_m",
|
||||||
|
2,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"XFER",
|
||||||
|
2,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"XFERLAST",
|
||||||
|
2,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_SetRotMatrix_m",
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_ldv0_m",
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"gte_rtv0_m",
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"COPY_TO_FAAC",
|
||||||
|
1,
|
||||||
|
1
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"total": 9540
|
"total": 1484
|
||||||
},
|
},
|
||||||
"orphan_markers": {
|
"orphan_markers": {
|
||||||
"count": 0,
|
"count": 241,
|
||||||
"sample": []
|
"sample": [
|
||||||
|
"src/800.c:1129",
|
||||||
|
"src/800.c:1144",
|
||||||
|
"src/800.c:1159",
|
||||||
|
"src/800.c:10273",
|
||||||
|
"src/800.c:10585",
|
||||||
|
"src/800.c:10592",
|
||||||
|
"src/800.c:10599",
|
||||||
|
"src/800.c:10606",
|
||||||
|
"src/800.c:10619",
|
||||||
|
"src/800.c:10625",
|
||||||
|
"src/800.c:10632",
|
||||||
|
"src/800.c:10639",
|
||||||
|
"src/800.c:10647",
|
||||||
|
"src/800.c:10655",
|
||||||
|
"src/800.c:10669",
|
||||||
|
"src/md_MAIN_019/md_MAIN_019.c:442",
|
||||||
|
"src/md_MAIN_019/md_MAIN_019.c:456",
|
||||||
|
"src/md_MAIN_019/md_MAIN_019.c:470",
|
||||||
|
"src/md_MAIN_031/md_MAIN_031.c:347",
|
||||||
|
"src/md_MAIN_031/md_MAIN_031.c:361",
|
||||||
|
"src/md_MAIN_031/md_MAIN_031.c:367",
|
||||||
|
"src/md_SC07_004/md_SC07_004.c:5974",
|
||||||
|
"src/md_SC07_004/md_SC07_004.c:5981",
|
||||||
|
"src/ov_MAIN_012/ov_MAIN_012_jr_801380E0.c:1162",
|
||||||
|
"src/ov_MAIN_012/ov_MAIN_012_jr_801380E0.c:1177",
|
||||||
|
"src/ov_SC01_000/ov_SC01_000_jr_801380E0.c:1112",
|
||||||
|
"src/ov_SC01_000/ov_SC01_000_jr_801380E0.c:1127",
|
||||||
|
"src/ov_SC01_001/ov_SC01_001_jr_801380E0.c:1112",
|
||||||
|
"src/ov_SC01_001/ov_SC01_001_jr_801380E0.c:1127",
|
||||||
|
"src/ov_SC01_004/ov_SC01_004_jr_801380E0.c:1113",
|
||||||
|
"src/ov_SC01_004/ov_SC01_004_jr_801380E0.c:1128",
|
||||||
|
"src/ov_SC01_005/ov_SC01_005_jr_801380E0.c:1112",
|
||||||
|
"src/ov_SC01_005/ov_SC01_005_jr_801380E0.c:1127",
|
||||||
|
"src/ov_SC01_008/ov_SC01_008_jr_801380E0.c:1113",
|
||||||
|
"src/ov_SC01_008/ov_SC01_008_jr_801380E0.c:1128",
|
||||||
|
"src/ov_SC01_009/ov_SC01_009_jr_801380E0.c:1113",
|
||||||
|
"src/ov_SC01_009/ov_SC01_009_jr_801380E0.c:1128",
|
||||||
|
"src/ov_SC01_074/ov_SC01_074_jr_801380E0.c:1113",
|
||||||
|
"src/ov_SC01_074/ov_SC01_074_jr_801380E0.c:1128",
|
||||||
|
"src/ov_SC01_077/ov_SC01_077_jr_801380E0.c:1416"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"per_tu_asm_macro_definitions": {
|
"per_tu_asm_macro_definitions": {
|
||||||
"by_kind": {
|
"by_kind": {
|
||||||
"barrier": 1,
|
"barrier": 1,
|
||||||
"gte": 9102,
|
"gte": 1046,
|
||||||
"instruction": 9,
|
"instruction": 9,
|
||||||
"launder": 428
|
"launder": 428
|
||||||
},
|
},
|
||||||
"gte_variants": 0,
|
"gte_variants": 5,
|
||||||
"total": 9540,
|
"total": 1484,
|
||||||
"what": "asm-bearing #define blocks outside the GTE header: 0 at the close (T5 deletes the canonical duplicates, T7 the variants)"
|
"what": "asm-bearing #define blocks outside the GTE header: 0 at the close (T5 deletes the canonical duplicates, T7 the variants)"
|
||||||
},
|
},
|
||||||
"pins": {
|
"pins": {
|
||||||
@@ -457,21 +499,21 @@
|
|||||||
"volatile_qualified": 134,
|
"volatile_qualified": 134,
|
||||||
"zero": 1321
|
"zero": 1321
|
||||||
},
|
},
|
||||||
"src_stamp": "c88fc710f6e5a7ec",
|
"src_stamp": "edd0ed12e734c92d",
|
||||||
"tus": 4121,
|
"tus": 4121,
|
||||||
"unclassified": 0,
|
"unclassified": 0,
|
||||||
"union_AD": {
|
"union_AD": {
|
||||||
"bodies": 15955,
|
"bodies": 15692,
|
||||||
"by_kind": {
|
"by_kind": {
|
||||||
"main": 180,
|
"main": 159,
|
||||||
"md": 182,
|
"md": 169,
|
||||||
"ov": 15258,
|
"ov": 15029,
|
||||||
"resident": 12,
|
"resident": 12,
|
||||||
"shared": 323
|
"shared": 323
|
||||||
},
|
},
|
||||||
"copies_in_multi": 14326,
|
"copies_in_multi": 14161,
|
||||||
"distinct_bodies": 2023,
|
"distinct_bodies": 1917,
|
||||||
"multi_copy_classes": 394
|
"multi_copy_classes": 386
|
||||||
},
|
},
|
||||||
"verbatim_excluded": {
|
"verbatim_excluded": {
|
||||||
"functions": 13,
|
"functions": 13,
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclassified 0 · verbatim excluded 13 fn / 14 sites (manifest 13)
|
lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclassified 0 · verbatim excluded 13 fn / 14 sites (manifest 13)
|
||||||
coverage asm raw 60785 = live 46804 + macro-block 7189 + comment/dead 6792
|
coverage asm raw 52269 = live 45070 + macro-block 407 + comment/dead 6792
|
||||||
coverage register raw 29301 = live 20696 + macro-block 18 + comment/dead 8587
|
coverage register raw 29301 = live 20696 + macro-block 18 + comment/dead 8587
|
||||||
coverage volatile raw 12554 = live 3437 + macro-block 6510 + comment/dead 2607
|
coverage volatile raw 4936 = live 2172 + macro-block 157 + comment/dead 2607
|
||||||
coverage builtin raw 599 = live 445 + macro-block 0 + comment/dead 154
|
coverage builtin raw 599 = live 445 + macro-block 0 + comment/dead 154
|
||||||
coverage attribute raw 76 = live 76 + macro-block 0 + comment/dead 0
|
coverage attribute raw 76 = live 76 + macro-block 0 + comment/dead 0
|
||||||
class sites in-bodies file-scope bodies distinct TUs marked unmarked kinds
|
class sites in-bodies file-scope bodies distinct TUs marked unmarked kinds
|
||||||
A pins 20646 20646 0 10329 1330 2580 20646 0 {'pin': 20646}
|
A pins 20646 20646 0 10329 1332 2580 20646 0 {'pin': 20646}
|
||||||
B asm 22552 22539 13 9758 1054 2289 13155 9397 {'gte': 6839, 'barrier': 4578, 'gte-lever': 49, 'gte-unsigned': 3, 'launder': 4676, 'instruction': 1712, 'keepalive': 2000, 'asm-body': 13, 'verbatim-body': 2682}
|
B asm 17352 17339 13 9469 928 2287 13154 4198 {'gte': 1412, 'barrier': 4578, 'gte-lever': 276, 'gte-unsigned': 3, 'launder': 4676, 'instruction': 1712, 'keepalive': 2000, 'asm-body': 13, 'verbatim-body': 2682}
|
||||||
C volatile 1722 1570 152 628 97 612 14 1708 {'decl-body': 58, 'decl-file': 152, 'cast': 1510, 'param': 2}
|
C volatile 1722 1570 152 628 99 612 14 1708 {'cast': 1510, 'decl-body': 58, 'decl-file': 152, 'param': 2}
|
||||||
D register 50 50 0 47 47 6 0 50 {'register': 50}
|
D register 50 50 0 47 47 6 0 50 {'register': 50}
|
||||||
E asm-label 7428 1005 6423 737 117 2080 0 7428 {'asm-label': 7428}
|
E asm-label 7428 1005 6423 737 117 2080 0 7428 {'asm-label': 7428}
|
||||||
F builtin 445 445 0 428 27 302 0 445 {'builtin': 445}
|
F builtin 445 445 0 428 27 302 0 445 {'builtin': 445}
|
||||||
G attribute 76 1 75 1 1 40 0 76 {'attribute': 76}
|
G attribute 76 1 75 1 1 40 0 76 {'attribute': 76}
|
||||||
UNION A–D: 15,955 bodies · 2,023 distinct (addresses normalized) · 394 multi-copy classes holding 14,326 bodies · by kind {'ov': 15258, 'shared': 323, 'main': 180, 'md': 182, 'resident': 12}
|
UNION A–D: 15,692 bodies · 1,917 distinct (addresses normalized) · 386 multi-copy classes holding 14,161 bodies · by kind {'ov': 15029, 'md': 169, 'shared': 323, 'main': 159, 'resident': 12}
|
||||||
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 33,674 sites in 12,518 bodies (1,745 distinct) · marked !FAKE 33,625 · UNMARKED 49
|
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 33,901 sites in 12,601 bodies (1,756 distinct) · marked !FAKE 33,665 · UNMARKED 236
|
||||||
orphan !FAKE markers (no pin/asm site on the line nor below): 0
|
orphan !FAKE markers (no pin/asm site on the line nor below): 241
|
||||||
GTE levers (clobbers beyond the canonical macro's): 49 sites (0 via a variant macro, 49 direct) · marked 0 · UNMARKED 49 · unsigned GTE statements 3
|
GTE levers (clobbers beyond the canonical macro's): 276 sites (24 via a variant macro, 252 direct) · marked 40 · UNMARKED 236 · unsigned GTE statements 3
|
||||||
per-TU asm macro definitions outside the GTE header: 9,540 {'gte': 9102, 'launder': 428, 'instruction': 9, 'barrier': 1} (GTE variants 0)
|
per-TU asm macro definitions outside the GTE header: 1,484 {'gte': 1046, 'instruction': 9, 'barrier': 1, 'launder': 428} (GTE variants 5)
|
||||||
pins: 20,646 · $0 1,321 · $sp 13 · with initializer 2,776 · volatile-qualified 134 · bare-name 25 · spellings {'__asm__': 20544, 'asm': 102}
|
pins: 20,646 · $0 1,321 · $sp 13 · with initializer 2,776 · volatile-qualified 134 · bare-name 25 · spellings {'__asm__': 20544, 'asm': 102}
|
||||||
whole-body asm routines in C shells, manifest PERMANENT (hand asm, NOT levers): 22 routines · 2,682 sites (2,660 private copies + 22 shared headers); asm-bodies NOT permanent (levers): 13 site(s) ['func_8001E378:DECOMPILE-NOW', 'func_80020F34:DECOMPILE-NOW', 'func_800249F0:DECOMPILE-NOW', 'func_80025CBC:DECOMPILE-NOW', 'func_80026514:UNCERTAIN', 'func_800268D0:UNCERTAIN', 'func_80027058:DECOMPILE-NOW', 'func_80027200:DECOMPILE-NOW', 'func_800CBA44:DECOMPILE-NOW', 'func_8017D810:DECOMPILE-NOW', 'func_8017E26C:UNCERTAIN', 'func_80184440:DECOMPILE-NOW', 'func_801A3BCC:DECOMPILE-NOW']
|
whole-body asm routines in C shells, manifest PERMANENT (hand asm, NOT levers): 22 routines · 2,682 sites (2,660 private copies + 22 shared headers); asm-bodies NOT permanent (levers): 13 site(s) ['func_8001E378:DECOMPILE-NOW', 'func_80020F34:DECOMPILE-NOW', 'func_800249F0:DECOMPILE-NOW', 'func_80025CBC:DECOMPILE-NOW', 'func_80026514:UNCERTAIN', 'func_800268D0:UNCERTAIN', 'func_80027058:DECOMPILE-NOW', 'func_80027200:DECOMPILE-NOW', 'func_800CBA44:DECOMPILE-NOW', 'func_8017D810:DECOMPILE-NOW', 'func_8017E26C:UNCERTAIN', 'func_80184440:DECOMPILE-NOW', 'func_801A3BCC:DECOMPILE-NOW']
|
||||||
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 4576, 'barrier/via-macro': 2, 'gte/direct': 1088, 'gte/via-macro': 5751, 'gte-lever/direct': 49, 'gte-unsigned/direct': 3, 'instruction/direct': 1690, 'instruction/via-macro': 22, 'keepalive/direct': 2000, 'launder/direct': 4236, 'launder/via-macro': 440, 'verbatim-body/direct': 2682}
|
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 4576, 'barrier/via-macro': 2, 'gte/direct': 425, 'gte/via-macro': 987, 'gte-lever/direct': 252, 'gte-lever/via-macro': 24, 'gte-unsigned/direct': 3, 'instruction/direct': 1690, 'instruction/via-macro': 22, 'keepalive/direct': 2000, 'launder/direct': 4236, 'launder/via-macro': 440, 'verbatim-body/direct': 2682}
|
||||||
instruction mnemonics: {'addu': 966, 'move': 406, 'la': 142, 'lh': 134, 'addiu': 22, 'RTP_SND': 22, '.section': 7, 'lui': 4, 'and': 2, 'mult': 1, 'mfhi': 1, 'sll': 1, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1}
|
instruction mnemonics: {'addu': 966, 'move': 406, 'la': 142, 'lh': 134, 'addiu': 22, 'RTP_SND': 22, '.section': 7, 'lui': 4, 'and': 2, 'mult': 1, 'mfhi': 1, 'li': 1, 'nop': 1, 'srl': 1, 'sll': 1, 'lw': 1}
|
||||||
gte mnemonics: {'gte_ldv0': 653, 'swc2': 449, 'lwc2': 432, 'gte_stsxy': 361, 'gte_rtps': 356, 'gte_stflg': 319, 'gte_rtpt': 289, 'gte_stsxy3': 191, 'gte_ldrgb': 162, 'gte_ldv3c': 159, 'gte_rt': 155, 'gte_SetRotMatrix': 150, 'gte_SetTransMatrix': 145, 'gte_stsv': 145, 'gte_stlvnl': 143, 'gte_ldv3': 140, 'gte_ldIR0z': 133, 'gte_ldIRGB': 133, 'gte_dpcl': 133, 'gte_stORGB': 133, 'gte_mvmva0': 131, 'gte_stsz4': 126, 'gte_stsz3': 123, 'gte_stszotz': 113, 'gte_nclip': 96, 'gte_stopz': 96, 'gte_stsxy3c': 94, 'lhu': 66, 'mfc2': 61, 'gte_stsxy3_f3': 61}
|
gte mnemonics: {'lwc2': 267, 'gte_ldIR0z': 133, 'gte_ldrgb': 133, 'gte_ldIRGB': 133, 'gte_dpcl': 133, 'gte_stORGB': 133, 'swc2': 129, 'gte_ldv0': 71, 'gte_stlvnl': 53, 'gte_mvmva0': 52, 'gte_SetRotMatrix': 33, 'gte_SetTransMatrix': 32, 'lw': 26, 'gte_rt': 21, 'gte_stsv': 18, 'SRM_80186B78': 12, 'STM_80186B78': 12, 'LDV': 3, 'STSV': 3, 'nop': 1, 'cfc2': 1, 'gte_ldlv0': 1, 'gte_rtps': 1, 'gte_stsxy': 1, 'gte_ldv3_80181E04': 1, 'gte_rtpt_80181E04': 1, 'gte_stflg_80181E04': 1, 'gte_stsxy01_80181E04': 1, 'gte_stsz3_80181E04': 1, 'gte_rtv0': 1}
|
||||||
asm-bearing macro definitions: 9,540 (338 names, 32 with >1 text) kinds {'gte': 9102, 'launder': 428, 'instruction': 9, 'barrier': 1}
|
asm-bearing macro definitions: 1,484 (45 names, 5 with >1 text) kinds {'gte': 1046, 'instruction': 9, 'barrier': 1, 'launder': 428}
|
||||||
controls (R39):
|
controls (R39):
|
||||||
src/800.c func_800226C0 pins got 14 expected 45 N-A
|
src/800.c func_800226C0 pins got 14 expected 45 N-A
|
||||||
src/shared/ov/func_80178004.h pins got 8 expected 26 N-A
|
src/shared/ov/func_80178004.h pins got 8 expected 26 N-A
|
||||||
ov_SC03_006 func_80184034 bare-name pins got 0 expected 3 N-A
|
ov_SC03_006 func_80184034 bare-name pins got 0 expected 3 N-A
|
||||||
engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK
|
engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK
|
||||||
elapsed 50.8 s
|
elapsed 36.4 s
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
delever_oracle --calibrate main ov_SC03_014 ov_SC03_015 ov_SC04_011: 177/177 objects byte-identical untouched; twin checks 32 (0 mismatch); positive control DIFFERS on build/src/800.o; 3.3 s — OK
|
||||||
|
main 85/85 identical, mean 0.116 s per object
|
||||||
|
ov_SC03_014 32/32 identical, mean 0.207 s per object
|
||||||
|
ov_SC03_015 32/32 identical, mean 0.185 s per object
|
||||||
|
ov_SC04_011 28/28 identical, mean 0.201 s per object
|
||||||
+183
-183
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"head": "0cb78a6a7",
|
"head": "0bd784c64",
|
||||||
"stamp": "b44c5a8a3423",
|
"stamp": "b44c5a8a3423",
|
||||||
"generated": "2026-09-09 04:51",
|
"generated": "2026-09-09 05:29",
|
||||||
"aliases": [
|
"aliases": [
|
||||||
"main",
|
"main",
|
||||||
"ov_SC03_014",
|
"ov_SC03_014",
|
||||||
@@ -21,207 +21,207 @@
|
|||||||
"main": {
|
"main": {
|
||||||
"objects": 85,
|
"objects": 85,
|
||||||
"identical": 85,
|
"identical": 85,
|
||||||
"seconds": 9.617999999999999,
|
"seconds": 9.876999999999999,
|
||||||
"mean_s": 0.113
|
"mean_s": 0.116
|
||||||
},
|
},
|
||||||
"ov_SC03_014": {
|
"ov_SC03_014": {
|
||||||
"objects": 32,
|
"objects": 32,
|
||||||
"identical": 32,
|
"identical": 32,
|
||||||
"seconds": 6.0600000000000005,
|
"seconds": 6.617,
|
||||||
"mean_s": 0.189
|
"mean_s": 0.207
|
||||||
},
|
},
|
||||||
"ov_SC03_015": {
|
"ov_SC03_015": {
|
||||||
"objects": 32,
|
"objects": 32,
|
||||||
"identical": 32,
|
"identical": 32,
|
||||||
"seconds": 5.9430000000000005,
|
"seconds": 5.929000000000002,
|
||||||
"mean_s": 0.186
|
"mean_s": 0.185
|
||||||
},
|
},
|
||||||
"ov_SC04_011": {
|
"ov_SC04_011": {
|
||||||
"objects": 28,
|
"objects": 28,
|
||||||
"identical": 28,
|
"identical": 28,
|
||||||
"seconds": 4.99,
|
"seconds": 5.6160000000000005,
|
||||||
"mean_s": 0.178
|
"mean_s": 0.201
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"per_object_seconds": {
|
"per_object_seconds": {
|
||||||
"build/src/800.o": 1.301,
|
"build/src/800.o": 1.092,
|
||||||
"build/src/800_b.o": 0.086,
|
"build/src/800_b.o": 0.108,
|
||||||
"build/src/800_b_2.o": 0.373,
|
"build/src/800_b_2.o": 0.447,
|
||||||
"build/src/800_b_o0a.o": 0.081,
|
"build/src/800_b_o0a.o": 0.167,
|
||||||
"build/src/800_c.o": 0.281,
|
"build/src/800_c.o": 0.345,
|
||||||
"build/src/800b2.o": 0.085,
|
"build/src/800b2.o": 0.11,
|
||||||
"build/src/apicard1.o": 0.107,
|
"build/src/apicard1.o": 0.08,
|
||||||
"build/src/apicard2.o": 0.084,
|
"build/src/apicard2.o": 0.129,
|
||||||
"build/src/apicard3.o": 0.108,
|
"build/src/apicard3.o": 0.089,
|
||||||
"build/src/apicard4.o": 0.116,
|
"build/src/apicard4.o": 0.088,
|
||||||
"build/src/apicard5.o": 0.145,
|
"build/src/apicard5.o": 0.138,
|
||||||
"build/src/apicard6.o": 0.113,
|
"build/src/apicard6.o": 0.08,
|
||||||
"build/src/apicard7.o": 0.078,
|
"build/src/apicard7.o": 0.11,
|
||||||
"build/src/boot.o": 0.102,
|
"build/src/boot.o": 0.118,
|
||||||
"build/src/gap.o": 0.086,
|
"build/src/gap.o": 0.105,
|
||||||
"build/src/libapi1.o": 0.171,
|
"build/src/libapi1.o": 0.096,
|
||||||
"build/src/libapi2.o": 0.103,
|
"build/src/libapi2.o": 0.086,
|
||||||
"build/src/libc2_1.o": 0.077,
|
"build/src/libc2_1.o": 0.083,
|
||||||
"build/src/libc2_2.o": 0.072,
|
"build/src/libc2_2.o": 0.078,
|
||||||
"build/src/libcd1.o": 0.103,
|
"build/src/libcd1.o": 0.123,
|
||||||
"build/src/libcd2.o": 0.067,
|
"build/src/libcd2.o": 0.07,
|
||||||
"build/src/libetc.o": 0.082,
|
"build/src/libetc.o": 0.069,
|
||||||
"build/src/libgpu.o": 0.078,
|
"build/src/libgpu.o": 0.136,
|
||||||
"build/src/libgpu2.o": 0.091,
|
"build/src/libgpu2.o": 0.145,
|
||||||
"build/src/libgs1.o": 0.106,
|
"build/src/libgs1.o": 0.071,
|
||||||
"build/src/libgs2.o": 0.103,
|
"build/src/libgs2.o": 0.076,
|
||||||
"build/src/libgs3.o": 0.099,
|
"build/src/libgs3.o": 0.067,
|
||||||
"build/src/libgs4.o": 0.086,
|
"build/src/libgs4.o": 0.09,
|
||||||
"build/src/libgs5.o": 0.113,
|
"build/src/libgs5.o": 0.082,
|
||||||
"build/src/libgs6.o": 0.112,
|
"build/src/libgs6.o": 0.144,
|
||||||
"build/src/libgs7.o": 0.089,
|
"build/src/libgs7.o": 0.076,
|
||||||
"build/src/libgs8.o": 0.066,
|
"build/src/libgs8.o": 0.066,
|
||||||
"build/src/libgte1.o": 0.132,
|
"build/src/libgte1.o": 0.076,
|
||||||
"build/src/libgte10.o": 0.08,
|
"build/src/libgte10.o": 0.065,
|
||||||
"build/src/libgte11.o": 0.077,
|
"build/src/libgte11.o": 0.067,
|
||||||
"build/src/libgte12.o": 0.154,
|
"build/src/libgte12.o": 0.074,
|
||||||
"build/src/libgte13.o": 0.078,
|
"build/src/libgte13.o": 0.075,
|
||||||
"build/src/libgte14.o": 0.086,
|
"build/src/libgte14.o": 0.064,
|
||||||
"build/src/libgte15.o": 0.061,
|
"build/src/libgte15.o": 0.159,
|
||||||
"build/src/libgte16.o": 0.178,
|
"build/src/libgte16.o": 0.074,
|
||||||
"build/src/libgte17.o": 0.072,
|
"build/src/libgte17.o": 0.074,
|
||||||
"build/src/libgte18.o": 0.079,
|
"build/src/libgte18.o": 0.137,
|
||||||
"build/src/libgte19.o": 0.088,
|
"build/src/libgte19.o": 0.062,
|
||||||
"build/src/libgte2.o": 0.068,
|
"build/src/libgte2.o": 0.135,
|
||||||
"build/src/libgte20.o": 0.069,
|
"build/src/libgte20.o": 0.069,
|
||||||
"build/src/libgte21.o": 0.084,
|
"build/src/libgte21.o": 0.067,
|
||||||
"build/src/libgte22.o": 0.101,
|
"build/src/libgte22.o": 0.084,
|
||||||
"build/src/libgte23.o": 0.126,
|
"build/src/libgte23.o": 0.077,
|
||||||
"build/src/libgte24.o": 0.069,
|
"build/src/libgte24.o": 0.092,
|
||||||
"build/src/libgte25.o": 0.126,
|
"build/src/libgte25.o": 0.109,
|
||||||
"build/src/libgte26.o": 0.114,
|
"build/src/libgte26.o": 0.08,
|
||||||
"build/src/libgte27.o": 0.091,
|
"build/src/libgte27.o": 0.078,
|
||||||
"build/src/libgte28.o": 0.064,
|
"build/src/libgte28.o": 0.097,
|
||||||
"build/src/libgte29.o": 0.066,
|
"build/src/libgte29.o": 0.073,
|
||||||
"build/src/libgte3.o": 0.064,
|
"build/src/libgte3.o": 0.076,
|
||||||
"build/src/libgte30.o": 0.122,
|
"build/src/libgte30.o": 0.108,
|
||||||
"build/src/libgte4.o": 0.08,
|
"build/src/libgte4.o": 0.082,
|
||||||
"build/src/libgte5.o": 0.084,
|
"build/src/libgte5.o": 0.076,
|
||||||
"build/src/libgte6.o": 0.068,
|
"build/src/libgte6.o": 0.098,
|
||||||
"build/src/libgte7.o": 0.066,
|
"build/src/libgte7.o": 0.15,
|
||||||
"build/src/libgte8.o": 0.104,
|
"build/src/libgte8.o": 0.205,
|
||||||
"build/src/libgte9.o": 0.062,
|
"build/src/libgte9.o": 0.162,
|
||||||
"build/src/libmcrd1.o": 0.079,
|
"build/src/libmcrd1.o": 0.078,
|
||||||
"build/src/libmcrd2.o": 0.08,
|
"build/src/libmcrd2.o": 0.077,
|
||||||
"build/src/libpad1.o": 0.063,
|
"build/src/libpad1.o": 0.12,
|
||||||
"build/src/libpad2.o": 0.104,
|
"build/src/libpad2.o": 0.069,
|
||||||
"build/src/sgap.o": 0.102,
|
"build/src/sgap.o": 0.085,
|
||||||
"build/src/sgap_2.o": 0.205,
|
"build/src/sgap_2.o": 0.076,
|
||||||
"build/src/sgap_3.o": 0.113,
|
"build/src/sgap_3.o": 0.09,
|
||||||
"build/src/sgap_4.o": 0.155,
|
"build/src/sgap_4.o": 0.107,
|
||||||
"build/src/sgap_5.o": 0.073,
|
"build/src/sgap_5.o": 0.067,
|
||||||
"build/src/sgap_6.o": 0.078,
|
"build/src/sgap_6.o": 0.217,
|
||||||
"build/src/sgap_8.o": 0.079,
|
"build/src/sgap_8.o": 0.088,
|
||||||
"build/src/snd1.o": 0.071,
|
"build/src/snd1.o": 0.094,
|
||||||
"build/src/snd10.o": 0.079,
|
"build/src/snd10.o": 0.079,
|
||||||
"build/src/snd11.o": 0.093,
|
"build/src/snd11.o": 0.076,
|
||||||
"build/src/snd12.o": 0.12,
|
"build/src/snd12.o": 0.16,
|
||||||
"build/src/snd2.o": 0.073,
|
"build/src/snd2.o": 0.097,
|
||||||
"build/src/snd3.o": 0.081,
|
"build/src/snd3.o": 0.071,
|
||||||
"build/src/snd4.o": 0.071,
|
"build/src/snd4.o": 0.073,
|
||||||
"build/src/snd5.o": 0.073,
|
"build/src/snd5.o": 0.117,
|
||||||
"build/src/snd6.o": 0.075,
|
"build/src/snd6.o": 0.097,
|
||||||
"build/src/snd7.o": 0.067,
|
"build/src/snd7.o": 0.091,
|
||||||
"build/src/snd8.o": 0.13,
|
"build/src/snd8.o": 0.114,
|
||||||
"build/src/snd9.o": 0.077,
|
"build/src/snd9.o": 0.125,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014.o": 0.146,
|
"build/src/ov_SC03_014/ov_SC03_014.o": 0.254,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_after.o": 0.621,
|
"build/src/ov_SC03_014/ov_SC03_014_after.o": 0.677,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.473,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.457,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.07,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.093,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.065,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.098,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.133,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.175,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.169,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.302,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.134,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.129,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.193,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.18,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.082,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.11,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.299,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.279,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.127,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.08,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.226,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.203,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.136,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.109,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.078,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.077,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.119,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.098,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.14,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.131,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.656,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.684,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.318,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.465,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.123,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.105,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.228,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.218,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.072,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.07,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.116,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.157,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.08,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.084,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.213,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.2,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.236,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.233,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.057,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.133,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.417,
|
"build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.503,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.067,
|
"build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.083,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.073,
|
"build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.077,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.073,
|
"build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.071,
|
||||||
"build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.12,
|
"build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.082,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015.o": 0.168,
|
"build/src/ov_SC03_015/ov_SC03_015.o": 0.139,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.732,
|
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.592,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.495,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.473,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.066,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.085,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.06,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.06,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.123,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.21,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.172,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.177,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.118,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.18,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.117,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.078,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.105,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.069,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.263,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.201,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.131,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.122,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.185,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.214,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.109,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.1,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.096,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.075,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.082,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.085,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.109,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.109,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.53,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.545,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.341,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.333,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.104,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.116,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.232,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.324,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.069,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.073,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.118,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.114,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.101,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.093,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.195,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.187,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.257,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.335,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.059,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.069,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.472,
|
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.331,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.068,
|
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.106,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.067,
|
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.089,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.065,
|
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.08,
|
||||||
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.134,
|
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.165,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011.o": 0.229,
|
"build/src/ov_SC04_011/ov_SC04_011.o": 0.142,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.513,
|
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.502,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.426,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.45,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.055,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.139,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.08,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.103,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.165,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.131,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.184,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.187,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.127,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.217,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.078,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.12,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.094,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.148,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.213,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.206,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.126,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.119,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.173,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.269,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.093,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.135,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.105,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.084,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.086,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.123,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.103,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.104,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.428,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.433,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.251,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.274,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.117,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.122,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.225,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.303,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.085,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.075,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.134,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.118,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.099,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.088,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.125,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.139,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.541,
|
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.733,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.06,
|
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.079,
|
||||||
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.075
|
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.073
|
||||||
},
|
},
|
||||||
"ok": true,
|
"ok": true,
|
||||||
"seconds": 3.0
|
"seconds": 3.3
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,405 @@
|
|||||||
|
delever: the census describes another tree (stamp 95f31b0d3534a95a); rerun tools/lever_census.py --sites -j 16 — running the census now
|
||||||
|
gte_consolidate --apply gte1: 400 files of 644 with work (0 done) — 8141 definitions, 897 direct statements
|
||||||
|
05:49:26 src/ov_SC03_090/ov_SC03_090_jr_8017CA80.c: CONSOLIDATED — deleted 38 defs, renamed 0, use renames 0, direct calls 4, direct levers 6, unmatched 0, marked 6
|
||||||
|
05:49:26 src/md_MAIN_034/md_MAIN_034.c: CONSOLIDATED — deleted 94 defs, renamed 0, use renames 8, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:28 src/ov_SC07_001/ov_SC07_001_jr_8017BEBC.c: CONSOLIDATED — deleted 67 defs, renamed 0, use renames 30, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:28 src/ov_SC03_112/ov_SC03_112_jr_8017C294.c: CONSOLIDATED — deleted 50 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:29 src/ov_SC06_029/ov_SC06_029_jr_8017C954.c: CONSOLIDATED — deleted 74 defs, renamed 0, use renames 4, direct calls 1, direct levers 1, unmatched 1, marked 1
|
||||||
|
05:49:29 src/ov_SC03_030/ov_SC03_030_jr_8017AE2C.c: CONSOLIDATED — deleted 35 defs, renamed 0, use renames 10, direct calls 5, direct levers 7, unmatched 1, marked 7
|
||||||
|
05:49:29 src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.c: CONSOLIDATED — deleted 58 defs, renamed 0, use renames 39, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:30 src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c: CONSOLIDATED — deleted 58 defs, renamed 0, use renames 39, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:30 src/ov_SC06_032/ov_SC06_032_jr_80182890.c: CONSOLIDATED — deleted 66 defs, renamed 0, use renames 0, direct calls 2, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:30 src/ov_SC07_002/ov_SC07_002_jr_8017C8D0.c: CONSOLIDATED — deleted 45 defs, renamed 0, use renames 42, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:31 src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c: CONSOLIDATED — deleted 44 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:31 src/ov_SC05_002/ov_SC05_002_jr_8017BEBC.c: CONSOLIDATED — deleted 46 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:31 src/ov_SC03_113/ov_SC03_113_jr_8017C294.c: CONSOLIDATED — deleted 50 defs, renamed 0, use renames 8, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:32 src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c: CONSOLIDATED — deleted 43 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:32 src/ov_SC03_101/ov_SC03_101_jr_8017CA80.c: CONSOLIDATED — deleted 36 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:32 src/ov_SC03_089/ov_SC03_089_jr_8017CA80.c: CONSOLIDATED — deleted 34 defs, renamed 0, use renames 0, direct calls 4, direct levers 6, unmatched 0, marked 6
|
||||||
|
05:49:33 src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c: CONSOLIDATED — deleted 40 defs, renamed 0, use renames 39, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:33 src/ov_SC03_102/ov_SC03_102_jr_8017BEBC.c: CONSOLIDATED — deleted 37 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:34 src/ov_SC02_027/ov_SC02_027_jr_8017D898.c: CONSOLIDATED — deleted 34 defs, renamed 0, use renames 3, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:35 src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c: CONSOLIDATED — deleted 41 defs, renamed 0, use renames 38, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:35 src/ov_SC06_032/ov_SC06_032_jr_8017C24C.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 6, direct calls 14, direct levers 0, unmatched 2, marked 0
|
||||||
|
05:49:36 src/ov_SC04_011/ov_SC04_011_jr_8017D494.c: CONSOLIDATED — deleted 46 defs, renamed 0, use renames 11, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:36 src/ov_SC02_017/ov_SC02_017_jr_8017DF34.c: CONSOLIDATED — deleted 31 defs, renamed 0, use renames 9, direct calls 1, direct levers 2, unmatched 1, marked 2
|
||||||
|
05:49:37 src/ov_SC04_003/ov_SC04_003_jr_8017BEBC.c: CONSOLIDATED — deleted 34 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:37 src/ov_SC03_111/ov_SC03_111_jr_8017EC58.c: CONSOLIDATED — deleted 43 defs, renamed 0, use renames 9, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:37 src/md_SC07_004/md_SC07_004.c: CONSOLIDATED — deleted 33 defs, renamed 0, use renames 28, direct calls 0, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:49:38 src/ov_SC06_018/ov_SC06_018_jr_8017C24C.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 6, direct calls 14, direct levers 0, unmatched 4, marked 0
|
||||||
|
05:49:38 src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c: CONSOLIDATED — deleted 55 defs, renamed 0, use renames 13, direct calls 2, direct levers 6, unmatched 1, marked 6
|
||||||
|
05:49:39 src/ov_SC06_020/ov_SC06_020_jr_8017C24C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 16, direct levers 0, unmatched 2, marked 0
|
||||||
|
05:49:39 src/ov_SC07_000/ov_SC07_000_jr_8017BEBC.c: CONSOLIDATED — deleted 31 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:39 src/ov_SC03_103/ov_SC03_103_jr_8017C294.c: CONSOLIDATED — deleted 34 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:39 src/ov_SC03_091/ov_SC03_091_jr_8017D898.c: CONSOLIDATED — deleted 30 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:39 src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.c: CONSOLIDATED — deleted 31 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:39 src/ov_SC06_024/ov_SC06_024_jr_8017BEBC.c: CONSOLIDATED — deleted 32 defs, renamed 0, use renames 24, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:39 src/ov_SC03_104/ov_SC03_104_jr_8017CA80.c: CONSOLIDATED — deleted 30 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:40 src/ov_SC03_104/ov_SC03_104_jr_80182038.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 4, direct levers 6, unmatched 0, marked 6
|
||||||
|
05:49:40 src/ov_SC03_118/ov_SC03_118_jr_8017FB84.c: CONSOLIDATED — deleted 32 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:40 src/ov_SC06_010/ov_SC06_010_jr_8017A4AC.c: CONSOLIDATED — deleted 33 defs, renamed 0, use renames 6, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:41 src/ov_SC01_001/ov_SC01_001_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:41 src/ov_SC01_000/ov_SC01_000_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:41 src/ov_SC01_004/ov_SC01_004_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:41 src/ov_SC01_009/ov_SC01_009_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:41 src/ov_SC01_008/ov_SC01_008_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:41 src/ov_SC01_074/ov_SC01_074_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:41 src/ov_SC01_080/ov_SC01_080_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:41 src/ov_SC01_084/ov_SC01_084_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC01_005/ov_SC01_005_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_005/ov_SC02_005_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_004/ov_SC02_004_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_011/ov_SC02_011_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_015/ov_SC02_015_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_016/ov_SC02_016_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_017/ov_SC02_017_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_000/ov_SC02_000_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_021/ov_SC02_021_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_026/ov_SC02_026_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:42 src/ov_SC02_037/ov_SC02_037.c: CONSOLIDATED — deleted 29 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:43 src/ov_SC02_027/ov_SC02_027_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:43 src/ov_SC02_031/ov_SC02_031_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:43 src/ov_SC02_035/ov_SC02_035_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:43 src/ov_SC02_039/ov_SC02_039_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:43 src/ov_SC02_028/ov_SC02_028_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:43 src/ov_SC02_041/ov_SC02_041_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_010/ov_SC03_010_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_003/ov_SC03_003_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_011/ov_SC03_011_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_006/ov_SC03_006_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_012/ov_SC03_012_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_023/ov_SC03_023_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_007/ov_SC03_007_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_002/ov_SC03_002_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_001/ov_SC03_001_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:44 src/ov_SC03_013/ov_SC03_013_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:45 src/ov_SC03_024/ov_SC03_024_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:45 src/ov_SC03_028/ov_SC03_028_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:45 src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:45 src/ov_SC03_029/ov_SC03_029_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:46 src/ov_SC03_030/ov_SC03_030_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:46 src/ov_SC03_091/ov_SC03_091_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:47 src/ov_SC03_092/ov_SC03_092_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:48 src/ov_SC03_089/ov_SC03_089_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:48 src/ov_SC03_031/ov_SC03_031_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:48 src/ov_SC03_090/ov_SC03_090_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:49 src/ov_SC03_100/ov_SC03_100_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:49 src/ov_SC03_093/ov_SC03_093_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:49 src/ov_SC03_094/ov_SC03_094_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:50 src/ov_SC03_097/ov_SC03_097_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:50 src/ov_SC03_103/ov_SC03_103_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:51 src/ov_SC03_098/ov_SC03_098_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:51 src/ov_SC03_095/ov_SC03_095_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:51 src/ov_SC03_096/ov_SC03_096_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:51 src/ov_SC03_099/ov_SC03_099_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:52 src/ov_SC03_101/ov_SC03_101_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:53 src/ov_SC03_107/ov_SC03_107.c: CONSOLIDATED — deleted 29 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:49:53 src/ov_SC03_102/ov_SC03_102_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:53 src/ov_SC03_111/ov_SC03_111_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:54 src/ov_SC03_104/ov_SC03_104_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:54 src/ov_SC03_105/ov_SC03_105_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:54 src/ov_SC03_113/ov_SC03_113_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:54 src/ov_SC03_109/ov_SC03_109_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:54 src/ov_SC03_108/ov_SC03_108_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:55 src/ov_SC03_110/ov_SC03_110_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:56 src/ov_SC03_112/ov_SC03_112_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:57 src/ov_SC03_125/ov_SC03_125_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:58 src/ov_SC03_114/ov_SC03_114_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:58 src/ov_SC03_116/ov_SC03_116_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:58 src/ov_SC03_121/ov_SC03_121_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:58 src/ov_SC03_118/ov_SC03_118_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:58 src/ov_SC03_115/ov_SC03_115_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:59 src/ov_SC03_117/ov_SC03_117_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:49:59 src/ov_SC03_124/ov_SC03_124_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:00 src/ov_SC04_000/ov_SC04_000_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:00 src/ov_SC04_002/ov_SC04_002_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:00 src/ov_SC04_003/ov_SC04_003_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:00 src/ov_SC04_006/ov_SC04_006_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:01 src/ov_SC04_004/ov_SC04_004_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:02 src/ov_SC04_008/ov_SC04_008_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:03 src/ov_SC04_005/ov_SC04_005_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:03 src/ov_SC04_007/ov_SC04_007_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:03 src/ov_SC04_009/ov_SC04_009_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:03 src/ov_SC04_010/ov_SC04_010_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:04 src/ov_SC04_020/ov_SC04_020_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:05 src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:05 src/ov_SC04_012/ov_SC04_012_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:05 src/ov_SC04_018/ov_SC04_018_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:05 src/ov_SC04_015/ov_SC04_015_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:05 src/ov_SC04_016/ov_SC04_016_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:06 src/ov_SC05_003/ov_SC05_003_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:07 src/ov_SC05_000/ov_SC05_000_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:08 src/ov_SC05_001/ov_SC05_001_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:08 src/ov_SC05_002/ov_SC05_002_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:08 src/ov_SC05_004/ov_SC05_004_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:08 src/ov_SC05_017/ov_SC05_017_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:09 src/ov_SC05_007/ov_SC05_007_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:09 src/ov_SC05_008/ov_SC05_008_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:09 src/ov_SC05_005/ov_SC05_005_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:09 src/ov_SC05_011/ov_SC05_011_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:10 src/ov_SC05_006/ov_SC05_006_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:10 src/ov_SC05_009/ov_SC05_009_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:10 src/ov_SC05_010/ov_SC05_010_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:13 src/ov_SC06_000/ov_SC06_000_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:13 src/ov_SC06_006/ov_SC06_006_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:13 src/ov_SC05_018/ov_SC05_018_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:13 src/ov_SC06_016/ov_SC06_016_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:14 src/ov_SC06_008/ov_SC06_008_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:14 src/ov_SC06_013/ov_SC06_013_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:14 src/ov_SC06_010/ov_SC06_010_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:14 src/ov_SC06_011/ov_SC06_011_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:14 src/ov_SC06_014/ov_SC06_014_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:15 src/ov_SC06_015/ov_SC06_015_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:15 src/ov_SC06_018/ov_SC06_018_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:16 src/ov_SC06_008/ov_SC06_008_jr_8017C294.c: CONSOLIDATED — deleted 27 defs, renamed 1, use renames 12, direct calls 0, direct levers 0, unmatched 0, marked 6
|
||||||
|
05:50:17 src/ov_SC06_027/ov_SC06_027_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:17 src/ov_SC07_000/ov_SC07_000_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:17 src/ov_SC06_020/ov_SC06_020_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:17 src/ov_SC06_022/ov_SC06_022_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:17 src/ov_SC06_030/ov_SC06_030_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:18 src/ov_SC06_024/ov_SC06_024_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:19 src/ov_SC06_032/ov_SC06_032_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:19 src/ov_SC06_029/ov_SC06_029_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:19 src/ov_SC06_025/ov_SC06_025_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:20 src/ov_SC07_002/ov_SC07_002_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:20 src/ov_SC07_008/ov_SC07_008_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:21 src/ov_SC07_001/ov_SC07_001_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:21 src/ov_SC06_033/ov_SC06_033_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:21 src/ov_SC02_016/ov_SC02_016_jr_8017DC70.c: CONSOLIDATED — deleted 23 defs, renamed 0, use renames 1, direct calls 3, direct levers 1, unmatched 0, marked 1
|
||||||
|
05:50:21 src/ov_SC02_028/ov_SC02_028_jr_8017D898.c: CONSOLIDATED — deleted 24 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:21 src/ov_SC03_126/ov_SC03_126_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:22 src/ov_SC07_009/ov_SC07_009_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:23 src/ov_SC02_039/ov_SC02_039_jr_8017BEBC.c: CONSOLIDATED — deleted 22 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:23 src/ov_SC05_019/ov_SC05_019_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:24 src/ov_SC03_097/ov_SC03_097_jr_8017D898.c: CONSOLIDATED — deleted 24 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:24 src/ov_SC04_021/ov_SC04_021_jr_8012ACE0.c: CONSOLIDATED — deleted 27 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:25 src/ov_SC04_009/ov_SC04_009_jr_8017BEBC.c: CONSOLIDATED — deleted 22 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:25 src/ov_SC02_015/ov_SC02_015_jr_8017AE2C.c: CONSOLIDATED — deleted 23 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:25 src/ov_SC02_021/ov_SC02_021_jr_8017C294.c: CONSOLIDATED — deleted 23 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:25 src/ov_SC03_108/ov_SC03_108_jr_8017BEBC.c: CONSOLIDATED — deleted 22 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:26 src/ov_SC03_114/ov_SC03_114_jr_8017BEBC.c: CONSOLIDATED — deleted 24 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:27 src/ov_SC02_026/ov_SC02_026_jr_8017C180.c: CONSOLIDATED — deleted 18 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 4, marked 0
|
||||||
|
05:50:27 src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c: CONSOLIDATED — deleted 25 defs, renamed 0, use renames 12, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:27 src/ov_SC04_006/ov_SC04_006_jr_8017BEBC.c: CONSOLIDATED — deleted 18 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 3, marked 0
|
||||||
|
05:50:27 src/ov_SC06_033/ov_SC06_033_jr_8017C24C.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 6, direct calls 0, direct levers 0, unmatched 4, marked 0
|
||||||
|
05:50:28 src/ov_SC03_031/ov_SC03_031_jr_8017DB5C.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 1, direct calls 1, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:50:28 src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c: CONSOLIDATED — deleted 21 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:29 src/ov_SC03_107/ov_SC03_107_jr_801789AC.c: CONSOLIDATED — deleted 28 defs, renamed 0, use renames 8, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:29 src/ov_SC03_006/ov_SC03_006_jr_8017AE2C.c: CONSOLIDATED — deleted 22 defs, renamed 0, use renames 6, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:29 src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 5, marked 0
|
||||||
|
05:50:30 src/ov_SC03_007/ov_SC03_007_jr_8017AE2C.c: CONSOLIDATED — deleted 22 defs, renamed 0, use renames 4, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:30 src/ov_SC03_028/ov_SC03_028_jr_8017DF98.c: CONSOLIDATED — deleted 22 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:30 src/ov_SC06_033/ov_SC06_033_jr_80186574.c: CONSOLIDATED — deleted 22 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:31 src/ov_SC02_037/ov_SC02_037_jr_8017AE2C.c: CONSOLIDATED — deleted 21 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:32 src/ov_SC03_095/ov_SC03_095_jr_8017BEBC.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:32 src/ov_SC02_035/ov_SC02_035_jr_8017BEBC.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:32 src/ov_SC03_094/ov_SC03_094_jr_8017BEBC.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:32 src/ov_SC03_093/ov_SC03_093_jr_8017D898.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:33 src/ov_SC03_096/ov_SC03_096_jr_8017BEBC.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:34 src/ov_SC03_100/ov_SC03_100_jr_8017D898.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:34 src/ov_SC03_099/ov_SC03_099_jr_8017BEBC.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:34 src/ov_SC05_009/ov_SC05_009_jr_8017BEBC.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:34 src/ov_SC03_098/ov_SC03_098_jr_8017D898.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:34 src/ov_SC03_109/ov_SC03_109_jr_8017C180.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:36 src/ov_MAIN_012/ov_MAIN_012.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:36 src/md_SC07_003/md_SC07_003.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:37 src/ov_SC07_007/ov_SC07_007.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:37 src/ov_SC03_105/ov_SC03_105_jr_80181C84.c: CONSOLIDATED — deleted 20 defs, renamed 0, use renames 44, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:37 src/ov_SC03_010/ov_SC03_010_jr_8017C730.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:38 src/ov_SC01_077/ov_SC01_077_jr_8012ACE0.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:39 src/ov_SC05_005/ov_SC05_005_jr_8017D898.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 2, marked 0
|
||||||
|
05:50:39 src/ov_SC07_006/ov_SC07_006.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:39 src/ov_SC06_011/ov_SC06_011_jr_8017BEBC.c: CONSOLIDATED — deleted 18 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:39 src/ov_SC04_000/ov_SC04_000_jr_8017BEBC.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:39 src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.c: CONSOLIDATED — deleted 19 defs, renamed 1, use renames 12, direct calls 0, direct levers 0, unmatched 0, marked 6
|
||||||
|
05:50:40 src/ov_SC03_092/ov_SC03_092_jr_80181694.c: CONSOLIDATED — deleted 18 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:40 src/ov_SC03_091/ov_SC03_091_jr_8018326C.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 0, direct calls 4, direct levers 6, unmatched 0, marked 6
|
||||||
|
05:50:40 src/ov_SC03_105/ov_SC03_105_jr_80186DDC.c: CONSOLIDATED — deleted 18 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:41 src/ov_SC07_010/ov_SC07_010.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:41 src/ov_SC03_013/ov_SC03_013_jr_8017C730.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:42 src/ov_SC07_011/ov_SC07_011.c: CONSOLIDATED — deleted 19 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:42 src/ov_SC01_001/ov_SC01_001_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:42 src/ov_SC02_031/ov_SC02_031_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:43 src/ov_SC01_008/ov_SC01_008_jr_8017BE9C.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:43 src/ov_SC06_014/ov_SC06_014_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 1, unmatched 0, marked 1
|
||||||
|
05:50:43 src/ov_SC06_013/ov_SC06_013_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 1, unmatched 0, marked 1
|
||||||
|
05:50:44 src/ov_SC06_015/ov_SC06_015_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 1, unmatched 0, marked 1
|
||||||
|
05:50:44 src/ov_SC01_000/ov_SC01_000_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:44 src/ov_SC06_027/ov_SC06_027_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:50:45 src/ov_SC01_084/ov_SC01_084_jr_8017CA80.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:45 src/ov_SC01_004/ov_SC01_004_jr_8017BE9C.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:45 src/ov_SC01_005/ov_SC01_005_jr_8017C340.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:46 src/ov_SC01_009/ov_SC01_009_jr_8017BE9C.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:46 src/ov_SC03_011/ov_SC03_011_jr_8017C730.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:46 src/ov_SC01_074/ov_SC01_074_jr_8017BE9C.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:47 src/ov_SC03_001/ov_SC03_001_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:47 src/ov_SC03_002/ov_SC03_002_jr_8017D604.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:48 src/ov_SC03_003/ov_SC03_003_jr_8017D5C0.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:48 src/ov_SC03_105/ov_SC03_105_jr_8017C8D0.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:48 src/ov_SC03_117/ov_SC03_117_jr_8017BEBC.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:48 src/ov_SC03_024/ov_SC03_024_jr_8017DF84.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:49 src/ov_SC03_029/ov_SC03_029_jr_8017DC70.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:50 src/ov_SC03_115/ov_SC03_115_jr_8017BEBC.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:50 src/ov_SC03_110/ov_SC03_110_jr_8017D898.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:50 src/ov_SC03_124/ov_SC03_124_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:50 src/ov_SC04_012/ov_SC04_012_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:50 src/ov_SC03_121/ov_SC03_121_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:51 src/ov_SC04_004/ov_SC04_004_jr_8017AE2C.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:51 src/ov_SC03_126/ov_SC03_126_jr_8017D5C0.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:52 src/ov_SC03_125/ov_SC03_125_jr_8017D604.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:52 src/ov_SC04_021/ov_SC04_021_jr_8017D5C0.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:53 src/ov_SC04_008/ov_SC04_008_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:53 src/ov_SC04_010/ov_SC04_010_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:53 src/ov_SC04_015/ov_SC04_015_jr_8017AE2C.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:53 src/ov_SC05_004/ov_SC05_004_jr_8017BEBC.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:54 src/ov_SC04_016/ov_SC04_016_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:54 src/ov_SC05_000/ov_SC05_000_jr_8017BEBC.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:55 src/ov_SC04_020/ov_SC04_020_jr_8017D604.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:55 src/ov_SC05_007/ov_SC05_007_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:55 src/ov_SC04_018/ov_SC04_018_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:55 src/ov_SC06_006/ov_SC06_006_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:55 src/ov_SC05_008/ov_SC05_008_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:55 src/ov_SC05_018/ov_SC05_018_jr_8017D604.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:56 src/ov_SC05_006/ov_SC05_006_jr_8017BEBC.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:56 src/ov_SC05_019/ov_SC05_019_jr_8017D5C0.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:57 src/ov_SC05_010/ov_SC05_010_jr_8017C8D0.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:57 src/ov_SC05_017/ov_SC05_017_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:57 src/ov_SC05_011/ov_SC05_011_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:58 src/ov_SC06_029/ov_SC06_029_jr_801867D0.c: CONSOLIDATED — deleted 17 defs, renamed 0, use renames 2, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:59 src/ov_SC06_022/ov_SC06_022_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:59 src/ov_SC07_006/ov_SC07_006_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:59 src/ov_SC06_016/ov_SC06_016_jr_8017C8D0.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:50:59 src/ov_SC06_030/ov_SC06_030_jr_8017C8D0.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:00 src/ov_SC06_025/ov_SC06_025_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:00 src/ov_SC07_008/ov_SC07_008_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:01 src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:01 src/ov_SC01_077/ov_SC01_077_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:01 src/ov_SC02_005/ov_SC02_005_jr_8017CF90.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:01 src/ov_SC07_009/ov_SC07_009_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:02 src/ov_SC07_011/ov_SC07_011_jr_8017BEBC.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:03 src/ov_SC02_004/ov_SC02_004_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:03 src/ov_SC02_000/ov_SC02_000_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:03 src/ov_SC03_023/ov_SC03_023_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:04 src/ov_SC03_012/ov_SC03_012_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:04 src/ov_SC03_003/ov_SC03_003_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:04 src/ov_SC04_021/ov_SC04_021_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:04 src/ov_SC03_092/ov_SC03_092_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:05 src/ov_SC02_011/ov_SC02_011_jr_80183178.c: CONSOLIDATED — deleted 11 defs, renamed 0, use renames 2, direct calls 1, direct levers 3, unmatched 0, marked 3
|
||||||
|
05:51:05 src/ov_SC03_126/ov_SC03_126_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:05 src/ov_SC05_019/ov_SC05_019_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:06 src/ov_SC07_010/ov_SC07_010_jr_8017AE2C.c: CONSOLIDATED — deleted 16 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:06 src/ov_SC06_024/ov_SC06_024_jr_801851E0.c: CONSOLIDATED — deleted 0 defs, renamed 0, use renames 0, direct calls 14, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:06 src/ov_SC02_037/ov_SC02_037_jr_80131340.c: CONSOLIDATED — deleted 12 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:51:08 src/ov_MAIN_012/ov_MAIN_012_jr_80131340.c: CONSOLIDATED — deleted 12 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:51:08 src/ov_SC03_029/ov_SC03_029_jr_8017FF7C.c: CONSOLIDATED — deleted 14 defs, renamed 0, use renames 4, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:08 src/ov_SC06_022/ov_SC06_022_jr_80182D08.c: CONSOLIDATED — deleted 0 defs, renamed 0, use renames 0, direct calls 14, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:08 src/ov_SC03_107/ov_SC03_107_jr_80131340.c: CONSOLIDATED — deleted 12 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:51:09 src/ov_SC03_014/ov_SC03_014_jr_801848E4.c: CONSOLIDATED — deleted 13 defs, renamed 0, use renames 12, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:09 src/ov_SC02_011/ov_SC02_011_jr_80188E3C.c: CONSOLIDATED — deleted 12 defs, renamed 0, use renames 8, direct calls 0, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:51:09 src/ov_SC03_116/ov_SC03_116_jr_8017AE2C.c: CONSOLIDATED — deleted 14 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:09 src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c: CONSOLIDATED — deleted 13 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:10 src/ov_SC06_033/ov_SC06_033_jr_801836FC.c: CONSOLIDATED — deleted 0 defs, renamed 0, use renames 0, direct calls 14, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:10 src/ov_SC04_016/ov_SC04_016_jr_8017F03C.c: CONSOLIDATED — deleted 13 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:11 src/ov_SC06_030/ov_SC06_030_jr_8017F65C.c: CONSOLIDATED — deleted 13 defs, renamed 0, use renames 14, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:12 src/ov_SC02_005/ov_SC02_005_jr_80185E80.c: CONSOLIDATED — deleted 0 defs, renamed 0, use renames 0, direct calls 6, direct levers 3, unmatched 0, marked 3
|
||||||
|
05:51:12 src/ov_SC02_000/ov_SC02_000_jr_8018173C.c: CONSOLIDATED — deleted 11 defs, renamed 0, use renames 1, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:13 src/ov_SC07_011/ov_SC07_011_jr_80131340.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:51:13 src/ov_SC07_007/ov_SC07_007_jr_80131340.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:51:13 src/ov_SC03_089/ov_SC03_089_jr_80185E50.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:13 src/ov_SC07_006/ov_SC07_006_jr_80131340.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:51:14 src/ov_SC07_010/ov_SC07_010_jr_80131340.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 0, direct calls 1, direct levers 0, unmatched 1, marked 0
|
||||||
|
05:51:14 src/md_MAIN_019/md_MAIN_019.c: CONSOLIDATED — deleted 2 defs, renamed 0, use renames 0, direct calls 3, direct levers 3, unmatched 0, marked 3
|
||||||
|
05:51:15 src/ov_SC03_024/ov_SC03_024_jr_8017AE2C.c: CONSOLIDATED — deleted 10 defs, renamed 0, use renames 12, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:15 src/md_MAIN_031/md_MAIN_031.c: CONSOLIDATED — deleted 5 defs, renamed 3, use renames 32, direct calls 0, direct levers 0, unmatched 0, marked 12
|
||||||
|
05:51:15 src/ov_SC03_090/ov_SC03_090_jr_80188274.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:16 src/ov_SC03_118/ov_SC03_118_jr_8017AE2C.c: CONSOLIDATED — deleted 10 defs, renamed 0, use renames 12, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:16 src/ov_SC03_091/ov_SC03_091_jr_8018911C.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:17 src/ov_SC01_000/ov_SC01_000_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:17 src/ov_SC01_008/ov_SC01_008_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:18 src/ov_SC01_001/ov_SC01_001_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:18 src/ov_MAIN_012/ov_MAIN_012_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:18 src/ov_SC01_004/ov_SC01_004_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:19 src/ov_SC01_077/ov_SC01_077_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:19 src/ov_SC01_074/ov_SC01_074_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:19 src/ov_SC03_117/ov_SC03_117_jr_80181C80.c: CONSOLIDATED — deleted 8 defs, renamed 0, use renames 8, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:19 src/ov_SC01_009/ov_SC01_009_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:20 src/ov_SC01_005/ov_SC01_005_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:20 src/ov_SC01_080/ov_SC01_080_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:21 src/ov_SC02_021/ov_SC02_021_jr_8017ECFC.c: CONSOLIDATED — deleted 7 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:21 src/ov_SC01_084/ov_SC01_084_jr_80182A00.c: CONSOLIDATED — deleted 7 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:21 src/ov_SC02_011/ov_SC02_011_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:22 src/ov_SC01_084/ov_SC01_084_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:22 src/ov_SC02_004/ov_SC02_004_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:23 src/ov_SC02_026/ov_SC02_026_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:23 src/ov_SC02_005/ov_SC02_005_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:23 src/ov_SC02_015/ov_SC02_015_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:23 src/ov_SC02_000/ov_SC02_000_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:23 src/ov_SC02_017/ov_SC02_017_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:24 src/ov_SC02_016/ov_SC02_016_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:24 src/ov_SC02_027/ov_SC02_027_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:24 src/ov_SC02_021/ov_SC02_021_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:25 src/ov_SC02_028/ov_SC02_028_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:26 src/ov_SC02_035/ov_SC02_035_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:26 src/ov_SC02_041/ov_SC02_041_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:27 src/ov_SC02_031/ov_SC02_031_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:28 src/ov_SC03_001/ov_SC03_001_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:28 src/ov_SC02_039/ov_SC02_039_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:28 src/ov_SC02_037/ov_SC02_037_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:28 src/ov_SC03_010/ov_SC03_010_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:28 src/ov_SC03_003/ov_SC03_003_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:28 src/ov_SC03_002/ov_SC03_002_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:29 src/ov_SC03_011/ov_SC03_011_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:29 src/ov_SC03_012/ov_SC03_012_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:29 src/ov_SC03_007/ov_SC03_007_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:29 src/ov_SC03_006/ov_SC03_006_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:30 src/ov_SC03_013/ov_SC03_013_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:30 src/ov_SC03_024/ov_SC03_024_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:31 src/ov_SC03_014/ov_SC03_014_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:31 src/ov_SC03_030/ov_SC03_030_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:31 src/ov_SC03_031/ov_SC03_031_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:31 src/ov_SC03_091/ov_SC03_091_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:32 src/ov_SC03_023/ov_SC03_023_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:32 src/ov_SC03_029/ov_SC03_029_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:33 src/ov_SC03_028/ov_SC03_028_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:33 src/ov_SC03_092/ov_SC03_092_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:33 src/ov_SC03_093/ov_SC03_093_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:33 src/ov_SC03_089/ov_SC03_089_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:34 src/ov_SC03_090/ov_SC03_090_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:35 src/ov_SC03_095/ov_SC03_095_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:35 src/ov_SC03_094/ov_SC03_094_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:36 src/ov_SC03_096/ov_SC03_096_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:36 src/ov_SC03_098/ov_SC03_098_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:36 src/ov_SC03_104/ov_SC03_104_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:36 src/ov_SC03_097/ov_SC03_097_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:36 src/ov_SC03_102/ov_SC03_102_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:37 src/ov_SC03_101/ov_SC03_101_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:37 src/ov_SC03_099/ov_SC03_099_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:37 src/ov_SC03_100/ov_SC03_100_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:38 src/ov_SC03_103/ov_SC03_103_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:40 src/ov_SC03_107/ov_SC03_107_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:40 src/ov_SC03_108/ov_SC03_108_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:41 src/ov_SC03_105/ov_SC03_105_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:41 src/ov_SC03_111/ov_SC03_111_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:41 src/ov_SC03_110/ov_SC03_110_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:41 src/ov_SC03_109/ov_SC03_109_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:41 src/ov_SC03_112/ov_SC03_112_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:42 src/ov_SC03_114/ov_SC03_114_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:42 src/ov_SC03_113/ov_SC03_113_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:42 src/ov_SC03_115/ov_SC03_115_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:43 src/ov_SC03_116/ov_SC03_116_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:43 src/ov_SC03_117/ov_SC03_117_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:44 src/ov_SC03_117/ov_SC03_117_jr_8017E6EC.c: CONSOLIDATED — deleted 7 defs, renamed 0, use renames 0, direct calls 0, direct levers 0, unmatched 0, marked 0
|
||||||
|
05:51:45 src/ov_SC04_000/ov_SC04_000_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:45 src/ov_SC04_002/ov_SC04_002_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:46 src/ov_SC04_003/ov_SC04_003_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:46 src/ov_SC03_121/ov_SC03_121_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:46 src/ov_SC03_125/ov_SC03_125_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:46 src/ov_SC03_124/ov_SC03_124_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:46 src/ov_SC03_118/ov_SC03_118_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:51:46 src/ov_SC04_004/ov_SC04_004_jr_801380E0.c: CONSOLIDATED — deleted 3 defs, renamed 0, use renames 1, direct calls 2, direct levers 2, unmatched 0, marked 2
|
||||||
|
05:53:00 src/800.c: CONSOLIDATED — deleted 349 defs, renamed 0, use renames 237, direct calls 29, direct levers 19, unmatched 11, marked 19
|
||||||
|
05:53:04 src/shared/ov/func_80132784.h: CONSOLIDATED — deleted 0 defs, renamed 0, use renames 0, direct calls 8, direct levers 12, unmatched 0, marked 12
|
||||||
|
05:53:09 src/shared/ov/func_8012EC04.h: CONSOLIDATED — deleted 0 defs, renamed 0, use renames 0, direct calls 4, direct levers 6, unmatched 0, marked 6
|
||||||
|
05:53:09 gte_consolidate: batch gte1 — 400 files: 400 consolidated, 0 defs-only, 0 unchanged, 0 refused, 0 no-recipe · definitions deleted 8056 / renamed as lever variants 5 (variant trials: 416 freed, 5 kept) · header-bound definitions kept 80 · use renames 930 · direct statements → calls 460 / lever 252 / unmatched 185 · markers 276 · compiles 1146 · final 400/400 identical
|
||||||
|
gte1 wall=298.10 s
|
||||||
|
exit=0
|
||||||
@@ -440,7 +440,9 @@ accumulate here as the phase produces them.**
|
|||||||
`.run/P36/baseline/r22_t5_header.log`)**. Census after the header step (before any apply): GTE levers (clobbers beyond the canonical macro's): 49 sites (0 via a variant macro, 49 direct) · marked 0 · UNMARKED 49 · unsigned GTE statements 3 · per-TU asm macro definitions outside the GTE header: 9,540 {'gte': 9102, 'launder': 428, 'instruction': 9, 'barrier': 1} (GTE variants 0). Next: the apply batches
|
`.run/P36/baseline/r22_t5_header.log`)**. Census after the header step (before any apply): GTE levers (clobbers beyond the canonical macro's): 49 sites (0 via a variant macro, 49 direct) · marked 0 · UNMARKED 49 · unsigned GTE statements 3 · per-TU asm macro definitions outside the GTE header: 9,540 {'gte': 9102, 'launder': 428, 'instruction': 9, 'barrier': 1} (GTE variants 0). Next: the apply batches
|
||||||
(`tools/delever_cycle.sh 1 4 400 gte`, detached), then `--sweep`, then the T5 verify line.
|
(`tools/delever_cycle.sh 1 4 400 gte`, detached), then `--sweep`, then the T5 verify line.
|
||||||
|
|
||||||
## 🛑 SESSION CHECKPOINT — S98 (2026-09-09): T0 ☑ T1 ☑ T1b ☑ T2 ☑ T3 ☑ T4 ☑ — all committed (T4 = 13 batch commits `a605e1dba`…`f087282a3` + the tool commits; this close); NEXT = T5 the GTE consolidation + the dead lever-macro sweep | the number: 33,625 sites in 12,501 bodies (1,728 distinct) · marked 33,625 · UNMARKED 0 · orphans 0 — `lever_census --check` OK
|
- **2026-09-09 — T5 batch `gte1`** (`.run/P36/delever/run_gte1.log`, `batch_gte1.json`): `gte_consolidate: batch gte1 — 400 files: 400 consolidated, 0 defs-only, 0 unchanged, 0 refused, 0 no-recipe · definitions deleted 8056 / renamed as lever variants 5 (variant trials: 416 freed, 5 kept) · header-bound definitions kept 80 · use renames 930 · direct statements → calls 460 / lever 252 / unmatched 185 · markers 276 · compiles 1146 · final 400/400 identical` → R22 (`.run/P36/baseline/r22_gte1.log`) **`check-all: 218 passed, 0 failed of 218`** (`wall=117.27 s`) → census `THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 33,901 sites in 12,601 bodies (1,756 distinct) · marked !FAKE 33,665 · UNMARKED 236`.
|
||||||
|
|
||||||
|
## 🛑 SESSION CHECKPOINT — S98 (2026-09-09): T0 ☑ T1 ☑ T1b ☑ T2 ☑ T3 ☑ T4 ☑ — all committed (T4 = 13 batch commits `a605e1dba`…`f087282a3` + the tool commits; this close); NEXT = T5 the GTE consolidation + the dead lever-macro sweep | the number: 33,625 sites in 12,501 bodies (1,728 distinct) · marked 33,625 · UNMARKED 0 · orphans 0 — `lever_census --check` OK | last batch `gte1` on 0bd784c64: THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 33,901 sites in 12,601 bodies (1,756 distinct) · marked !FAKE 33,665 · UNMARKED 236
|
||||||
|
|
||||||
### 0. How to use this block
|
### 0. How to use this block
|
||||||
A fresh session reads CLAUDE.md's load order, replays this block verbatim, confirms the effort (T5/T6/T8/T9 xHigh per the plan; S98 ran
|
A fresh session reads CLAUDE.md's load order, replays this block verbatim, confirms the effort (T5/T6/T8/T9 xHigh per the plan; S98 ran
|
||||||
|
|||||||
@@ -297,20 +297,6 @@ extern u8 D_800CC114[];
|
|||||||
extern u8 D_800CC5B0[];
|
extern u8 D_800CC5B0[];
|
||||||
extern u8 D_800CC638[];
|
extern u8 D_800CC638[];
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14", "memory" )
|
|
||||||
|
|
||||||
#define gte_rt(p) \
|
#define gte_rt(p) \
|
||||||
__asm__ volatile ( \
|
__asm__ volatile ( \
|
||||||
@@ -411,20 +397,6 @@ void func_800CB578(void *arg0) {
|
|||||||
extern s32 func_80017DC4(void *a0, void *a1);
|
extern s32 func_80017DC4(void *a0, void *a1);
|
||||||
extern s32 func_80017758(void *a0, void *a1);
|
extern s32 func_80017758(void *a0, void *a1);
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14", "memory" )
|
|
||||||
|
|
||||||
void func_800CB9F8(u16 *a0, u16 *a1, s32 *a2, s32 *a3, s32 stg) {
|
void func_800CB9F8(u16 *a0, u16 *a1, s32 *a2, s32 *a3, s32 stg) {
|
||||||
struct { s16 v[4]; } p[4];
|
struct { s16 v[4]; } p[4];
|
||||||
@@ -467,17 +439,8 @@ void func_800CB9F8(u16 *a0, u16 *a1, s32 *a2, s32 *a3, s32 stg) {
|
|||||||
"mvmva 1, 0, 3, 3, 0"
|
"mvmva 1, 0, 3, 3, 0"
|
||||||
:
|
:
|
||||||
: "r"((s32)mat)
|
: "r"((s32)mat)
|
||||||
: "$12", "$13", "$14", "memory");
|
: "$12", "$13", "$14", "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldclmv+gte_rtir_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ volatile (
|
gte_stclmv((s32)mat);
|
||||||
"mfc2 $12, $9;"
|
|
||||||
"mfc2 $13, $10;"
|
|
||||||
"mfc2 $14, $11;"
|
|
||||||
"sh $12, 0( %0 );"
|
|
||||||
"sh $13, 6( %0 );"
|
|
||||||
"sh $14, 12( %0 )"
|
|
||||||
:
|
|
||||||
: "r"((s32)mat)
|
|
||||||
: "$12", "$13", "$14", "memory");
|
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
"lhu $12, 0( %0 );"
|
"lhu $12, 0( %0 );"
|
||||||
"lhu $13, 6( %0 );"
|
"lhu $13, 6( %0 );"
|
||||||
@@ -490,17 +453,8 @@ void func_800CB9F8(u16 *a0, u16 *a1, s32 *a2, s32 *a3, s32 stg) {
|
|||||||
"mvmva 1, 0, 3, 3, 0"
|
"mvmva 1, 0, 3, 3, 0"
|
||||||
:
|
:
|
||||||
: "r"((s32)mat + 2)
|
: "r"((s32)mat + 2)
|
||||||
: "$12", "$13", "$14", "memory");
|
: "$12", "$13", "$14", "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldclmv+gte_rtir_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ volatile (
|
gte_stclmv((s32)mat + 2);
|
||||||
"mfc2 $12, $9;"
|
|
||||||
"mfc2 $13, $10;"
|
|
||||||
"mfc2 $14, $11;"
|
|
||||||
"sh $12, 0( %0 );"
|
|
||||||
"sh $13, 6( %0 );"
|
|
||||||
"sh $14, 12( %0 )"
|
|
||||||
:
|
|
||||||
: "r"((s32)mat + 2)
|
|
||||||
: "$12", "$13", "$14", "memory");
|
|
||||||
__asm__ volatile (
|
__asm__ volatile (
|
||||||
"lhu $12, 0( %0 );"
|
"lhu $12, 0( %0 );"
|
||||||
"lhu $13, 6( %0 );"
|
"lhu $13, 6( %0 );"
|
||||||
@@ -513,17 +467,8 @@ void func_800CB9F8(u16 *a0, u16 *a1, s32 *a2, s32 *a3, s32 stg) {
|
|||||||
"mvmva 1, 0, 3, 3, 0"
|
"mvmva 1, 0, 3, 3, 0"
|
||||||
:
|
:
|
||||||
: "r"((s32)mat + 4)
|
: "r"((s32)mat + 4)
|
||||||
: "$12", "$13", "$14", "memory");
|
: "$12", "$13", "$14", "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldclmv+gte_rtir_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ volatile (
|
gte_stclmv((s32)mat + 4);
|
||||||
"mfc2 $12, $9;"
|
|
||||||
"mfc2 $13, $10;"
|
|
||||||
"mfc2 $14, $11;"
|
|
||||||
"sh $12, 0( %0 );"
|
|
||||||
"sh $13, 6( %0 );"
|
|
||||||
"sh $14, 12( %0 )"
|
|
||||||
:
|
|
||||||
: "r"((s32)mat + 4)
|
|
||||||
: "$12", "$13", "$14", "memory");
|
|
||||||
((s32 *)mat)[5] = a2[5];
|
((s32 *)mat)[5] = a2[5];
|
||||||
((s32 *)mat)[6] = a2[6];
|
((s32 *)mat)[6] = a2[6];
|
||||||
((s32 *)mat)[7] = a2[7];
|
((s32 *)mat)[7] = a2[7];
|
||||||
|
|||||||
@@ -344,7 +344,8 @@ void func_800CB5C8(s32 arg0, s32 arg1) {
|
|||||||
|
|
||||||
typedef struct { s16 m[3][4]; } Mat_CB6A0;
|
typedef struct { s16 m[3][4]; } Mat_CB6A0;
|
||||||
|
|
||||||
#define SETROT_A(p) __asm__ __volatile__( \
|
/* !FAKE: gte variant `gte_SetRotMatrix_m` — memory beyond Sony's `gte_SetRotMatrix` (a scheduling steer; P36 T5) */
|
||||||
|
#define gte_SetRotMatrix_m(p) __asm__ __volatile__( \
|
||||||
"lw $12, 0(%0)\n" \
|
"lw $12, 0(%0)\n" \
|
||||||
"lw $13, 4(%0)\n" \
|
"lw $13, 4(%0)\n" \
|
||||||
"ctc2 $12, $0\n" \
|
"ctc2 $12, $0\n" \
|
||||||
@@ -357,25 +358,19 @@ typedef struct { s16 m[3][4]; } Mat_CB6A0;
|
|||||||
"ctc2 $14, $4\n" \
|
"ctc2 $14, $4\n" \
|
||||||
: : "r"(p) : "$12", "$13", "$14", "memory")
|
: : "r"(p) : "$12", "$13", "$14", "memory")
|
||||||
|
|
||||||
#define LDV_A(p) __asm__ __volatile__( \
|
/* !FAKE: gte variant `gte_ldv0_m` — memory beyond Sony's `gte_ldv0` (a scheduling steer; P36 T5) */
|
||||||
|
#define gte_ldv0_m(p) __asm__ __volatile__( \
|
||||||
"lwc2 $0, 0(%0)\n" \
|
"lwc2 $0, 0(%0)\n" \
|
||||||
"lwc2 $1, 4(%0)\n" \
|
"lwc2 $1, 4(%0)\n" \
|
||||||
: : "r"(p) : "memory")
|
: : "r"(p) : "memory")
|
||||||
|
|
||||||
#define MVMVA_A() __asm__ __volatile__( \
|
/* !FAKE: gte variant `gte_rtv0_m` — memory beyond Sony's `gte_rtv0` (a scheduling steer; P36 T5) */
|
||||||
|
#define gte_rtv0_m() __asm__ __volatile__( \
|
||||||
"nop\n" \
|
"nop\n" \
|
||||||
"nop\n" \
|
"nop\n" \
|
||||||
"mvmva 1, 0, 0, 3, 0\n" \
|
"mvmva 1, 0, 0, 3, 0\n" \
|
||||||
: : : "memory")
|
: : : "memory")
|
||||||
|
|
||||||
#define STSV_A(p) __asm__ __volatile__( \
|
|
||||||
"mfc2 $12, $9\n" \
|
|
||||||
"mfc2 $13, $10\n" \
|
|
||||||
"mfc2 $14, $11\n" \
|
|
||||||
"sh $12, 0(%0)\n" \
|
|
||||||
"sh $13, 2(%0)\n" \
|
|
||||||
"sh $14, 4(%0)\n" \
|
|
||||||
: : "r"(p) : "$12", "$13", "$14", "memory")
|
|
||||||
|
|
||||||
extern s32 func_80017DC4(void *a0, void *a1);
|
extern s32 func_80017DC4(void *a0, void *a1);
|
||||||
extern void func_80016ED4(void *a0);
|
extern void func_80016ED4(void *a0);
|
||||||
@@ -401,31 +396,31 @@ void func_800CB6A0(void *a0, void *a1, void *a2, s32 a3) {
|
|||||||
vin[2] = 0;
|
vin[2] = 0;
|
||||||
vin[0] = *(u16 *)((u8 *)a1 + 0) - 0x30;
|
vin[0] = *(u16 *)((u8 *)a1 + 0) - 0x30;
|
||||||
vin[1] = *(u16 *)((u8 *)a1 + 2) - 0x20;
|
vin[1] = *(u16 *)((u8 *)a1 + 2) - 0x20;
|
||||||
SETROT_A(mat);
|
gte_SetRotMatrix_m(mat); // !FAKE: gte via gte_SetRotMatrix_m — memory beyond Sony's `gte_SetRotMatrix` (P36 T5 gte1)
|
||||||
LDV_A(vin);
|
gte_ldv0_m(vin); // !FAKE: gte via gte_ldv0_m — memory beyond Sony's `gte_ldv0` (P36 T5 gte1)
|
||||||
MVMVA_A();
|
gte_rtv0_m(); // !FAKE: gte via gte_rtv0_m — memory beyond Sony's `gte_rtv0` (P36 T5 gte1)
|
||||||
STSV_A(o0);
|
gte_stsv(o0);
|
||||||
|
|
||||||
vin[0] = *(u16 *)((u8 *)a1 + 0) + 0x30;
|
vin[0] = *(u16 *)((u8 *)a1 + 0) + 0x30;
|
||||||
vin[1] = *(u16 *)((u8 *)a1 + 2) - 0x20;
|
vin[1] = *(u16 *)((u8 *)a1 + 2) - 0x20;
|
||||||
SETROT_A(mat);
|
gte_SetRotMatrix_m(mat); // !FAKE: gte via gte_SetRotMatrix_m — memory beyond Sony's `gte_SetRotMatrix` (P36 T5 gte1)
|
||||||
LDV_A(vin);
|
gte_ldv0_m(vin); // !FAKE: gte via gte_ldv0_m — memory beyond Sony's `gte_ldv0` (P36 T5 gte1)
|
||||||
MVMVA_A();
|
gte_rtv0_m(); // !FAKE: gte via gte_rtv0_m — memory beyond Sony's `gte_rtv0` (P36 T5 gte1)
|
||||||
STSV_A(vec[1]);
|
gte_stsv(vec[1]);
|
||||||
|
|
||||||
vin[0] = *(u16 *)((u8 *)a1 + 0) - 0x30;
|
vin[0] = *(u16 *)((u8 *)a1 + 0) - 0x30;
|
||||||
vin[1] = *(u16 *)((u8 *)a1 + 2) + 0x20;
|
vin[1] = *(u16 *)((u8 *)a1 + 2) + 0x20;
|
||||||
SETROT_A(mat);
|
gte_SetRotMatrix_m(mat); // !FAKE: gte via gte_SetRotMatrix_m — memory beyond Sony's `gte_SetRotMatrix` (P36 T5 gte1)
|
||||||
LDV_A(vin);
|
gte_ldv0_m(vin); // !FAKE: gte via gte_ldv0_m — memory beyond Sony's `gte_ldv0` (P36 T5 gte1)
|
||||||
MVMVA_A();
|
gte_rtv0_m(); // !FAKE: gte via gte_rtv0_m — memory beyond Sony's `gte_rtv0` (P36 T5 gte1)
|
||||||
STSV_A(vec[2]);
|
gte_stsv(vec[2]);
|
||||||
|
|
||||||
vin[0] = *(u16 *)((u8 *)a1 + 0) + 0x30;
|
vin[0] = *(u16 *)((u8 *)a1 + 0) + 0x30;
|
||||||
vin[1] = *(u16 *)((u8 *)a1 + 2) + 0x20;
|
vin[1] = *(u16 *)((u8 *)a1 + 2) + 0x20;
|
||||||
SETROT_A(mat);
|
gte_SetRotMatrix_m(mat); // !FAKE: gte via gte_SetRotMatrix_m — memory beyond Sony's `gte_SetRotMatrix` (P36 T5 gte1)
|
||||||
LDV_A(vin);
|
gte_ldv0_m(vin); // !FAKE: gte via gte_ldv0_m — memory beyond Sony's `gte_ldv0` (P36 T5 gte1)
|
||||||
MVMVA_A();
|
gte_rtv0_m(); // !FAKE: gte via gte_rtv0_m — memory beyond Sony's `gte_rtv0` (P36 T5 gte1)
|
||||||
STSV_A(vec[3]);
|
gte_stsv(vec[3]);
|
||||||
|
|
||||||
tc[0] = tp[0];
|
tc[0] = tp[0];
|
||||||
tc[1] = tp[1];
|
tc[1] = tp[1];
|
||||||
@@ -448,38 +443,9 @@ void func_800CB6A0(void *a0, void *a1, void *a2, s32 a3) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define SETROT_A(p) __asm__ __volatile__( \
|
|
||||||
"lw $12, 0(%0)\n" \
|
|
||||||
"lw $13, 4(%0)\n" \
|
|
||||||
"ctc2 $12, $0\n" \
|
|
||||||
"ctc2 $13, $1\n" \
|
|
||||||
"lw $12, 8(%0)\n" \
|
|
||||||
"lw $13, 12(%0)\n" \
|
|
||||||
"lw $14, 16(%0)\n" \
|
|
||||||
"ctc2 $12, $2\n" \
|
|
||||||
"ctc2 $13, $3\n" \
|
|
||||||
"ctc2 $14, $4\n" \
|
|
||||||
: : "r"(p) : "$12", "$13", "$14", "memory")
|
|
||||||
|
|
||||||
#define LDV_A(p) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(p) : "memory")
|
|
||||||
|
|
||||||
#define MVMVA_A() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 3, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define STSV_A(p) __asm__ __volatile__( \
|
|
||||||
"mfc2 $12, $9\n" \
|
|
||||||
"mfc2 $13, $10\n" \
|
|
||||||
"mfc2 $14, $11\n" \
|
|
||||||
"sh $12, 0(%0)\n" \
|
|
||||||
"sh $13, 2(%0)\n" \
|
|
||||||
"sh $14, 4(%0)\n" \
|
|
||||||
: : "r"(p) : "$12", "$13", "$14", "memory")
|
|
||||||
|
|
||||||
extern s32 func_80017DC4(void *a0, void *a1);
|
extern s32 func_80017DC4(void *a0, void *a1);
|
||||||
extern void func_80017714(void *a0);
|
extern void func_80017714(void *a0);
|
||||||
@@ -497,31 +463,31 @@ void func_800CB964(void *a0, void *a1, void *a2) {
|
|||||||
vin[2] = 0;
|
vin[2] = 0;
|
||||||
vin[0] = *(u16 *)((u8 *)a1 + 0) - 0x38;
|
vin[0] = *(u16 *)((u8 *)a1 + 0) - 0x38;
|
||||||
vin[1] = *(u16 *)((u8 *)a1 + 2) - 0x28;
|
vin[1] = *(u16 *)((u8 *)a1 + 2) - 0x28;
|
||||||
SETROT_A(mat);
|
gte_SetRotMatrix(mat);
|
||||||
LDV_A(vin);
|
gte_ldv0(vin);
|
||||||
MVMVA_A();
|
gte_rtv0();
|
||||||
STSV_A(o0);
|
gte_stsv(o0);
|
||||||
|
|
||||||
vin[0] = *(u16 *)((u8 *)a1 + 0) + 0x38;
|
vin[0] = *(u16 *)((u8 *)a1 + 0) + 0x38;
|
||||||
vin[1] = *(u16 *)((u8 *)a1 + 2) - 0x28;
|
vin[1] = *(u16 *)((u8 *)a1 + 2) - 0x28;
|
||||||
SETROT_A(mat);
|
gte_SetRotMatrix(mat);
|
||||||
LDV_A(vin);
|
gte_ldv0(vin);
|
||||||
MVMVA_A();
|
gte_rtv0();
|
||||||
STSV_A(vec[1]);
|
gte_stsv(vec[1]);
|
||||||
|
|
||||||
vin[0] = *(u16 *)((u8 *)a1 + 0) - 0x38;
|
vin[0] = *(u16 *)((u8 *)a1 + 0) - 0x38;
|
||||||
vin[1] = *(u16 *)((u8 *)a1 + 2) + 0x28;
|
vin[1] = *(u16 *)((u8 *)a1 + 2) + 0x28;
|
||||||
SETROT_A(mat);
|
gte_SetRotMatrix(mat);
|
||||||
LDV_A(vin);
|
gte_ldv0(vin);
|
||||||
MVMVA_A();
|
gte_rtv0();
|
||||||
STSV_A(vec[2]);
|
gte_stsv(vec[2]);
|
||||||
|
|
||||||
vin[0] = *(u16 *)((u8 *)a1 + 0) + 0x38;
|
vin[0] = *(u16 *)((u8 *)a1 + 0) + 0x38;
|
||||||
vin[1] = *(u16 *)((u8 *)a1 + 2) + 0x28;
|
vin[1] = *(u16 *)((u8 *)a1 + 2) + 0x28;
|
||||||
SETROT_A(mat);
|
gte_SetRotMatrix(mat);
|
||||||
LDV_A(vin);
|
gte_ldv0(vin);
|
||||||
MVMVA_A();
|
gte_rtv0();
|
||||||
STSV_A(vec[3]);
|
gte_stsv(vec[3]);
|
||||||
|
|
||||||
tail[0xE] = 0x80;
|
tail[0xE] = 0x80;
|
||||||
tail[0xD] = 0x80;
|
tail[0xD] = 0x80;
|
||||||
|
|||||||
@@ -179,65 +179,14 @@ void func_800CB00C(s32 arg0, s32 arg1, s32 arg2)
|
|||||||
/* ---- PsyQ inline GTE macros (same spellings as the matched siblings
|
/* ---- PsyQ inline GTE macros (same spellings as the matched siblings
|
||||||
* func_800CBA18 / func_800CBC2C in this TU) ---- */
|
* func_800CBA18 / func_800CBC2C in this TU) ---- */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldrgb(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $6, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz3() __asm__ volatile ("nop;nop;avsz3")
|
|
||||||
#define gte_nccs() __asm__ volatile ("nop;nop;nccs")
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $7, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $22, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
/* ---- types ------------------------------------------------------------- */
|
/* ---- types ------------------------------------------------------------- */
|
||||||
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CB1F8; /* 0x08 */
|
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CB1F8; /* 0x08 */
|
||||||
@@ -322,72 +271,15 @@ F3P_800CB1F8 *func_800CB1F8(Face10_800CB1F8 *f, SVEC8_800CB1F8 *verts,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* ---- PsyQ inline_c.h GTE macros (same spellings as the matched siblings) -- */
|
/* ---- PsyQ inline_c.h GTE macros (same spellings as the matched siblings) -- */
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldrgb(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $6, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
#define gte_nccs() __asm__ volatile ("nop;nop;nccs")
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $7, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $22, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
/* ---- types ------------------------------------------------------------- */
|
/* ---- types ------------------------------------------------------------- */
|
||||||
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CB3C0; /* 0x08 */
|
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CB3C0; /* 0x08 */
|
||||||
@@ -435,7 +327,7 @@ PktF4_800CB3C0 *func_800CB3C0(FaceF4_800CB3C0 *face, SVEC8_800CB3C0 *vtx,
|
|||||||
gte_nclip();
|
gte_nclip();
|
||||||
gte_stopz(&g.opz);
|
gte_stopz(&g.opz);
|
||||||
if (g.opz > 0) {
|
if (g.opz > 0) {
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(&vtx[face->v3]);
|
gte_ldv0(&vtx[face->v3]);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
gte_stflg(&g.flag);
|
gte_stflg(&g.flag);
|
||||||
@@ -468,61 +360,13 @@ PktF4_800CB3C0 *func_800CB3C0(FaceF4_800CB3C0 *face, SVEC8_800CB3C0 *vtx,
|
|||||||
* store macros carry local names so they cannot collide with the
|
* store macros carry local names so they cannot collide with the
|
||||||
* three-pointer gte_strgb3 defined by the func_800CBE28 block) ---- */
|
* three-pointer gte_strgb3 defined by the func_800CBE28 block) ---- */
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldrgb(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $6, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz3() __asm__ volatile ("nop;nop;avsz3")
|
|
||||||
#define gte_ncct() __asm__ volatile ("nop;nop;ncct")
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $7, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_flat(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb3_flat(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $20, 4( %0 );" \
|
|
||||||
"swc2 $21, 12( %0 );" \
|
|
||||||
"swc2 $22, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
/* ---- types ------------------------------------------------------------- */
|
/* ---- types ------------------------------------------------------------- */
|
||||||
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CB5D0; /* 0x08 */
|
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CB5D0; /* 0x08 */
|
||||||
@@ -572,7 +416,7 @@ Prim1C_800CB5D0 *func_800CB5D0(Face14_800CB5D0 *f, SVEC8_800CB5D0 *verts,
|
|||||||
gte_nclip();
|
gte_nclip();
|
||||||
gte_stopz(&g.opz);
|
gte_stopz(&g.opz);
|
||||||
if (g.opz > 0) {
|
if (g.opz > 0) {
|
||||||
gte_stsxy3_flat(prim);
|
gte_stsxy3_ft3(prim);
|
||||||
gte_avsz3();
|
gte_avsz3();
|
||||||
gte_stotz(&g.opz);
|
gte_stotz(&g.opz);
|
||||||
if (func_800CC0A0(prim) != 0) {
|
if (func_800CC0A0(prim) != 0) {
|
||||||
@@ -583,7 +427,7 @@ Prim1C_800CB5D0 *func_800CB5D0(Face14_800CB5D0 *f, SVEC8_800CB5D0 *verts,
|
|||||||
gte_ldrgb(&f->rgb);
|
gte_ldrgb(&f->rgb);
|
||||||
gte_ldv3(&norms[f->n0], &norms[f->n0], &norms[f->n0]);
|
gte_ldv3(&norms[f->n0], &norms[f->n0], &norms[f->n0]);
|
||||||
gte_ncct();
|
gte_ncct();
|
||||||
gte_strgb3_flat(prim);
|
gte_strgb3_g3(prim);
|
||||||
}
|
}
|
||||||
func_800CC110(ot, g.opz, shift, prim, 0x6000000);
|
func_800CC110(ot, g.opz, shift, prim, 0x6000000);
|
||||||
}
|
}
|
||||||
@@ -594,81 +438,16 @@ Prim1C_800CB5D0 *func_800CB5D0(Face14_800CB5D0 *f, SVEC8_800CB5D0 *verts,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldrgb(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $6, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
#define gte_ncct() __asm__ volatile ("nop;nop;ncct")
|
|
||||||
#define gte_nccs() __asm__ volatile ("nop;nop;nccs")
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $7, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_gt4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $22, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb3_gt4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $20, 4( %0 );" \
|
|
||||||
"swc2 $21, 12( %0 );" \
|
|
||||||
"swc2 $22, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CB7BC; /* 0x08 */
|
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CB7BC; /* 0x08 */
|
||||||
|
|
||||||
@@ -705,7 +484,7 @@ PktGT4_800CB7BC *func_800CB7BC(FaceGT4_800CB7BC *face, SVEC8_800CB7BC *vtx,
|
|||||||
gte_nclip();
|
gte_nclip();
|
||||||
gte_stopz(&g.opz);
|
gte_stopz(&g.opz);
|
||||||
if (g.opz > 0) {
|
if (g.opz > 0) {
|
||||||
gte_stsxy3_gt4(pkt);
|
gte_stsxy3_ft3(pkt);
|
||||||
gte_ldv0(&vtx[face->v3]);
|
gte_ldv0(&vtx[face->v3]);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
gte_stflg(&g.flag);
|
gte_stflg(&g.flag);
|
||||||
@@ -722,7 +501,7 @@ PktGT4_800CB7BC *func_800CB7BC(FaceGT4_800CB7BC *face, SVEC8_800CB7BC *vtx,
|
|||||||
gte_ldrgb(&face->rgb);
|
gte_ldrgb(&face->rgb);
|
||||||
gte_ldv3(&nrm[face->n0], &nrm[face->n0], &nrm[face->n0]);
|
gte_ldv3(&nrm[face->n0], &nrm[face->n0], &nrm[face->n0]);
|
||||||
gte_ncct();
|
gte_ncct();
|
||||||
gte_strgb3_gt4(pkt);
|
gte_strgb3_g3(pkt);
|
||||||
gte_ldv0(&nrm[face->n0]);
|
gte_ldv0(&nrm[face->n0]);
|
||||||
gte_nccs();
|
gte_nccs();
|
||||||
gte_strgb(&pkt->rgb3);
|
gte_strgb(&pkt->rgb3);
|
||||||
@@ -763,72 +542,15 @@ PktGT4_800CB7BC *func_800CB7BC(FaceGT4_800CB7BC *face, SVEC8_800CB7BC *vtx,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* ---- PsyQ inline_c.h GTE macros (same spellings as the matched twins) ---- */
|
/* ---- PsyQ inline_c.h GTE macros (same spellings as the matched twins) ---- */
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldrgb(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $6, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
#define gte_nccs() __asm__ volatile ("nop;nop;nccs")
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $7, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $22, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
/* ---- types ------------------------------------------------------------- */
|
/* ---- types ------------------------------------------------------------- */
|
||||||
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CBA18; /* 0x08 */
|
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CBA18; /* 0x08 */
|
||||||
@@ -886,7 +608,7 @@ Ft4_800CBA18 *func_800CBA18(Face20_800CBA18 *f, SVEC8_800CBA18 *verts,
|
|||||||
gte_nclip();
|
gte_nclip();
|
||||||
gte_stopz(&g.otz);
|
gte_stopz(&g.otz);
|
||||||
if (g.otz > 0) {
|
if (g.otz > 0) {
|
||||||
gte_stsxy3_ft4(prim);
|
gte_stsxy3_ft3(prim);
|
||||||
gte_ldv0(&verts[f->v3]);
|
gte_ldv0(&verts[f->v3]);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
gte_stflg(&g.flag);
|
gte_stflg(&g.flag);
|
||||||
@@ -944,61 +666,13 @@ typedef struct { /* 0x28 */
|
|||||||
|
|
||||||
/* ---- PsyQ inline GTE macros (same spellings as the matched func_80027D20) ---- */
|
/* ---- PsyQ inline GTE macros (same spellings as the matched func_80027D20) ---- */
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldrgb(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $6, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz3() __asm__ volatile ("nop;nop;avsz3")
|
|
||||||
#define gte_ncct() __asm__ volatile ("nop;nop;ncct")
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $7, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_gt3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 20( %0 );" \
|
|
||||||
"swc2 $14, 32( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb3_gt3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $20, 0( %0 );" \
|
|
||||||
"swc2 $21, 0( %1 );" \
|
|
||||||
"swc2 $22, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
extern s16 D_800C7C74;
|
extern s16 D_800C7C74;
|
||||||
extern u32 D_80063884;
|
extern u32 D_80063884;
|
||||||
@@ -1023,7 +697,7 @@ GT3P *func_800CBC2C(FaceT3 *f, SVEC2 *verts, SVEC2 *norms, GT3P *prims,
|
|||||||
gte_nclip();
|
gte_nclip();
|
||||||
gte_stopz(&g.opz);
|
gte_stopz(&g.opz);
|
||||||
if (g.opz > 0) {
|
if (g.opz > 0) {
|
||||||
gte_stsxy3_gt3(prim);
|
gte_stsxy3_gt4(prim);
|
||||||
gte_avsz3();
|
gte_avsz3();
|
||||||
gte_stotz(&g.opz);
|
gte_stotz(&g.opz);
|
||||||
if (func_800CC0A0(prim) != 0) {
|
if (func_800CC0A0(prim) != 0) {
|
||||||
@@ -1033,7 +707,7 @@ GT3P *func_800CBC2C(FaceT3 *f, SVEC2 *verts, SVEC2 *norms, GT3P *prims,
|
|||||||
} else {
|
} else {
|
||||||
gte_ldv3(&norms[f->n0], &norms[f->n0], &norms[f->n0]);
|
gte_ldv3(&norms[f->n0], &norms[f->n0], &norms[f->n0]);
|
||||||
gte_ncct();
|
gte_ncct();
|
||||||
gte_strgb3_gt3(&prim->rgb0, &prim->rgb1, &prim->rgb2);
|
gte_strgb3(&prim->rgb0, &prim->rgb1, &prim->rgb2);
|
||||||
}
|
}
|
||||||
func_800CC110(ot, g.opz, shift, prim, 0x09000000);
|
func_800CC110(ot, g.opz, shift, prim, 0x09000000);
|
||||||
}
|
}
|
||||||
@@ -1048,81 +722,16 @@ GT3P *func_800CBC2C(FaceT3 *f, SVEC2 *verts, SVEC2 *norms, GT3P *prims,
|
|||||||
|
|
||||||
/* ---- PsyQ inline GTE macros (same spellings as the matched func_800262D8 body) ---- */
|
/* ---- PsyQ inline GTE macros (same spellings as the matched func_800262D8 body) ---- */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldrgb(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $6, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
#define gte_ncct() __asm__ volatile ("nop;nop;ncct")
|
|
||||||
#define gte_nccs() __asm__ volatile ("nop;nop;nccs")
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $7, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_gt4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 20( %0 );" \
|
|
||||||
"swc2 $14, 32( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $22, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_strgb3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $20, 0( %0 );" \
|
|
||||||
"swc2 $21, 0( %1 );" \
|
|
||||||
"swc2 $22, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CBE28; /* 0x08 */
|
typedef struct { s16 vx, vy, vz, pad; } SVEC8_800CBE28; /* 0x08 */
|
||||||
|
|
||||||
|
|||||||
@@ -1588,30 +1588,6 @@ void func_801A1F38(s32 arg0) {
|
|||||||
|
|
||||||
/* --- PsyQ inline GTE macros (copied verbatim from the banked
|
/* --- PsyQ inline GTE macros (copied verbatim from the banked
|
||||||
* src/ov_SC06_008/ov_SC06_008_jr_8017C294.c spelling) ------------------ */
|
* src/ov_SC06_008/ov_SC06_008_jr_8017C294.c spelling) ------------------ */
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
||||||
extern void func_8002D4C8(s32 a0, s32 a1);
|
extern void func_8002D4C8(s32 a0, s32 a1);
|
||||||
@@ -2051,56 +2027,6 @@ extern s16 D_800B9A02;
|
|||||||
extern s32 D_800A5E60;
|
extern s32 D_800A5E60;
|
||||||
|
|
||||||
/* PsyQ inline GTE macros (house spelling) */
|
/* PsyQ inline GTE macros (house spelling) */
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* libgpu P_TAG: the 24-bit addr field reproduces setaddr()/getaddr() (boot.c house spelling) */
|
/* libgpu P_TAG: the 24-bit addr field reproduces setaddr()/getaddr() (boot.c house spelling) */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -2823,30 +2749,6 @@ extern void func_8012EA90(s32 a0, s32 a1, s32 *a2);
|
|||||||
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
||||||
extern u8 D_801A6CE8[];
|
extern u8 D_801A6CE8[];
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_801A38E4(void *a0, void *a1, s32 a2, s32 a3, s32 a4)
|
void func_801A38E4(void *a0, void *a1, s32 a2, s32 a3, s32 a4)
|
||||||
{
|
{
|
||||||
@@ -3367,30 +3269,6 @@ s32 func_801A419C(s32 arg0) {
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
/* --- PsyQ inline GTE macros (TU house spelling, copied from func_801A2014) --- */
|
/* --- PsyQ inline GTE macros (TU house spelling, copied from func_801A2014) --- */
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
extern void RotTransSV(s32 a0, s32 a1, void *a2);
|
||||||
extern s32 func_8004787C(s32 a0);
|
extern s32 func_8004787C(s32 a0);
|
||||||
@@ -4153,62 +4031,12 @@ typedef struct {
|
|||||||
s32 f4;
|
s32 f4;
|
||||||
} Prim_801A52DC;
|
} Prim_801A52DC;
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
extern void func_80016714(s8 *a0, s32 a1);
|
extern void func_80016714(s8 *a0, s32 a1);
|
||||||
extern void func_8012C218(void *a0);
|
extern void func_8012C218(void *a0);
|
||||||
|
|||||||
+30
-145
@@ -4016,15 +4016,6 @@ void func_801A5D68(void *arg) {
|
|||||||
|
|
||||||
typedef struct { u32 addr : 24; u32 len : 8; u8 r0, g0, b0, code; } P_TAG;
|
typedef struct { u32 addr : 24; u32 len : 8; u8 r0, g0, b0, code; } P_TAG;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ("lwc2 $0, 0( %0 );" "lwc2 $1, 4( %0 )" : : "r"( r0 ))
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ("lwc2 $0, 0( %0 );" "lwc2 $1, 4( %0 );" "lwc2 $2, 0( %1 );" "lwc2 $3, 4( %1 );" "lwc2 $4, 0( %2 );" "lwc2 $5, 4( %2 )" : : "r"( r0 ), "r"( r1 ), "r"( r2 ))
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ("swc2 $14, 0( %0 )" : : "r"( r0 ) : "memory")
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ("swc2 $12, 0( %0 );" "swc2 $13, 0( %1 );" "swc2 $14, 0( %2 )" : : "r"( r0 ), "r"( r1 ), "r"( r2 ) : "memory")
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ("swc2 $7, 0( %0 )" : : "r"( r0 ) : "memory")
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ("cfc2 $12, $31;" "nop;" "sw $12, 0( %0 )" : : "r"( r0 ) : "$12", "memory")
|
|
||||||
|
|
||||||
void func_801A5E60(s32 a0, u8 *v)
|
void func_801A5E60(s32 a0, u8 *v)
|
||||||
{
|
{
|
||||||
@@ -5959,19 +5950,8 @@ typedef struct {
|
|||||||
s16 x, y, z, pad;
|
s16 x, y, z, pad;
|
||||||
} SXY_801A8B64;
|
} SXY_801A8B64;
|
||||||
|
|
||||||
#define gte_ldv0_801A8B64(r0) __asm__ __volatile__ ( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)" \
|
|
||||||
: \
|
|
||||||
: "r"(r0))
|
|
||||||
|
|
||||||
#define gte_rtps_801A8B64() __asm__ __volatile__ ("nop\nnop\nrtps")
|
|
||||||
|
|
||||||
#define gte_stsxy_801A8B64(r0) __asm__ __volatile__ ( \
|
|
||||||
"swc2 $14, 0(%0)" \
|
|
||||||
: \
|
|
||||||
: "r"(r0) \
|
|
||||||
: "memory")
|
|
||||||
|
|
||||||
void func_801A8B64(s32 arg0, s32 arg1)
|
void func_801A8B64(s32 arg0, s32 arg1)
|
||||||
{
|
{
|
||||||
@@ -5991,26 +5971,26 @@ void func_801A8B64(s32 arg0, s32 arg1)
|
|||||||
"ctc2 $12, $0\n" "ctc2 $13, $1\n"
|
"ctc2 $12, $0\n" "ctc2 $13, $1\n"
|
||||||
"lw $12, 8(%0)\n" "lw $13, 12(%0)\n" "lw $14, 16(%0)\n"
|
"lw $12, 8(%0)\n" "lw $13, 12(%0)\n" "lw $14, 16(%0)\n"
|
||||||
"ctc2 $12, $2\n" "ctc2 $13, $3\n" "ctc2 $14, $4\n"
|
"ctc2 $12, $2\n" "ctc2 $13, $3\n" "ctc2 $14, $4\n"
|
||||||
: : "r"(g) : "$12", "$13", "$14", "memory");
|
: : "r"(g) : "$12", "$13", "$14", "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_SetRotMatrix_m) beyond Sony's (P36 T5 gte1)
|
||||||
|
|
||||||
/* gte_SetTransMatrix(&D_800AF648) */
|
/* gte_SetTransMatrix(&D_800AF648) */
|
||||||
__asm__ __volatile__(
|
__asm__ __volatile__(
|
||||||
"lw $12, 20(%0)\n" "lw $13, 24(%0)\n"
|
"lw $12, 20(%0)\n" "lw $13, 24(%0)\n"
|
||||||
"ctc2 $12, $5\n" "lw $14, 28(%0)\n"
|
"ctc2 $12, $5\n" "lw $14, 28(%0)\n"
|
||||||
"ctc2 $13, $6\n" "ctc2 $14, $7\n"
|
"ctc2 $13, $6\n" "ctc2 $14, $7\n"
|
||||||
: : "r"(g) : "$12", "$13", "$14", "memory");
|
: : "r"(g) : "$12", "$13", "$14", "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_SetTransMatrix_m) beyond Sony's (P36 T5 gte1)
|
||||||
|
|
||||||
gte_ldv0_801A8B64(arg1);
|
gte_ldv0(arg1);
|
||||||
gte_rtps_801A8B64();
|
gte_rtps();
|
||||||
gte_stsxy_801A8B64(&xy0);
|
gte_stsxy(&xy0);
|
||||||
|
|
||||||
v.vx = *(u16 *)(arg0 + 0x6);
|
v.vx = *(u16 *)(arg0 + 0x6);
|
||||||
v.vy = *(u16 *)(arg0 + 0xA);
|
v.vy = *(u16 *)(arg0 + 0xA);
|
||||||
v.vz = *(u16 *)(arg0 + 0xE);
|
v.vz = *(u16 *)(arg0 + 0xE);
|
||||||
|
|
||||||
gte_ldv0_801A8B64(&v);
|
gte_ldv0(&v);
|
||||||
gte_rtps_801A8B64();
|
gte_rtps();
|
||||||
gte_stsxy_801A8B64(&xy1);
|
gte_stsxy(&xy1);
|
||||||
|
|
||||||
dy = xy1.y - xy0.y;
|
dy = xy1.y - xy0.y;
|
||||||
dx = xy1.x - xy0.x;
|
dx = xy1.x - xy0.x;
|
||||||
@@ -10437,52 +10417,12 @@ extern void func_80020F34(s32 a0, s32 a1);
|
|||||||
extern void func_8004914C(void *a0);
|
extern void func_8004914C(void *a0);
|
||||||
extern void func_800491AC(void *a0);
|
extern void func_800491AC(void *a0);
|
||||||
|
|
||||||
#define gte_SetRotMatrix_E38(r0) __asm__ __volatile__ ( \
|
|
||||||
"lw $12, 0(%0)\n" "lw $13, 4(%0)\n" \
|
|
||||||
"ctc2 $12, $0\n" "ctc2 $13, $1\n" \
|
|
||||||
"lw $12, 8(%0)\n" "lw $13, 12(%0)\n" "lw $14, 16(%0)\n" \
|
|
||||||
"ctc2 $12, $2\n" "ctc2 $13, $3\n" "ctc2 $14, $4\n" \
|
|
||||||
: : "r"(r0) : "$12", "$13", "$14", "memory")
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix_E38(r0) __asm__ __volatile__ ( \
|
|
||||||
"lw $12, 20(%0)\n" "lw $13, 24(%0)\n" \
|
|
||||||
"ctc2 $12, $5\n" "lw $14, 28(%0)\n" \
|
|
||||||
"ctc2 $13, $6\n" "ctc2 $14, $7\n" \
|
|
||||||
: : "r"(r0) : "$12", "$13", "$14", "memory")
|
|
||||||
|
|
||||||
/* one column of a s16[3][3] through the rotation matrix, in place */
|
/* one column of a s16[3][3] through the rotation matrix, in place */
|
||||||
#define gte_mulcol_E38(r0) __asm__ __volatile__ ( \
|
|
||||||
"lhu $12, 0(%0)\n" "lhu $13, 6(%0)\n" "lhu $14, 12(%0)\n" \
|
|
||||||
"mtc2 $12, $9\n" "mtc2 $13, $10\n" "mtc2 $14, $11\n" \
|
|
||||||
"nop\n" "nop\n" "mvmva 1, 0, 3, 3, 0\n" \
|
|
||||||
"mfc2 $12, $9\n" "mfc2 $13, $10\n" "mfc2 $14, $11\n" \
|
|
||||||
"sh $12, 0(%0)\n" "sh $13, 6(%0)\n" "sh $14, 12(%0)\n" \
|
|
||||||
: : "r"(r0) : "$12", "$13", "$14", "memory")
|
|
||||||
|
|
||||||
/* the s32 t[3] through the same matrix, in place */
|
/* the s32 t[3] through the same matrix, in place */
|
||||||
#define gte_multrans_E38(r0) __asm__ __volatile__ ( \
|
|
||||||
"lhu $13, 4(%0)\n" "lhu $12, 0(%0)\n" \
|
|
||||||
"sll $13, $13, 16\n" "or $12, $12, $13\n" \
|
|
||||||
"mtc2 $12, $0\n" "lwc2 $1, 8(%0)\n" \
|
|
||||||
"nop\n" "nop\n" "mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
"swc2 $25, 0(%0)\n" "swc2 $26, 4(%0)\n" "swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "$12", "$13", "memory")
|
|
||||||
|
|
||||||
#define gte_ldv0_E38(r0) __asm__ __volatile__ ("lwc2 $0, 0(%0)\nlwc2 $1, 4(%0)" : : "r"(r0))
|
|
||||||
#define gte_ldv3_E38(r0, r1, r2) __asm__ __volatile__ ( \
|
|
||||||
"lwc2 $0, 0(%0)\n" "lwc2 $1, 4(%0)\n" \
|
|
||||||
"lwc2 $2, 0(%1)\n" "lwc2 $3, 4(%1)\n" \
|
|
||||||
"lwc2 $4, 0(%2)\n" "lwc2 $5, 4(%2)\n" \
|
|
||||||
: : "r"(r0), "r"(r1), "r"(r2))
|
|
||||||
#define gte_rtps_E38() __asm__ __volatile__ ("nop\nnop\nrtps")
|
|
||||||
#define gte_rtpt_E38() __asm__ __volatile__ ("nop\nnop\nrtpt")
|
|
||||||
#define gte_avsz4_E38() __asm__ __volatile__ ("nop\nnop\navsz4")
|
|
||||||
#define gte_stsxy_E38(r0) __asm__ __volatile__ ("swc2 $14, 0(%0)" : : "r"(r0) : "memory")
|
|
||||||
#define gte_stsxy3_E38(r0, r1, r2) __asm__ __volatile__ ( \
|
|
||||||
"swc2 $12, 0(%0)\n" "swc2 $13, 0(%1)\n" "swc2 $14, 0(%2)" \
|
|
||||||
: : "r"(r0), "r"(r1), "r"(r2) : "memory")
|
|
||||||
#define gte_stotz_E38(r0) __asm__ __volatile__ ("swc2 $7, 0(%0)" : : "r"(r0) : "memory")
|
|
||||||
#define gte_stflg_E38(r0) __asm__ __volatile__ ("cfc2 $12, $31\nnop\nsw $12, 0(%0)" : : "r"(r0) : "$12", "memory")
|
|
||||||
|
|
||||||
/* Levers that closed this one (all byte-verified with match_one):
|
/* Levers that closed this one (all byte-verified with match_one):
|
||||||
* 1. Params used DIRECTLY (no `s2 = (u8 *)a1;` locals). The explicit copy
|
* 1. Params used DIRECTLY (no `s2 = (u8 *)a1;` locals). The explicit copy
|
||||||
@@ -10544,19 +10484,19 @@ void func_801AEC38(s32 a0, s32 a1, s32 a2)
|
|||||||
mtx.t[0] = 0;
|
mtx.t[0] = 0;
|
||||||
func_80020F34((s32)&mtx, (s32)(((u8 *)a1) + 0xC));
|
func_80020F34((s32)&mtx, (s32)(((u8 *)a1) + 0xC));
|
||||||
|
|
||||||
gte_SetRotMatrix_E38(((u8 *)a2));
|
gte_SetRotMatrix(((u8 *)a2));
|
||||||
gte_mulcol_E38((u8 *)&mtx);
|
gte_mulcol((u8 *)&mtx);
|
||||||
gte_mulcol_E38((u8 *)&mtx + 2);
|
gte_mulcol((u8 *)&mtx + 2);
|
||||||
gte_mulcol_E38((u8 *)&mtx + 4);
|
gte_mulcol((u8 *)&mtx + 4);
|
||||||
gte_SetTransMatrix_E38(((u8 *)a2));
|
gte_SetTransMatrix(((u8 *)a2));
|
||||||
gte_multrans_E38((u8 *)mtx.t);
|
gte_multrans((u8 *)mtx.t);
|
||||||
|
|
||||||
gte_SetRotMatrix_E38(&D_800AF648);
|
gte_SetRotMatrix(&D_800AF648);
|
||||||
gte_mulcol_E38((u8 *)&mtx);
|
gte_mulcol((u8 *)&mtx);
|
||||||
gte_mulcol_E38((u8 *)&mtx + 2);
|
gte_mulcol((u8 *)&mtx + 2);
|
||||||
gte_mulcol_E38((u8 *)&mtx + 4);
|
gte_mulcol((u8 *)&mtx + 4);
|
||||||
gte_SetTransMatrix_E38(&D_800AF648);
|
gte_SetTransMatrix(&D_800AF648);
|
||||||
gte_multrans_E38((u8 *)mtx.t);
|
gte_multrans((u8 *)mtx.t);
|
||||||
|
|
||||||
func_8004914C(&mtx);
|
func_8004914C(&mtx);
|
||||||
func_800491AC(&mtx);
|
func_800491AC(&mtx);
|
||||||
@@ -10583,17 +10523,17 @@ void func_801AEC38(s32 a0, s32 a1, s32 a2)
|
|||||||
pkt[7] = 0x3A;
|
pkt[7] = 0x3A;
|
||||||
}
|
}
|
||||||
|
|
||||||
gte_ldv3_E38(&sv[0], &sv[1], &sv[2]);
|
gte_ldv3(&sv[0], &sv[1], &sv[2]);
|
||||||
gte_rtpt_E38();
|
gte_rtpt();
|
||||||
gte_stflg_E38(&flag);
|
gte_stflg(&flag);
|
||||||
gte_stsxy3_E38(pkt + 8, pkt + 0x10, pkt + 0x18);
|
gte_stsxy3(pkt + 8, pkt + 0x10, pkt + 0x18);
|
||||||
gte_ldv0_E38(&sv[3]);
|
gte_ldv0(&sv[3]);
|
||||||
gte_rtps_E38();
|
gte_rtps();
|
||||||
gte_stflg_E38(&flag2);
|
gte_stflg(&flag2);
|
||||||
flag |= flag2;
|
flag |= flag2;
|
||||||
gte_stsxy_E38(pkt + 0x20);
|
gte_stsxy(pkt + 0x20);
|
||||||
gte_avsz4_E38();
|
gte_avsz4();
|
||||||
gte_stotz_E38(&otz);
|
gte_stotz(&otz);
|
||||||
|
|
||||||
if ((flag & ~0x1000) == 0) {
|
if ((flag & ~0x1000) == 0) {
|
||||||
u8 pad1[8]; /* sp+0x90 */
|
u8 pad1[8]; /* sp+0x90 */
|
||||||
@@ -10723,68 +10663,13 @@ void func_801AF2EC(void *a0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $19, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define RD16(p) (((struct { u16 v; } *)(p))->v)
|
#define RD16(p) (((struct { u16 v; } *)(p))->v)
|
||||||
#define RW32(p) (((struct { u32 v; } *)(p))->v)
|
#define RW32(p) (((struct { u32 v; } *)(p))->v)
|
||||||
|
|||||||
@@ -1550,50 +1550,10 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
extern u8 D_800AF648;
|
extern u8 D_800AF648;
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8012E778.h"
|
#include "../shared/ov/func_8012E778.h"
|
||||||
|
|
||||||
@@ -1667,114 +1627,6 @@ void func_8012E9C0(int param_1)
|
|||||||
|
|
||||||
|
|
||||||
typedef struct { s8 c[8]; } Blk8_8012EFB8;
|
typedef struct { s8 c[8]; } Blk8_8012EFB8;
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
|
|||||||
@@ -1341,116 +1341,6 @@ void func_8013277C(void) {
|
|||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -1793,11 +1683,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8017E924) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8017E924) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8017E928);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8017E928) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8017E924;
|
pc0 = D_8017E924;
|
||||||
pc4 = D_8017E928;
|
pc4 = D_8017E928;
|
||||||
|
|||||||
@@ -1057,20 +1057,6 @@ extern void func_8013AA24(s32 a0, s32 a1);
|
|||||||
#include "../shared/ov/func_8013AB54.h"
|
#include "../shared/ov/func_8013AB54.h"
|
||||||
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1094,7 +1080,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair *)out2)[i].x = res[0];
|
((Pair *)out2)[i].x = res[0];
|
||||||
((Pair *)out2)[i].y = res[1];
|
((Pair *)out2)[i].y = res[1];
|
||||||
@@ -1173,12 +1159,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1192,12 +1174,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -821,46 +821,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -936,114 +896,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2271,80 +2123,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2681,11 +2459,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8017F1AC) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8017F1AC) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8017F1B0);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8017F1B0) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8017F1AC;
|
pc0 = D_8017F1AC;
|
||||||
pc4 = D_8017F1B0;
|
pc4 = D_8017F1B0;
|
||||||
|
|||||||
@@ -1010,22 +1010,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8017F2D8[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8017F2D8[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1046,7 +1032,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1123,12 +1109,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1142,12 +1124,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2669,73 +2669,14 @@ extern void func_8017BEB4(void);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2745,45 +2686,10 @@ extern void func_8017BEB4(void);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017BEBC__t67f11bf2.h"
|
#include "../shared/ov/func_8017BEBC__t67f11bf2.h"
|
||||||
|
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2271,80 +2123,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2681,11 +2459,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80183DFC) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80183DFC) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80183E00);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80183E00) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80183DFC;
|
pc0 = D_80183DFC;
|
||||||
pc4 = D_80183E00;
|
pc4 = D_80183E00;
|
||||||
|
|||||||
@@ -1010,22 +1010,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80183F28[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80183F28[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1046,7 +1032,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1123,12 +1109,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1142,12 +1124,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2686,73 +2686,14 @@ extern void func_8017BEB4(void);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2762,45 +2703,10 @@ extern void func_8017BEB4(void);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017BEBC__t67f11bf2.h"
|
#include "../shared/ov/func_8017BEBC__t67f11bf2.h"
|
||||||
|
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8017F7C0) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8017F7C0) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8017F7C4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8017F7C4) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8017F7C0;
|
pc0 = D_8017F7C0;
|
||||||
pc4 = D_8017F7C4;
|
pc4 = D_8017F7C4;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8017F8EC[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8017F8EC[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2693,121 +2693,20 @@ extern void func_8017BE60(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017BE9C(s32 arg0)
|
void func_8017BE9C(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -3046,7 +2945,7 @@ void func_8017BE9C(s32 arg0)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(vd);
|
gte_ldv0(vd);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
||||||
|
|||||||
@@ -806,46 +806,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -921,114 +881,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2264,80 +2116,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2674,11 +2452,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80182954) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80182954) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80182958);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80182958) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80182954;
|
pc0 = D_80182954;
|
||||||
pc4 = D_80182958;
|
pc4 = D_80182958;
|
||||||
|
|||||||
@@ -1010,22 +1010,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80182A80[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80182A80[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1046,7 +1032,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1123,12 +1109,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1142,12 +1124,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2702,121 +2702,20 @@ extern void func_8017C338(void);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017C340(s32 arg0)
|
void func_8017C340(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -3055,7 +2954,7 @@ void func_8017C340(s32 arg0)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(vd);
|
gte_ldv0(vd);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8017FD34) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8017FD34) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8017FD38);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8017FD38) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8017FD34;
|
pc0 = D_8017FD34;
|
||||||
pc4 = D_8017FD38;
|
pc4 = D_8017FD38;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8017FE60[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8017FE60[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2693,121 +2693,20 @@ extern void func_8017BE60(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017BE9C(s32 arg0)
|
void func_8017BE9C(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -3046,7 +2945,7 @@ void func_8017BE9C(s32 arg0)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(vd);
|
gte_ldv0(vd);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80182F1C) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80182F1C) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80182F20);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80182F20) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80182F1C;
|
pc0 = D_80182F1C;
|
||||||
pc4 = D_80182F20;
|
pc4 = D_80182F20;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80183048[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80183048[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2686,121 +2686,20 @@ extern void func_8017BE60(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017BE9C(s32 arg0)
|
void func_8017BE9C(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -3039,7 +2938,7 @@ void func_8017BE9C(s32 arg0)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(vd);
|
gte_ldv0(vd);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8017EB9C) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8017EB9C) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8017EBA0);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8017EBA0) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8017EB9C;
|
pc0 = D_8017EB9C;
|
||||||
pc4 = D_8017EBA0;
|
pc4 = D_8017EBA0;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8017ECC8[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8017ECC8[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2693,121 +2693,20 @@ extern void func_8017BE60(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017BE9C(s32 arg0)
|
void func_8017BE9C(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -3046,7 +2945,7 @@ void func_8017BE9C(s32 arg0)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(vd);
|
gte_ldv0(vd);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
||||||
|
|||||||
@@ -984,50 +984,10 @@ void func_8012E364(s32 arg0_)
|
|||||||
* `rtps` assembler macro (include/gte_macros.inc, pulled in by common.h ->
|
* `rtps` assembler macro (include/gte_macros.inc, pulled in by common.h ->
|
||||||
* include_asm.h -> labels.inc) which encodes 0x4A180001 — NOT the psyq
|
* include_asm.h -> labels.inc) which encodes 0x4A180001 — NOT the psyq
|
||||||
* `.word 0x0000007f`, which assembles to the wrong word for this target. */
|
* `.word 0x0000007f`, which assembles to the wrong word for this target. */
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8012E778.h"
|
#include "../shared/ov/func_8012E778.h"
|
||||||
@@ -1113,53 +1073,11 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
* address taken by a "memory"-clobbering asm, so it lives at 0($sp) and the
|
* address taken by a "memory"-clobbering asm, so it lives at 0($sp) and the
|
||||||
* `return flag` reloads it -> lw $v0, 0($sp) in the epilogue. */
|
* `return flag` reloads it -> lw $v0, 0($sp) in the epilogue. */
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2532,61 +2450,11 @@ extern s16 D_80126CB0;
|
|||||||
// @stuck: none — MATCH (110/110 ins, symcheck SYMS-OK). PsyQ GTE inline-asm block (SetTransMatrix before SetRotMatrix, ldv0/rtv0tr/stlvnl/stflg) + §43 K&R s16 param_3 (in-place `sll $a2,$a2,16` tell) + 16-byte s32[4] locals for the 0x10/0x20/0x30 slot order.
|
// @stuck: none — MATCH (110/110 ins, symcheck SYMS-OK). PsyQ GTE inline-asm block (SetTransMatrix before SetRotMatrix, ldv0/rtv0tr/stlvnl/stflg) + §43 K&R s16 param_3 (in-place `sll $a2,$a2,16` tell) + 16-byte s32[4] locals for the 0x10/0x20/0x30 slot order.
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2984,11 +2852,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_801870C0) : "$9", "$10", "$11", "memory");
|
: : "r"(D_801870C0) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_801870C4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_801870C4) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_801870C0;
|
pc0 = D_801870C0;
|
||||||
pc4 = D_801870C4;
|
pc4 = D_801870C4;
|
||||||
|
|||||||
@@ -1273,22 +1273,8 @@ struct S8013A4C4;
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_801871EC[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_801871EC[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1309,7 +1295,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair *)out2)[i].x = res[0];
|
((Pair *)out2)[i].x = res[0];
|
||||||
((Pair *)out2)[i].y = res[1];
|
((Pair *)out2)[i].y = res[1];
|
||||||
@@ -1427,12 +1413,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1446,12 +1428,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -3602,98 +3602,17 @@ typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C974;
|
|||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C974;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C974;
|
||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C974;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C974;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz3() __asm__ volatile ("nop;nop;avsz3")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017C974(s32 arg0)
|
void func_8017C974(s32 arg0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80183AFC) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80183AFC) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80183B00);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80183B00) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80183AFC;
|
pc0 = D_80183AFC;
|
||||||
pc4 = D_80183B00;
|
pc4 = D_80183B00;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80183C28[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80183C28[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -3376,98 +3376,17 @@ typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
|
|||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
|
||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz3() __asm__ volatile ("nop;nop;avsz3")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017C59C(s32 arg0)
|
void func_8017C59C(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -5626,30 +5545,8 @@ typedef struct {
|
|||||||
u16 x3, y3; u32 uv3;
|
u16 x3, y3; u32 uv3;
|
||||||
} PFT4_FD64;
|
} PFT4_FD64;
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
|
|
||||||
#define gte_stsxy0(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 )" : : "r"( r0 ) : "memory" )
|
|
||||||
#define gte_stsxy1(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $13, 0( %0 )" : : "r"( r0 ) : "memory" )
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
void func_8017FD64(s32 arg0)
|
void func_8017FD64(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -5687,7 +5584,7 @@ void func_8017FD64(s32 arg0)
|
|||||||
gte_rtpt();
|
gte_rtpt();
|
||||||
gte_stsxy0(&sxy[0]);
|
gte_stsxy0(&sxy[0]);
|
||||||
gte_stsxy1(&sxy[1]);
|
gte_stsxy1(&sxy[1]);
|
||||||
gte_stotz(&opz);
|
gte_stszotz(&opz);
|
||||||
if (!((u16)(sxy[0].vx + 0xA0) < 0x141)) continue;
|
if (!((u16)(sxy[0].vx + 0xA0) < 0x141)) continue;
|
||||||
if (!((u16)(sxy[0].vy + 0x78) < 0xF1)) continue;
|
if (!((u16)(sxy[0].vy + 0x78) < 0xF1)) continue;
|
||||||
q = (PFT4_FD64 *)pkt;
|
q = (PFT4_FD64 *)pkt;
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80186DF0) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80186DF0) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80186DF4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80186DF4) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80186DF0;
|
pc0 = D_80186DF0;
|
||||||
pc4 = D_80186DF4;
|
pc4 = D_80186DF4;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80186F1C[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80186F1C[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2695,73 +2695,14 @@ extern void func_8017C7C4(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2771,45 +2712,10 @@ extern void func_8017C7C4(void *a0);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017CA80__t67f11bf2.h"
|
#include "../shared/ov/func_8017CA80__t67f11bf2.h"
|
||||||
|
|
||||||
|
|||||||
@@ -2640,68 +2640,12 @@ extern s16 D_8018AC64; /* vert1 .vz */
|
|||||||
extern s16 D_8018AC68; /* vert2 .vx/.vy */
|
extern s16 D_8018AC68; /* vert2 .vx/.vy */
|
||||||
extern s16 D_8018AC6C; /* vert2 .vz */
|
extern s16 D_8018AC6C; /* vert2 .vz */
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
s16 x; /* +0x0 */
|
s16 x; /* +0x0 */
|
||||||
|
|||||||
@@ -811,46 +811,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -926,114 +886,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2269,80 +2121,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2679,11 +2457,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8018B1A0) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8018B1A0) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8018B1A4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8018B1A4) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8018B1A0;
|
pc0 = D_8018B1A0;
|
||||||
pc4 = D_8018B1A4;
|
pc4 = D_8018B1A4;
|
||||||
|
|||||||
@@ -1010,22 +1010,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8018B2CC[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8018B2CC[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1046,7 +1032,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1123,12 +1109,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1142,12 +1124,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -3871,98 +3871,17 @@ typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_D538;
|
|||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_D538;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_D538;
|
||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_D538;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_D538;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz3() __asm__ volatile ("nop;nop;avsz3")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017D538(s32 arg0)
|
void func_8017D538(s32 arg0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4439,19 +4439,8 @@ extern void func_801824CC(void);
|
|||||||
extern void func_8004914C(void *a0);
|
extern void func_8004914C(void *a0);
|
||||||
extern void func_800491AC(void *a0);
|
extern void func_800491AC(void *a0);
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
|
|
||||||
#define gte_stsz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $19, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_80184BD8(s32 p) {
|
void func_80184BD8(s32 p) {
|
||||||
s32 sz[1];
|
s32 sz[1];
|
||||||
@@ -4869,56 +4858,13 @@ extern void func_800491AC(void *a0);
|
|||||||
extern s32 GetTPage(s32 a0, s32 a1, s32 a2, s32 a3);
|
extern s32 GetTPage(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||||
|
|
||||||
#define gte_ldv3(r0,r1,r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
void func_80185910(SVECTOR *a0, SVECTOR *a1, SVECTOR *a2, SVECTOR *a3)
|
void func_80185910(SVECTOR *a0, SVECTOR *a1, SVECTOR *a2, SVECTOR *a3)
|
||||||
{
|
{
|
||||||
@@ -4938,7 +4884,7 @@ void func_80185910(SVECTOR *a0, SVECTOR *a1, SVECTOR *a2, SVECTOR *a3)
|
|||||||
gte_stflg(&flag);
|
gte_stflg(&flag);
|
||||||
if ((flag & 0x7F85E000) == 0) {
|
if ((flag & 0x7F85E000) == 0) {
|
||||||
p = *(u8 **)&D_800A5E60;
|
p = *(u8 **)&D_800A5E60;
|
||||||
gte_stsxy3(xy);
|
gte_stsxy3c(xy);
|
||||||
gte_ldv0(a3);
|
gte_ldv0(a3);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
((u8 *)p)[7] = 0x3A;
|
((u8 *)p)[7] = 0x3A;
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8017E280) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8017E280) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8017E284);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8017E284) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8017E280;
|
pc0 = D_8017E280;
|
||||||
pc4 = D_8017E284;
|
pc4 = D_8017E284;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8017E3AC[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8017E3AC[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -3375,98 +3375,17 @@ typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
|
|||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
|
||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz3() __asm__ volatile ("nop;nop;avsz3")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017C59C(s32 arg0)
|
void func_8017C59C(s32 arg0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80190E84) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80190E84) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80190E88);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80190E88) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80190E84;
|
pc0 = D_80190E84;
|
||||||
pc4 = D_80190E88;
|
pc4 = D_80190E88;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80190FB0[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80190FB0[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2720,98 +2720,17 @@ typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_CF90;
|
|||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_CF90;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_CF90;
|
||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_CF90;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_CF90;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_avsz3() __asm__ volatile ("nop;nop;avsz3")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017CF90(s32 arg0)
|
void func_8017CF90(s32 arg0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3256,7 +3256,7 @@ void func_8018A4C4(s32 a0)
|
|||||||
:
|
:
|
||||||
: "r"((u8 *)*(s32 *)(a0 + 0x20) + 0x34)
|
: "r"((u8 *)*(s32 *)(a0 + 0x20) + 0x34)
|
||||||
: "$12", "$13", "$14", "memory"
|
: "$12", "$13", "$14", "memory"
|
||||||
);
|
); // !FAKE: gte direct — clobbers ['memory'] (gte_SetTransMatrix_m) beyond Sony's (P36 T5 gte1)
|
||||||
|
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
s0 = func_8012913C(0xC);
|
s0 = func_8012913C(0xC);
|
||||||
@@ -3301,24 +3301,7 @@ void func_8018A6A0(s32 a0, u16 *a1)
|
|||||||
|
|
||||||
func_8012B2CC(a0);
|
func_8012B2CC(a0);
|
||||||
|
|
||||||
__asm__ __volatile__(
|
gte_SetRotTransMatrix((u8 *)*(s32 *)(s0 + 0x20) + 0x34);
|
||||||
"lw $12, 0(%0)\n"
|
|
||||||
"lw $13, 4(%0)\n"
|
|
||||||
"ctc2 $12, $0\n"
|
|
||||||
"ctc2 $13, $1\n"
|
|
||||||
"lw $12, 8(%0)\n"
|
|
||||||
"lw $13, 12(%0)\n"
|
|
||||||
"lw $14, 16(%0)\n"
|
|
||||||
"ctc2 $12, $2\n"
|
|
||||||
"ctc2 $13, $3\n"
|
|
||||||
"ctc2 $14, $4\n"
|
|
||||||
"lw $12, 20(%0)\n"
|
|
||||||
"lw $13, 24(%0)\n"
|
|
||||||
"ctc2 $12, $5\n"
|
|
||||||
"lw $14, 28(%0)\n"
|
|
||||||
"ctc2 $13, $6\n"
|
|
||||||
"ctc2 $14, $7\n"
|
|
||||||
: : "r"((u8 *)*(s32 *)(s0 + 0x20) + 0x34) : "$12", "$13", "$14");
|
|
||||||
|
|
||||||
vec0[2] = 0;
|
vec0[2] = 0;
|
||||||
vec0[0] = 0;
|
vec0[0] = 0;
|
||||||
@@ -3334,17 +3317,9 @@ body:
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"nop\n"
|
"nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(vec0) : "memory");
|
: : "r"(vec0) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(res);
|
||||||
"swc2 $25, 0(%0)\n"
|
gte_stflg(&flags);
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(res) : "memory");
|
|
||||||
__asm__ __volatile__(
|
|
||||||
"cfc2 $12, $31\n"
|
|
||||||
"nop\n"
|
|
||||||
"sw $12, 0(%0)\n"
|
|
||||||
: : "r"(&flags) : "$12", "memory");
|
|
||||||
*(u16 *)(puVar + 6) = (u16)res[0];
|
*(u16 *)(puVar + 6) = (u16)res[0];
|
||||||
*(u16 *)(puVar + 0xA) = (u16)res[1];
|
*(u16 *)(puVar + 0xA) = (u16)res[1];
|
||||||
*(u16 *)(puVar + 0xE) = (u16)(res[2] - 8);
|
*(u16 *)(puVar + 0xE) = (u16)(res[2] - 8);
|
||||||
@@ -4781,24 +4756,7 @@ void func_8018C454(void *a0)
|
|||||||
|
|
||||||
func_8004978C(angle, &mtx);
|
func_8004978C(angle, &mtx);
|
||||||
|
|
||||||
__asm__ __volatile__(
|
gte_SetRotTransMatrix(&mtx);
|
||||||
"lw $12, 0(%0)\n"
|
|
||||||
"lw $13, 4(%0)\n"
|
|
||||||
"ctc2 $12, $0\n"
|
|
||||||
"ctc2 $13, $1\n"
|
|
||||||
"lw $12, 8(%0)\n"
|
|
||||||
"lw $13, 12(%0)\n"
|
|
||||||
"lw $14, 16(%0)\n"
|
|
||||||
"ctc2 $12, $2\n"
|
|
||||||
"ctc2 $13, $3\n"
|
|
||||||
"ctc2 $14, $4\n"
|
|
||||||
"lw $12, 20(%0)\n"
|
|
||||||
"lw $13, 24(%0)\n"
|
|
||||||
"ctc2 $12, $5\n"
|
|
||||||
"lw $14, 28(%0)\n"
|
|
||||||
"ctc2 $13, $6\n"
|
|
||||||
"ctc2 $14, $7\n"
|
|
||||||
: : "r"(&mtx) : "$12", "$13", "$14");
|
|
||||||
|
|
||||||
__asm__ __volatile__(
|
__asm__ __volatile__(
|
||||||
"lwc2 $0, 0(%0)\n"
|
"lwc2 $0, 0(%0)\n"
|
||||||
@@ -4806,19 +4764,11 @@ void func_8018C454(void *a0)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"nop\n"
|
"nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(vec0) : "memory");
|
: : "r"(vec0) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
|
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(s0 + 4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(s0 + 4) : "memory");
|
|
||||||
|
|
||||||
__asm__ __volatile__(
|
gte_stflg(&flags);
|
||||||
"cfc2 $12, $31\n"
|
|
||||||
"nop\n"
|
|
||||||
"sw $12, 0(%0)\n"
|
|
||||||
: : "r"(&flags) : "$12", "memory");
|
|
||||||
|
|
||||||
*(s32 *)(s0 + 4) <<= 16;
|
*(s32 *)(s0 + 4) <<= 16;
|
||||||
*(s32 *)(s0 + 8) <<= 16;
|
*(s32 *)(s0 + 8) <<= 16;
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_801912D4) : "$9", "$10", "$11", "memory");
|
: : "r"(D_801912D4) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_801912D8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_801912D8) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_801912D4;
|
pc0 = D_801912D4;
|
||||||
pc4 = D_801912D8;
|
pc4 = D_801912D8;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80191400[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80191400[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -5253,25 +5253,8 @@ extern void func_80017714(void *);
|
|||||||
|
|
||||||
extern struct PW8017E72C D_80194BA4[];
|
extern struct PW8017E72C D_80194BA4[];
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_rt() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stsv(r0) __asm__ __volatile__( \
|
|
||||||
"mfc2 $12, $9\n" \
|
|
||||||
"mfc2 $13, $10\n" \
|
|
||||||
"mfc2 $14, $11\n" \
|
|
||||||
"sh $12, 0(%0)\n" \
|
|
||||||
"sh $13, 2(%0)\n" \
|
|
||||||
"sh $14, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "$12", "$13", "$14", "memory")
|
|
||||||
|
|
||||||
void func_8017E72C(int a, s16 *b, SVECTOR_8017E72C *c, SVECTOR_8017E72C *d,
|
void func_8017E72C(int a, s16 *b, SVECTOR_8017E72C *c, SVECTOR_8017E72C *d,
|
||||||
SVECTOR_8017E72C *e, SVECTOR_8017E72C *f, s16 *g)
|
SVECTOR_8017E72C *e, SVECTOR_8017E72C *f, s16 *g)
|
||||||
@@ -5324,15 +5307,15 @@ void func_8017E72C(int a, s16 *b, SVECTOR_8017E72C *c, SVECTOR_8017E72C *d,
|
|||||||
{ int t = f->vy - 0x10; f->vy = t + (r & 0x1f); }
|
{ int t = f->vy - 0x10; f->vy = t + (r & 0x1f); }
|
||||||
|
|
||||||
gte_ldv0(c);
|
gte_ldv0(c);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
gte_stsv(r0_00);
|
gte_stsv(r0_00);
|
||||||
|
|
||||||
gte_ldv0(f);
|
gte_ldv0(f);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
gte_stsv(r0_00 + 1);
|
gte_stsv(r0_00 + 1);
|
||||||
|
|
||||||
gte_ldv0(d);
|
gte_ldv0(d);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
r0 = r0_00 + 2;
|
r0 = r0_00 + 2;
|
||||||
gte_stsv(r0);
|
gte_stsv(r0);
|
||||||
|
|
||||||
@@ -5341,7 +5324,7 @@ void func_8017E72C(int a, s16 *b, SVECTOR_8017E72C *c, SVECTOR_8017E72C *d,
|
|||||||
d->vx = d->vx - (f->pad & r);
|
d->vx = d->vx - (f->pad & r);
|
||||||
|
|
||||||
gte_ldv0(d);
|
gte_ldv0(d);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
pSVar6 = r0_00 + 3;
|
pSVar6 = r0_00 + 3;
|
||||||
gte_stsv(pSVar6);
|
gte_stsv(pSVar6);
|
||||||
|
|
||||||
@@ -5349,7 +5332,7 @@ void func_8017E72C(int a, s16 *b, SVECTOR_8017E72C *c, SVECTOR_8017E72C *d,
|
|||||||
func_80017714(r0_00);
|
func_80017714(r0_00);
|
||||||
|
|
||||||
gte_ldv0(e);
|
gte_ldv0(e);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
gte_stsv(r0);
|
gte_stsv(r0);
|
||||||
|
|
||||||
*e = *f;
|
*e = *f;
|
||||||
@@ -5357,7 +5340,7 @@ void func_8017E72C(int a, s16 *b, SVECTOR_8017E72C *c, SVECTOR_8017E72C *d,
|
|||||||
e->vx = e->vx + (f->pad & r);
|
e->vx = e->vx + (f->pad & r);
|
||||||
|
|
||||||
gte_ldv0(e);
|
gte_ldv0(e);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
gte_stsv(pSVar6);
|
gte_stsv(pSVar6);
|
||||||
|
|
||||||
r0_00->vz = ((u16 *)b)[2];
|
r0_00->vz = ((u16 *)b)[2];
|
||||||
@@ -5990,45 +5973,6 @@ extern void func_80013F3C(s32 a0);
|
|||||||
extern void func_80017714(void *);
|
extern void func_80017714(void *);
|
||||||
extern void func_8004914C();
|
extern void func_8004914C();
|
||||||
extern void func_800491AC();
|
extern void func_800491AC();
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
#define gte_rt() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
#define gte_stsv(r0) __asm__ __volatile__( \
|
|
||||||
"mfc2 $12, $9\n" \
|
|
||||||
"mfc2 $13, $10\n" \
|
|
||||||
"mfc2 $14, $11\n" \
|
|
||||||
"sh $12, 0(%0)\n" \
|
|
||||||
"sh $13, 2(%0)\n" \
|
|
||||||
"sh $14, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "$12", "$13", "$14", "memory")
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
#define gte_rt() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
#define gte_stsv(r0) __asm__ __volatile__( \
|
|
||||||
"mfc2 $12, $9\n" \
|
|
||||||
"mfc2 $13, $10\n" \
|
|
||||||
"mfc2 $14, $11\n" \
|
|
||||||
"sh $12, 0(%0)\n" \
|
|
||||||
"sh $13, 2(%0)\n" \
|
|
||||||
"sh $14, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "$12", "$13", "$14", "memory")
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
void func_8017F7B4(int a0, SVECTOR_8017C290 *a1, SVECTOR_8017C290 *a2, s32 a3)
|
void func_8017F7B4(int a0, SVECTOR_8017C290 *a1, SVECTOR_8017C290 *a2, s32 a3)
|
||||||
{
|
{
|
||||||
@@ -6063,22 +6007,22 @@ void func_8017F7B4(int a0, SVECTOR_8017C290 *a1, SVECTOR_8017C290 *a2, s32 a3)
|
|||||||
r0_00 = &D_801EB4C8[0];
|
r0_00 = &D_801EB4C8[0];
|
||||||
|
|
||||||
gte_ldv0(a1);
|
gte_ldv0(a1);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
gte_stsv(r0_00);
|
gte_stsv(r0_00);
|
||||||
|
|
||||||
gte_ldv0(a2);
|
gte_ldv0(a2);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
gte_stsv(r0_00 + 1);
|
gte_stsv(r0_00 + 1);
|
||||||
|
|
||||||
a1->vx = a1->vx - 2;
|
a1->vx = a1->vx - 2;
|
||||||
gte_ldv0(a1);
|
gte_ldv0(a1);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
r0 = r0_00 + 2;
|
r0 = r0_00 + 2;
|
||||||
gte_stsv(r0);
|
gte_stsv(r0);
|
||||||
|
|
||||||
a2->vx = a2->vx - 2;
|
a2->vx = a2->vx - 2;
|
||||||
gte_ldv0(a2);
|
gte_ldv0(a2);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
pSVar6 = r0_00 + 3;
|
pSVar6 = r0_00 + 3;
|
||||||
gte_stsv(pSVar6);
|
gte_stsv(pSVar6);
|
||||||
|
|
||||||
@@ -6087,12 +6031,12 @@ void func_8017F7B4(int a0, SVECTOR_8017C290 *a1, SVECTOR_8017C290 *a2, s32 a3)
|
|||||||
|
|
||||||
a1->vx = a1->vx + 4;
|
a1->vx = a1->vx + 4;
|
||||||
gte_ldv0(a1);
|
gte_ldv0(a1);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
gte_stsv(r0);
|
gte_stsv(r0);
|
||||||
|
|
||||||
a2->vx = a2->vx + 4;
|
a2->vx = a2->vx + 4;
|
||||||
gte_ldv0(a2);
|
gte_ldv0(a2);
|
||||||
gte_rt();
|
gte_rtv0tr();
|
||||||
gte_stsv(pSVar6);
|
gte_stsv(pSVar6);
|
||||||
|
|
||||||
r0_00->vz = *(u16 *)(a0 + 0xE);
|
r0_00->vz = *(u16 *)(a0 + 0xE);
|
||||||
@@ -7207,105 +7151,18 @@ typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1;
|
|||||||
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1;
|
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1;
|
||||||
s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PolyFT4_80180FE4;
|
s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PolyFT4_80180FE4;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_80180FE4(s32 arg0)
|
void func_80180FE4(s32 arg0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1690,53 +1690,12 @@ s32 func_8018567C(s32 a0, s32 a1) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_avsz4() __asm__ volatile ("nop;nop;avsz4")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stotz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $7, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
void func_8018576C(u8 *vb)
|
void func_8018576C(u8 *vb)
|
||||||
{
|
{
|
||||||
@@ -3566,30 +3525,6 @@ extern void func_80015978(s32 a0, s32 *a1);
|
|||||||
extern void func_80187FA0(u8 *a0, u8 *a1);
|
extern void func_80187FA0(u8 *a0, u8 *a1);
|
||||||
extern void func_80188034(s32 a0);
|
extern void func_80188034(s32 a0);
|
||||||
|
|
||||||
#define gte_SetRotMatrix_87E08(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"(r0) \
|
|
||||||
: "$12", "$13", "$14")
|
|
||||||
#define gte_SetTransMatrix_87E08(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"(r0) \
|
|
||||||
: "$12", "$13", "$14")
|
|
||||||
|
|
||||||
void func_80187E08(s32 param_1)
|
void func_80187E08(s32 param_1)
|
||||||
{
|
{
|
||||||
@@ -3612,15 +3547,15 @@ void func_80187E08(s32 param_1)
|
|||||||
__asm__ volatile(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
|
__asm__ volatile(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus9)
|
||||||
|
|
||||||
mtx = (s32)&D_800AF648;
|
mtx = (s32)&D_800AF648;
|
||||||
gte_SetRotMatrix_87E08(mtx);
|
gte_SetRotMatrix(mtx);
|
||||||
gte_SetTransMatrix_87E08(mtx);
|
gte_SetTransMatrix(mtx);
|
||||||
|
|
||||||
func_80015978(param_1 + 4, (s32 *)sxy);
|
func_80015978(param_1 + 4, (s32 *)sxy);
|
||||||
|
|
||||||
__asm__ volatile("lwc2 $0, 0(%0)\n\tlwc2 $1, 4(%0)" : : "r"(sxy) : "memory");
|
__asm__ volatile("lwc2 $0, 0(%0)\n\tlwc2 $1, 4(%0)" : : "r"(sxy) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ volatile("nop\n\tnop\n\trtps" : : : "memory");
|
__asm__ volatile("nop\n\tnop\n\trtps" : : : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_rtps_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ volatile("swc2 $14, 0(%0)" : : "r"(sxy) : "memory");
|
gte_stsxy(sxy);
|
||||||
__asm__ volatile("cfc2 $12, $31\n\tnop\n\tsw $12, 0(%0)" : : "r"(&flag) : "$12");
|
__asm__ volatile("cfc2 $12, $31\n\tnop\n\tsw $12, 0(%0)" : : "r"(&flag) : "$12"); // !FAKE: gte direct — clobbers ['memory'] (gte_stflg_v) beyond Sony's (P36 T5 gte1)
|
||||||
|
|
||||||
xt = sxy[0];
|
xt = sxy[0];
|
||||||
lim = ((u32)D_800AF7BC >> 1) + 0x20;
|
lim = ((u32)D_800AF7BC >> 1) + 0x20;
|
||||||
|
|||||||
@@ -800,30 +800,6 @@ extern void RotTransSV(void *a0, void *a1, void *a2);
|
|||||||
extern s32 func_80143BDC(u16 *a0);
|
extern s32 func_80143BDC(u16 *a0);
|
||||||
extern s32 rand(void);
|
extern s32 rand(void);
|
||||||
|
|
||||||
#define SRM_80189F30(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define STM_80189F30(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_80189F30(void *param_1) {
|
void func_80189F30(void *param_1) {
|
||||||
s16 v[8];
|
s16 v[8];
|
||||||
@@ -835,8 +811,8 @@ void func_80189F30(void *param_1) {
|
|||||||
|
|
||||||
v[1] = D_801961CE;
|
v[1] = D_801961CE;
|
||||||
m = (s32 *)(*(s32 *)((s32)param_1 + 0x20) + 0x34);
|
m = (s32 *)(*(s32 *)((s32)param_1 + 0x20) + 0x34);
|
||||||
SRM_80189F30(m);
|
gte_SetRotMatrix(m);
|
||||||
STM_80189F30(m);
|
gte_SetTransMatrix(m);
|
||||||
for (i = 0; i < 10; i++) {
|
for (i = 0; i < 10; i++) {
|
||||||
r = rand() % 144;
|
r = rand() % 144;
|
||||||
if (rand() & 1) {
|
if (rand() & 1) {
|
||||||
@@ -3821,30 +3797,6 @@ extern void RotTransSV(void *a0, void *a1, void *a2);
|
|||||||
extern u8 D_801DF68C[];
|
extern u8 D_801DF68C[];
|
||||||
extern u8 D_801DF694[];
|
extern u8 D_801DF694[];
|
||||||
|
|
||||||
#define SRM_8018D720(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define STM_8018D720(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_8018D720(void *param_1)
|
void func_8018D720(void *param_1)
|
||||||
{
|
{
|
||||||
@@ -3856,8 +3808,8 @@ void func_8018D720(void *param_1)
|
|||||||
|
|
||||||
m = (s32 *)(*(s32 *)((s32)param_1 + 0x20) + 0x34);
|
m = (s32 *)(*(s32 *)((s32)param_1 + 0x20) + 0x34);
|
||||||
|
|
||||||
SRM_8018D720(m);
|
gte_SetRotMatrix(m);
|
||||||
STM_8018D720(m);
|
gte_SetTransMatrix(m);
|
||||||
|
|
||||||
RotTransSV(D_801DF68C, sv0, &flag);
|
RotTransSV(D_801DF68C, sv0, &flag);
|
||||||
RotTransSV(D_801DF694, sv1, &flag);
|
RotTransSV(D_801DF694, sv1, &flag);
|
||||||
@@ -4454,30 +4406,6 @@ extern u8 D_801DF7B8[];
|
|||||||
|
|
||||||
/* NOT named gte_SetRotMatrix/gte_SetTransMatrix: the host TU already defines
|
/* NOT named gte_SetRotMatrix/gte_SetTransMatrix: the host TU already defines
|
||||||
* those two names twice and a third definition would collide. */
|
* those two names twice and a third definition would collide. */
|
||||||
#define SRM_8018E208(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define STM_8018E208(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
s32 func_8018E208(void *a0)
|
s32 func_8018E208(void *a0)
|
||||||
{
|
{
|
||||||
@@ -4507,8 +4435,8 @@ s32 func_8018E208(void *a0)
|
|||||||
p0 = base;
|
p0 = base;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
SRM_8018E208(matrix);
|
gte_SetRotMatrix(matrix);
|
||||||
STM_8018E208(matrix);
|
gte_SetTransMatrix(matrix);
|
||||||
|
|
||||||
RotTransSV(p0, sv0, &flag);
|
RotTransSV(p0, sv0, &flag);
|
||||||
RotTransSV(p1, sv1, &flag);
|
RotTransSV(p1, sv1, &flag);
|
||||||
@@ -4828,30 +4756,6 @@ extern s32 func_80017758(void *a0, void *a1);
|
|||||||
extern u32 D_801DF7F8[];
|
extern u32 D_801DF7F8[];
|
||||||
extern u8 D_801DF85C[];
|
extern u8 D_801DF85C[];
|
||||||
|
|
||||||
#define SRM_8018E8A0(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define STM_8018E8A0(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
typedef struct { s16 vx, vy, vz, pad; } SVec8_8018E8A0; /* 0x08 */
|
typedef struct { s16 vx, vy, vz, pad; } SVec8_8018E8A0; /* 0x08 */
|
||||||
typedef struct { s32 vx, vy, vz, pad; } Vec16_8018E8A0; /* 0x10 */
|
typedef struct { s32 vx, vy, vz, pad; } Vec16_8018E8A0; /* 0x10 */
|
||||||
@@ -4948,8 +4852,8 @@ void func_8018E8A0(void *a0)
|
|||||||
((s32)(s16)*(u16 *)((s32)a0 + 0x70) / 2) * 0x20);
|
((s32)(s16)*(u16 *)((s32)a0 + 0x70) / 2) * 0x20);
|
||||||
dst = prim.v;
|
dst = prim.v;
|
||||||
|
|
||||||
SRM_8018E8A0(&mtx);
|
gte_SetRotMatrix(&mtx);
|
||||||
STM_8018E8A0(&mtx);
|
gte_SetTransMatrix(&mtx);
|
||||||
|
|
||||||
for (j = 0; j < 4; j++, src++, dst++) {
|
for (j = 0; j < 4; j++, src++, dst++) {
|
||||||
RotTransSV(src, dst, &flag);
|
RotTransSV(src, dst, &flag);
|
||||||
@@ -5377,30 +5281,6 @@ extern s32 func_8012BDBC(s32 a0, s32 a1);
|
|||||||
extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3);
|
extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||||
extern void func_80172710(void);
|
extern void func_80172710(void);
|
||||||
extern s32 func_80178BF8();
|
extern s32 func_80178BF8();
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
s32 aF8018A224() __asm__("func_8018F390");
|
s32 aF8018A224() __asm__("func_8018F390");
|
||||||
|
|
||||||
@@ -6192,30 +6072,6 @@ extern void RotTransSV(void *a0, void *a1, void *a2);
|
|||||||
* touching the shared header. */
|
* touching the shared header. */
|
||||||
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
/* §71 sibling: identical shape to func_8018F390 (same TU, this file, D_80126B78/RotTransSV/
|
/* §71 sibling: identical shape to func_8018F390 (same TU, this file, D_80126B78/RotTransSV/
|
||||||
* func_80135888/func_8012BDBC/func_80178BF8/func_80172710 idiom) already MATCHED -- only the
|
* func_80135888/func_8012BDBC/func_80178BF8/func_80172710 idiom) already MATCHED -- only the
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8017E7E8) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8017E7E8) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8017E7EC);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8017E7EC) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8017E7E8;
|
pc0 = D_8017E7E8;
|
||||||
pc4 = D_8017E7EC;
|
pc4 = D_8017E7EC;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8017E914[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8017E914[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -3435,65 +3435,6 @@ void func_8017C18C(s32 a0) {
|
|||||||
|
|
||||||
#include "../shared/ov/func_8017C230.h"
|
#include "../shared/ov/func_8017C230.h"
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
"swc2 $13, 12( %0 );" \
|
"swc2 $13, 12( %0 );" \
|
||||||
@@ -3501,41 +3442,6 @@ void func_8017C18C(s32 a0) {
|
|||||||
: \
|
: \
|
||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017C294__t67f11bf2.h"
|
#include "../shared/ov/func_8017C294__t67f11bf2.h"
|
||||||
|
|
||||||
@@ -3900,68 +3806,12 @@ extern s32 func_8012EF34(s32 a0, s32 a1);
|
|||||||
extern void func_80017D98(void *a0);
|
extern void func_80017D98(void *a0);
|
||||||
extern void func_8001739C(void *a0);
|
extern void func_8001739C(void *a0);
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
s16 x; /* +0x0 */
|
s16 x; /* +0x0 */
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80184A20) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80184A20) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80184A24);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80184A24) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80184A20;
|
pc0 = D_80184A20;
|
||||||
pc4 = D_80184A24;
|
pc4 = D_80184A24;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80184B4C[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80184B4C[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2703,121 +2703,20 @@ extern void func_8017D9B4(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017DC70(s32 arg0)
|
void func_8017DC70(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -3056,7 +2955,7 @@ void func_8017DC70(s32 arg0)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(vd);
|
gte_ldv0(vd);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
||||||
@@ -3791,24 +3690,7 @@ void func_8017F8C0(void *a0) {
|
|||||||
|
|
||||||
func_8004978C(angle, &mtx);
|
func_8004978C(angle, &mtx);
|
||||||
|
|
||||||
__asm__ __volatile__(
|
gte_SetRotTransMatrix(&mtx);
|
||||||
"lw $12, 0(%0)\n"
|
|
||||||
"lw $13, 4(%0)\n"
|
|
||||||
"ctc2 $12, $0\n"
|
|
||||||
"ctc2 $13, $1\n"
|
|
||||||
"lw $12, 8(%0)\n"
|
|
||||||
"lw $13, 12(%0)\n"
|
|
||||||
"lw $14, 16(%0)\n"
|
|
||||||
"ctc2 $12, $2\n"
|
|
||||||
"ctc2 $13, $3\n"
|
|
||||||
"ctc2 $14, $4\n"
|
|
||||||
"lw $12, 20(%0)\n"
|
|
||||||
"lw $13, 24(%0)\n"
|
|
||||||
"ctc2 $12, $5\n"
|
|
||||||
"lw $14, 28(%0)\n"
|
|
||||||
"ctc2 $13, $6\n"
|
|
||||||
"ctc2 $14, $7\n"
|
|
||||||
: : "r"(&mtx) : "$12", "$13", "$14");
|
|
||||||
|
|
||||||
__asm__ __volatile__(
|
__asm__ __volatile__(
|
||||||
"lwc2 $0, 0(%0)\n"
|
"lwc2 $0, 0(%0)\n"
|
||||||
@@ -3816,19 +3698,11 @@ void func_8017F8C0(void *a0) {
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"nop\n"
|
"nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(vec0) : "memory");
|
: : "r"(vec0) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
|
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(s0 + 4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(s0 + 4) : "memory");
|
|
||||||
|
|
||||||
__asm__ __volatile__(
|
gte_stflg(&flags);
|
||||||
"cfc2 $12, $31\n"
|
|
||||||
"nop\n"
|
|
||||||
"sw $12, 0(%0)\n"
|
|
||||||
: : "r"(&flags) : "$12", "memory");
|
|
||||||
|
|
||||||
*(s32 *)(s0 + 4) <<= 16;
|
*(s32 *)(s0 + 4) <<= 16;
|
||||||
*(s32 *)(s0 + 8) <<= 16;
|
*(s32 *)(s0 + 8) <<= 16;
|
||||||
@@ -4153,48 +4027,6 @@ extern u8 *D_8018850C[];
|
|||||||
extern void func_80015978(s32 a0, s32 *a1);
|
extern void func_80015978(s32 a0, s32 *a1);
|
||||||
extern void func_801802C8(u8 *a0, u8 *a1);
|
extern void func_801802C8(u8 *a0, u8 *a1);
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
void func_80180154(s32 param_1)
|
void func_80180154(s32 param_1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8018AA78) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8018AA78) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8018AA7C);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8018AA7C) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8018AA78;
|
pc0 = D_8018AA78;
|
||||||
pc4 = D_8018AA7C;
|
pc4 = D_8018AA7C;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8018ABA4[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8018ABA4[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2708,121 +2708,20 @@ extern void func_8017DE98(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017DF34(s32 arg0)
|
void func_8017DF34(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -3061,7 +2960,7 @@ void func_8017DF34(s32 arg0)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(vd);
|
gte_ldv0(vd);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
||||||
@@ -4171,30 +4070,6 @@ extern void RotTransSV(void *a0, void *a1, void *a2);
|
|||||||
/* not declared anywhere in src/ or include/ */
|
/* not declared anywhere in src/ or include/ */
|
||||||
extern u8 D_8018E27C[];
|
extern u8 D_8018E27C[];
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_80180410(s32 a0, s32 a1, s32 a2)
|
void func_80180410(s32 a0, s32 a1, s32 a2)
|
||||||
{
|
{
|
||||||
@@ -5091,30 +4966,6 @@ extern void func_80172710(void);
|
|||||||
extern s32 func_80178BF8();
|
extern s32 func_80178BF8();
|
||||||
extern void RotTransSV(void *a0, void *a1, void *a2);
|
extern void RotTransSV(void *a0, void *a1, void *a2);
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -5373,48 +5224,6 @@ s32 func_80181E5C(void *a0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* TU RECONCILE (ov_SC02_017_jr_8017DF34.c:5281): the file's authoritative forward declaration is
|
/* TU RECONCILE (ov_SC02_017_jr_8017DF34.c:5281): the file's authoritative forward declaration is
|
||||||
`extern void func_80181E98(u8 *a0);` -- a stale guess from before this function was matched (the
|
`extern void func_80181E98(u8 *a0);` -- a stale guess from before this function was matched (the
|
||||||
@@ -5522,10 +5331,6 @@ ret0:
|
|||||||
typedef struct { s16 vx, vy, vz, pad; } SV_8018209C;
|
typedef struct { s16 vx, vy, vz, pad; } SV_8018209C;
|
||||||
typedef struct { s16 x, y; s32 flag; } RES_8018209C;
|
typedef struct { s16 x, y; s32 flag; } RES_8018209C;
|
||||||
|
|
||||||
#define GTE_LDXY_8018209C(r) __asm__ __volatile__ ("lwc2 $0, 0(%0)\nlwc2 $1, 4(%0)" : : "r"(r))
|
|
||||||
#define GTE_RTPS_8018209C() __asm__ __volatile__ ("nop\nnop\nrtps")
|
|
||||||
#define GTE_STXY_8018209C(r) __asm__ __volatile__ ("swc2 $14, 0(%0)" : : "r"(r))
|
|
||||||
#define GTE_STFLG_8018209C(r) __asm__ __volatile__ ("cfc2 $12, $31\nnop\nsw $12, 0(%0)" : : "r"(r) : "$12", "memory")
|
|
||||||
|
|
||||||
extern u8 D_800AF648;
|
extern u8 D_800AF648;
|
||||||
extern u8 D_8018E56C[];
|
extern u8 D_8018E56C[];
|
||||||
@@ -5550,17 +5355,17 @@ void func_8018209C(void *arg0)
|
|||||||
"ctc2 $12, $0\n" "ctc2 $13, $1\n"
|
"ctc2 $12, $0\n" "ctc2 $13, $1\n"
|
||||||
"lw $12, 8(%0)\n" "lw $13, 12(%0)\n" "lw $14, 16(%0)\n"
|
"lw $12, 8(%0)\n" "lw $13, 12(%0)\n" "lw $14, 16(%0)\n"
|
||||||
"ctc2 $12, $2\n" "ctc2 $13, $3\n" "ctc2 $14, $4\n"
|
"ctc2 $12, $2\n" "ctc2 $13, $3\n" "ctc2 $14, $4\n"
|
||||||
: : "r"(g) : "$12", "$13", "$14", "memory");
|
: : "r"(g) : "$12", "$13", "$14", "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_SetRotMatrix_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
__asm__ __volatile__(
|
||||||
"lw $12, 20(%0)\n" "lw $13, 24(%0)\n"
|
"lw $12, 20(%0)\n" "lw $13, 24(%0)\n"
|
||||||
"ctc2 $12, $5\n" "lw $14, 28(%0)\n"
|
"ctc2 $12, $5\n" "lw $14, 28(%0)\n"
|
||||||
"ctc2 $13, $6\n" "ctc2 $14, $7\n"
|
"ctc2 $13, $6\n" "ctc2 $14, $7\n"
|
||||||
: : "r"(g) : "$12", "$13", "$14", "memory");
|
: : "r"(g) : "$12", "$13", "$14", "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_SetTransMatrix_m) beyond Sony's (P36 T5 gte1)
|
||||||
|
|
||||||
GTE_LDXY_8018209C(&vin);
|
gte_ldv0(&vin);
|
||||||
GTE_RTPS_8018209C();
|
gte_rtps();
|
||||||
GTE_STXY_8018209C(&res.x);
|
gte_stsxy(&res.x);
|
||||||
GTE_STFLG_8018209C(&res.flag);
|
gte_stflg(&res.flag);
|
||||||
|
|
||||||
if ((res.flag & -0x1001) != 0) { rv = 0; goto out; }
|
if ((res.flag & -0x1001) != 0) { rv = 0; goto out; }
|
||||||
if ((res.x < 0 ? -res.x : res.x) >= 0xAB)
|
if ((res.x < 0 ? -res.x : res.x) >= 0xAB)
|
||||||
@@ -5573,10 +5378,10 @@ L2:
|
|||||||
w.vx = *(u16 *)((s32)arg0 + 6);
|
w.vx = *(u16 *)((s32)arg0 + 6);
|
||||||
w.vy = *(u16 *)((s32)arg0 + 0xA);
|
w.vy = *(u16 *)((s32)arg0 + 0xA);
|
||||||
w.vz = *(u16 *)((s32)arg0 + 0xE);
|
w.vz = *(u16 *)((s32)arg0 + 0xE);
|
||||||
GTE_LDXY_8018209C(&w);
|
gte_ldv0(&w);
|
||||||
GTE_RTPS_8018209C();
|
gte_rtps();
|
||||||
GTE_STXY_8018209C(&res.x);
|
gte_stsxy(&res.x);
|
||||||
GTE_STFLG_8018209C(&res.flag);
|
gte_stflg(&res.flag);
|
||||||
|
|
||||||
if ((res.flag & -0x1001) != 0) { rv = 0; goto out; }
|
if ((res.flag & -0x1001) != 0) { rv = 0; goto out; }
|
||||||
if ((res.x < 0 ? -res.x : res.x) >= 0x105) { rv = 0; goto out; }
|
if ((res.x < 0 ? -res.x : res.x) >= 0x105) { rv = 0; goto out; }
|
||||||
@@ -6189,8 +5994,7 @@ void func_80182FD0(int param)
|
|||||||
__asm__ volatile("lwc2 $0,0(%0);lwc2 $1,4(%0);nop;nop;rtps;swc2 $14,0(%0)"
|
__asm__ volatile("lwc2 $0,0(%0);lwc2 $1,4(%0);nop;nop;rtps;swc2 $14,0(%0)"
|
||||||
: : "r"(buf) : "memory");
|
: : "r"(buf) : "memory");
|
||||||
/* gte_stflg(&buf[2]); */
|
/* gte_stflg(&buf[2]); */
|
||||||
__asm__ volatile("cfc2 $12,$31;nop;sw $12,0(%0)"
|
gte_stflg(buf + 2);
|
||||||
: : "r"(buf + 2) : "$12", "memory");
|
|
||||||
|
|
||||||
lim = (D_800AF7BC >> 1) + 0x20;
|
lim = (D_800AF7BC >> 1) + 0x20;
|
||||||
x = (int)(s16)buf[0];
|
x = (int)(s16)buf[0];
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8018006C) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8018006C) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80180070);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80180070) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8018006C;
|
pc0 = D_8018006C;
|
||||||
pc4 = D_80180070;
|
pc4 = D_80180070;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80180198[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80180198[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2696,73 +2696,14 @@ extern void func_8017C230(int a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2772,45 +2713,10 @@ extern void func_8017C230(int a0);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017C294__t67f11bf2.h"
|
#include "../shared/ov/func_8017C294__t67f11bf2.h"
|
||||||
|
|
||||||
@@ -3283,47 +3189,11 @@ extern u8 D_800A6610[];
|
|||||||
extern short D_800B9A02;
|
extern short D_800B9A02;
|
||||||
extern u8 *D_800A5E60;
|
extern u8 *D_800A5E60;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
s32 func_8017DC10(s32 *a)
|
s32 func_8017DC10(s32 *a)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3188,68 +3188,12 @@ extern s16 D_80183958;
|
|||||||
extern s16 D_80183960;
|
extern s16 D_80183960;
|
||||||
extern s16 D_80183968;
|
extern s16 D_80183968;
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
s16 x; /* +0x0 */
|
s16 x; /* +0x0 */
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_801866C0) : "$9", "$10", "$11", "memory");
|
: : "r"(D_801866C0) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_801866C4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_801866C4) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_801866C0;
|
pc0 = D_801866C0;
|
||||||
pc4 = D_801866C4;
|
pc4 = D_801866C4;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_801867EC[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_801867EC[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2686,73 +2686,14 @@ extern void func_8017C0E4(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2762,45 +2703,10 @@ extern void func_8017C0E4(void *a0);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017C180__t67f11bf2.h"
|
#include "../shared/ov/func_8017C180__t67f11bf2.h"
|
||||||
|
|
||||||
@@ -5108,30 +5014,6 @@ extern s32 func_80143B6C(s32 a0, s32 a1);
|
|||||||
extern s32 rand(void);
|
extern s32 rand(void);
|
||||||
extern void RotTransSV(void *a0, void *a1, void *a2);
|
extern void RotTransSV(void *a0, void *a1, void *a2);
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_80180520(void *a0)
|
void func_80180520(void *a0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8018B7E4) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8018B7E4) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8018B7E8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8018B7E8) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8018B7E4;
|
pc0 = D_8018B7E4;
|
||||||
pc4 = D_8018B7E8;
|
pc4 = D_8018B7E8;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8018B910[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8018B910[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2692,73 +2692,14 @@ extern void func_8017D5DC(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2768,45 +2709,10 @@ extern void func_8017D5DC(void *a0);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017D898__t67f11bf2.h"
|
#include "../shared/ov/func_8017D898__t67f11bf2.h"
|
||||||
|
|
||||||
@@ -3936,30 +3842,6 @@ extern void func_8012F038(int param_1, short *param_2, short *param_3);
|
|||||||
|
|
||||||
typedef struct { s32 w[8]; } Mtx32_80180088;
|
typedef struct { s32 w[8]; } Mtx32_80180088;
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_80180088(s32 param_1)
|
void func_80180088(s32 param_1)
|
||||||
{
|
{
|
||||||
@@ -4374,81 +4256,6 @@ typedef struct { s16 vx, vy; } DV_80180B3C;
|
|||||||
(((PTag_80180B3C *)(p))->addr = ((PTag_80180B3C *)(o))->addr, \
|
(((PTag_80180B3C *)(p))->addr = ((PTag_80180B3C *)(o))->addr, \
|
||||||
((PTag_80180B3C *)(o))->addr = (u32)(p))
|
((PTag_80180B3C *)(o))->addr = (u32)(p))
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy0_80180B3C(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy1_80180B3C(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $13, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsz_80180B3C(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $19, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
void func_80180B3C(s32 a0)
|
void func_80180B3C(s32 a0)
|
||||||
{
|
{
|
||||||
@@ -4507,7 +4314,7 @@ void func_80180B3C(s32 a0)
|
|||||||
gte_ldv0(&sv);
|
gte_ldv0(&sv);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
gte_stsxy(&sxy0);
|
gte_stsxy(&sxy0);
|
||||||
gte_stsz_80180B3C(&sz);
|
gte_stsz(&sz);
|
||||||
|
|
||||||
*(u16 *)&D_801DA730 = *(u16 *)(a0 + 8);
|
*(u16 *)&D_801DA730 = *(u16 *)(a0 + 8);
|
||||||
D_801DA738 = *(u16 *)(a0 + 0xA);
|
D_801DA738 = *(u16 *)(a0 + 0xA);
|
||||||
@@ -4522,8 +4329,8 @@ void func_80180B3C(s32 a0)
|
|||||||
sv2.vz = sz;
|
sv2.vz = sz;
|
||||||
gte_ldv3(&sv, &sv2, &sv2);
|
gte_ldv3(&sv, &sv2, &sv2);
|
||||||
gte_rtpt();
|
gte_rtpt();
|
||||||
gte_stsxy0_80180B3C(&sxy1);
|
gte_stsxy0(&sxy1);
|
||||||
gte_stsxy1_80180B3C(&sxy2);
|
gte_stsxy1(&sxy2);
|
||||||
gte_stflg(&flg);
|
gte_stflg(&flg);
|
||||||
gte_stszotz(&otz);
|
gte_stszotz(&otz);
|
||||||
|
|
||||||
@@ -7044,54 +6851,6 @@ void func_801846A0(void *a0) {
|
|||||||
|
|
||||||
extern void func_8012C218(void *a0);
|
extern void func_8012C218(void *a0);
|
||||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_80184834(void *a0)
|
void func_80184834(void *a0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8018B9E8) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8018B9E8) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8018B9EC);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8018B9EC) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8018B9E8;
|
pc0 = D_8018B9E8;
|
||||||
pc4 = D_8018B9EC;
|
pc4 = D_8018B9EC;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8018BB14[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8018BB14[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2692,73 +2692,14 @@ extern void func_8017D5DC(void *a0);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2768,45 +2709,10 @@ extern void func_8017D5DC(void *a0);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017D898__t67f11bf2.h"
|
#include "../shared/ov/func_8017D898__t67f11bf2.h"
|
||||||
|
|
||||||
@@ -6280,55 +6186,12 @@ void func_80182F88(s32 param) {
|
|||||||
* well after that block); the reconciler may also just drop them.
|
* well after that block); the reconciler may also just drop them.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
void func_80182FD4(void *a0, void *a1)
|
void func_80182FD4(void *a0, void *a1)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80185214) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80185214) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80185218);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80185218) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80185214;
|
pc0 = D_80185214;
|
||||||
pc4 = D_80185218;
|
pc4 = D_80185218;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80185340[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80185340[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -5646,86 +5646,6 @@ void func_8017F590(void *a0) {
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "../shared/engine_types.h"
|
#include "../shared/engine_types.h"
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define BOXTEST(F, X, Y, Z) \
|
#define BOXTEST(F, X, Y, Z) \
|
||||||
if (lo_x < (X) && (X) < hi_x && lo_y < (Y) && (Y) < hi_y && lo_z < (Z) && (Z) < hi_z) F = 1
|
if (lo_x < (X) && (X) < hi_x && lo_y < (Y) && (Y) < hi_y && lo_z < (Z) && (Z) < hi_z) F = 1
|
||||||
#define ATTEN(A, X, Y, Z) \
|
#define ATTEN(A, X, Y, Z) \
|
||||||
@@ -8119,11 +8039,7 @@ void func_80183DC0(void *a0) {
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(p) : "$9", "$10", "$11", "memory");
|
: : "r"(p) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(p);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(p) : "memory");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*(s16 *)((s32)a0 + 0x36) == 0) {
|
if (*(s16 *)((s32)a0 + 0x36) == 0) {
|
||||||
@@ -8720,30 +8636,6 @@ extern s32 func_8012BDBC(s32 a0, s32 a1);
|
|||||||
extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3);
|
extern s32 func_80135888(s32 a0, s32 a1, s32 a2, s32 a3);
|
||||||
extern void func_80172710(void);
|
extern void func_80172710(void);
|
||||||
extern s32 func_80178BF8();
|
extern s32 func_80178BF8();
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
s32 aF8018A224() __asm__("func_80184A9C");
|
s32 aF8018A224() __asm__("func_80184A9C");
|
||||||
|
|
||||||
|
|||||||
@@ -813,46 +813,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -928,114 +888,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2272,80 +2124,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2682,11 +2460,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80184A74) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80184A74) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80184A78);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80184A78) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80184A74;
|
pc0 = D_80184A74;
|
||||||
pc4 = D_80184A78;
|
pc4 = D_80184A78;
|
||||||
|
|||||||
@@ -1011,22 +1011,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_80184BA0[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_80184BA0[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1047,7 +1033,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1124,12 +1110,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1143,12 +1125,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2681,73 +2681,14 @@ extern void func_8017BEB4(void);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2757,45 +2698,10 @@ extern void func_8017BEB4(void);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017BEBC__t67f11bf2.h"
|
#include "../shared/ov/func_8017BEBC__t67f11bf2.h"
|
||||||
|
|
||||||
@@ -3587,54 +3493,6 @@ void func_8017E1E0(void *a0) {
|
|||||||
|
|
||||||
extern void func_8012C218(void *a0);
|
extern void func_8012C218(void *a0);
|
||||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_8017E374(void *a0)
|
void func_8017E374(void *a0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1536,130 +1536,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8012E778.h"
|
#include "../shared/ov/func_8012E778.h"
|
||||||
|
|
||||||
@@ -1733,114 +1609,6 @@ void func_8012E9C0(int param_1)
|
|||||||
|
|
||||||
|
|
||||||
typedef struct { s8 c[8]; } Blk8_8012EFB8;
|
typedef struct { s8 c[8]; } Blk8_8012EFB8;
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
|
|||||||
@@ -1340,116 +1340,6 @@ void func_8013277C(void) {
|
|||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -1794,11 +1684,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_801841B0) : "$9", "$10", "$11", "memory");
|
: : "r"(D_801841B0) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_801841B4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_801841B4) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_801841B0;
|
pc0 = D_801841B0;
|
||||||
pc4 = D_801841B4;
|
pc4 = D_801841B4;
|
||||||
|
|||||||
@@ -1058,20 +1058,6 @@ extern void func_8013AA24(s32 a0, s32 a1);
|
|||||||
#include "../shared/ov/func_8013AB54.h"
|
#include "../shared/ov/func_8013AB54.h"
|
||||||
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1095,7 +1081,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair *)out2)[i].x = res[0];
|
((Pair *)out2)[i].x = res[0];
|
||||||
((Pair *)out2)[i].y = res[1];
|
((Pair *)out2)[i].y = res[1];
|
||||||
@@ -1174,12 +1160,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1193,12 +1175,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -5339,121 +5339,20 @@ extern s32 D_800A5E60;
|
|||||||
extern u8 D_800A6610[];
|
extern u8 D_800A6610[];
|
||||||
extern short D_800B9A02;
|
extern short D_800B9A02;
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
void func_8017D898(s32 arg0)
|
void func_8017D898(s32 arg0)
|
||||||
{
|
{
|
||||||
@@ -5685,7 +5584,7 @@ void func_8017D898(s32 arg0)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
gte_stsxy3_f4(pkt);
|
gte_stsxy3_f3(pkt);
|
||||||
gte_ldv0(vd);
|
gte_ldv0(vd);
|
||||||
gte_rtps();
|
gte_rtps();
|
||||||
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
if (((PolyF4 *)pkt)->x0 > ((PolyF4 *)pkt)->x1) {
|
||||||
@@ -8831,54 +8730,6 @@ void func_80182614(void *a0) {
|
|||||||
|
|
||||||
extern void func_8012C218(void *a0);
|
extern void func_8012C218(void *a0);
|
||||||
extern s32 func_80143B6C(s32 a0, s32 a1);
|
extern s32 func_80143B6C(s32 a0, s32 a1);
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
void func_801827A8(void *a0)
|
void func_801827A8(void *a0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -815,46 +815,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -930,114 +890,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2273,80 +2125,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2683,11 +2461,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_8017F6A0) : "$9", "$10", "$11", "memory");
|
: : "r"(D_8017F6A0) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_8017F6A4);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_8017F6A4) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_8017F6A0;
|
pc0 = D_8017F6A0;
|
||||||
pc4 = D_8017F6A4;
|
pc4 = D_8017F6A4;
|
||||||
|
|||||||
@@ -1009,22 +1009,8 @@ s32 func_80139BE0(int param_1)
|
|||||||
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
extern s16 D_800D45F4[]; /* src0 (flat: [2*i]=x, [2*i+1]=y) */
|
||||||
extern u8 D_8017F7CC[]; /* sign table, alt (when a1 < 0xC00) */
|
extern u8 D_8017F7CC[]; /* sign table, alt (when a1 < 0xC00) */
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__( \
|
|
||||||
"lwc2 $0, 0(%0)\n" \
|
|
||||||
"lwc2 $1, 4(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
#define gte_mvmva0() __asm__ __volatile__( \
|
|
||||||
"nop\n" \
|
|
||||||
"nop\n" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0\n" \
|
|
||||||
: : : "memory")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__( \
|
|
||||||
"swc2 $25, 0(%0)\n" \
|
|
||||||
"swc2 $26, 4(%0)\n" \
|
|
||||||
"swc2 $27, 8(%0)\n" \
|
|
||||||
: : "r"(r0) : "memory")
|
|
||||||
|
|
||||||
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
||||||
{
|
{
|
||||||
@@ -1045,7 +1031,7 @@ void func_8013AD38(void *flag, s32 a1, void *out2, void *out3)
|
|||||||
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
vec[0] = D_800D45F4[2 * i] + (((D_800D466C[2 * i] - D_800D45F4[2 * i]) * ((s16)a1)) >> 12);
|
||||||
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
vec[1] = D_800D45F4[2 * i + 1] + (((D_800D466C[2 * i + 1] - D_800D45F4[2 * i + 1]) * ((s16)a1)) >> 12);
|
||||||
gte_ldv0(vec);
|
gte_ldv0(vec);
|
||||||
gte_mvmva0();
|
gte_rtv0tr();
|
||||||
gte_stlvnl(res);
|
gte_stlvnl(res);
|
||||||
((Pair_8013AD38 *)out2)[i].x = res[0];
|
((Pair_8013AD38 *)out2)[i].x = res[0];
|
||||||
((Pair_8013AD38 *)out2)[i].y = res[1];
|
((Pair_8013AD38 *)out2)[i].y = res[1];
|
||||||
@@ -1122,12 +1108,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 0, 0\n"
|
"mvmva 1, 0, 0, 0, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0tr_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 8);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 8) : "memory");
|
|
||||||
|
|
||||||
if (((s16*)a2)[1] > 0)
|
if (((s16*)a2)[1] > 0)
|
||||||
*(s32 *)((u8 *)L + 0xC) -= 1;
|
*(s32 *)((u8 *)L + 0xC) -= 1;
|
||||||
@@ -1141,12 +1123,8 @@ void func_8013B274(s32 a0, s32 a1, void *a2)
|
|||||||
"lwc2 $1, 4(%0)\n"
|
"lwc2 $1, 4(%0)\n"
|
||||||
"nop\n" "nop\n"
|
"nop\n" "nop\n"
|
||||||
"mvmva 1, 0, 0, 3, 0\n"
|
"mvmva 1, 0, 0, 3, 0\n"
|
||||||
: : "r"(L) : "memory");
|
: : "r"(L) : "memory"); // !FAKE: gte direct — clobbers ['memory'] (gte_ldv0+gte_rtv0_m) beyond Sony's (P36 T5 gte1)
|
||||||
__asm__ __volatile__(
|
gte_stlvnl((u8 *)L + 0x18);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"((u8 *)L + 0x18) : "memory");
|
|
||||||
|
|
||||||
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
*(s16 *)(p + 8) = *(s32 *)((u8 *)L + 8);
|
||||||
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
*(s16 *)(p + 0xA) = *(s32 *)((u8 *)L + 0xC);
|
||||||
|
|||||||
@@ -2696,73 +2696,14 @@ extern void func_8017BEB4(void);
|
|||||||
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
* because the later-defined pseudo always has the shorter range. Cookbook §47.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 0( %1 );" \
|
|
||||||
"lwc2 $3, 4( %1 );" \
|
|
||||||
"lwc2 $4, 0( %2 );" \
|
|
||||||
"lwc2 $5, 4( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) )
|
|
||||||
|
|
||||||
#define gte_ldv3c(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 );" \
|
|
||||||
"lwc2 $2, 8( %0 );" \
|
|
||||||
"lwc2 $3, 12( %0 );" \
|
|
||||||
"lwc2 $4, 16( %0 );" \
|
|
||||||
"lwc2 $5, 20( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_rtpt() __asm__ volatile ("nop;nop;rtpt")
|
|
||||||
#define gte_nclip() __asm__ volatile ("nop;nop;nclip")
|
|
||||||
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 0( %1 );" \
|
|
||||||
"swc2 $14, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3c(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 0( %0 );" \
|
|
||||||
"swc2 $13, 4( %0 );" \
|
|
||||||
"swc2 $14, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 12( %0 );" \
|
|
||||||
"swc2 $14, 16( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_ft3(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $12, 8( %0 );" \
|
|
||||||
"swc2 $13, 16( %0 );" \
|
|
||||||
"swc2 $14, 24( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
#define gte_stsxy3_f4(r0) __asm__ volatile ( \
|
||||||
"swc2 $12, 8( %0 );" \
|
"swc2 $12, 8( %0 );" \
|
||||||
@@ -2772,45 +2713,10 @@ extern void func_8017BEB4(void);
|
|||||||
: "r"( r0 ) \
|
: "r"( r0 ) \
|
||||||
: "memory" )
|
: "memory" )
|
||||||
|
|
||||||
#define gte_stsz3(r0, r1, r2) __asm__ volatile ( \
|
|
||||||
"swc2 $17, 0( %0 );" \
|
|
||||||
"swc2 $18, 0( %1 );" \
|
|
||||||
"swc2 $19, 0( %2 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stsz4(r0, r1, r2, r3) __asm__ volatile ( \
|
|
||||||
"swc2 $16, 0( %0 );" \
|
|
||||||
"swc2 $17, 0( %1 );" \
|
|
||||||
"swc2 $18, 0( %2 );" \
|
|
||||||
"swc2 $19, 0( %3 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ), "r"( r1 ), "r"( r2 ), "r"( r3 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stszotz(r0) __asm__ volatile ( \
|
|
||||||
"mfc2 $12, $19;" \
|
|
||||||
"nop;" \
|
|
||||||
"sra $12, $12, 2;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#define gte_stopz(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $24, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_8017BEBC__t67f11bf2.h"
|
#include "../shared/ov/func_8017BEBC__t67f11bf2.h"
|
||||||
|
|
||||||
@@ -3571,55 +3477,11 @@ extern u8 D_8019F93C[]; /* byte symbol -> alignment 2 -> lwl/lwr block-move p
|
|||||||
extern s16 D_8019B584;
|
extern s16 D_8019B584;
|
||||||
|
|
||||||
/* --- GTE inline-asm macros (project-standard spelling) -------------------------------------- */
|
/* --- GTE inline-asm macros (project-standard spelling) -------------------------------------- */
|
||||||
#define gte_SetRotMatrix(r0) __asm__ __volatile__ ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ __volatile__ ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
|
|
||||||
#define gte_ldv0(r0) __asm__ __volatile__ ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
|
|
||||||
#define gte_rtv0tr() __asm__ __volatile__ ("nop;nop;.word 0x4A480012")
|
|
||||||
|
|
||||||
#define gte_stlvnl(r0) __asm__ __volatile__ ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
#define gte_stflg(r0) __asm__ __volatile__ ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
void func_8017E024(s32 a0)
|
void func_8017E024(s32 a0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -815,46 +815,6 @@ void func_8012E364(s32 arg0_)
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012E688.h"
|
#include "../shared/ov/func_8012E688.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldlv0(r0) __asm__ volatile ( \
|
|
||||||
"lhu $13, 4( %0 );" \
|
|
||||||
"lhu $12, 0( %0 );" \
|
|
||||||
"sll $13, $13, 16;" \
|
|
||||||
"or $12, $12, $13;" \
|
|
||||||
"mtc2 $12, $0;" \
|
|
||||||
"lwc2 $1, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -930,114 +890,6 @@ extern void func_80049CAC(s32 a0, s32 a1);
|
|||||||
|
|
||||||
#include "../shared/ov/func_8012EF70.h"
|
#include "../shared/ov/func_8012EF70.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtps() __asm__ volatile ("nop;nop;rtps")
|
|
||||||
#define gte_stsxy(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $14, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
/* §37/§124 asm-label alias: the fleet canon declares this `extern void
|
||||||
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
|
||||||
@@ -2273,80 +2125,6 @@ void func_8013221C(int param_1)
|
|||||||
|
|
||||||
#include "../shared/ov/func_80133060.h"
|
#include "../shared/ov/func_80133060.h"
|
||||||
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetRotMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $1;" \
|
|
||||||
"lw $12, 8( %0 );" \
|
|
||||||
"lw $13, 12( %0 );" \
|
|
||||||
"lw $14, 16( %0 );" \
|
|
||||||
"ctc2 $12, $2;" \
|
|
||||||
"ctc2 $13, $3;" \
|
|
||||||
"ctc2 $14, $4" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_SetTransMatrix(r0) __asm__ volatile ( \
|
|
||||||
"lw $12, 20( %0 );" \
|
|
||||||
"lw $13, 24( %0 );" \
|
|
||||||
"ctc2 $12, $5;" \
|
|
||||||
"lw $14, 28( %0 );" \
|
|
||||||
"ctc2 $13, $6;" \
|
|
||||||
"ctc2 $14, $7" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13", "$14" )
|
|
||||||
#define gte_ldv0(r0) __asm__ volatile ( \
|
|
||||||
"lwc2 $0, 0( %0 );" \
|
|
||||||
"lwc2 $1, 4( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) )
|
|
||||||
#define gte_rtv0tr() __asm__ volatile ( \
|
|
||||||
"nop;" \
|
|
||||||
"nop;" \
|
|
||||||
"mvmva 1, 0, 0, 0, 0" \
|
|
||||||
: \
|
|
||||||
: \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stlvnl(r0) __asm__ volatile ( \
|
|
||||||
"swc2 $25, 0( %0 );" \
|
|
||||||
"swc2 $26, 4( %0 );" \
|
|
||||||
"swc2 $27, 8( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "memory" )
|
|
||||||
#define gte_stflg(r0) __asm__ volatile ( \
|
|
||||||
"cfc2 $12, $31;" \
|
|
||||||
"nop;" \
|
|
||||||
"sw $12, 0( %0 )" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "memory" )
|
|
||||||
|
|
||||||
#include "../shared/ov/func_801330E0.h"
|
#include "../shared/ov/func_801330E0.h"
|
||||||
|
|
||||||
@@ -2683,11 +2461,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
|
|||||||
"nop\n"
|
"nop\n"
|
||||||
"sqr 0\n"
|
"sqr 0\n"
|
||||||
: : "r"(D_80185370) : "$9", "$10", "$11", "memory");
|
: : "r"(D_80185370) : "$9", "$10", "$11", "memory");
|
||||||
__asm__ __volatile__(
|
gte_stlvnl(D_80185374);
|
||||||
"swc2 $25, 0(%0)\n"
|
|
||||||
"swc2 $26, 4(%0)\n"
|
|
||||||
"swc2 $27, 8(%0)\n"
|
|
||||||
: : "r"(D_80185374) : "memory");
|
|
||||||
|
|
||||||
pc0 = D_80185370;
|
pc0 = D_80185370;
|
||||||
pc4 = D_80185374;
|
pc4 = D_80185374;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user