src(phase-36): T4 batch tus2 — delever: batch tus2 — 300 files (TUs; 2483 drawable) · 2752 bodies: 495 lever-free, 2257 residue, 0 refused · sites removed 3505 / needed 5262 / refused 0 / deferred 0 · replays 1350 (0 disagreed) · compiles 5616 in 251 s wall · final 300/300 identical · written 297 files | R22 check-all: 218 passed, 0 failed of 218 | census: THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 46,424 sites in 14,758 bodies (2,258 distinct) · marked !FAKE 9,393 · UNMARKED 37,031 (committed by hand: the cycle's git add hit a stale .git/index.lock created 03:24:19 during the batch's fleet run)

This commit is contained in:
Drew T
2026-09-09 03:29:13 -06:00
parent a605e1dbaf
commit 85905840c7
308 changed files with 17737 additions and 8743 deletions
+476
View File
@@ -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, 103300.09it/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, 537145.20it/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:03<00:00, 1.54s/it]
Scanning main: 100%|██████████| 2/2 [00:03<00:00, 1.54s/it]
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:01<00:00, 1.31it/s]
Splitting main: 100%|██████████| 2/2 [00:01<00:00, 1.31it/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, 57.20it/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_SC04_000
[ OK ] ov_SC01_000
[ OK ] ov_SC06_000
[ OK ] ov_SC01_006
[ OK ] ov_SC02_003
[ OK ] ov_SC01_005
[ OK ] ov_SC02_000
[ OK ] ov_SC01_077
[ OK ] ov_SC04_018
[ OK ] ov_SC03_002
[ OK ] ov_SC04_019
[ OK ] ov_SC03_001
[ OK ] ov_SC07_000
[ OK ] ov_SC01_074
[ OK ] ov_SC03_006
[ OK ] ov_SC01_004
[ OK ] ov_SC02_004
[ OK ] ov_SC02_015
[ OK ] ov_SC01_001
[ OK ] ov_SC02_021
[ OK ] ov_SC01_008
[ OK ] ov_SC01_080
[ OK ] ov_SC01_084
[ OK ] ov_SC01_009
[ OK ] ov_SC02_005
[ OK ] ov_SC02_011
[ OK ] ov_SC02_017
[ OK ] ov_SC02_016
[ OK ] ov_SC02_039
[ OK ] ov_SC02_026
[ OK ] ov_SC03_003
[ OK ] ov_SC03_012
[ OK ] ov_SC03_010
[ OK ] ov_SC03_011
[ OK ] ov_SC02_027
[ OK ] ov_SC02_028
[ OK ] ov_SC02_035
[ OK ] ov_SC02_031
[ OK ] ov_SC03_013
[ OK ] ov_SC02_041
[ OK ] ov_SC03_007
[ OK ] ov_SC03_023
[ OK ] ov_SC03_024
[ OK ] ov_SC03_015
[ OK ] ov_SC03_014
[ OK ] ov_SC03_029
[ OK ] ov_SC03_031
[ OK ] ov_SC03_089
[ OK ] ov_SC03_092
[ OK ] ov_SC03_028
[ OK ] ov_SC03_030
[ OK ] ov_SC03_091
[ OK ] ov_SC03_090
[ OK ] ov_SC03_096
[ OK ] ov_SC03_094
[ OK ] ov_SC03_095
[ OK ] ov_SC03_101
[ OK ] ov_SC03_098
[ OK ] ov_SC03_099
[ OK ] ov_SC03_100
[ OK ] ov_SC03_109
[ OK ] ov_SC03_108
[ OK ] ov_SC03_102
[ OK ] ov_SC03_097
[ OK ] ov_SC03_093
[ OK ] ov_SC03_103
[ OK ] ov_SC03_105
[ OK ] ov_SC03_104
[ OK ] ov_SC03_110
[ OK ] ov_SC03_111
[ OK ] ov_SC03_112
[ OK ] ov_SC03_115
[ OK ] ov_SC03_116
[ OK ] ov_SC03_114
[ OK ] ov_SC03_126
[ OK ] ov_SC03_121
[ OK ] ov_SC03_113
[ OK ] ov_SC04_003
[ OK ] ov_SC03_117
[ OK ] ov_SC03_125
[ OK ] ov_SC03_118
[ OK ] ov_SC04_002
[ OK ] ov_SC04_006
[ OK ] ov_SC03_119
[ OK ] ov_SC04_004
[ OK ] ov_SC04_005
[ OK ] ov_SC04_009
[ OK ] ov_SC04_008
[ OK ] ov_SC04_010
[ OK ] ov_SC04_007
[ OK ] ov_SC04_021
[ OK ] ov_SC04_016
[ OK ] ov_SC05_002
[ OK ] ov_SC04_012
[ OK ] ov_SC03_124
[ OK ] ov_SC04_015
[ OK ] ov_SC05_001
[ OK ] ov_SC04_020
[ OK ] ov_SC05_004
[ OK ] ov_SC04_011
[ OK ] ov_SC05_006
[ OK ] ov_SC05_003
[ OK ] ov_SC05_005
[ OK ] ov_SC05_007
[ OK ] ov_SC05_009
[ OK ] ov_SC05_008
[ OK ] ov_SC05_011
[ OK ] ov_SC05_019
[ OK ] ov_SC06_013
[ OK ] ov_SC06_010
[ OK ] ov_SC06_008
[ OK ] ov_SC06_014
[ OK ] ov_SC05_010
[ OK ] ov_SC06_015
[ OK ] ov_SC06_011
[ OK ] ov_SC05_017
[ OK ] ov_SC06_016
[ OK ] ov_SC05_018
[ OK ] ov_SC06_020
[ OK ] ov_SC07_008
[ OK ] ov_SC06_022
[ OK ] ov_SC06_027
[ OK ] ov_SC07_001
[ OK ] ov_SC06_018
[ OK ] ov_SC06_006
[ OK ] ov_SC06_030
[ OK ] ov_SC06_024
[ OK ] ov_SC06_025
[ OK ] ov_SC06_029
[ OK ] ov_SC07_002
[ OK ] md_MAIN_015
[ OK ] md_MAIN_013
[ OK ] ov_SC07_009
[ OK ] md_MAIN_016
[ OK ] md_MAIN_017
[ OK ] md_MAIN_014
[ OK ] md_MAIN_018
[ OK ] md_MAIN_021
[ OK ] md_MAIN_023
[ OK ] md_MAIN_020
[ OK ] md_MAIN_022
[ OK ] md_MAIN_024
[ OK ] md_MAIN_019
[ OK ] ov_SC06_032
[ OK ] md_MAIN_028
[ OK ] md_MAIN_026
[ OK ] md_MAIN_027
[ OK ] md_MAIN_025
[ OK ] md_MAIN_029
[ OK ] md_MAIN_031
[ OK ] md_MAIN_030
[ OK ] md_MAIN_032
[ OK ] md_MAIN_033
[ OK ] md_MAIN_034
[ OK ] md_MAIN_035
[ OK ] md_MAIN_036
[ OK ] md_MAIN_037
[ OK ] md_MAIN_038
[ OK ] md_MAIN_039
[ OK ] md_MAIN_041
[ OK ] md_MAIN_040
[ OK ] md_MAIN_042
[ OK ] ov_SC06_033
[ OK ] md_MAIN_043
[ OK ] md_MAIN_044
[ OK ] md_MAIN_047
[ OK ] md_MAIN_045
[ OK ] md_MAIN_008
[ OK ] md_MAIN_046
[ OK ] md_MAIN_001
[ OK ] md_MAIN_011
[ OK ] md_SC03_074
[ OK ] md_SC03_076
[ OK ] md_SC03_075
[ OK ] md_SC03_073
[ OK ] md_SC03_078
[ OK ] md_MAIN_003
[ OK ] ov_SC07_011
[ OK ] ov_MAIN_012
[ OK ] md_SC03_077
[ OK ] md_SC03_079
[ OK ] md_SC03_134
[ OK ] md_SC03_133
[ OK ] md_SC03_135
[ OK ] ov_SC03_107
[ OK ] ov_SC07_010
[ OK ] ov_SC07_006
[ OK ] ov_SC07_007
[ OK ] md_SC03_137
[ OK ] md_SC04_024
[ OK ] md_SC03_136
[ OK ] md_SC03_132
[ OK ] md_SC07_004
[ OK ] md_SC07_003
[ OK ] md_SC04_025
[ OK ] md_SC04_026
[ OK ] md_SC03_138
[ OK ] md_SC04_029
[ OK ] md_SC04_027
[ OK ] md_SC05_024
[ OK ] md_SC05_028
[ OK ] md_SC05_025
[ OK ] md_SC04_030
[ OK ] md_MAIN_009
[ OK ] md_SC05_027
[ OK ] md_MAIN_007
[ OK ] md_SC03_053
[ OK ] md_SC05_023
[ OK ] md_SC03_054
[ OK ] md_SC05_029
[ OK ] md_SC03_056
[ OK ] md_SC05_026
[ OK ] md_SC04_028
[ OK ] ov_SC02_037
[ OK ] md_SC02_009
extract-all: 217 extracted, 0 failed of 217 (+ main, serial)
[ OK ] resident
[ OK ] ov_SC01_006
[ OK ] ov_SC01_000
[ OK ] ov_SC05_000
[ OK ] ov_SC04_000
[ OK ] ov_SC01_005
[ OK ] ov_SC06_000
[ OK ] ov_SC03_006
[ OK ] ov_SC01_001
[ OK ] ov_SC03_001
[ OK ] ov_SC04_019
[ OK ] ov_SC03_002
[ OK ] ov_SC04_018
[ OK ] ov_SC02_000
[ OK ] ov_SC02_003
[ OK ] ov_SC01_077
[ OK ] ov_SC01_004
[ OK ] ov_SC01_084
[ OK ] ov_SC01_080
[ OK ] ov_SC02_004
[ OK ] ov_SC01_074
[ OK ] ov_SC01_008
[ OK ] ov_SC01_009
[ OK ] ov_SC02_016
[ OK ] ov_SC02_011
[ OK ] ov_SC02_026
[ OK ] ov_SC02_021
[ OK ] ov_SC07_000
[ OK ] ov_SC02_015
[ OK ] ov_SC02_017
[ OK ] ov_SC02_005
[ OK ] ov_SC02_035
[ OK ] ov_SC02_039
[ OK ] ov_SC02_027
[ OK ] ov_SC02_031
[ OK ] ov_SC02_041
[ OK ] ov_SC03_003
[ OK ] ov_SC03_012
[ OK ] ov_SC03_011
[ OK ] ov_SC03_010
[ OK ] ov_SC02_028
[ OK ] ov_SC03_013
[ OK ] ov_SC03_007
[ OK ] ov_SC03_014
[ OK ] ov_SC03_015
[ OK ] ov_SC03_023
[ OK ] ov_SC03_024
[ OK ] ov_SC03_031
[ OK ] ov_SC03_028
[ OK ] ov_SC03_030
[ OK ] ov_SC03_089
[ OK ] ov_SC03_029
[ OK ] ov_SC03_096
[ OK ] ov_SC03_092
[ OK ] ov_SC03_090
[ OK ] ov_SC03_097
[ OK ] ov_SC03_091
[ OK ] ov_SC03_093
[ OK ] ov_SC03_095
[ OK ] ov_SC03_098
[ OK ] ov_SC03_094
[ OK ] main
[ OK ] ov_SC03_099
[ OK ] ov_SC03_100
[ OK ] ov_SC03_101
[ OK ] ov_SC03_102
[ OK ] ov_SC03_109
[ OK ] ov_SC03_108
[ OK ] ov_SC03_103
[ OK ] ov_SC03_111
[ OK ] ov_SC03_113
[ OK ] ov_SC03_115
[ OK ] ov_SC03_114
[ OK ] ov_SC03_110
[ OK ] ov_SC03_105
[ OK ] ov_SC03_104
[ OK ] ov_SC03_112
[ OK ] ov_SC03_116
[ OK ] ov_SC03_117
[ OK ] ov_SC03_118
[ OK ] ov_SC04_003
[ OK ] ov_SC04_002
[ OK ] ov_SC04_008
[ OK ] ov_SC04_006
[ OK ] ov_SC03_126
[ OK ] ov_SC03_119
[ OK ] ov_SC04_009
[ OK ] ov_SC03_125
[ OK ] ov_SC03_121
[ OK ] ov_SC04_004
[ OK ] ov_SC04_005
[ OK ] ov_SC04_007
[ OK ] ov_SC03_124
[ OK ] ov_SC04_010
[ OK ] ov_SC04_011
[ OK ] ov_SC04_015
[ OK ] ov_SC04_012
[ OK ] ov_SC04_020
[ OK ] ov_SC04_021
[ OK ] ov_SC05_003
[ OK ] ov_SC05_005
[ OK ] ov_SC05_004
[ OK ] ov_SC05_006
[ OK ] ov_SC04_016
[ OK ] ov_SC05_002
[ OK ] ov_SC05_001
[ OK ] ov_SC05_009
[ OK ] ov_SC05_008
[ OK ] ov_SC05_007
[ OK ] ov_SC05_010
[ OK ] ov_SC05_011
[ OK ] ov_SC05_019
[ OK ] ov_SC05_018
[ OK ] ov_SC06_008
[ OK ] ov_SC06_006
[ OK ] ov_SC06_010
[ OK ] ov_SC06_011
[ OK ] ov_SC06_015
[ OK ] ov_SC06_014
[ OK ] ov_SC05_017
[ OK ] ov_SC06_013
[ OK ] ov_SC06_018
[ OK ] ov_SC06_024
[ OK ] ov_SC06_020
[ OK ] ov_SC06_022
[ OK ] ov_SC06_016
[ OK ] ov_SC06_025
[ OK ] ov_SC06_027
[ OK ] md_MAIN_013
[ OK ] md_MAIN_014
[ OK ] md_MAIN_015
[ OK ] md_MAIN_016
[ OK ] md_MAIN_017
[ OK ] md_MAIN_018
[ OK ] md_MAIN_019
[ OK ] md_MAIN_020
[ OK ] md_MAIN_021
[ OK ] md_MAIN_022
[ OK ] ov_SC06_029
[ OK ] md_MAIN_023
[ OK ] ov_SC06_030
[ OK ] md_MAIN_024
[ OK ] md_MAIN_025
[ OK ] ov_MAIN_012
[ OK ] md_MAIN_026
[ OK ] ov_SC07_001
[ OK ] md_MAIN_027
[ OK ] md_MAIN_030
[ OK ] md_MAIN_029
[ OK ] md_MAIN_028
[ OK ] ov_SC07_009
[ OK ] ov_SC07_008
[ OK ] md_MAIN_032
[ OK ] md_MAIN_031
[ OK ] md_MAIN_034
[ OK ] md_MAIN_033
[ OK ] md_MAIN_035
[ OK ] md_MAIN_036
[ OK ] md_MAIN_039
[ OK ] md_MAIN_037
[ OK ] ov_SC07_011
[ OK ] md_MAIN_041
[ OK ] md_MAIN_040
[ OK ] md_MAIN_038
[ OK ] ov_SC07_006
[ OK ] ov_SC07_007
[ OK ] md_MAIN_043
[ OK ] md_MAIN_042
[ OK ] md_MAIN_044
[ OK ] md_MAIN_001
[ OK ] md_MAIN_046
[ OK ] md_MAIN_047
[ OK ] md_MAIN_011
[ OK ] md_MAIN_045
[ OK ] md_MAIN_008
[ OK ] ov_SC07_002
[ OK ] ov_SC06_032
[ OK ] md_SC03_078
[ OK ] md_SC07_003
[ OK ] md_SC03_075
[ OK ] md_SC03_073
[ OK ] md_SC03_074
[ OK ] md_SC03_079
[ OK ] ov_SC07_010
[ OK ] md_SC03_077
[ OK ] ov_SC02_037
[ OK ] md_SC03_132
[ OK ] md_SC03_133
[ OK ] md_SC03_076
[ OK ] md_MAIN_003
[ OK ] md_SC04_025
[ OK ] md_SC03_138
[ OK ] md_SC03_134
[ OK ] md_SC04_026
[ OK ] md_SC03_137
[ OK ] ov_SC06_033
[ OK ] md_SC03_136
[ OK ] md_SC04_024
[ OK ] md_SC03_135
[ OK ] md_SC04_030
[ OK ] md_SC05_023
+76 -76
View File
@@ -55,14 +55,14 @@
},
"kinds": {
"asm-body/direct": 13,
"barrier/direct": 5419,
"barrier/direct": 5410,
"barrier/via-macro": 2,
"gte/direct": 1140,
"gte/via-macro": 5751,
"instruction/direct": 1731,
"instruction/via-macro": 22,
"keepalive/direct": 2379,
"launder/direct": 4790,
"keepalive/direct": 2339,
"launder/direct": 4786,
"launder/via-macro": 440,
"verbatim-body/direct": 2682
}
@@ -70,52 +70,52 @@
"binaries": 218,
"classes": {
"A": {
"bodies": 12945,
"distinct_bodies": 1849,
"bodies": 12335,
"distinct_bodies": 1861,
"file_scope": 0,
"in_bodies": 34991,
"in_bodies": 31681,
"kinds": {
"pin": 34991
"pin": 31681
},
"marked": 2784,
"sites": 34991,
"marked": 5971,
"sites": 31681,
"tus": 2676,
"unmarked": 32207
"unmarked": 25710
},
"B": {
"bodies": 10540,
"distinct_bodies": 1209,
"bodies": 10495,
"distinct_bodies": 1214,
"file_scope": 13,
"in_bodies": 24356,
"in_bodies": 24303,
"kinds": {
"asm-body": 13,
"barrier": 5421,
"barrier": 5412,
"gte": 6891,
"instruction": 1753,
"keepalive": 2379,
"launder": 5230,
"keepalive": 2339,
"launder": 5226,
"verbatim-body": 2682
},
"marked": 1609,
"sites": 24369,
"marked": 3464,
"sites": 24316,
"tus": 2450,
"unmarked": 22760
"unmarked": 20852
},
"C": {
"bodies": 810,
"distinct_bodies": 145,
"file_scope": 516,
"in_bodies": 2510,
"file_scope": 502,
"in_bodies": 2382,
"kinds": {
"cast": 2277,
"cast": 2149,
"decl-body": 231,
"decl-file": 516,
"decl-file": 502,
"param": 2
},
"marked": 1,
"sites": 3026,
"tus": 879,
"unmarked": 3025
"sites": 2884,
"tus": 869,
"unmarked": 2883
},
"D": {
"bodies": 69,
@@ -132,7 +132,7 @@
},
"E": {
"bodies": 737,
"distinct_bodies": 117,
"distinct_bodies": 118,
"file_scope": 6423,
"in_bodies": 1005,
"kinds": {
@@ -199,9 +199,9 @@
"coverage": {
"asm": {
"comment_dead": 6792,
"live": 62968,
"live": 59605,
"macro_block": 7189,
"raw": 76949
"raw": 73586
},
"attribute": {
"comment_dead": 0,
@@ -217,30 +217,30 @@
},
"register": {
"comment_dead": 8584,
"live": 35077,
"live": 31767,
"macro_block": 18,
"raw": 43679
"raw": 40369
},
"volatile": {
"comment_dead": 2607,
"live": 4768,
"live": 4626,
"macro_block": 6510,
"raw": 13885
"raw": 13743
}
},
"coverage_ok": true,
"elapsed_s": 50.5,
"elapsed_s": 38.2,
"generated": "2026-09-09",
"head": "e5f59c12f",
"head": "a605e1dba",
"headers": 3181,
"levers_AB": {
"asm": 14796,
"bodies": 15243,
"distinct_bodies": 2244,
"marked": 4391,
"pins": 34991,
"sites": 49787,
"unmarked": 45396,
"asm": 14743,
"bodies": 14758,
"distinct_bodies": 2258,
"marked": 9393,
"pins": 31681,
"sites": 46424,
"unmarked": 37031,
"what": "register pins + asm statements excluding GTE ops: the classes the phase drives to 0"
},
"macro_definitions": {
@@ -363,11 +363,6 @@
137,
1
],
[
"gte_mvmva0",
136,
1
],
[
"gte_ldIR0z",
136,
@@ -377,6 +372,11 @@
"gte_ldIRGB",
136,
1
],
[
"gte_dpcl",
136,
1
]
],
"total": 9540
@@ -387,35 +387,35 @@
},
"pins": {
"bare_name": 75,
"init": 4917,
"init": 4408,
"registers": {
"$0": 1337,
"$1": 2,
"$10": 296,
"$11": 324,
"$10": 169,
"$11": 244,
"$12": 420,
"$13": 286,
"$13": 246,
"$14": 282,
"$15": 8,
"$16": 3752,
"$17": 3667,
"$18": 2006,
"$19": 1338,
"$2": 5400,
"$20": 772,
"$21": 831,
"$22": 285,
"$23": 417,
"$16": 3326,
"$17": 3165,
"$18": 1762,
"$19": 1178,
"$2": 4980,
"$20": 605,
"$21": 704,
"$22": 158,
"$23": 290,
"$24": 4,
"$25": 136,
"$29": 13,
"$3": 3225,
"$4": 3736,
"$5": 2784,
"$6": 1005,
"$3": 2963,
"$4": 3691,
"$5": 2742,
"$6": 925,
"$7": 944,
"$8": 1000,
"$9": 646,
"$8": 833,
"$9": 479,
"3": 1,
"4": 1,
"5": 2,
@@ -430,30 +430,30 @@
"v0": 16,
"v1": 15
},
"sites": 34991,
"sites": 31681,
"sp": 13,
"spelling": {
"__asm__": 34784,
"__asm__": 31474,
"asm": 207
},
"volatile_qualified": 136,
"zero": 1337
},
"src_stamp": "1b260759b699bd23",
"src_stamp": "53caafa5f5cc74a3",
"tus": 4121,
"unclassified": 0,
"union_AD": {
"bodies": 18814,
"bodies": 18329,
"by_kind": {
"main": 204,
"md": 213,
"ov": 17988,
"ov": 17503,
"resident": 16,
"shared": 393
},
"copies_in_multi": 16758,
"distinct_bodies": 2555,
"multi_copy_classes": 499
"copies_in_multi": 16285,
"distinct_bodies": 2569,
"multi_copy_classes": 525
},
"verbatim_excluded": {
"functions": 13,
@@ -489,9 +489,9 @@
},
"volatile": {
"kinds": {
"cast": 2277,
"cast": 2149,
"decl-body": 231,
"decl-file": 516,
"decl-file": 502,
"param": 2
}
}
+12 -12
View File
@@ -1,23 +1,23 @@
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 76949 = live 62968 + macro-block 7189 + comment/dead 6792
coverage register raw 43679 = live 35077 + macro-block 18 + comment/dead 8584
coverage volatile raw 13885 = live 4768 + macro-block 6510 + comment/dead 2607
coverage asm raw 73586 = live 59605 + macro-block 7189 + comment/dead 6792
coverage register raw 40369 = live 31767 + macro-block 18 + comment/dead 8584
coverage volatile raw 13743 = live 4626 + macro-block 6510 + comment/dead 2607
coverage builtin raw 599 = live 445 + macro-block 0 + comment/dead 154
coverage attribute raw 76 = live 76 + macro-block 0 + comment/dead 0
class sites in-bodies file-scope bodies distinct TUs marked unmarked kinds
A pins 34991 34991 0 12945 1849 2676 2784 32207 {'pin': 34991}
B asm 24369 24356 13 10540 1209 2450 1609 22760 {'instruction': 1753, 'keepalive': 2379, 'gte': 6891, 'launder': 5230, 'barrier': 5421, 'asm-body': 13, 'verbatim-body': 2682}
C volatile 3026 2510 516 810 145 879 1 3025 {'cast': 2277, 'decl-body': 231, 'decl-file': 516, 'param': 2}
A pins 31681 31681 0 12335 1861 2676 5971 25710 {'pin': 31681}
B asm 24316 24303 13 10495 1214 2450 3464 20852 {'instruction': 1753, 'keepalive': 2339, 'gte': 6891, 'launder': 5226, 'barrier': 5412, 'verbatim-body': 2682, 'asm-body': 13}
C volatile 2884 2382 502 810 145 869 1 2883 {'cast': 2149, 'decl-file': 502, 'decl-body': 231, 'param': 2}
D register 86 86 0 69 69 19 0 86 {'register': 86}
E asm-label 7428 1005 6423 737 117 2080 0 7428 {'asm-label': 7428}
E asm-label 7428 1005 6423 737 118 2080 0 7428 {'asm-label': 7428}
F builtin 445 445 0 428 29 302 0 445 {'builtin': 445}
G attribute 76 1 75 1 1 40 0 76 {'attribute': 76}
UNION A–D: 18,814 bodies · 2,555 distinct (addresses normalized) · 499 multi-copy classes holding 16,758 bodies · by kind {'ov': 17988, 'shared': 393, 'main': 204, 'md': 213, 'resident': 16}
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 49,787 sites in 15,243 bodies (2,244 distinct) · marked !FAKE 4,391 · UNMARKED 45,396
UNION A–D: 18,329 bodies · 2,569 distinct (addresses normalized) · 525 multi-copy classes holding 16,285 bodies · by kind {'ov': 17503, 'main': 204, 'shared': 393, 'md': 213, 'resident': 16}
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 46,424 sites in 14,758 bodies (2,258 distinct) · marked !FAKE 9,393 · UNMARKED 37,031
orphan !FAKE markers (no pin/asm site on the line nor below): 0
pins: 34,991 · $0 1,337 · $sp 13 · with initializer 4,917 · volatile-qualified 136 · bare-name 75 · spellings {'__asm__': 34784, 'asm': 207}
pins: 31,681 · $0 1,337 · $sp 13 · with initializer 4,408 · volatile-qualified 136 · bare-name 75 · spellings {'__asm__': 31474, 'asm': 207}
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': 5419, 'barrier/via-macro': 2, 'gte/direct': 1140, 'gte/via-macro': 5751, 'instruction/direct': 1731, 'instruction/via-macro': 22, 'keepalive/direct': 2379, 'launder/direct': 4790, 'launder/via-macro': 440, 'verbatim-body/direct': 2682}
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 5410, 'barrier/via-macro': 2, 'gte/direct': 1140, 'gte/via-macro': 5751, 'instruction/direct': 1731, 'instruction/via-macro': 22, 'keepalive/direct': 2339, 'launder/direct': 4786, 'launder/via-macro': 440, 'verbatim-body/direct': 2682}
instruction mnemonics: {'addu': 999, 'move': 407, 'la': 145, 'lh': 134, 'addiu': 24, 'RTP_SND': 22, '.section': 7, 'lui': 5, 'and': 2, 'andi': 1, 'mult': 1, 'mfhi': 1, 'sll': 1, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1}
gte mnemonics: {'gte_ldv0': 653, 'swc2': 449, 'lwc2': 435, '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, 'lw': 80, 'lhu': 70, 'mfc2': 61}
asm-bearing macro definitions: 9,540 (338 names, 32 with >1 text) kinds {'gte': 9102, 'launder': 428, 'instruction': 9, 'barrier': 1}
@@ -26,4 +26,4 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas
src/shared/ov/func_80178004.h pins got 26 expected 26 OK
ov_SC03_006 func_80184034 bare-name pins got 3 expected 3 OK
engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK
elapsed 50.5 s
elapsed 38.2 s
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+5
View File
@@ -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; 4.8 s — OK
main 85/85 identical, mean 0.194 s per object
ov_SC03_014 32/32 identical, mean 0.303 s per object
ov_SC03_015 32/32 identical, mean 0.276 s per object
ov_SC04_011 28/28 identical, mean 0.235 s per object
+187 -187
View File
@@ -1,7 +1,7 @@
{
"head": "e5f59c12f",
"head": "a605e1dba",
"stamp": "b44c5a8a3423",
"generated": "2026-09-09 03:15",
"generated": "2026-09-09 03:20",
"aliases": [
"main",
"ov_SC03_014",
@@ -21,207 +21,207 @@
"main": {
"objects": 85,
"identical": 85,
"seconds": 10.307000000000006,
"mean_s": 0.121
"seconds": 16.508,
"mean_s": 0.194
},
"ov_SC03_014": {
"objects": 32,
"identical": 32,
"seconds": 6.9860000000000015,
"mean_s": 0.218
"seconds": 9.711999999999998,
"mean_s": 0.303
},
"ov_SC03_015": {
"objects": 32,
"identical": 32,
"seconds": 6.369999999999997,
"mean_s": 0.199
"seconds": 8.828,
"mean_s": 0.276
},
"ov_SC04_011": {
"objects": 28,
"identical": 28,
"seconds": 5.704000000000001,
"mean_s": 0.204
"seconds": 6.593,
"mean_s": 0.235
}
},
"per_object_seconds": {
"build/src/800.o": 1.021,
"build/src/800_b.o": 0.13,
"build/src/800_b_2.o": 0.706,
"build/src/800_b_o0a.o": 0.087,
"build/src/800_c.o": 0.319,
"build/src/800b2.o": 0.105,
"build/src/apicard1.o": 0.107,
"build/src/apicard2.o": 0.191,
"build/src/apicard3.o": 0.129,
"build/src/apicard4.o": 0.13,
"build/src/apicard5.o": 0.085,
"build/src/apicard6.o": 0.256,
"build/src/apicard7.o": 0.126,
"build/src/boot.o": 0.121,
"build/src/gap.o": 0.118,
"build/src/libapi1.o": 0.104,
"build/src/libapi2.o": 0.113,
"build/src/libc2_1.o": 0.152,
"build/src/libc2_2.o": 0.075,
"build/src/libcd1.o": 0.076,
"build/src/libcd2.o": 0.07,
"build/src/libetc.o": 0.078,
"build/src/libgpu.o": 0.078,
"build/src/libgpu2.o": 0.094,
"build/src/libgs1.o": 0.088,
"build/src/libgs2.o": 0.101,
"build/src/libgs3.o": 0.071,
"build/src/libgs4.o": 0.127,
"build/src/libgs5.o": 0.085,
"build/src/libgs6.o": 0.085,
"build/src/libgs7.o": 0.113,
"build/src/libgs8.o": 0.065,
"build/src/libgte1.o": 0.1,
"build/src/libgte10.o": 0.069,
"build/src/libgte11.o": 0.083,
"build/src/libgte12.o": 0.066,
"build/src/libgte13.o": 0.077,
"build/src/libgte14.o": 0.077,
"build/src/libgte15.o": 0.08,
"build/src/libgte16.o": 0.062,
"build/src/libgte17.o": 0.178,
"build/src/libgte18.o": 0.084,
"build/src/libgte19.o": 0.079,
"build/src/libgte2.o": 0.072,
"build/src/libgte20.o": 0.085,
"build/src/libgte21.o": 0.155,
"build/src/libgte22.o": 0.103,
"build/src/libgte23.o": 0.269,
"build/src/libgte24.o": 0.091,
"build/src/libgte25.o": 0.125,
"build/src/libgte26.o": 0.076,
"build/src/libgte27.o": 0.138,
"build/src/libgte28.o": 0.078,
"build/src/libgte29.o": 0.077,
"build/src/libgte3.o": 0.071,
"build/src/libgte30.o": 0.074,
"build/src/libgte4.o": 0.087,
"build/src/libgte5.o": 0.071,
"build/src/libgte6.o": 0.072,
"build/src/libgte7.o": 0.073,
"build/src/libgte8.o": 0.09,
"build/src/libgte9.o": 0.069,
"build/src/libmcrd1.o": 0.095,
"build/src/libmcrd2.o": 0.07,
"build/src/libpad1.o": 0.07,
"build/src/libpad2.o": 0.188,
"build/src/sgap.o": 0.084,
"build/src/sgap_2.o": 0.206,
"build/src/sgap_3.o": 0.08,
"build/src/sgap_4.o": 0.07,
"build/src/sgap_5.o": 0.066,
"build/src/sgap_6.o": 0.073,
"build/src/sgap_8.o": 0.08,
"build/src/snd1.o": 0.086,
"build/src/snd10.o": 0.076,
"build/src/snd11.o": 0.222,
"build/src/snd12.o": 0.066,
"build/src/snd2.o": 0.076,
"build/src/snd3.o": 0.071,
"build/src/snd4.o": 0.069,
"build/src/snd5.o": 0.077,
"build/src/snd6.o": 0.193,
"build/src/snd7.o": 0.071,
"build/src/snd8.o": 0.083,
"build/src/snd9.o": 0.098,
"build/src/ov_SC03_014/ov_SC03_014.o": 0.263,
"build/src/ov_SC03_014/ov_SC03_014_after.o": 0.612,
"build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.531,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.074,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.072,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.16,
"build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.181,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.173,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.124,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.078,
"build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.365,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.084,
"build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.198,
"build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.137,
"build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.134,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.087,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.184,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.778,
"build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.391,
"build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.12,
"build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.256,
"build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.109,
"build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.155,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.114,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.385,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.24,
"build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.11,
"build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.536,
"build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.073,
"build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.114,
"build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.064,
"build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.084,
"build/src/ov_SC03_015/ov_SC03_015.o": 0.178,
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.671,
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.51,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.068,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.061,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.195,
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.195,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.219,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.081,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.078,
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.197,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.099,
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.194,
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.157,
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.139,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.077,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.147,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.615,
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.34,
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.111,
"build/src/800.o": 1.105,
"build/src/800_b.o": 0.119,
"build/src/800_b_2.o": 0.457,
"build/src/800_b_o0a.o": 0.206,
"build/src/800_c.o": 0.31,
"build/src/800b2.o": 0.177,
"build/src/apicard1.o": 0.393,
"build/src/apicard2.o": 0.128,
"build/src/apicard3.o": 0.123,
"build/src/apicard4.o": 0.198,
"build/src/apicard5.o": 0.29,
"build/src/apicard6.o": 0.116,
"build/src/apicard7.o": 0.254,
"build/src/boot.o": 0.162,
"build/src/gap.o": 0.13,
"build/src/libapi1.o": 0.186,
"build/src/libapi2.o": 0.099,
"build/src/libc2_1.o": 0.233,
"build/src/libc2_2.o": 0.238,
"build/src/libcd1.o": 0.13,
"build/src/libcd2.o": 0.214,
"build/src/libetc.o": 0.128,
"build/src/libgpu.o": 0.187,
"build/src/libgpu2.o": 0.177,
"build/src/libgs1.o": 0.171,
"build/src/libgs2.o": 0.165,
"build/src/libgs3.o": 0.151,
"build/src/libgs4.o": 0.147,
"build/src/libgs5.o": 0.163,
"build/src/libgs6.o": 0.489,
"build/src/libgs7.o": 0.327,
"build/src/libgs8.o": 0.116,
"build/src/libgte1.o": 0.143,
"build/src/libgte10.o": 0.124,
"build/src/libgte11.o": 0.126,
"build/src/libgte12.o": 0.157,
"build/src/libgte13.o": 0.204,
"build/src/libgte14.o": 0.117,
"build/src/libgte15.o": 0.11,
"build/src/libgte16.o": 0.346,
"build/src/libgte17.o": 0.345,
"build/src/libgte18.o": 0.132,
"build/src/libgte19.o": 0.101,
"build/src/libgte2.o": 0.121,
"build/src/libgte20.o": 0.374,
"build/src/libgte21.o": 0.203,
"build/src/libgte22.o": 0.083,
"build/src/libgte23.o": 0.114,
"build/src/libgte24.o": 0.112,
"build/src/libgte25.o": 0.104,
"build/src/libgte26.o": 0.118,
"build/src/libgte27.o": 0.364,
"build/src/libgte28.o": 0.15,
"build/src/libgte29.o": 0.121,
"build/src/libgte3.o": 0.282,
"build/src/libgte30.o": 0.111,
"build/src/libgte4.o": 0.093,
"build/src/libgte5.o": 0.12,
"build/src/libgte6.o": 0.132,
"build/src/libgte7.o": 0.185,
"build/src/libgte8.o": 0.127,
"build/src/libgte9.o": 0.139,
"build/src/libmcrd1.o": 0.249,
"build/src/libmcrd2.o": 0.232,
"build/src/libpad1.o": 0.148,
"build/src/libpad2.o": 0.206,
"build/src/sgap.o": 0.129,
"build/src/sgap_2.o": 0.27,
"build/src/sgap_3.o": 0.155,
"build/src/sgap_4.o": 0.139,
"build/src/sgap_5.o": 0.1,
"build/src/sgap_6.o": 0.127,
"build/src/sgap_8.o": 0.122,
"build/src/snd1.o": 0.353,
"build/src/snd10.o": 0.111,
"build/src/snd11.o": 0.123,
"build/src/snd12.o": 0.108,
"build/src/snd2.o": 0.299,
"build/src/snd3.o": 0.106,
"build/src/snd4.o": 0.296,
"build/src/snd5.o": 0.095,
"build/src/snd6.o": 0.349,
"build/src/snd7.o": 0.115,
"build/src/snd8.o": 0.112,
"build/src/snd9.o": 0.117,
"build/src/ov_SC03_014/ov_SC03_014.o": 0.374,
"build/src/ov_SC03_014/ov_SC03_014_after.o": 0.786,
"build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.652,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.089,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.108,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.235,
"build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.222,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.212,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.141,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.142,
"build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.444,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.143,
"build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.353,
"build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.263,
"build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.178,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.141,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.269,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.868,
"build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.436,
"build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.272,
"build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.485,
"build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.249,
"build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.169,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.172,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.328,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.366,
"build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.158,
"build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.812,
"build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.1,
"build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.226,
"build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.19,
"build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.129,
"build/src/ov_SC03_015/ov_SC03_015.o": 0.284,
"build/src/ov_SC03_015/ov_SC03_015_after.o": 1.148,
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.523,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.081,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.077,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.218,
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.221,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.312,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.28,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.11,
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.229,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.103,
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.271,
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.142,
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.129,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.359,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.227,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.819,
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.384,
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.131,
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.334,
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.078,
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.122,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.087,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.308,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.245,
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.076,
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.325,
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.101,
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.114,
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.148,
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.1,
"build/src/ov_SC04_011/ov_SC04_011.o": 0.162,
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.645,
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.448,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.063,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.065,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.231,
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.175,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.21,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.104,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.141,
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.341,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.082,
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.209,
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.121,
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.09,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.079,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.124,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.466,
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.282,
"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.221,
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.12,
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.142,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.142,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.138,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.621,
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.079,
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.081
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.268,
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.223,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.099,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.26,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.321,
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.085,
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.571,
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.141,
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.109,
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.134,
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.235,
"build/src/ov_SC04_011/ov_SC04_011.o": 0.313,
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.727,
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.503,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.062,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.086,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.275,
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.188,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.155,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.111,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.081,
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.208,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.113,
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.298,
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.116,
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.098,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.095,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.2,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.564,
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.34,
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.119,
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.265,
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.076,
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.146,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.163,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.156,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.916,
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.097,
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.122
},
"ok": true,
"seconds": 3.3
"seconds": 4.8
}
+10
View File
@@ -1 +1,11 @@
log: tus1 THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 49,787 sites in 15,243 bodies (2,244 distinct) · marked !FAKE 4,391 · UNMARKED 45,396
cycle: batch tus1 committed a605e1dba — delever: batch tus1 — 300 files (TUs; 2204 drawable) · 1392 bodies: 299 lever-free, 1093 residue, 0 refused · sites removed 3342 / needed 4177 / refused 0 / deferred 0 · replays 1364 (0 disagreed) · compiles 1794 in 59 s wall · final 300/300 identical · written 300 files | check-all: 218 passed, 0 failed of 218
log: tus2 THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 46,424 sites in 14,758 bodies (2,258 distinct) · marked !FAKE 9,393 · UNMARKED 37,031
fatal: Unable to create '/home/musashi/bfm-decomp/.git/index.lock': File exists.
Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
cycle exit=1
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+3 -1
View File
@@ -326,7 +326,9 @@ accumulate here as the phase produces them.**
- **2026-09-09 — T4 batch `tus1`** (`.run/P36/delever/run_tus1.log`, `batch_tus1.json`): `delever: batch tus1 — 300 files (TUs; 2204 drawable) · 1392 bodies: 299 lever-free, 1093 residue, 0 refused · sites removed 3342 / needed 4177 / refused 0 / deferred 0 · replays 1364 (0 disagreed) · compiles 1794 in 59 s wall · final 300/300 identical · written 300 files` → R22 (`.run/P36/baseline/r22_tus1.log`) **`check-all: 218 passed, 0 failed of 218`** (`wall=157.17 s`) → census `THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 49,787 sites in 15,243 bodies (2,244 distinct) · marked !FAKE 4,391 · UNMARKED 45,396`.
## 🛑 SESSION CHECKPOINT — S98 (2026-09-09): T0 ☑ T1 ☑ T1b ☑ T2 ☑ T3 ☑ — all committed (T3 = `39e3e1851` tools, `cd24727dd` + `7ee458dd7` the ov_SC04_011 batches, this close); NEXT = T4 the mechanical campaign: `tools/delever_cycle.sh` over the whole population (TUs then headers), unattended, one commit per batch, R22 every batch | the number: 53,033 sites in 15,638 bodies (2,246 distinct), 310 marked, 0 orphans | last batch `tus1` on e5f59c12f: THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 49,787 sites in 15,243 bodies (2,244 distinct) · marked !FAKE 4,391 · UNMARKED 45,396
- **2026-09-09 — T4 batch `tus2`** (`.run/P36/delever/run_tus2.log`, `batch_tus2.json`): `delever: batch tus2 — 300 files (TUs; 2483 drawable) · 2752 bodies: 495 lever-free, 2257 residue, 0 refused · sites removed 3505 / needed 5262 / refused 0 / deferred 0 · replays 1350 (0 disagreed) · compiles 5616 in 251 s wall · final 300/300 identical · written 297 files` → R22 (`.run/P36/baseline/r22_tus2.log`) **`check-all: 218 passed, 0 failed of 218`** (`wall=148.11 s`) → census `THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 46,424 sites in 14,758 bodies (2,258 distinct) · marked !FAKE 9,393 · UNMARKED 37,031`.
## 🛑 SESSION CHECKPOINT — S98 (2026-09-09): T0 ☑ T1 ☑ T1b ☑ T2 ☑ T3 ☑ — all committed (T3 = `39e3e1851` tools, `cd24727dd` + `7ee458dd7` the ov_SC04_011 batches, this close); NEXT = T4 the mechanical campaign: `tools/delever_cycle.sh` over the whole population (TUs then headers), unattended, one commit per batch, R22 every batch | the number: 53,033 sites in 15,638 bodies (2,246 distinct), 310 marked, 0 orphans | last batch `tus2` on a605e1dba: THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 46,424 sites in 14,758 bodies (2,258 distinct) · marked !FAKE 9,393 · UNMARKED 37,031
### 0. How to use this block
A fresh session reads CLAUDE.md's load order, replays this block verbatim, confirms the effort (T4/T5/T6/T8/T9 are xHigh per the plan, Max is
+7 -7
View File
@@ -1639,7 +1639,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8017E914);
u16 *pB = (*(u16 * *)&D_8017E910);
u16 *pC = (*(u16 * *)&D_8017E91C);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -1647,7 +1647,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -1658,11 +1658,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -1997,10 +1997,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8017E910;
extern u16 D_80184130;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8017E910;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8017E910; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
+3 -3
View File
@@ -625,7 +625,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -672,7 +672,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -686,7 +686,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+51 -51
View File
@@ -1017,7 +1017,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_80185B28; t1 = D_80185B29; t2 = D_80185B2A;
@@ -1119,7 +1119,7 @@ void func_8013D178(void) {
extern unsigned char D_80185BC8, D_80185BC9, D_80185BCA, D_80185BCB, D_80185BCC, D_80185BCD, D_80185BCE, D_80185BCF, D_80185BD0;
extern unsigned char D_80185BC8, D_80185BC9, D_80185BCA, D_80185BCB, D_80185BCC, D_80185BCD, D_80185BCE, D_80185BCF, D_80185BD0;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_80185B28; v = *p; t = D_80185BC8;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1341,13 +1341,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1381,10 +1381,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801841AC;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1426,22 +1426,22 @@ void func_8013D9B0(int param_1)
extern s32 D_801841C4;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801841AC);
if (psVar15 != 0) {
@@ -1456,31 +1456,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1489,17 +1489,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1508,21 +1508,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1667,9 +1667,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1688,7 +1688,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1788,7 +1788,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_8017F734[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1836,12 +1836,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_8017F720;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2012,7 +2012,7 @@ void func_8013EB7C(void) {
extern unsigned char D_8017F6FC;
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
@@ -2139,7 +2139,7 @@ s32 func_8013EF88() {
unsigned short v;
short i;
register short *p124 __asm__("$16");
short *p124;
v = D_80115118.field0;
if (v != 0) {
+69 -70
View File
@@ -1277,9 +1277,9 @@ extern void func_80147D38(s32 a0, s32 a1, s32 a2, s32 a3, void * a4);
extern void func_80147E44(s32 a0, s32 a1, s32 a2, s32 a3);
extern void func_80147F78(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
extern void func_80147F50(s32 arg0);
extern volatile s32 D_80127090;
extern volatile s32 D_80127094;
extern volatile s32 D_80127098;
extern s32 D_80127090;
extern s32 D_80127094;
extern s32 D_80127098;
extern void func_80147F78(s32 a0, s32 a1, s32 a2, s32 a3);
extern void func_80148038(s32 a0, s32 a1);
extern s32 csqrt(s32 a0);
@@ -3701,8 +3701,8 @@ void func_8015D01C(int param_1) {
extern int D_80180BE0;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -3856,8 +3856,8 @@ void func_8015D380(s32 a0) {
extern s32 D_80180C4C;
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -4013,7 +4013,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -4925,7 +4925,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -5809,7 +5809,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801842A0[0] = p;
func_80024054(&D_80180E88, &D_801842AC);
func_8001CE28(p, &D_801842AC);
@@ -5820,7 +5820,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801842A0[1] = p;
func_80024054(&D_80180EA8, &D_801842D4);
func_8001CE28(p, &D_801842D4);
@@ -5831,7 +5831,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801842A0[2] = p;
func_800242D0((s16)func_801620C4(), &D_801842EC, 0x84);
func_8001CE68(p, &D_801842EC);
@@ -5890,9 +5890,9 @@ s32 func_801621CC(s32 arg0) {
extern u8 D_80078EB0;
extern u8 D_80078EB1;
extern s32 D_80180EBC;
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -6024,14 +6024,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801842F8[0] = (s32)item;
func_80024054(D_80180EEC, D_80184304);
@@ -6042,7 +6042,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801842F8[1] = (s32)item;
func_80024054(((u8 *)&D_80180F04), D_8018432C);
@@ -6053,7 +6053,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801842F8[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_80184348, 0x84);
@@ -6132,10 +6132,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_80180F24[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -6361,7 +6361,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -6645,9 +6645,9 @@ void func_80164BDC(s32 param_1)
extern u8 D_8018435D;
extern u8 D_8018435E;
extern u8 D_8018435F;
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -6807,9 +6807,9 @@ void func_801651B8(void * param_1)
{
extern s32 D_80184398;
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -6818,7 +6818,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -7225,7 +7225,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = aD800AE620;
i6 = (short)param_1;
@@ -7311,7 +7311,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -7461,18 +7460,18 @@ void func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_80184418[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -7539,17 +7538,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -7567,12 +7566,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80181284;
i = 0;
f.col[0].b = 0;
@@ -7642,10 +7641,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80181298;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -7744,8 +7743,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -8111,7 +8110,7 @@ void func_80168828(void)
extern void func_800173BC(void *a0, void *a1);
extern u16 D_80181364[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828 thing;
s16 matA[16];
@@ -8119,7 +8118,7 @@ void func_80168828(void)
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -8210,8 +8209,8 @@ void func_80168BDC(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
short mtx[16];
short vec[4];
int r;
register int i __asm__("$17"); /* loop counter, survives the call -> $s1 */
register int tmp __asm__("$2"); /* increment temp -> $v0 (the split-IV) */
int i; /* loop counter, survives the call -> $s1 */
int tmp; /* increment temp -> $v0 (the split-IV) */
func_800D2318();
vec[0] = *(short *)(param_1 + 0x12);
vec[1] = *(short *)(param_1 + 0x16);
@@ -8244,7 +8243,7 @@ void func_80168BDC(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
}
tmp = i + 1;
i = tmp;
__asm__ __volatile__("" : "=r"(i) : "0"(i));
__asm__ __volatile__("" : "=r"(i) : "0"(i)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
} while ((short)tmp < (short)param_4);
}
}
@@ -8268,8 +8267,8 @@ void func_80168D94(int a0) {
short v10[4]; /* sp+0x10 SVECTOR */
short v18[16]; /* sp+0x18 MATRIX_L48 */
short v38[16]; /* sp+0x38 MATRIX_L48 */
register int v1 __asm__("$3");
register int v0 __asm__("$2");
int v1;
register int v0 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
v10[0] = *(unsigned short *)(s1 + 0x12);
v10[1] = *(unsigned short *)(s1 + 0x16);
v10[2] = *(unsigned short *)(s1 + 0x1A);
@@ -8278,7 +8277,7 @@ void func_80168D94(int a0) {
v0 = rand();
v1 = (v0 & 0x7F) << 3;
v0 = (int)((unsigned int)(v0 & 0x7F00) >> 5);
__asm__("" : "=r"(v0) : "0"(v0));
__asm__("" : "=r"(v0) : "0"(v0)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
v0 += 0xC00;
} else {
v0 = rand();
@@ -8287,7 +8286,7 @@ void func_80168D94(int a0) {
}
v10[0] = v1;
v10[1] = v0;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
v10[2] = 0;
RotMatrixYXZ(v10, v18);
func_80048EAC(v38, v18);
@@ -8296,9 +8295,9 @@ void func_80168D94(int a0) {
v10[2] = 0x24;
((void (*)(void *, void *, void *))ApplyMatrixSV)(v18, v10, v10);
{
register s32 a __asm__("$4") = *(unsigned short *)(s1 + 0x6);
register s32 b __asm__("$5") = *(unsigned short *)(s1 + 0xA);
register s32 c __asm__("$3") = *(unsigned short *)(s1 + 0xE);
register s32 a __asm__("$4") = *(unsigned short *)(s1 + 0x6); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 b = *(unsigned short *)(s1 + 0xA);
register s32 c __asm__("$3") = *(unsigned short *)(s1 + 0xE); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
*(unsigned short *)(s1 + 0x12) = v10[0];
*(unsigned short *)(s1 + 0x16) = v10[1];
{
@@ -8391,8 +8390,8 @@ void func_80169058(s32 a0) {
s16 v18[4]; /* sp+0x18 SVECTOR */
s16 v20[16]; /* sp+0x20 MATRIX_L48 */
s16 v40[16]; /* sp+0x40 MATRIX_L48 */
register s32 v1 __asm__("$3");
register s32 v0 __asm__("$2");
s32 v1;
register s32 v0 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
v10[0] = *(u16 *)(s1 + 0x6);
v10[1] = *(u16 *)(s1 + 0xA);
v10[2] = *(u16 *)(s1 + 0xE);
@@ -8407,7 +8406,7 @@ void func_80169058(s32 a0) {
v0 = rand();
v1 = (v0 & 0x7F) << 3;
v0 = ((u32)(v0 & 0x7F00)) >> 5;
__asm__ __volatile__("" : "=r"(v0) : "0"(v0));
__asm__ __volatile__("" : "=r"(v0) : "0"(v0)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
v0 = v0 + 0xC00;
} else {
v0 = rand();
@@ -8416,7 +8415,7 @@ void func_80169058(s32 a0) {
}
v10[0] = v1;
v10[1] = v0;
__asm__ __volatile__("" : : "r"(v1), "r"(v0));
__asm__ __volatile__("" : : "r"(v1), "r"(v0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
v10[2] = 0;
RotMatrixYXZ(v10, v20);
func_80048EAC(v40, v20);
@@ -8459,8 +8458,8 @@ extern void func_800D20C0(void *a0, void *a1, s32 a2);
extern void func_800D23D0(void *a0);
extern void func_80169584(s32 param_1);
void func_80169408(s32 a0) {
register s32 s2 __asm__("$18") = a0;
register s32 s1 __asm__("$17");
register s32 s2 __asm__("$18") = a0; // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 s1;
s16 v10[4]; /* sp+0x10 SVECTOR */
s16 out[4]; /* sp+0x18 SVECTOR */
s16 m[32]; /* sp+0x20 MATRIX_L48 (+ trailing reserve to 0x60 — matches target frame) */
@@ -8754,8 +8753,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2527,7 +2527,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8017F19C);
u16 *pB = (*(u16 * *)&D_8017F198);
u16 *pC = (*(u16 * *)&D_8017F1A4);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2535,7 +2535,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2546,11 +2546,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2699,7 +2699,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2883,10 +2883,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8017F198;
extern u16 D_801A4458;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8017F198;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8017F198; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3077,8 +3077,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3229,22 +3229,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_8017F198;
extern u8 D_8017F19C;
extern u8 D_8017F1A4;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8017F19C);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_8017F198); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8017F1A4); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801A4448;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801A4458 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_8017F1A0);
+3 -3
View File
@@ -641,7 +641,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -688,7 +688,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -702,7 +702,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1057,7 +1057,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801A5790; t1 = D_801A5791; t2 = D_801A5792;
@@ -1156,7 +1156,7 @@ void func_8013D178(void) {
extern unsigned char D_801A5830, D_801A5831, D_801A5832, D_801A5833, D_801A5834, D_801A5835, D_801A5836, D_801A5837, D_801A5838;
extern unsigned char D_801A5830, D_801A5831, D_801A5832, D_801A5833, D_801A5834, D_801A5835, D_801A5836, D_801A5837, D_801A5838;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801A5790; v = *p; t = D_801A5830;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1376,13 +1376,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1415,10 +1415,10 @@ extern void func_800599B8(u16*);
void func_8013D8FC(void)
{
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1466,22 +1466,22 @@ extern void func_800599B8(u16 *);
void func_8013D9B0(int param_1)
{
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801A44D4);
if (psVar15 != 0) {
@@ -1496,31 +1496,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1529,17 +1529,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1548,21 +1548,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1703,9 +1703,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1724,7 +1724,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1811,7 +1811,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_8017FFBC[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1857,12 +1857,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_8017FFA8;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2019,7 +2019,7 @@ extern unsigned char D_8017FF84;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1041,14 +1041,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1128,7 +1128,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1139,13 +1139,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1352,7 +1352,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_80180008[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1534,7 +1534,7 @@ void func_801424E4(short *param_1) {
extern void (*D_8018002C[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_8018002C[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1553,8 +1553,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1590,7 +1590,7 @@ extern s32 D_80180020;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1845,8 +1845,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_8018022C[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1888,8 +1888,8 @@ extern unsigned char D_801802AC[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1938,7 +1938,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801A3BC0, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2107,8 +2107,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_80180564[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_80180564[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2288,8 +2288,8 @@ extern u8 D_80180554;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2330,9 +2330,9 @@ extern u8 D_80180590;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1644,8 +1644,8 @@ void func_8015D01C(int param_1) {
extern int D_80181468;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1797,8 +1797,8 @@ extern s32 D_801814D4;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1949,7 +1949,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2804,7 +2804,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3612,7 +3612,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801A45C8[0] = p;
func_80024054(&D_80181710, &D_801A45D4);
func_8001CE28(p, &D_801A45D4);
@@ -3623,7 +3623,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801A45C8[1] = p;
func_80024054(&D_80181730, &D_801A45FC);
func_8001CE28(p, &D_801A45FC);
@@ -3634,7 +3634,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801A45C8[2] = p;
func_800242D0((s16)func_801620C4(), &D_801A4614, 0x84);
func_8001CE68(p, &D_801A4614);
@@ -3690,9 +3690,9 @@ extern u8 D_80078EB1;
extern s32 D_80181744;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3828,14 +3828,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801A4620[0] = (s32)item;
func_80024054(D_80181774, D_801A462C);
@@ -3846,7 +3846,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801A4620[1] = (s32)item;
func_80024054(((u8 *)&D_8018178C), D_801A4654);
@@ -3857,7 +3857,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801A4620[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801A4670, 0x84);
@@ -3932,10 +3932,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_801817AC[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4115,7 +4115,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4381,9 +4381,9 @@ extern u8 D_801A4687;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4529,9 +4529,9 @@ extern s32 D_801A46C0;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4540,7 +4540,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4877,7 +4877,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4963,7 +4963,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5113,18 +5112,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
{
extern unsigned char D_801A4740[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5173,17 +5172,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5201,12 +5200,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80181B0C;
i = 0;
f.col[0].b = 0;
@@ -5276,10 +5275,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80181B20;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5373,8 +5372,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5652,7 +5651,7 @@ void func_80168828()
extern u16 D_80181BEC[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5660,7 +5659,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5965,8 +5964,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2527,7 +2527,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_80183DEC);
u16 *pB = (*(u16 * *)&D_80183DE8);
u16 *pC = (*(u16 * *)&D_80183DF4);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2535,7 +2535,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2546,11 +2546,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2699,7 +2699,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2883,10 +2883,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_80183DE8;
extern u16 D_801EC6E8;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_80183DE8;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_80183DE8; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3077,8 +3077,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3229,22 +3229,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_80183DE8;
extern u8 D_80183DEC;
extern u8 D_80183DF4;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_80183DEC);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_80183DE8); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_80183DF4); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801EC6D8;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801EC6E8 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_80183DF0);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1058,7 +1058,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801F3070; t1 = D_801F3071; t2 = D_801F3072;
@@ -1157,7 +1157,7 @@ void func_8013D178(void) {
extern unsigned char D_801F3110, D_801F3111, D_801F3112, D_801F3113, D_801F3114, D_801F3115, D_801F3116, D_801F3117, D_801F3118;
extern unsigned char D_801F3110, D_801F3111, D_801F3112, D_801F3113, D_801F3114, D_801F3115, D_801F3116, D_801F3117, D_801F3118;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801F3070; v = *p; t = D_801F3110;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1377,13 +1377,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1418,10 +1418,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801EC764;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1462,22 +1462,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801EC764;
extern s32 D_801EC77C;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801EC764);
if (psVar15 != 0) {
@@ -1492,31 +1492,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1525,17 +1525,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1544,21 +1544,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1699,9 +1699,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1720,7 +1720,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1808,7 +1808,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_80184C0C[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1854,12 +1854,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_80184BF8;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2016,7 +2016,7 @@ extern unsigned char D_80184BD4;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1041,14 +1041,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1128,7 +1128,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1139,13 +1139,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1352,7 +1352,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_80184C58[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1554,7 +1554,7 @@ void func_801424E4(short *param_1) {
extern void (*D_80184C7C[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_80184C7C[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1573,8 +1573,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1610,7 +1610,7 @@ extern s32 D_80184C70;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1856,8 +1856,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80184E7C[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1899,8 +1899,8 @@ extern unsigned char D_80184EFC[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1949,7 +1949,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801EBC98, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2118,8 +2118,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_801851B4[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_801851B4[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2299,8 +2299,8 @@ extern u8 D_801851A4;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2341,9 +2341,9 @@ extern u8 D_801851E0;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_801860B8;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_80186124;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2801,7 +2801,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3609,7 +3609,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EC858[0] = p;
func_80024054(&D_80186360, &D_801EC864);
func_8001CE28(p, &D_801EC864);
@@ -3620,7 +3620,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EC858[1] = p;
func_80024054(&D_80186380, &D_801EC88C);
func_8001CE28(p, &D_801EC88C);
@@ -3631,7 +3631,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EC858[2] = p;
func_800242D0((s16)func_801620C4(), &D_801EC8A4, 0x84);
func_8001CE68(p, &D_801EC8A4);
@@ -3687,9 +3687,9 @@ extern u8 D_80078EB1;
extern s32 D_80186394;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3825,14 +3825,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EC8B0[0] = (s32)item;
func_80024054(D_801863C4, D_801EC8BC);
@@ -3843,7 +3843,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EC8B0[1] = (s32)item;
func_80024054(((u8 *)&D_801863DC), D_801EC8E4);
@@ -3854,7 +3854,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EC8B0[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801EC900, 0x84);
@@ -3929,10 +3929,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_801863FC[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4112,7 +4112,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4378,9 +4378,9 @@ extern u8 D_801EC917;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4526,9 +4526,9 @@ extern s32 D_801EC950;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4537,7 +4537,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4868,7 +4868,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4954,7 +4954,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5108,18 +5107,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801EC9D0[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5168,17 +5167,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5196,12 +5195,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_8018675C;
i = 0;
f.col[0].b = 0;
@@ -5271,10 +5270,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80186770;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5368,8 +5367,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5648,7 +5647,7 @@ void func_80168828()
extern u16 D_8018683C[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5656,7 +5655,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5961,8 +5960,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8017F7B0);
u16 *pB = (*(u16 * *)&D_8017F7AC);
u16 *pC = (*(u16 * *)&D_8017F7B8);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8017F7AC;
extern u16 D_8018EE50;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8017F7AC;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8017F7AC; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_8017F7AC;
extern u8 D_8017F7B0;
extern u8 D_8017F7B8;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8017F7B0);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_8017F7AC); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8017F7B8); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_8018EE40;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_8018EE50 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_8017F7B4);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1058,7 +1058,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_80190278; t1 = D_80190279; t2 = D_8019027A;
@@ -1158,7 +1158,7 @@ void func_8013D178(void) {
extern unsigned char D_80190318, D_80190319, D_8019031A, D_8019031B, D_8019031C, D_8019031D, D_8019031E, D_8019031F, D_80190320;
extern unsigned char D_80190318, D_80190319, D_8019031A, D_8019031B, D_8019031C, D_8019031D, D_8019031E, D_8019031F, D_80190320;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_80190278; v = *p; t = D_80190318;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1378,13 +1378,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1419,10 +1419,10 @@ void func_8013D8FC(void)
{
extern s16 *D_8018EECC;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1463,22 +1463,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_8018EECC;
extern s32 D_8018EEE4;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_8018EECC);
if (psVar15 != 0) {
@@ -1493,31 +1493,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1526,17 +1526,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1545,21 +1545,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1700,9 +1700,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1721,7 +1721,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1809,7 +1809,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_801805D0[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1855,12 +1855,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_801805BC;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2017,7 +2017,7 @@ extern unsigned char D_80180598;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1041,14 +1041,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1128,7 +1128,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1139,13 +1139,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1352,7 +1352,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_8018061C[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1538,7 +1538,7 @@ void func_801424E4(short *param_1) {
extern void (*D_80180640[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_80180640[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1557,8 +1557,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1594,7 +1594,7 @@ extern s32 D_80180634;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1840,8 +1840,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80180840[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1883,8 +1883,8 @@ extern unsigned char D_801808C0[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1933,7 +1933,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_8018E078, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2102,8 +2102,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_80180B78[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_80180B78[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2283,8 +2283,8 @@ extern u8 D_80180B68;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2325,9 +2325,9 @@ extern u8 D_80180BA4;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_80181A7C;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_80181AE8;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8018EFC0[0] = p;
func_80024054(&D_80181D24, &D_8018EFCC);
func_8001CE28(p, &D_8018EFCC);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8018EFC0[1] = p;
func_80024054(&D_80181D44, &D_8018EFF4);
func_8001CE28(p, &D_8018EFF4);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8018EFC0[2] = p;
func_800242D0((s16)func_801620C4(), &D_8018F00C, 0x84);
func_8001CE68(p, &D_8018F00C);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_80181D58;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8018F018[0] = (s32)item;
func_80024054(D_80181D88, D_8018F024);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8018F018[1] = (s32)item;
func_80024054(((u8 *)&D_80181DA0), D_8018F04C);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8018F018[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_8018F068, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_80181DC0[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_8018F07F;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_8018F0B8;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_8018F138[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80182120;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80182134;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_80182200[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2520,7 +2520,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_80182944);
u16 *pB = (*(u16 * *)&D_80182940);
u16 *pC = (*(u16 * *)&D_8018294C);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2539,11 +2539,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2692,7 +2692,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2876,10 +2876,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_80182940;
extern u16 D_801CC5B0;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_80182940;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_80182940; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3070,8 +3070,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3222,22 +3222,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_80182940;
extern u8 D_80182944;
extern u8 D_8018294C;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_80182944);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_80182940); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8018294C); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801CC5A0;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801CC5B0 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_80182948);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1057,7 +1057,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801CDED8; t1 = D_801CDED9; t2 = D_801CDEDA;
@@ -1157,7 +1157,7 @@ void func_8013D178(void) {
extern unsigned char D_801CDF78, D_801CDF79, D_801CDF7A, D_801CDF7B, D_801CDF7C, D_801CDF7D, D_801CDF7E, D_801CDF7F, D_801CDF80;
extern unsigned char D_801CDF78, D_801CDF79, D_801CDF7A, D_801CDF7B, D_801CDF7C, D_801CDF7D, D_801CDF7E, D_801CDF7F, D_801CDF80;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801CDED8; v = *p; t = D_801CDF78;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1377,13 +1377,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1418,10 +1418,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801CC62C;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1462,22 +1462,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801CC62C;
extern s32 D_801CC644;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801CC62C);
if (psVar15 != 0) {
@@ -1492,31 +1492,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1525,17 +1525,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1544,21 +1544,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1699,9 +1699,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1720,7 +1720,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1808,7 +1808,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_80183764[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1854,12 +1854,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_80183750;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2016,7 +2016,7 @@ extern unsigned char D_8018372C;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1041,14 +1041,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1128,7 +1128,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1139,13 +1139,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1352,7 +1352,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_801837B0[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1538,7 +1538,7 @@ void func_801424E4(short *param_1) {
extern void (*D_801837D4[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_801837D4[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1557,8 +1557,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1594,7 +1594,7 @@ extern s32 D_801837C8;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1840,8 +1840,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_801839D4[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1883,8 +1883,8 @@ extern unsigned char D_80183A54[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1933,7 +1933,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801CB7D8, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2102,8 +2102,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_80183D0C[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_80183D0C[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2283,8 +2283,8 @@ extern u8 D_80183CFC;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2325,9 +2325,9 @@ extern u8 D_80183D38;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_80184C10;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_80184C7C;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801CC720[0] = p;
func_80024054(&D_80184EB8, &D_801CC72C);
func_8001CE28(p, &D_801CC72C);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801CC720[1] = p;
func_80024054(&D_80184ED8, &D_801CC754);
func_8001CE28(p, &D_801CC754);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801CC720[2] = p;
func_800242D0((s16)func_801620C4(), &D_801CC76C, 0x84);
func_8001CE68(p, &D_801CC76C);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_80184EEC;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801CC778[0] = (s32)item;
func_80024054(D_80184F1C, D_801CC784);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801CC778[1] = (s32)item;
func_80024054(((u8 *)&D_80184F34), D_801CC7AC);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801CC778[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801CC7C8, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_80184F54[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_801CC7DF;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_801CC818;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801CC898[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_801852B4;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_801852C8;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_80185394[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8017FD24);
u16 *pB = (*(u16 * *)&D_8017FD20);
u16 *pC = (*(u16 * *)&D_8017FD2C);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8017FD20;
extern u16 D_801A2060;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8017FD20;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8017FD20; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_8017FD20;
extern u8 D_8017FD24;
extern u8 D_8017FD2C;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8017FD24);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_8017FD20); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8017FD2C); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801A2050;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801A2060 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_8017FD28);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1058,7 +1058,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801A3488; t1 = D_801A3489; t2 = D_801A348A;
@@ -1158,7 +1158,7 @@ void func_8013D178(void) {
extern unsigned char D_801A3528, D_801A3529, D_801A352A, D_801A352B, D_801A352C, D_801A352D, D_801A352E, D_801A352F, D_801A3530;
extern unsigned char D_801A3528, D_801A3529, D_801A352A, D_801A352B, D_801A352C, D_801A352D, D_801A352E, D_801A352F, D_801A3530;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801A3488; v = *p; t = D_801A3528;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1378,13 +1378,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1419,10 +1419,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801A20DC;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1463,22 +1463,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801A20DC;
extern s32 D_801A20F4;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801A20DC);
if (psVar15 != 0) {
@@ -1493,31 +1493,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1526,17 +1526,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1545,21 +1545,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1700,9 +1700,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1721,7 +1721,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1809,7 +1809,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_80180B44[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1855,12 +1855,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_80180B30;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2017,7 +2017,7 @@ extern unsigned char D_80180B0C;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1041,14 +1041,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1128,7 +1128,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1139,13 +1139,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1352,7 +1352,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_80180B90[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1538,7 +1538,7 @@ void func_801424E4(short *param_1) {
extern void (*D_80180BB4[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_80180BB4[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1557,8 +1557,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1594,7 +1594,7 @@ extern s32 D_80180BA8;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1840,8 +1840,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80180DB4[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1883,8 +1883,8 @@ extern unsigned char D_80180E34[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1933,7 +1933,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801A1288, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2102,8 +2102,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_801810EC[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_801810EC[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2283,8 +2283,8 @@ extern u8 D_801810DC;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2325,9 +2325,9 @@ extern u8 D_80181118;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_80181FF0;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_8018205C;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801A21D0[0] = p;
func_80024054(&D_80182298, &D_801A21DC);
func_8001CE28(p, &D_801A21DC);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801A21D0[1] = p;
func_80024054(&D_801822B8, &D_801A2204);
func_8001CE28(p, &D_801A2204);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801A21D0[2] = p;
func_800242D0((s16)func_801620C4(), &D_801A221C, 0x84);
func_8001CE68(p, &D_801A221C);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_801822CC;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801A2228[0] = (s32)item;
func_80024054(D_801822FC, D_801A2234);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801A2228[1] = (s32)item;
func_80024054(((u8 *)&D_80182314), D_801A225C);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801A2228[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801A2278, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_80182334[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_801A228F;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_801A22C8;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801A2348[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80182694;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_801826A8;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_80182774[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_80182F0C);
u16 *pB = (*(u16 * *)&D_80182F08);
u16 *pC = (*(u16 * *)&D_80182F14);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_80182F08;
extern u16 D_801F1EC0;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_80182F08;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_80182F08; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_80182F08;
extern u8 D_80182F0C;
extern u8 D_80182F14;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_80182F0C);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_80182F08); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_80182F14); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801F1EB0;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801F1EC0 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_80182F10);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1058,7 +1058,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801F3308; t1 = D_801F3309; t2 = D_801F330A;
@@ -1158,7 +1158,7 @@ void func_8013D178(void) {
extern unsigned char D_801F33A8, D_801F33A9, D_801F33AA, D_801F33AB, D_801F33AC, D_801F33AD, D_801F33AE, D_801F33AF, D_801F33B0;
extern unsigned char D_801F33A8, D_801F33A9, D_801F33AA, D_801F33AB, D_801F33AC, D_801F33AD, D_801F33AE, D_801F33AF, D_801F33B0;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801F3308; v = *p; t = D_801F33A8;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1378,13 +1378,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1419,10 +1419,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801F1F3C;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1463,22 +1463,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801F1F3C;
extern s32 D_801F1F54;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801F1F3C);
if (psVar15 != 0) {
@@ -1493,31 +1493,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1526,17 +1526,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1545,21 +1545,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1700,9 +1700,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1721,7 +1721,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1809,7 +1809,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_80183D2C[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1855,12 +1855,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_80183D18;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2017,7 +2017,7 @@ extern unsigned char D_80183CF4;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1041,14 +1041,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1128,7 +1128,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1139,13 +1139,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1352,7 +1352,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_80183D78[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1538,7 +1538,7 @@ void func_801424E4(short *param_1) {
extern void (*D_80183D9C[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_80183D9C[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1557,8 +1557,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1594,7 +1594,7 @@ extern s32 D_80183D90;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1840,8 +1840,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80183F9C[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1883,8 +1883,8 @@ extern unsigned char D_8018401C[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1933,7 +1933,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801F104C, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2102,8 +2102,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_801842D4[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_801842D4[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2283,8 +2283,8 @@ extern u8 D_801842C4;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2325,9 +2325,9 @@ extern u8 D_80184300;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_801851D8;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_80185244;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801F2030[0] = p;
func_80024054(&D_80185480, &D_801F203C);
func_8001CE28(p, &D_801F203C);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801F2030[1] = p;
func_80024054(&D_801854A0, &D_801F2064);
func_8001CE28(p, &D_801F2064);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801F2030[2] = p;
func_800242D0((s16)func_801620C4(), &D_801F207C, 0x84);
func_8001CE68(p, &D_801F207C);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_801854B4;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801F2088[0] = (s32)item;
func_80024054(D_801854E4, D_801F2094);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801F2088[1] = (s32)item;
func_80024054(((u8 *)&D_801854FC), D_801F20BC);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801F2088[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801F20D8, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_8018551C[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_801F20EF;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_801F2128;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801F21A8[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_8018587C;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80185890;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_8018595C[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8017EB8C);
u16 *pB = (*(u16 * *)&D_8017EB88);
u16 *pC = (*(u16 * *)&D_8017EB94);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8017EB88;
extern u16 D_8019A940;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8017EB88;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8017EB88; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_8017EB88;
extern u8 D_8017EB8C;
extern u8 D_8017EB94;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8017EB8C);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_8017EB88); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8017EB94); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_8019A930;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_8019A940 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_8017EB90);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_8019BC18; t1 = D_8019BC19; t2 = D_8019BC1A;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_8019BCB8, D_8019BCB9, D_8019BCBA, D_8019BCBB, D_8019BCBC, D_8019BCBD, D_8019BCBE, D_8019BCBF, D_8019BCC0;
extern unsigned char D_8019BCB8, D_8019BCB9, D_8019BCBA, D_8019BCBB, D_8019BCBC, D_8019BCBD, D_8019BCBE, D_8019BCBF, D_8019BCC0;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_8019BC18; v = *p; t = D_8019BCB8;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_8019A9BC;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_8019A9BC;
extern s32 D_8019A9D4;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_8019A9BC);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_8017F9AC[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_8017F998;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_8017F974;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_8017F9F8[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1539,7 +1539,7 @@ void func_801424E4(short *param_1) {
extern void (*D_8017FA1C[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_8017FA1C[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1558,8 +1558,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1595,7 +1595,7 @@ extern s32 D_8017FA10;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1841,8 +1841,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_8017FC1C[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1884,8 +1884,8 @@ extern unsigned char D_8017FC9C[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1934,7 +1934,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_8019A0DC, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2103,8 +2103,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_8017FF54[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_8017FF54[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2284,8 +2284,8 @@ extern u8 D_8017FF44;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2326,9 +2326,9 @@ extern u8 D_8017FF80;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_80180E58;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_80180EC4;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8019AAB0[0] = p;
func_80024054(&D_80181100, &D_8019AABC);
func_8001CE28(p, &D_8019AABC);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8019AAB0[1] = p;
func_80024054(&D_80181120, &D_8019AAE4);
func_8001CE28(p, &D_8019AAE4);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8019AAB0[2] = p;
func_800242D0((s16)func_801620C4(), &D_8019AAFC, 0x84);
func_8001CE68(p, &D_8019AAFC);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_80181134;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8019AB08[0] = (s32)item;
func_80024054(D_80181164, D_8019AB14);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8019AB08[1] = (s32)item;
func_80024054(((u8 *)&D_8018117C), D_8019AB3C);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8019AB08[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_8019AB58, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_8018119C[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_8019AB6F;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_8019ABA8;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_8019AC28[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_801814FC;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80181510;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_801815DC[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+84 -84
View File
@@ -296,7 +296,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801DA9B8; t1 = D_801DA9B9; t2 = D_801DA9BA;
@@ -376,7 +376,7 @@ extern unsigned char D_801DAA78, D_801DAA79, D_801DAA7A, D_801DAA7B, D_801DAA7C,
void func_8013D178(void) {
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801DA9B8; v = *p; t = D_801DAA78;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -589,13 +589,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -626,10 +626,10 @@ extern void func_800599B8(s32 a0, s32 a1);
void func_8013D8FC(void)
{
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -675,22 +675,22 @@ void func_8013D9B0(int param_1)
extern s32 D_801D9594;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801D957C);
if (psVar15 != 0) {
@@ -705,31 +705,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -738,17 +738,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -757,21 +757,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -911,9 +911,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_c2 buf;
u8 *pbase;
u8 *base;
@@ -932,7 +932,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1062,7 +1062,7 @@ extern void (*D_80187ED0[])(void);
void func_8013E5E8(void)
{
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1106,12 +1106,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_80187EBC;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -1265,7 +1265,7 @@ extern unsigned char D_80187E98;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
@@ -1383,7 +1383,7 @@ s32 func_8013EF88() {
unsigned short v;
short i;
register short *p124 __asm__("$16");
short *p124;
v = D_80115118.field0;
if (v != 0) {
@@ -1527,7 +1527,7 @@ extern void func_801407F4(void);
extern s32 func_801416D4(s16); /* macro-canonical redecl (§8e) */
s32 func_8013F350(void) {
register u16 *pd __asm__("$5") = &D_8011511C;
register u16 *pd __asm__("$5") = &D_8011511C; // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u16 *ps;
u16 *pf;
u16 *pg;
@@ -1537,17 +1537,17 @@ s32 func_8013F350(void) {
u8 *pmax;
u8 *p2e;
u8 *p3e;
register s32 off __asm__("$4");
register s32 off __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s16 i;
s32 r;
s16 rs;
s16 d;
u8 b;
register u8 bb __asm__("$4");
u8 bb;
u8 m;
s32 chg;
__asm__ __volatile__("" : "=r"(pd) : "0"(pd));
__asm__ __volatile__("" : "=r"(pd) : "0"(pd)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pad = *pd;
chg = 0;
if (pad != 0) {
@@ -1823,7 +1823,7 @@ void func_8013FAF8(s16 arg0, s16 arg1) {
s32 t;
s16 *pp;
s32 flag2;
register s32 flag3 __asm__("$18");
register s32 flag3 __asm__("$18"); // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
func_80140E6C();
func_80140F00();
@@ -2283,14 +2283,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -2370,7 +2370,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -2381,13 +2381,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -2690,7 +2690,7 @@ extern u16 D_80115116;
extern void (*D_80187F1C[])(void);
void func_80141874(void) {
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -2852,7 +2852,7 @@ extern void func_8012C218(void *a0);
void func_801424E4(short *param_1) {
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_80187F40[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -2871,8 +2871,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -2904,7 +2904,7 @@ extern s32 D_80187F34;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -3135,8 +3135,8 @@ extern void func_80142B2C(void *arg0);
extern s32 D_80188140[];
void func_80142EC0(s32 param_1) {
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -3176,8 +3176,8 @@ extern unsigned char D_801881C0[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -3223,7 +3223,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801D891C, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -3388,8 +3388,8 @@ extern s32 func_8012BEE8(s32 a0);
extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_80188478[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -3565,8 +3565,8 @@ extern u8 D_80188468;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -3609,9 +3609,9 @@ extern u8 D_801884A4;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+10 -10
View File
@@ -2788,7 +2788,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_801870B0);
u16 *pB = (*(u16 * *)&D_801870AC);
u16 *pC = (*(u16 * *)&D_801870B8);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2796,7 +2796,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2807,11 +2807,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -3002,7 +3002,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -3180,10 +3180,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_801870AC;
extern u16 D_801D9500;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_801870AC;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_801870AC; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3370,8 +3370,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
+3 -3
View File
@@ -689,7 +689,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -736,7 +736,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -750,7 +750,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -51
View File
@@ -1711,8 +1711,8 @@ void func_8015D01C(int param_1) {
extern int D_8018937C;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1893,8 +1893,8 @@ extern s32 D_801893E8;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -2037,7 +2037,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2940,7 +2940,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3791,7 +3791,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801D9670[0] = p;
func_80024054(&D_80189624, &D_801D967C);
func_8001CE28(p, &D_801D967C);
@@ -3802,7 +3802,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801D9670[1] = p;
func_80024054(&D_80189644, &D_801D96A4);
func_8001CE28(p, &D_801D96A4);
@@ -3813,7 +3813,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801D9670[2] = p;
func_800242D0((s16)func_801620C4(), &D_801D96BC, 0x84);
func_8001CE68(p, &D_801D96BC);
@@ -3869,9 +3869,9 @@ extern u8 D_80078EB1;
extern s32 D_80189658;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -4001,14 +4001,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801D96C8[0] = (s32)item;
func_80024054(D_80189688, D_801D96D4);
@@ -4019,7 +4019,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801D96C8[1] = (s32)item;
func_80024054(((u8 *)&D_801896A0), D_801D96FC);
@@ -4030,7 +4030,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801D96C8[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801D9718, 0x84);
@@ -4100,10 +4100,10 @@ extern void (*D_801896C0[])(void); /* word-stride table of dispatch fn pointer
void func_801627E8(void)
{
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4372,7 +4372,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4637,9 +4637,9 @@ extern u8 D_801D972F;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4777,9 +4777,9 @@ extern s32 D_801D9768;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4788,7 +4788,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -5108,7 +5108,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -5194,7 +5194,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5341,18 +5340,18 @@ void func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
{
extern unsigned char D_801D97E8[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5397,17 +5396,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5425,12 +5424,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80189A20;
i = 0;
f.col[0].b = 0;
@@ -5500,10 +5499,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80189A34;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5609,8 +5608,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5901,7 +5900,7 @@ void func_80168828(void)
extern void func_800173BC(void *a0, void *a1);
extern u16 D_80189B00[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828 thing;
s16 matA[16];
@@ -5909,7 +5908,7 @@ void func_80168828(void)
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -6248,8 +6247,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_80183AEC);
u16 *pB = (*(u16 * *)&D_80183AE8);
u16 *pC = (*(u16 * *)&D_80183AF4);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_80183AE8;
extern u16 D_801C4770;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_80183AE8;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_80183AE8; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_80183AE8;
extern u8 D_80183AEC;
extern u8 D_80183AF4;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_80183AEC);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_80183AE8); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_80183AF4); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801C4760;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801C4770 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_80183AF0);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801C75F0; t1 = D_801C75F1; t2 = D_801C75F2;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_801C7E98, D_801C7E99, D_801C7E9A, D_801C7E9B, D_801C7E9C, D_801C7E9D, D_801C7E9E, D_801C7E9F, D_801C7EA0;
extern unsigned char D_801C7E98, D_801C7E99, D_801C7E9A, D_801C7E9B, D_801C7E9C, D_801C7E9D, D_801C7E9E, D_801C7E9F, D_801C7EA0;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801C75F0; v = *p; t = D_801C7E98;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801C47EC;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801C47EC;
extern s32 D_801C4804;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801C47EC);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_8018490C[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_801848F8;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_801848D4;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_80184958[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1555,7 +1555,7 @@ void func_801424E4(short *param_1) {
extern void (*D_8018497C[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_8018497C[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1574,8 +1574,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1611,7 +1611,7 @@ extern s32 D_80184970;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1857,8 +1857,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80184B7C[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1900,8 +1900,8 @@ extern unsigned char D_80184BFC[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1950,7 +1950,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801C3EFC, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2119,8 +2119,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_80184EB4[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_80184EB4[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2300,8 +2300,8 @@ extern u8 D_80184EA4;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2342,9 +2342,9 @@ extern u8 D_80184EE0;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_80185DB8;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_80185E24;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801C48E0[0] = p;
func_80024054(&D_80186060, &D_801C48EC);
func_8001CE28(p, &D_801C48EC);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801C48E0[1] = p;
func_80024054(&D_80186080, &D_801C4914);
func_8001CE28(p, &D_801C4914);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801C48E0[2] = p;
func_800242D0((s16)func_801620C4(), &D_801C492C, 0x84);
func_8001CE68(p, &D_801C492C);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_80186094;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801C4938[0] = (s32)item;
func_80024054(D_801860C4, D_801C4944);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801C4938[1] = (s32)item;
func_80024054(((u8 *)&D_801860DC), D_801C496C);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801C4938[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801C4988, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_801860FC[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_801C499F;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_801C49D8;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801C4A58[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_8018645C;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80186470;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_8018653C[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_80186DE0);
u16 *pB = (*(u16 * *)&D_80186DDC);
u16 *pC = (*(u16 * *)&D_80186DE8);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_80186DDC;
extern u16 D_801C6218;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_80186DDC;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_80186DDC; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_80186DDC;
extern u8 D_80186DE0;
extern u8 D_80186DE8;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_80186DE0);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_80186DDC); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_80186DE8); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801C6208;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801C6218 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_80186DE4);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801C7758; t1 = D_801C7759; t2 = D_801C775A;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_801C77F8, D_801C77F9, D_801C77FA, D_801C77FB, D_801C77FC, D_801C77FD, D_801C77FE, D_801C77FF, D_801C7800;
extern unsigned char D_801C77F8, D_801C77F9, D_801C77FA, D_801C77FB, D_801C77FC, D_801C77FD, D_801C77FE, D_801C77FF, D_801C7800;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801C7758; v = *p; t = D_801C77F8;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801C6294;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801C6294;
extern s32 D_801C62AC;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801C6294);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_80187C00[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_80187BEC;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_80187BC8;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_80187C4C[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1539,7 +1539,7 @@ void func_801424E4(short *param_1) {
extern void (*D_80187C70[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_80187C70[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1558,8 +1558,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1595,7 +1595,7 @@ extern s32 D_80187C64;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1841,8 +1841,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80187E70[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1884,8 +1884,8 @@ extern unsigned char D_80187EF0[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1934,7 +1934,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801C58CC, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2103,8 +2103,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_801881A8[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_801881A8[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2284,8 +2284,8 @@ extern u8 D_80188198;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2326,9 +2326,9 @@ extern u8 D_801881D4;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_801890AC;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_80189118;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2802,7 +2802,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3610,7 +3610,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801C6388[0] = p;
func_80024054(&D_80189354, &D_801C6394);
func_8001CE28(p, &D_801C6394);
@@ -3621,7 +3621,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801C6388[1] = p;
func_80024054(&D_80189374, &D_801C63BC);
func_8001CE28(p, &D_801C63BC);
@@ -3632,7 +3632,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801C6388[2] = p;
func_800242D0((s16)func_801620C4(), &D_801C63D4, 0x84);
func_8001CE68(p, &D_801C63D4);
@@ -3688,9 +3688,9 @@ extern u8 D_80078EB1;
extern s32 D_80189388;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3826,14 +3826,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801C63E0[0] = (s32)item;
func_80024054(D_801893B8, D_801C63EC);
@@ -3844,7 +3844,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801C63E0[1] = (s32)item;
func_80024054(((u8 *)&D_801893D0), D_801C6414);
@@ -3855,7 +3855,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801C63E0[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801C6430, 0x84);
@@ -3930,10 +3930,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_801893F0[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4113,7 +4113,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4379,9 +4379,9 @@ extern u8 D_801C6447;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4527,9 +4527,9 @@ extern s32 D_801C6480;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4538,7 +4538,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4869,7 +4869,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4955,7 +4955,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5109,18 +5108,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801C6500[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5169,17 +5168,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5197,12 +5196,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80189750;
i = 0;
f.col[0].b = 0;
@@ -5272,10 +5271,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80189764;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5369,8 +5368,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5649,7 +5648,7 @@ void func_80168828()
extern u16 D_80189830[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5657,7 +5656,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5962,8 +5961,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2525,7 +2525,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8018B190);
u16 *pB = (*(u16 * *)&D_8018B18C);
u16 *pC = (*(u16 * *)&D_8018B198);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2533,7 +2533,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2544,11 +2544,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2697,7 +2697,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2881,10 +2881,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8018B18C;
extern u16 D_801E6D48;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8018B18C;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8018B18C; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3075,8 +3075,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3227,22 +3227,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_8018B18C;
extern u8 D_8018B190;
extern u8 D_8018B198;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8018B190);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_8018B18C); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8018B198); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801E6D38;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801E6D48 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_8018B194);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1058,7 +1058,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801E8688; t1 = D_801E8689; t2 = D_801E868A;
@@ -1158,7 +1158,7 @@ void func_8013D178(void) {
extern unsigned char D_801E8740, D_801E8741, D_801E8742, D_801E8743, D_801E8744, D_801E8745, D_801E8746, D_801E8747, D_801E8748;
extern unsigned char D_801E8740, D_801E8741, D_801E8742, D_801E8743, D_801E8744, D_801E8745, D_801E8746, D_801E8747, D_801E8748;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801E8688; v = *p; t = D_801E8740;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1378,13 +1378,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1419,10 +1419,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801E6DC4;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1463,22 +1463,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801E6DC4;
extern s32 D_801E6DDC;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801E6DC4);
if (psVar15 != 0) {
@@ -1493,31 +1493,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1526,17 +1526,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1545,21 +1545,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1700,9 +1700,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1721,7 +1721,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1809,7 +1809,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_8018BFB0[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1855,12 +1855,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_8018BF9C;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2017,7 +2017,7 @@ extern unsigned char D_8018BF78;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1041,14 +1041,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1128,7 +1128,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1139,13 +1139,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1352,7 +1352,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_8018BFFC[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1554,7 +1554,7 @@ void func_801424E4(short *param_1) {
extern void (*D_8018C020[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_8018C020[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1573,8 +1573,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1610,7 +1610,7 @@ extern s32 D_8018C014;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1856,8 +1856,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_8018C220[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1899,8 +1899,8 @@ extern unsigned char D_8018C2A0[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1949,7 +1949,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801E6120, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2118,8 +2118,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_8018C558[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_8018C558[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2299,8 +2299,8 @@ extern u8 D_8018C548;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2341,9 +2341,9 @@ extern u8 D_8018C584;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_8018D45C;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_8018D4C8;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2801,7 +2801,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3609,7 +3609,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801E6EB8[0] = p;
func_80024054(&D_8018D704, &D_801E6EC4);
func_8001CE28(p, &D_801E6EC4);
@@ -3620,7 +3620,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801E6EB8[1] = p;
func_80024054(&D_8018D724, &D_801E6EEC);
func_8001CE28(p, &D_801E6EEC);
@@ -3631,7 +3631,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801E6EB8[2] = p;
func_800242D0((s16)func_801620C4(), &D_801E6F04, 0x84);
func_8001CE68(p, &D_801E6F04);
@@ -3687,9 +3687,9 @@ extern u8 D_80078EB1;
extern s32 D_8018D738;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3825,14 +3825,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801E6F10[0] = (s32)item;
func_80024054(D_8018D768, D_801E6F1C);
@@ -3843,7 +3843,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801E6F10[1] = (s32)item;
func_80024054(((u8 *)&D_8018D780), D_801E6F44);
@@ -3854,7 +3854,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801E6F10[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801E6F60, 0x84);
@@ -3929,10 +3929,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_8018D7A0[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4112,7 +4112,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4378,9 +4378,9 @@ extern u8 D_801E6F77;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4526,9 +4526,9 @@ extern s32 D_801E6FB0;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4537,7 +4537,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4868,7 +4868,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4954,7 +4954,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5108,18 +5107,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801E7030[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5168,17 +5167,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5196,12 +5195,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_8018DB00;
i = 0;
f.col[0].b = 0;
@@ -5271,10 +5270,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_8018DB14;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5368,8 +5367,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5648,7 +5647,7 @@ void func_80168828()
extern u16 D_8018DBE0[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5656,7 +5655,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5961,8 +5960,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8017E270);
u16 *pB = (*(u16 * *)&D_8017E26C);
u16 *pC = (*(u16 * *)&D_8017E278);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8017E26C;
extern u16 D_80194F98;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8017E26C;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8017E26C; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_8017E26C;
extern u8 D_8017E270;
extern u8 D_8017E278;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8017E270);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_8017E26C); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8017E278); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_80194F88;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_80194F98 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_8017E274);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_80196270; t1 = D_80196271; t2 = D_80196272;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_80196310, D_80196311, D_80196312, D_80196313, D_80196314, D_80196315, D_80196316, D_80196317, D_80196318;
extern unsigned char D_80196310, D_80196311, D_80196312, D_80196313, D_80196314, D_80196315, D_80196316, D_80196317, D_80196318;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_80196270; v = *p; t = D_80196310;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_80195014;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_80195014;
extern s32 D_8019502C;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_80195014);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_8017F090[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_8017F07C;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_8017F058;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_8017F0DC[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1539,7 +1539,7 @@ void func_801424E4(short *param_1) {
extern void (*D_8017F100[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_8017F100[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1558,8 +1558,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1595,7 +1595,7 @@ extern s32 D_8017F0F4;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1841,8 +1841,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_8017F300[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1884,8 +1884,8 @@ extern unsigned char D_8017F380[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1934,7 +1934,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_80194730, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2103,8 +2103,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_8017F638[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_8017F638[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2284,8 +2284,8 @@ extern u8 D_8017F628;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2326,9 +2326,9 @@ extern u8 D_8017F664;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_8018053C;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_801805A8;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_80195108[0] = p;
func_80024054(&D_801807E4, &D_80195114);
func_8001CE28(p, &D_80195114);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_80195108[1] = p;
func_80024054(&D_80180804, &D_8019513C);
func_8001CE28(p, &D_8019513C);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_80195108[2] = p;
func_800242D0((s16)func_801620C4(), &D_80195154, 0x84);
func_8001CE68(p, &D_80195154);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_80180818;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_80195160[0] = (s32)item;
func_80024054(D_80180848, D_8019516C);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_80195160[1] = (s32)item;
func_80024054(((u8 *)&D_80180860), D_80195194);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_80195160[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801951B0, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_80180880[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_801951C7;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_80195200;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_80195280[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80180BE0;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80180BF4;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_80180CC0[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_80190E74);
u16 *pB = (*(u16 * *)&D_80190E70);
u16 *pC = (*(u16 * *)&D_80190E7C);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_80190E70;
extern u16 D_801E3010;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_80190E70;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_80190E70; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_80190E70;
extern u8 D_80190E74;
extern u8 D_80190E7C;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_80190E74);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_80190E70); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_80190E7C); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801E3000;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801E3010 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_80190E78);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801E4A90; t1 = D_801E4A91; t2 = D_801E4A92;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_801E4B98, D_801E4B99, D_801E4B9A, D_801E4B9B, D_801E4B9C, D_801E4B9D, D_801E4B9E, D_801E4B9F, D_801E4BA0;
extern unsigned char D_801E4B98, D_801E4B99, D_801E4B9A, D_801E4B9B, D_801E4B9C, D_801E4B9D, D_801E4B9E, D_801E4B9F, D_801E4BA0;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801E4A90; v = *p; t = D_801E4B98;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801E308C;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801E308C;
extern s32 D_801E30A4;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801E308C);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_80191C94[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_80191C80;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_80191C5C;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_80191CE0[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1539,7 +1539,7 @@ void func_801424E4(short *param_1) {
extern void (*D_80191D04[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_80191D04[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1558,8 +1558,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1595,7 +1595,7 @@ extern s32 D_80191CF8;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1841,8 +1841,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80191F04[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1884,8 +1884,8 @@ extern unsigned char D_80191F84[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1934,7 +1934,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801E2464, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2103,8 +2103,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_8019223C[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_8019223C[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2284,8 +2284,8 @@ extern u8 D_8019222C;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2326,9 +2326,9 @@ extern u8 D_80192268;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_80193140;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_801931AC;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2801,7 +2801,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3609,7 +3609,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801E3180[0] = p;
func_80024054(&D_801933E8, &D_801E318C);
func_8001CE28(p, &D_801E318C);
@@ -3620,7 +3620,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801E3180[1] = p;
func_80024054(&D_80193408, &D_801E31B4);
func_8001CE28(p, &D_801E31B4);
@@ -3631,7 +3631,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801E3180[2] = p;
func_800242D0((s16)func_801620C4(), &D_801E31CC, 0x84);
func_8001CE68(p, &D_801E31CC);
@@ -3687,9 +3687,9 @@ extern u8 D_80078EB1;
extern s32 D_8019341C;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3825,14 +3825,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801E31D8[0] = (s32)item;
func_80024054(D_8019344C, D_801E31E4);
@@ -3843,7 +3843,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801E31D8[1] = (s32)item;
func_80024054(((u8 *)&D_80193464), D_801E320C);
@@ -3854,7 +3854,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801E31D8[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801E3228, 0x84);
@@ -3929,10 +3929,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_80193484[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4112,7 +4112,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4378,9 +4378,9 @@ extern u8 D_801E323F;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4526,9 +4526,9 @@ extern s32 D_801E3278;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4537,7 +4537,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4868,7 +4868,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4954,7 +4954,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5108,18 +5107,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801E32F8[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5168,17 +5167,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5196,12 +5195,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_801937E4;
i = 0;
f.col[0].b = 0;
@@ -5271,10 +5270,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_801937F8;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5368,8 +5367,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5648,7 +5647,7 @@ void func_80168828()
extern u16 D_801938C4[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5656,7 +5655,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5961,8 +5960,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_801912C4);
u16 *pB = (*(u16 * *)&D_801912C0);
u16 *pC = (*(u16 * *)&D_801912CC);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_801912C0;
extern u16 D_801E9EF0;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_801912C0;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_801912C0; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_801912C0;
extern u8 D_801912C4;
extern u8 D_801912CC;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_801912C4);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_801912C0); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_801912CC); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801E9EE0;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801E9EF0 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_801912C8);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801EB928; t1 = D_801EB929; t2 = D_801EB92A;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_801EB9C8, D_801EB9C9, D_801EB9CA, D_801EB9CB, D_801EB9CC, D_801EB9CD, D_801EB9CE, D_801EB9CF, D_801EB9D0;
extern unsigned char D_801EB9C8, D_801EB9C9, D_801EB9CA, D_801EB9CB, D_801EB9CC, D_801EB9CD, D_801EB9CE, D_801EB9CF, D_801EB9D0;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801EB928; v = *p; t = D_801EB9C8;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801E9F6C;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801E9F6C;
extern s32 D_801E9F84;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801E9F6C);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_801920E4[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_801920D0;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_801920AC;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_80192130[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1555,7 +1555,7 @@ void func_801424E4(short *param_1) {
extern void (*D_80192154[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_80192154[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1574,8 +1574,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1611,7 +1611,7 @@ extern s32 D_80192148;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1857,8 +1857,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80192354[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1900,8 +1900,8 @@ extern unsigned char D_801923D4[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1950,7 +1950,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801E95C0, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2119,8 +2119,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_8019268C[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_8019268C[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2300,8 +2300,8 @@ extern u8 D_8019267C;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2342,9 +2342,9 @@ extern u8 D_801926B8;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_80193590;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_801935FC;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EA060[0] = p;
func_80024054(&D_80193838, &D_801EA06C);
func_8001CE28(p, &D_801EA06C);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EA060[1] = p;
func_80024054(&D_80193858, &D_801EA094);
func_8001CE28(p, &D_801EA094);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EA060[2] = p;
func_800242D0((s16)func_801620C4(), &D_801EA0AC, 0x84);
func_8001CE68(p, &D_801EA0AC);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_8019386C;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EA0B8[0] = (s32)item;
func_80024054(D_8019389C, D_801EA0C4);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EA0B8[1] = (s32)item;
func_80024054(((u8 *)&D_801938B4), D_801EA0EC);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EA0B8[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801EA108, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_801938D4[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_801EA11F;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_801EA158;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801EA1D8[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80193C34;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80193C48;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_80193D14[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8017E7D8);
u16 *pB = (*(u16 * *)&D_8017E7D4);
u16 *pC = (*(u16 * *)&D_8017E7E0);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8017E7D4;
extern u16 D_8018F070;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8017E7D4;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8017E7D4; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_8017E7D4;
extern u8 D_8017E7D8;
extern u8 D_8017E7E0;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8017E7D8);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_8017E7D4); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8017E7E0); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_8018F060;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_8018F070 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_8017E7DC);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_80190548; t1 = D_80190549; t2 = D_8019054A;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_801905E8, D_801905E9, D_801905EA, D_801905EB, D_801905EC, D_801905ED, D_801905EE, D_801905EF, D_801905F0;
extern unsigned char D_801905E8, D_801905E9, D_801905EA, D_801905EB, D_801905EC, D_801905ED, D_801905EE, D_801905EF, D_801905F0;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_80190548; v = *p; t = D_801905E8;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_8018F0EC;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_8018F0EC;
extern s32 D_8018F104;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_8018F0EC);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_8017F5F8[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_8017F5E4;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_8017F5C0;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_8017F644[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1539,7 +1539,7 @@ void func_801424E4(short *param_1) {
extern void (*D_8017F668[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_8017F668[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1558,8 +1558,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1595,7 +1595,7 @@ extern s32 D_8017F65C;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1841,8 +1841,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_8017F868[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1884,8 +1884,8 @@ extern unsigned char D_8017F8E8[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1934,7 +1934,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_8018E818, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2103,8 +2103,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_8017FBA0[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_8017FBA0[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2284,8 +2284,8 @@ extern u8 D_8017FB90;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2326,9 +2326,9 @@ extern u8 D_8017FBCC;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1641,8 +1641,8 @@ void func_8015D01C(int param_1) {
extern int D_80180AA4;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1794,8 +1794,8 @@ extern s32 D_80180B10;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1946,7 +1946,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2801,7 +2801,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3609,7 +3609,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8018F1E0[0] = p;
func_80024054(&D_80180D4C, &D_8018F1EC);
func_8001CE28(p, &D_8018F1EC);
@@ -3620,7 +3620,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8018F1E0[1] = p;
func_80024054(&D_80180D6C, &D_8018F214);
func_8001CE28(p, &D_8018F214);
@@ -3631,7 +3631,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_8018F1E0[2] = p;
func_800242D0((s16)func_801620C4(), &D_8018F22C, 0x84);
func_8001CE68(p, &D_8018F22C);
@@ -3687,9 +3687,9 @@ extern u8 D_80078EB1;
extern s32 D_80180D80;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3825,14 +3825,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8018F238[0] = (s32)item;
func_80024054(D_80180DB0, D_8018F244);
@@ -3843,7 +3843,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8018F238[1] = (s32)item;
func_80024054(((u8 *)&D_80180DC8), D_8018F26C);
@@ -3854,7 +3854,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_8018F238[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_8018F288, 0x84);
@@ -3929,10 +3929,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_80180DE8[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4112,7 +4112,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4378,9 +4378,9 @@ extern u8 D_8018F29F;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4526,9 +4526,9 @@ extern s32 D_8018F2D8;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4537,7 +4537,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4868,7 +4868,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4954,7 +4954,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5108,18 +5107,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_8018F358[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5168,17 +5167,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5196,12 +5195,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80181148;
i = 0;
f.col[0].b = 0;
@@ -5271,10 +5270,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_8018115C;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5368,8 +5367,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5648,7 +5647,7 @@ void func_80168828()
extern u16 D_80181228[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5656,7 +5655,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5961,8 +5960,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_80184A10);
u16 *pB = (*(u16 * *)&D_80184A0C);
u16 *pC = (*(u16 * *)&D_80184A18);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_80184A0C;
extern u16 D_801B2C88;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_80184A0C;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_80184A0C; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_80184A0C;
extern u8 D_80184A10;
extern u8 D_80184A18;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_80184A10);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_80184A0C); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_80184A18); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801B2C78;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801B2C88 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_80184A14);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801B4980; t1 = D_801B4981; t2 = D_801B4982;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_801B4A20, D_801B4A21, D_801B4A22, D_801B4A23, D_801B4A24, D_801B4A25, D_801B4A26, D_801B4A27, D_801B4A28;
extern unsigned char D_801B4A20, D_801B4A21, D_801B4A22, D_801B4A23, D_801B4A24, D_801B4A25, D_801B4A26, D_801B4A27, D_801B4A28;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801B4980; v = *p; t = D_801B4A20;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801B2D04;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801B2D04;
extern s32 D_801B2D1C;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801B2D04);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_80185830[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_8018581C;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_801857F8;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_8018587C[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1555,7 +1555,7 @@ void func_801424E4(short *param_1) {
extern void (*D_801858A0[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_801858A0[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1574,8 +1574,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1611,7 +1611,7 @@ extern s32 D_80185894;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1857,8 +1857,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_80185AA0[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1900,8 +1900,8 @@ extern unsigned char D_80185B20[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1950,7 +1950,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801B23F8, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2119,8 +2119,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_80185DD8[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_80185DD8[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2300,8 +2300,8 @@ extern u8 D_80185DC8;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2342,9 +2342,9 @@ extern u8 D_80185E04;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_80186CDC;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_80186D48;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801B2DF8[0] = p;
func_80024054(&D_80186F84, &D_801B2E04);
func_8001CE28(p, &D_801B2E04);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801B2DF8[1] = p;
func_80024054(&D_80186FA4, &D_801B2E2C);
func_8001CE28(p, &D_801B2E2C);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801B2DF8[2] = p;
func_800242D0((s16)func_801620C4(), &D_801B2E44, 0x84);
func_8001CE68(p, &D_801B2E44);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_80186FB8;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801B2E50[0] = (s32)item;
func_80024054(D_80186FE8, D_801B2E5C);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801B2E50[1] = (s32)item;
func_80024054(((u8 *)&D_80187000), D_801B2E84);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801B2E50[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801B2EA0, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_80187020[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_801B2EB7;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_801B2EF0;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801B2F70[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80187380;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_80187394;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_80187460[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8018AA68);
u16 *pB = (*(u16 * *)&D_8018AA64);
u16 *pC = (*(u16 * *)&D_8018AA70);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_8018AA64;
extern u16 D_801EE4B0;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_8018AA64;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_8018AA64; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_8018AA64;
extern u8 D_8018AA68;
extern u8 D_8018AA70;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8018AA68);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_8018AA64); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_8018AA70); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_801EE4A0;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_801EE4B0 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_8018AA6C);
+3 -3
View File
@@ -640,7 +640,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
extern u8 D_801152B0;
s32 *p;
register s32 s7 __asm__("$23");
register s32 s7 __asm__("$23"); // !FAKE: pin $23 — NEEDED DIFFERS (P36 rung B tus2)
s32 flag;
s32 acc;
s16 i;
@@ -687,7 +687,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
return 1;
next:
p = (s32 *)*p;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (p != 0) goto loop;
return 0;
}
@@ -701,7 +701,7 @@ s32 func_80135A4C(s32 a0, s32 a1, s32 *a2, s32 a3) {
s32 t = 0;
if (((V3 *)a2)->x == ((V3 *)a3)->x && ((V3 *)a2)->y == ((V3 *)a3)->y) {
s32 zt = (((V3 *)a2)->z == ((V3 *)a3)->z);
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt));
__asm__("addu %0,%1,$zero" : "=r"(t) : "r"(zt)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
}
eq = t;
}
+50 -50
View File
@@ -1059,7 +1059,7 @@ void func_8013CF68()
u8 t0, t1, t2;
u8 *base;
__asm__("la %0, D_800A5E94" : "=r"(base));
__asm__("la %0, D_800A5E94" : "=r"(base)); // !FAKE: instruction la — NEEDED DIFFERS (P36 rung B tus2)
*(s32 *)(base - 0xC) = 0;
t0 = D_801EFBE0; t1 = D_801EFBE1; t2 = D_801EFBE2;
@@ -1159,7 +1159,7 @@ void func_8013D178(void) {
extern unsigned char D_801EFC80, D_801EFC81, D_801EFC82, D_801EFC83, D_801EFC84, D_801EFC85, D_801EFC86, D_801EFC87, D_801EFC88;
extern unsigned char D_801EFC80, D_801EFC81, D_801EFC82, D_801EFC83, D_801EFC84, D_801EFC85, D_801EFC86, D_801EFC87, D_801EFC88;
unsigned char v, t;
register unsigned char *p __asm__("$5");
register unsigned char *p __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
p = &D_801EFBE0; v = *p; t = D_801EFC80;
if (v != t) { if (v < t) *p = v + 8; else *p = v - 8; }
@@ -1379,13 +1379,13 @@ void func_8013D53C(void *arg0v) {
n = arg0->w * arg0->h;
i = 0;
src = arg0->data;
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */
__asm__("" :: "r"(src)); /* +2 refs on src (depth-2): keeps src above i, below the mfhi temp */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
dst = src + n;
if (n > 0) {
do {
u16 px;
s32 r, g, b, out;
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */
__asm__("" :: "r"(i)); /* +3 refs on i (depth-3): lifts i over dst in the $t2 race */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
px = *src;
r = ((px & 0x1F) * s0v) / 2560;
g = (((px & 0x3E0) * t9v) / 2560) & 0x3E0;
@@ -1420,10 +1420,10 @@ void func_8013D8FC(void)
{
extern s16 *D_801EE52C;
register s16 *psVar3 __asm__("$17");
register s16 *psVar2 __asm__("$16");
register s32 c9 __asm__("$19");
register s32 cff __asm__("$18");
s16 *psVar3;
register s16 *psVar2 __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 c9;
s32 cff;
u16 sVar1;
s16 buf[4];
@@ -1464,22 +1464,22 @@ void func_8013D9B0(int param_1)
extern s16 *D_801EE52C;
extern s32 D_801EE544;
u8 buf[0x20];
register s32 uVar13 __asm__("$16");
register u16 *psVar14 __asm__("$17");
register u16 *psVar15 __asm__("$18");
register s32 uVar16 __asm__("$19");
register void *r0 __asm__("$20");
register u16 *puVar10 __asm__("$11");
register u16 *puVar9 __asm__("$10");
register s32 iVar11 __asm__("$13");
register s32 iVar12 __asm__("$14");
s32 uVar13;
register u16 *psVar14 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
u16 *psVar15;
s32 uVar16;
void *r0;
u16 *puVar10;
register u16 *puVar9 __asm__("$10"); // !FAKE: pin $10 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar11;
register s32 iVar12 __asm__("$14"); // !FAKE: pin $14 — NEEDED DIFFERS (P36 rung B tus2)
u16 sVar4;
register u32 uVar5 __asm__("$3");
register u32 uVar7 __asm__("$6");
register u32 uVar1 __asm__("$7");
register u32 uVar6 __asm__("$4");
register u32 uVar8 __asm__("$8");
register u32 uVar3 __asm__("$9");
register u32 uVar5 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar7 __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar1 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u32 uVar6;
register u32 uVar8 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register u32 uVar3 __asm__("$9"); // !FAKE: pin $9 — NEEDED DIFFERS (P36 rung B tus2)
psVar15 = (*(u16 * *)&D_801EE52C);
if (psVar15 != 0) {
@@ -1494,31 +1494,31 @@ void func_8013D9B0(int param_1)
iVar11 = 0;
if (sVar4 == 9) {
*(s16 *)(buf + 0) = psVar14[-4];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 2) = psVar14[-3];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 4) = psVar14[-2];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*(s16 *)(buf + 6) = psVar14[-1];
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
{
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2];
register s32 mh __asm__("$2") = (s32)((s16 *)psVar14)[-1];
register s32 mw __asm__("$3") = (s32)((s16 *)psVar14)[-2]; // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
s32 mh = (s32)((s16 *)psVar14)[-1];
iVar12 = mw * mh;
}
uVar13 = 0;
puVar10 = *(u16 **)psVar14;
{
register s32 boff __asm__("$2") = iVar12 * 2;
register u16 *pi __asm__("$5");
register s32 boff __asm__("$2") = iVar12 * 2; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *pi __asm__("$5"); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
pi = (u16 *)((s32)puVar10 + boff);
__asm__ __volatile__("" : "=r"(pi) : "0"(pi));
__asm__ __volatile__("" : "=r"(pi) : "0"(pi)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
puVar9 = pi;
}
if (0 < iVar12) {
do {
register u32 pix __asm__("$2");
register u32 out __asm__("$2");
register u32 pix __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register u32 out __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u32 result;
*(u32 *)(buf + 0xc) = (u32)*puVar10;
pix = (u32)*puVar9;
@@ -1527,17 +1527,17 @@ void func_8013D9B0(int param_1)
uVar1 = pix & 0x7c00;
{
void *p1;
register void *pa __asm__("$2");
register void *pb __asm__("$12");
__asm__ __volatile__("");
register void *pa __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register void *pb __asm__("$12"); // !FAKE: pin $12 — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
p1 = buf + 0xc;
__asm__ __volatile__("" : "=r"(p1) : "0"(p1));
__asm__ __volatile__("" : "=r"(p1) : "0"(p1)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
gte_ldIR0z();
gte_ldrgb(r0);
gte_ldIRGB(p1);
gte_dpcl();
pa = buf + 0x10;
__asm__ __volatile__("" : "=r"(pa) : "0"(pa));
__asm__ __volatile__("" : "=r"(pa) : "0"(pa)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
pb = pa;
gte_stORGB(pb);
}
@@ -1546,21 +1546,21 @@ void func_8013D9B0(int param_1)
uVar8 = out & 0x3e0;
uVar3 = out & 0x7c00;
if (uVar5 != uVar6) {
register s32 c __asm__("$2");
s32 c;
uVar13 = 1;
if ((s32)uVar5 < (s32)uVar6) uVar5 = uVar5 + 1;
c = (s32)uVar6 < (s32)uVar5;
if (c) uVar5 = uVar5 - 1;
}
if (uVar7 != uVar8) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar7 < (s32)uVar8) uVar7 = uVar7 + 0x20;
c = (s32)uVar8 < (s32)uVar7;
if (c) uVar7 = uVar7 - 0x20;
}
if (uVar1 != uVar3) {
register s32 c __asm__("$2");
register s32 c __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
uVar13 = 1;
if ((s32)uVar1 < (s32)uVar3) uVar1 = uVar1 + 0x400;
c = (s32)uVar3 < (s32)uVar1;
@@ -1701,9 +1701,9 @@ void func_8013DD68() {
u16 *puVar16;
u16 *q;
u16 *puVar10;
register u16 uVar2 __asm__("$3");
register u16 uVar2 __asm__("$3"); // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
int uVar5;
register int iVar14 __asm__("$7");
register int iVar14 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
Buf_8013DD68 buf;
u8 *pbase;
u8 *base;
@@ -1722,7 +1722,7 @@ void func_8013DD68() {
p = p + 0x10;
iVar14 = 0;
if (uVar1 != 0) {
register int c5 __asm__("$11") = 5;
int c5 = 5;
puVar10 = (u16 *)((int)p + 0x18);
q = puVar16 + 8;
do {
@@ -1810,7 +1810,7 @@ void func_8013E5E8(void)
extern unsigned short D_80115112;
extern u16 D_80115116;
extern void (*D_8018B888[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 -> store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_80029444();
func_801754A8();
D_8011511E = func_80014ED4(0);
@@ -1856,12 +1856,12 @@ void func_8013E6AC(void) {
D_80115140[i] = 0;
}
if (!((u32)func_80029504() < 5 || currentLocationId == 0x302A || currentLocationId == 0x3073)) {
register s32 *ep __asm__("$8");
register s32 *fp __asm__("$9");
s32 *ep;
s32 *fp;
fp = (s32 *)&D_80115110;
ep = (s32 *)&D_8018B874;
for (i = 0; i < 5; i++) {
register s32 *fa __asm__("$6");
s32 *fa;
s32 v;
fa = (s32 *)(i * 4 + (s32)fp);
v = ep[i] * 3 >> 2;
@@ -2018,7 +2018,7 @@ extern unsigned char D_8018B850;
void func_8013EB7C(void) {
s32 sp10[2];
short sVar1;
register short sVar2 __asm__("$2");
register short sVar2 __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
s32 a0v;
s32 iVar4;
+28 -28
View File
@@ -1042,14 +1042,14 @@ s16 n;
Prim4 *p;
s16 t;
s32 c3;
register u16 *a __asm__("$20");
register u16 *b __asm__("$21");
register u16 *c __asm__("$23");
register u16 *e __asm__("$22");
register u16 *pb __asm__("$10");
register u32 m24 __asm__("$8");
register u32 mhi __asm__("$9");
register s32 eight __asm__("$2");
u16 *a;
u16 *b;
u16 *c;
u16 *e;
u16 *pb;
u32 m24;
u32 mhi;
register s32 eight __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
if (i < n)
{
c3 = 3;
@@ -1129,7 +1129,7 @@ register s32 eight __asm__("$2");
y = (*e) + 3;
}
*((s16 *) (q - 10)) = y;
__asm__("" ::: "memory");
__asm__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
*((u32 *) ot) = 0x4000000;
q[-8] = 0x78;
*((u32 *) (q - 0x10)) = 0x64808080;
@@ -1140,13 +1140,13 @@ __asm__("" ::: "memory");
*((s16 *) (q - 4)) = eight;
*((u32 *) ot) = ((*((u32 *) ot)) & mhi) | (D_800AE7BC[*pb].ot[2] & m24);
{
register u32 *op __asm__("$4");
register u32 *op __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
op = D_800AE7BC[*pb].ot;
op[2] = (op[2] & mhi) | (((u32) ot) & m24);
}
q += 0x14;
ot += 5;
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */
__asm__ volatile("" :: "r"(j)); /* [L2] zero code, +1 ref on j */ // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
}
}
@@ -1353,7 +1353,7 @@ void func_80141874(void) {
extern u16 D_8011511C;
extern u16 D_80115116;
extern void (*D_8018B8D4[])(void);
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */
register void (*fp)(void) __asm__("$2"); /* pin fn-ptr to $v0 → store retires early */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
func_801754A8();
D_8011511E = func_80014ED4(0);
D_8011511C = func_80015018(0);
@@ -1555,7 +1555,7 @@ void func_801424E4(short *param_1) {
extern void (*D_8018B8F8[])(void);
short sVar1;
int iVar2;
register unsigned short t __asm__("$3");
unsigned short t;
(*D_8018B8F8[(unsigned short)param_1[1]])();
if (*(unsigned short *)param_1 != 0) {
@@ -1574,8 +1574,8 @@ void func_801424E4(short *param_1) {
iVar2 = *(int *)(param_1 + 0x32);
if ((iVar2 != 0) && (*(short *)(iVar2 + 0x36) == param_1[0x7f])) {
*(int *)(param_1 + 2) = *(int *)(iVar2 + 4);
a = *(unsigned short *)(*(volatile int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a));
a = *(unsigned short *)(*(int *)(param_1 + 0x32) + 10);
__asm__ __volatile__("" : : "r"(a)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
t = (unsigned short)param_1[0x7e];
sVar1 = a + t;
iVar2 = *(volatile int *)(param_1 + 0x32);
@@ -1611,7 +1611,7 @@ extern s32 D_8018B8EC;
void func_80142608(s32 param_1)
{
register s32 iVar1 __asm__("$16");
s32 iVar1;
if (*(short *)(param_1 + 0x70) != 0) {
iVar1 = ((s32 (*)(void))func_8012C1B8)();
@@ -1857,8 +1857,8 @@ extern void func_80142B2C(void *arg0);
void func_80142EC0(s32 param_1) {
extern s32 D_8018BAF8[];
register s32 d __asm__("$16") = param_1; /* $s0 */
register s32 obj __asm__("$17"); /* $s1 */
register s32 d __asm__("$16") = param_1; /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register s32 obj __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
s16 sVar2;
@@ -1900,8 +1900,8 @@ extern unsigned char D_8018BB78[];
void func_8014305C(int param_1)
{
register int s0_param __asm__("$16") = param_1;
register int s1_copy __asm__("$17");
register int s0_param __asm__("$16") = param_1; // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
register int s1_copy __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
int iVar2;
short sVar1;
@@ -1950,7 +1950,7 @@ void func_801431E8(s32 param_1) {
u16 uVar2;
s16 sVar4;
register s32 d __asm__("$16");
register s32 d __asm__("$16"); // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
memcpy(buf, &D_801EDC18, 4);
iVar5 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)(param_1 + 0x20) = iVar5;
@@ -2119,8 +2119,8 @@ extern void func_8012C218(void *a0);
void func_80143D28(s32 param_1) {
extern MatEntry D_8018BE30[];
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */
register s32 iVar2 __asm__("$17") = *(s32 *)(param_1 + 0x64); /* $s1 */
register s32 iVar3 __asm__("$18") = *(s32 *)(param_1 + 0x20); /* $s2 */ // !FAKE: pin $18 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2 = *(s32 *)(param_1 + 0x64); /* $s1 */
MatEntry *p = &D_8018BE30[*(s16 *)(param_1 + 0x70)];
s32 sVar4;
s32 iVar1;
@@ -2300,8 +2300,8 @@ extern u8 D_8018BE20;
void func_8014477C(void *param_1) {
s32 v0;
s32 v1;
register s32 uVar2 __asm__("$2");
register s32 addr __asm__("$3");
s32 uVar2;
s32 addr;
s32 gv;
s32 fv;
@@ -2342,9 +2342,9 @@ extern u8 D_8018BE5C;
void func_80144880(s32 param_1)
{
register s32 obj __asm__("$16"); /* $s0 */
register s32 self __asm__("$17") = param_1; /* $s1 */
register s32 b __asm__("$2"); /* $v0 */
s32 obj; /* $s0 */
s32 self = param_1; /* $s1 */
s32 b; /* $v0 */
s32 e;
obj = ((s32 (*)(void))func_8012C194)();
+50 -51
View File
@@ -1643,8 +1643,8 @@ void func_8015D01C(int param_1) {
extern int D_8018CD34;
int iVar4;
register unsigned short uVar1 __asm__("$19");
register unsigned short uVar5 __asm__("$17");
unsigned short uVar1;
register unsigned short uVar5 __asm__("$17"); // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
short sVar2;
short sVar3;
@@ -1796,8 +1796,8 @@ extern s32 D_8018CDA0;
void func_8015D380(s32 a0) {
s16 out[4];
s32 buf[8];
register s32 s1 __asm__("$17") = a0;
register s32 *s0 __asm__("$16") = buf;
s32 s1 = a0;
s32 *s0 = buf;
((void (*)(void *))func_80013F3C)((void *)s0);
((void (*)(void *, s32))func_80012558)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x12));
((void (*)(void *, s32))func_800126C4)((void *)s0, *(s16 *)(*(s32 *)(s1 + 0x20) + 0x10));
@@ -1948,7 +1948,7 @@ void func_8015D738(void *arg0) {
if (s1 != 0) {
if (*(u16 *)s1 == 0x360) goto block_808;
}
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
if (s1 != 0) {
if (*(u16 *)s1 != 0) goto block_7F4;
}
@@ -2803,7 +2803,7 @@ void func_8015FBE0(s32 *param_1)
((void (*)(s32 *, s16))func_80147078)(param_1, 0);
((void (*)(s32 *))func_80159B70)(param_1);
} else {
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
D_80078EC1 = 0;
((void (*)(s32 *, s32))func_80154150)(param_1, 0x20);
((void (*)(s32 *, s32))func_80154A74)(param_1, 0x18);
@@ -3611,7 +3611,7 @@ void func_80161E08(s32 param_1) {
((a2 = func_800291DC(8)) & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65A8)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EE620[0] = p;
func_80024054(&D_8018CFDC, &D_801EE62C);
func_8001CE28(p, &D_801EE62C);
@@ -3622,7 +3622,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C10 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x65E0)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EE620[1] = p;
func_80024054(&D_8018CFFC, &D_801EE654);
func_8001CE28(p, &D_801EE654);
@@ -3633,7 +3633,7 @@ void func_80161E08(s32 param_1) {
}
if (D_800B5C48 == 0) {
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618));
__asm__("move %0,%1" : "=r"(p) : "r"(base + 0x6618)); // !FAKE: instruction move — NEEDED DIFFERS (P36 rung B tus2)
D_801EE620[2] = p;
func_800242D0((s16)func_801620C4(), &D_801EE66C, 0x84);
func_8001CE68(p, &D_801EE66C);
@@ -3689,9 +3689,9 @@ extern u8 D_80078EB1;
extern s32 D_8018D010;
s32 func_801621CC(s32 arg0) {
register s32 s0 __asm__("$16") = arg0; /* $s0: arg0, crosses the call */
register u8 *s1 __asm__("$17") = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */
s32 s0 = arg0; /* $s0: arg0, crosses the call */
u8 *s1 = D_80078E78; /* $s1: base, hoisted for the loop */
register s32 i __asm__("$5"); /* $a1: counter (pin fixes the i/d swap) */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
u32 a2;
s32 d; /* $a0: natural alloc; load via $v0 temp */
s32 v, last, hi, lo;
@@ -3827,14 +3827,14 @@ s32 func_80162438(s32 _unused0) {
extern s16 D_800B5C74;
u32 uVar2;
register u8 *base __asm__("$18");
register u8 *item __asm__("$17");
u8 *base;
u8 *item;
base = &(*(u8 *)&D_800AF630);
uVar2 = func_800291DC(0x12);
if ((uVar2 & 0x8000) != 0) {
if (D_800B5BD8 == 0) {
register u8 *t __asm__("$2") = base + 0x65A8;
register u8 *t __asm__("$2") = base + 0x65A8; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EE678[0] = (s32)item;
func_80024054(D_8018D040, D_801EE684);
@@ -3845,7 +3845,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5BE2 = -D_800AF7BE / 2 + 0x28;
}
if (D_800B5C10 == 0) {
register u8 *t __asm__("$2") = base + 0x65E0;
register u8 *t __asm__("$2") = base + 0x65E0; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EE678[1] = (s32)item;
func_80024054(((u8 *)&D_8018D058), D_801EE6AC);
@@ -3856,7 +3856,7 @@ s32 func_80162438(s32 _unused0) {
D_800B5C1A = -D_800AF7BE / 2 + 0x30;
}
if (D_800B5C48 == 0) {
register u8 *t __asm__("$2") = base + 0x6618;
register u8 *t __asm__("$2") = base + 0x6618; // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
item = t;
D_801EE678[2] = (s32)item;
func_800242D0((s16)func_801626B8(), D_801EE6C8, 0x84);
@@ -3931,10 +3931,10 @@ void func_801627E8(void)
extern s32 D_8011F750; /* canonical: engine_core.h `extern s32 D_8011F750;` (read here as a byte) */
extern void (*D_8018D078[])(void); /* word-stride table of dispatch fn pointers */
register u8 *p __asm__("$4") = (u8 *)&D_8011F750;
register u8 *p __asm__("$4") = (u8 *)&D_8011F750; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 idx;
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */
__asm__ __volatile__("" : "=r"(p) : "0"(p)); /* materialize &D_8011F750 into $a0 (defeat %lo-fold of the lbu) */ // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
idx = *p;
if (idx != 0) {
idx = idx - 1;
@@ -4114,7 +4114,7 @@ void func_80163EC8(s32 param_1) {
s32 psVar6;
s32 iVar8;
s32 iVar7;
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */
register s32 uVar5 __asm__("$2"); /* PIN (flagged): uVar5 -> $v0 */ // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
u16 uVar4;
u8 uVar3;
@@ -4380,9 +4380,9 @@ extern u8 D_801EE6DF;
void func_80164BDC(s32 param_1)
{
register s32 p1 __asm__("$17"); /* $s1 */
register s32 iVar1 __asm__("$16"); /* $s0 */
register s32 base __asm__("$18"); /* $s2 */
register s32 p1 __asm__("$17"); /* $s1 */ // !FAKE: pin $17 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar1; /* $s0 */
s32 base; /* $s2 */
p1 = param_1;
iVar1 = ((s32 (*)(void))func_80146578)();
@@ -4528,9 +4528,9 @@ extern s32 D_801EE718;
void func_801651B8(void * param_1)
{
register s32 *puVar1 __asm__("$16"); /* $s0 */
register s32 iVar2 __asm__("$17"); /* $s1 */
register s32 p __asm__("$18"); /* $s2 */
register s32 *puVar1 __asm__("$16"); /* $s0 */ // !FAKE: pin $16 — NEEDED DIFFERS (P36 rung B tus2)
s32 iVar2; /* $s1 */
s32 p; /* $s2 */
p = param_1;
((s32 (*)(s32, s32, s32))func_80165240)(p, p + 0x2c, p + 0x50);
@@ -4539,7 +4539,7 @@ void func_801651B8(void * param_1)
do {
if (puVar1[3] != 0) {
s32 a0v = p;
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v));
__asm__ __volatile__("" : "=r"(a0v) : "0"(a0v)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
((s32 (*)(s32, s32, s32))func_80165240)(a0v, (s32)puVar1, (s32)(puVar1 + 2));
puVar1[3] = puVar1[3] + -1;
}
@@ -4870,7 +4870,7 @@ s32 func_80166690(s32 param_1, s32 param_2)
unsigned int w9, w7, w, t, w3b;
int w3;
short sVar10;
register unsigned int zr __asm__("$0");
register unsigned int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
blk = D_800AE620;
i6 = (short)param_1;
@@ -4956,7 +4956,6 @@ s32 func_80166690(s32 param_1, s32 param_2)
c.c32 = t; c.c22 = t; c.c31 = t; c.c21 = t;
}
__asm__ __volatile__("" :: "r"(iVar3));
func_80017758(&c, &blk);
w3b = iVar3 - 1;
iVar3 = w3b + zr;
@@ -5110,18 +5109,18 @@ s32 func_80166F58(s32 param_1, s32 param_2, s32 param_3, s32 param_4)
extern s32 D_8011D030;
extern unsigned char D_801EE798[];
register int p2 __asm__("$20"); /* $s4 */
register int p3 __asm__("$17"); /* $s1 */
register int t2 __asm__("$5"); /* a1 */
register int t3 __asm__("$6"); /* a2 */
register int p2 __asm__("$20"); /* $s4 */ // !FAKE: pin $20 — NEEDED DIFFERS (P36 rung B tus2)
int p3; /* $s1 */
register int t2 __asm__("$5"); /* a1 */ // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
int t3; /* a2 */
unsigned short *puVar1;
short iVar2;
int eq;
iVar2 = 0;
puVar1 = ((unsigned short *)&D_8011D030);
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2);
t3 = ((short)param_3); SHB(t3); p3 = t3;
t2 = ((short)param_2); SHB(t2); p2 = t2; SHB(p2); // !FAKE: launder via SHB — NEEDED DIFFERS; launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
t3 = ((short)param_3); SHB(t3); p3 = t3; // !FAKE: launder via SHB — NEEDED DIFFERS (P36 rung B tus2)
eq = (p2 == p3);
do {
if ((puVar1 != ((unsigned short *)param_1)) &&
@@ -5170,17 +5169,17 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
extern s32 D_801269AC;
extern u16 D_80126CE0;
Fr_801670E4 f;
register u8 *p __asm__("$18"); /* $s2 */
register s32 ent __asm__("$19"); /* $s3 */
u8 *p; /* $s2 */
s32 ent; /* $s3 */
s16 i;
s32 d;
s32 node;
u16 c;
u8 cv;
u8 cv2;
register s32 gA __asm__("$2");
register s32 cxv __asm__("$4");
register s32 czv __asm__("$5");
register s32 gA __asm__("$2"); // !FAKE: pin $2 — NEEDED DIFFERS (P36 rung B tus2)
register s32 cxv __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 czv;
u8 *vc;
u8 *ap;
u8 *mp;
@@ -5198,12 +5197,12 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
f.col[1].b = 0x70;
cv = *(u8 *)(ent + 0x12);
f.cx = arg1;
__asm__ __volatile__("");
__asm__ __volatile__(""); // !FAKE: barrier — NEEDED DIFFERS (P36 rung B tus2)
va = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(va) : "0"(va));
__asm__ __volatile__("" : "=r"(va) : "0"(va)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
f.cy = arg2;
vb = va;
__asm__ __volatile__("" : "=r"(vb) : "0"(vb));
__asm__ __volatile__("" : "=r"(vb) : "0"(vb)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_8018D3D8;
i = 0;
f.col[0].b = 0;
@@ -5273,10 +5272,10 @@ s32 func_801670E4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
if (*(s32 *)(ent + 0x30) > 0) {
vc = (u8 *)&f.cx;
__asm__ __volatile__("" : "=r"(vc) : "0"(vc));
__asm__ __volatile__("" : "=r"(vc) : "0"(vc)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
mp = f.m1;
ap = mp;
__asm__ __volatile__("" : "=r"(ap) : "0"(ap));
__asm__ __volatile__("" : "=r"(ap) : "0"(ap)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
p = D_8018D3EC;
i = 0;
d = (s16)f.a8[0] >> 6;
@@ -5370,8 +5369,8 @@ s32 func_80167AE0(s32 param_1, s32 param_2, s32 param_3) {
struct Fr_80167AE0 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
func_80168070(param_1, ((s16 *)param_2), ((s16 *)param_3), fr.matrix);
@@ -5650,7 +5649,7 @@ void func_80168828()
extern u16 D_8018D4B8[];
register s32 a0v __asm__("$4");
register s32 a0v __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 param_1 = a0v;
Thing_80168828_80168828 thing;
s16 matA[16];
@@ -5658,7 +5657,7 @@ void func_80168828()
s16 svec[4];
u16 *p;
short i;
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */
register s32 c40 __asm__("$3"); /* $v1: hold the CSE'd 0x40 (else gcc folds to $v0 immediate) */ // !FAKE: pin $3 — NEEDED DIFFERS (P36 rung B tus2)
c40 = 0x40;
thing.f04 = 2;
@@ -5963,8 +5962,8 @@ void func_8016A290(s32 param_1, void *param_2, void *param_3) {
struct Fr_8016A290 fr;
u8 *p;
s32 i;
register s32 t __asm__("$2");
register s32 zr __asm__("$0");
s32 t;
register s32 zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
s32 flags;
s32 iVar3;
+15 -15
View File
@@ -2528,7 +2528,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u16 *pA = (*(u16 * *)&D_8018005C);
u16 *pB = (*(u16 * *)&D_80180058);
u16 *pC = (*(u16 * *)&D_80180064);
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 X, Y, cell, Xc, Yc;
u16 k, off;
int cnt;
@@ -2536,7 +2536,7 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
u8 *s0;
u16 raw;
u32 hib;
register int harg __asm__("$4");
register int harg __asm__("$4"); // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
s32 ret;
void *p0C, *p10;
u8 *p14, *p18, *p1C;
@@ -2547,11 +2547,11 @@ s32 func_80133AB0(s16 flag, s16 x, s16 y, s32 arg3)
pC[2] = pA[2] - pB[2];
X = ((((u16)x + 0x8000) >> 7) & 0x1ff) - map->ox;
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X));
__asm__("addu %0,%1,$zero" : "=r"(Xc) : "r"(X)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((X & 0xffff) < map->w))
return 0;
Y = ((((u16)y + 0x8000) >> 7) & 0x1ff) - map->oy;
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y));
__asm__("addu %0,%1,$zero" : "=r"(Yc) : "r"(Y)); // !FAKE: instruction addu — NEEDED DIFFERS (P36 rung B tus2)
if (!((Y & 0xffff) < map->h))
return 0;
@@ -2700,7 +2700,7 @@ s32 func_80133CD4(arg0, cmd, base, arr)
s32 h;
h = ((s16 *)pb0)[0];
s1var = h << 16;
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory");
__asm__("lh %0, 2(%2)" : "=r"(h) : "0"(h), "r"(pb0) : "memory"); // !FAKE: instruction lh — NEEDED DIFFERS (P36 rung B tus2)
s0var = h << 16;
}
pb0[2] += q3v;
@@ -2884,10 +2884,10 @@ s32 func_801345F8(s32 arg)
extern u16 * D_80180058;
extern u16 D_80191A20;
register u16 *param_1 __asm__("$5") = ((u16 *)arg);
register u16 *cc __asm__("$4") = D_80180058;
register u16 *param_1 __asm__("$5") = ((u16 *)arg); // !FAKE: pin $5 — NEEDED DIFFERS (P36 rung B tus2)
register u16 *cc __asm__("$4") = D_80180058; // !FAKE: pin $4 — NEEDED DIFFERS (P36 rung B tus2)
int c8000 = 0x8000;
register int zr __asm__("$0");
register int zr __asm__("$0"); // !FAKE: pin $0 — NEEDED DIFFERS (P36 rung B tus2)
u32 c1, c2, uVar6, uVar2, cnt, v14;
u16 *ptmp, *puVar4, *puVar7, uVar1;
int hi, harg, iVar9, iVar8, uVar3, uVar10, tbl;
@@ -3078,8 +3078,8 @@ s32 func_80134C20(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
u16 temp_a1;
s32 temp_s4;
s32 c = arg0;
__asm__ __volatile__("" : "=r"(c) : "0"(c));
__asm__ __volatile__("" : : "r"(arg0));
__asm__ __volatile__("" : "=r"(c) : "0"(c)); // !FAKE: launder — NEEDED DIFFERS (P36 rung B tus2)
__asm__ __volatile__("" : : "r"(arg0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
temp_s4 = arg2 + (M2C_FIELD(((void *)arg1), s16 *, 2) * 8);
temp_s1 = *(s32 *)(arg3 + (M2C_FIELD(((void *)arg1), s16 *, 4) * 4));
@@ -3230,22 +3230,22 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
extern u8 D_80180058;
extern u8 D_8018005C;
extern u8 D_80180064;
register s16 *pb0 __asm__("$8");
register s16 *pac __asm__("$6");
register s16 *pb8 __asm__("$7");
register s16 *pb0 __asm__("$8"); // !FAKE: pin $8 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pac __asm__("$6"); // !FAKE: pin $6 — NEEDED DIFFERS (P36 rung B tus2)
register s16 *pb8 __asm__("$7"); // !FAKE: pin $7 — NEEDED DIFFERS (P36 rung B tus2)
u16 *pb4;
u16 a, b;
int a1v, a2v, d94;
pb0 = (*(s16 * *)&D_8018005C);
__asm__ __volatile__("" : : "r"(pb0));
__asm__ __volatile__("" : : "r"(pb0)); // !FAKE: keepalive — NEEDED DIFFERS (P36 rung B tus2)
a = p2[0]; pac = (*(s16 * *)&D_80180058); pb0[0] = a; b = p1[0]; pb8 = (*(s16 * *)&D_80180064); pac[0] = b; pb8[0] = a - b;
a = p2[1]; pb0[1] = a; b = p1[1]; pac[1] = b; pb8[1] = a - b;
a = p2[2]; pb0[2] = a; b = p1[2]; pac[2] = b; pb8[2] = a - b;
a1v = pac[0]; a2v = pac[2]; d94 = D_80191A10;
__asm__ __volatile__("" ::: "memory");
__asm__ __volatile__("" ::: "memory"); // !FAKE: barrier memory — NEEDED DIFFERS (P36 rung B tus2)
D_80191A20 = 0;
if (func_80134A74(arg0, a1v, a2v, d94)) {
pb4 = (*(u16 * *)&D_80180060);

Some files were not shown because too many files have changed in this diff Show More