feat(phase-29): ov_SC06_018 crack-wave — func_801365B8 x138 (fresh-exemplar sweep CONFIRMED), thesis is family-specific

- binary-aware crack wave (new tools/workflows/wave_binary.js): 8-target calibration
  over ov_SC06_018 substantial stubs, 7/8 match_one MATCH
- func_801365B8 (155, reach 133): cracked FRESH in ov_SC06_018, swept 132/132 siblings
  via family_sweep --hseq --source ov_SC06_018 --allow-pins -- SESSION-10 refused this
  family 0/133 from an ov077 exemplar. THESIS CONFIRMED (fresh exemplar unlocks it).
- func_80133AB0 (137, reach 137): cracked fresh + banked x1 (+ a byte-neutral s17a-1
  cast reconcile of banked caller func_801343C4), but the family sweep FAILED 0/136 even
  from the fresh exemplar (reverted clean) -- THESIS REFUTED for this family.
- FINDING (R14/R31 -> decision-log): the fresh-exemplar sweep is FAMILY-SPECIFIC, not a
  blanket mechanical x137. A fresh crack is necessary but not sufficient; the byte-gate
  arbitrates each family (~50% on this 2-family sample -> discount the ~1.5pp estimate).
- tooling (R33): family_sweep --source override now searches matched_members (a fresh
  member leaves 'members' after a sig-regen); cdecl._depth0_spans consumes backslash
  line-continuations so a raw-draft #define macro no longer trips audit-cdecl.
- R22 clean-fleet 140/140 byte-identical; tools-health green (dedup 1849/0, C1 234615);
  0 NON_MATCHING. fleet 78.4->78.5% instr / 67.1->67.5% distinct / 88.14->88.18% fn-count.
This commit is contained in:
Drew T
2026-07-22 18:12:09 -06:00
parent d53a33eb06
commit f142a6858f
143 changed files with 14010 additions and 1633 deletions
+1
View File
@@ -6707,3 +6707,4 @@
{"ts": "2026-07-22 14:07:44", "addr": null, "name": "func_801365B8", "reach": null, "klass": "schedule", "nins": null, "status": "failed", "closeness": null, "where_stuck": "none \u2014 MATCH (155/155). Two levers: (1) the three D_8012672x tail globals MUST be", "best_draft": ".run/backlog_drafts/func_801365B8.c", "binary": "ov_SC06_018", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-22 14:08:23", "addr": null, "name": "func_80165CA0", "reach": null, "klass": "regalloc-order", "nins": null, "status": "near", "closeness": 0, "where_stuck": "none \u2014 MATCH (99 ins, match_one masked)", "best_draft": ".run/backlog_drafts/func_80165CA0.c", "binary": "ov_SC06_018", "source": "worker", "residual": null, "passes_tried": null}
{"ts": "2026-07-22 14:09:43", "addr": null, "name": "func_80191C50", "reach": null, "klass": "schedule", "nins": null, "status": "near", "closeness": 9, "where_stuck": "close=9 \u2014 only the case-7 sp20[] setup window (0x80192380..0x801923A4): gcc's list scheduler picks the D_80126B62 lui 2nd (its extra `addiu -0x38` gives that chain +1 priority) where the target picks D_80126B66 2nd (LUID/program order); everything else (710/710 ins, frame 0x40, $s0/$s1, jtbl, 3 entity loops, 8 sync blocks, cross-jumped L4AC tail) is byte-identical.", "best_draft": ".run/backlog_drafts/func_80191C50.c", "binary": "ov_SC06_018", "source": "worker", "residual": [[460, "3c030000 lui\tv1,0x0", "3c028012 lui $v0, %hi(D_80126B5E)"], [461, "94630000 lhu\tv1,0(v1)", "94426b5e lhu $v0, %lo(D_80126B5E)($v0)"], [462, "3c020000 lui\tv0,0x0", "3c038012 lui $v1, %hi(D_80126B66)"], [463, "94420000 lhu\tv0,0(v0)", "94636b66 lhu $v1, %lo(D_80126B66)($v1)"], [464, "3c040000 lui\ta0,0x0", "a7a20020 sh $v0, 0x20($sp)"], [465, "94840000 lhu\ta0,0(a0)", "3c028012 lui $v0, %hi(D_80126B62)"], [466, "2442ffc8 addiu\tv0,v0,-56", "94426b62 lhu $v0, %lo(D_80126B62)($v0)"], [467, "a7a30020 sh\tv1,32(sp)", "a7a30024 sh $v1, 0x24($sp)"], [468, "a7a40024 sh\ta0,36(sp)", "2442ffc8 addiu $v0, $v0, -0x38"]], "passes_tried": null}
{"ts": "2026-07-22 17:25:00", "addr": null, "name": "func_80133AB0", "reach": null, "klass": "plumbing", "nins": null, "status": "near", "closeness": 0, "where_stuck": "none \u2014 MATCH (per-location family member; ov_SC01_077 sibling adapted with this overlay's D_* symbols)", "best_draft": ".run/backlog_drafts/func_80133AB0.c", "binary": "ov_SC06_018", "source": "worker", "residual": null, "passes_tried": null}
+1351 -1351
View File
File diff suppressed because it is too large Load Diff
+43
View File
@@ -1523,3 +1523,46 @@ a null oracle for "was the right question asked". Concretely: a gate must ASSERT
against belongs to the binary it just built (R32-style — assert the premise, not just the result). That
assertion would have failed loudly on the first non-077 CLI run in June. This is the fourth wall in one
session, and the fifth this phase, to resolve to our own tooling rather than gcc-2.7.2.
---
## 2026-07-22 (Phase 29, SESSION-11) — the fresh-exemplar sweep is FAMILY-SPECIFIC, not a blanket mechanical ×137
**Context + belief.** SESSION-10 closed on a strong claim: "sweeps only pay when they RIDE a fresh ×1 crack;
the discriminator is the exemplar's PROVENANCE — every success templated from a core freshly banked ×1 today,
every refusal from an ov_SC01_077 exemplar." The plan was to crack ov_SC06_018 exemplars fresh and sweep their
h_seq families (Task-5 measured ~1.59pp of fresh families for this one overlay).
**The experiment.** Two families SESSION-10 had swept 0/137 from an ov077 exemplar — `func_801365B8` (0/133)
and `func_80133AB0` (0/137) — were cracked FRESH in ov_SC06_018 (agent drafts, whole-binary byte-gated ×1),
then swept via `family_sweep --hseq --source ov_SC06_018 --allow-pins` from the fresh exemplar.
**The result (byte-gated, R22 140/140).** SPLIT: `func_801365B8` → **132/132 siblings banked** (thesis
confirmed — a fresh non-ov077 exemplar unlocked the whole family ov077 could not). `func_80133AB0` → **0/136,
reverted clean** (thesis refuted for this family — the members diverge in more than reloc symbols; no fresh
exemplar remaps into them).
**The refined finding.** A fresh ×1 crack is **necessary but not sufficient**. The fresh-exemplar sweep is
**family-specific** — the whole-binary byte-gate arbitrates each family, and on this 2-family thesis sample
the sweep rate was ~50%. The SESSION-10 provenance claim holds DIRECTIONALLY (func_801365B8 swept where ov077
refused) but overstated it as a mechanical ×137. **Consequence:** the ~1.5pp "fresh families" campaign
estimate must be discounted — cracking generates sweep fuel for SOME families, not all, and only the gate
says which. The honest yield model is (families that crack) × (per-family sweep probability), not
(families) × (reach).
**Why the difference (hypothesis, not yet exhaustively byte-proven).** func_801365B8's members differ only in
per-overlay reloc symbols over a uniform pinned regalloc → the fresh pinned exemplar templates cleanly.
func_80133AB0's members carry per-location immediate/codegen divergence the single exemplar does not share.
**Tooling caught in the act (R33 — fix the instrument).** The `family_sweep --source` override only searched
`members`, but a freshly-banked source member moves to `matched_members` after a sig-regen, so the override
silently missed it and would have templated from ov077 (a false refutation). Fixed to search both lists —
without it the thesis test would have "confirmed" SESSION-10's refusal for the wrong reason. Second fix:
`cdecl._depth0_spans` now consumes `\`-continuations, so a raw-draft `#define` macro no longer trips
audit-cdecl (the committed, cpp-expanded source was never affected — the gate was reading scratch).
**Hindsight better-path.** Test the sweep-from-fresh mechanism on ONE family before scoping a 95-target
campaign around it. The calibration cost ~1 wave and delivered a load-bearing correction to the yield model —
exactly the probe-before-scaling discipline (Phase-15/R35). Carry it forward: every fresh core crack this
phase must be followed by a gate-arbitrated sweep attempt, and the sweep's 0/N is data (per-member wall),
not a tooling artifact — provided the tools (`--source`, cdecl) are themselves verified first.
+5 -5
View File
@@ -2,11 +2,11 @@
> Generated by `tools/family_hseq.py` from the 134 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
**Fleet (overlays):** 88.4% fn / 78.7% instr / 67.9% distinct-code matched. Unmatched: 40,898 instances / 2,780,867 ins (22,812 distinct classes).
**Fleet (overlays):** 88.4% fn / 78.7% instr / 67.9% distinct-code matched. Unmatched: 40,896 instances / 2,780,575 ins (22,810 distinct classes).
**Tail cross-check (Phase-25 close):** 27,621 tail fns / 1,106,172 ins → 577 h_seq families ≥2, **161 substantial (nins≥80) / 619,509 ins**.
**Full frontier (all unmatched by h_seq):** 2731 target families (≥2 members or a matched sibling) + 3780 singletons (Step-D residue). Substantial: **568 families / 1,486,476 templatable ins**, 70 with a matched sibling (zero-crack). Substantial member classes: 9,388 PURE · 40 IMM · 6 STRUCT-excluded.
**Full frontier (all unmatched by h_seq):** 2731 target families (≥2 members or a matched sibling) + 3780 singletons (Step-D residue). Substantial: **568 families / 1,486,184 templatable ins**, 70 with a matched sibling (zero-crack). Substantial member classes: 9,386 PURE · 40 IMM · 6 STRUCT-excluded.
## Top substantial families (by templatable byte-weight)
@@ -30,10 +30,10 @@
| 15 | 165 | 138 (138/0/0) | 1/138 | per-location | PURE | 0 | · | 0x80178004 draft-ov077 | 22,770 |
| 16 | 154 | 137 (137/0/0) | 1/137 | per-location | PURE | 1 | Y | 0x8013c0f8 matched-ov077 | 21,098 |
| 17 | 154 | 136 (136/0/0) | 1/136 | per-location | PURE | 2 | · | 0x80144090 matched-ov077 | 20,944 |
| 18 | 155 | 133 (133/0/0) | 1/133 | per-location | PURE | 5 | · | 0x801365b8 matched-ov077 | 20,615 |
| 18 | 155 | 132 (132/0/0) | 1/132 | per-location | PURE | 6 | · | 0x801365b8 matched-ov077 | 20,460 |
| 19 | 147 | 138 (138/0/0) | 1/138 | per-location | PURE | 0 | · | 0x80177b5c draft-ov077 | 20,286 |
| 20 | 137 | 137 (137/0/0) | 1/137 | per-location | PURE | 1 | · | 0x80133ab0 matched-ov077 | 18,769 |
| 21 | 136 | 138 (138/0/0) | 1/138 | per-location | PURE | 0 | Y | 0x80135260 draft-ov077 | 18,768 |
| 20 | 136 | 138 (138/0/0) | 1/138 | per-location | PURE | 0 | Y | 0x80135260 draft-ov077 | 18,768 |
| 21 | 137 | 136 (136/0/0) | 1/136 | per-location | PURE | 2 | · | 0x80133ab0 matched-ov077 | 18,632 |
| 22 | 125 | 138 (138/0/0) | 1/138 | per-location | PURE | 0 | Y | 0x8012aaac draft-ov077 | 17,250 |
| 23 | 123 | 138 (138/0/0) | 1/138 | per-location | PURE | 0 | · | 0x80174cb0 draft-ov077 | 16,974 |
| 24 | 3338 | 5 (5/0/0) | 3/5 | cross-address | PURE | 0 | · | 0x8017d960 modal | 16,690 |
+139 -139
View File
@@ -4,157 +4,157 @@
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 311769 / 353722 = 88.14% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 10299493 / 13141652 = 78.4% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 3782990 / 5634875 = 67.1% (64633/87459 unique fns; the DISTINCT-RE number)
FLEET fn-count byte-ident: 311903 / 353722 = 88.18% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 10320245 / 13141652 = 78.5% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 3802502 / 5634875 = 67.5% (64759/87459 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 436 / 60201 = 0.7% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-06-14; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 10299057 / 13081451 = 78.7%)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 10319809 / 13081451 = 78.9%)
FLEET REAL substantive : 309914 (of which dedup-shared 234571 via 1849 groups / 234615 instances)
FLEET REAL substantive : 310048 (of which dedup-shared 234571 via 1849 groups / 234615 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 41946
FLEET INCLUDE_ASM stubs : 41812
FLEET matchable : 353722
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|---|---:|---:|---:|---:|---:|---:|
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
| resident | 129 | 0 | 0 | 131 | 145 | 90.3% |
| ov_SC01_000 | 2225 | 1707 | 0 | 2225 | 2403 | 92.6% |
| ov_SC01_001 | 2225 | 1707 | 0 | 2227 | 2466 | 90.3% |
| ov_SC01_004 | 2217 | 1698 | 0 | 2218 | 2414 | 91.9% |
| ov_SC01_005 | 2246 | 1720 | 0 | 2246 | 2503 | 89.7% |
| ov_SC01_006 | 2246 | 1720 | 0 | 2246 | 2503 | 89.7% |
| ov_SC01_008 | 2217 | 1698 | 0 | 2219 | 2426 | 91.5% |
| ov_SC01_009 | 2242 | 1699 | 0 | 2243 | 2507 | 89.5% |
| ov_SC01_074 | 2220 | 1699 | 0 | 2222 | 2425 | 91.6% |
| ov_SC01_000 | 2226 | 1707 | 0 | 2226 | 2403 | 92.6% |
| ov_SC01_001 | 2226 | 1707 | 0 | 2228 | 2466 | 90.3% |
| ov_SC01_004 | 2218 | 1698 | 0 | 2219 | 2414 | 91.9% |
| ov_SC01_005 | 2247 | 1720 | 0 | 2247 | 2503 | 89.8% |
| ov_SC01_006 | 2247 | 1720 | 0 | 2247 | 2503 | 89.8% |
| ov_SC01_008 | 2218 | 1698 | 0 | 2220 | 2426 | 91.5% |
| ov_SC01_009 | 2243 | 1699 | 0 | 2244 | 2507 | 89.5% |
| ov_SC01_074 | 2221 | 1699 | 0 | 2223 | 2425 | 91.7% |
| ov_SC01_077 | 2411 | 1667 | 0 | 2413 | 2585 | 93.3% |
| ov_SC01_080 | 2259 | 1702 | 0 | 2259 | 2512 | 89.9% |
| ov_SC01_084 | 2266 | 1702 | 0 | 2271 | 2579 | 88.1% |
| ov_SC02_000 | 2319 | 1737 | 0 | 2319 | 2683 | 86.4% |
| ov_SC02_003 | 2319 | 1737 | 0 | 2319 | 2683 | 86.4% |
| ov_SC02_004 | 2225 | 1702 | 0 | 2225 | 2401 | 92.7% |
| ov_SC02_005 | 2332 | 1698 | 0 | 2342 | 2927 | 80.0% |
| ov_SC02_011 | 2343 | 1705 | 0 | 2354 | 2893 | 81.4% |
| ov_SC02_015 | 2226 | 1704 | 0 | 2226 | 2414 | 92.2% |
| ov_SC02_016 | 2257 | 1704 | 0 | 2260 | 2545 | 88.8% |
| ov_SC02_017 | 2303 | 1704 | 0 | 2311 | 2732 | 84.6% |
| ov_SC02_021 | 2232 | 1704 | 0 | 2232 | 2437 | 91.6% |
| ov_SC02_026 | 2247 | 1702 | 0 | 2253 | 2572 | 87.6% |
| ov_SC02_027 | 2270 | 1702 | 0 | 2279 | 2692 | 84.7% |
| ov_SC02_028 | 2271 | 1702 | 0 | 2281 | 2701 | 84.5% |
| ov_SC02_031 | 2257 | 1703 | 0 | 2262 | 2562 | 88.3% |
| ov_SC02_035 | 2233 | 1702 | 0 | 2236 | 2520 | 88.7% |
| ov_SC02_039 | 2218 | 1702 | 0 | 2218 | 2416 | 91.8% |
| ov_SC02_041 | 2253 | 1702 | 0 | 2256 | 2561 | 88.1% |
| ov_SC03_001 | 2354 | 1703 | 0 | 2371 | 2869 | 82.6% |
| ov_SC03_002 | 2280 | 1707 | 0 | 2295 | 2631 | 87.2% |
| ov_SC03_003 | 2228 | 1702 | 0 | 2229 | 2423 | 92.0% |
| ov_SC03_006 | 2293 | 1708 | 0 | 2302 | 2767 | 83.2% |
| ov_SC03_007 | 2273 | 1702 | 0 | 2277 | 2623 | 86.8% |
| ov_SC03_010 | 2234 | 1702 | 0 | 2234 | 2470 | 90.4% |
| ov_SC03_011 | 2242 | 1702 | 0 | 2248 | 2527 | 89.0% |
| ov_SC03_012 | 2220 | 1702 | 0 | 2221 | 2406 | 92.3% |
| ov_SC03_013 | 2239 | 1702 | 0 | 2239 | 2492 | 89.8% |
| ov_SC03_014 | 2298 | 1727 | 0 | 2298 | 2685 | 85.6% |
| ov_SC03_015 | 2298 | 1727 | 0 | 2298 | 2685 | 85.6% |
| ov_SC03_023 | 2226 | 1702 | 0 | 2227 | 2435 | 91.5% |
| ov_SC03_024 | 2285 | 1707 | 0 | 2292 | 2641 | 86.8% |
| ov_SC03_028 | 2266 | 1702 | 0 | 2270 | 2664 | 85.2% |
| ov_SC03_029 | 2268 | 1704 | 0 | 2278 | 2644 | 86.2% |
| ov_SC03_030 | 2241 | 1707 | 0 | 2243 | 2495 | 89.9% |
| ov_SC03_031 | 2238 | 1702 | 0 | 2241 | 2514 | 89.1% |
| ov_SC03_089 | 2252 | 1702 | 0 | 2259 | 2581 | 87.5% |
| ov_SC03_090 | 2254 | 1702 | 0 | 2262 | 2625 | 86.2% |
| ov_SC03_091 | 2257 | 1702 | 0 | 2265 | 2640 | 85.8% |
| ov_SC03_092 | 2268 | 1702 | 0 | 2280 | 2587 | 88.1% |
| ov_SC03_093 | 2244 | 1702 | 0 | 2248 | 2563 | 87.7% |
| ov_SC03_094 | 2239 | 1702 | 0 | 2245 | 2577 | 87.1% |
| ov_SC03_095 | 2229 | 1702 | 0 | 2232 | 2474 | 90.2% |
| ov_SC03_096 | 2229 | 1702 | 0 | 2232 | 2465 | 90.5% |
| ov_SC03_097 | 2258 | 1702 | 0 | 2265 | 2603 | 87.0% |
| ov_SC03_098 | 2237 | 1702 | 0 | 2240 | 2541 | 88.2% |
| ov_SC03_099 | 2230 | 1702 | 0 | 2233 | 2504 | 89.2% |
| ov_SC03_100 | 2240 | 1702 | 0 | 2244 | 2539 | 88.4% |
| ov_SC03_101 | 2240 | 1702 | 0 | 2244 | 2528 | 88.8% |
| ov_SC03_102 | 2232 | 1702 | 0 | 2235 | 2492 | 89.7% |
| ov_SC03_103 | 2235 | 1704 | 0 | 2238 | 2510 | 89.2% |
| ov_SC03_104 | 2260 | 1702 | 0 | 2267 | 2616 | 86.7% |
| ov_SC03_105 | 2254 | 1702 | 0 | 2261 | 2597 | 87.1% |
| ov_SC03_108 | 2222 | 1702 | 0 | 2222 | 2443 | 91.0% |
| ov_SC03_109 | 2223 | 1702 | 0 | 2225 | 2424 | 91.8% |
| ov_SC03_110 | 2228 | 1702 | 0 | 2228 | 2468 | 90.3% |
| ov_SC03_111 | 2240 | 1702 | 0 | 2243 | 2510 | 89.4% |
| ov_SC03_112 | 2233 | 1704 | 0 | 2235 | 2526 | 88.5% |
| ov_SC03_113 | 2226 | 1704 | 0 | 2229 | 2468 | 90.3% |
| ov_SC03_114 | 2216 | 1702 | 0 | 2218 | 2415 | 91.8% |
| ov_SC03_115 | 2233 | 1702 | 0 | 2235 | 2472 | 90.4% |
| ov_SC03_116 | 2223 | 1702 | 0 | 2226 | 2438 | 91.3% |
| ov_SC03_117 | 2251 | 1702 | 0 | 2257 | 2557 | 88.3% |
| ov_SC03_118 | 2298 | 1726 | 0 | 2299 | 2685 | 85.6% |
| ov_SC03_119 | 2297 | 1726 | 0 | 2298 | 2685 | 85.6% |
| ov_SC03_121 | 2230 | 1702 | 0 | 2233 | 2459 | 90.8% |
| ov_SC03_124 | 2310 | 1698 | 0 | 2330 | 2741 | 85.0% |
| ov_SC03_125 | 2267 | 1702 | 0 | 2279 | 2588 | 88.1% |
| ov_SC03_126 | 2229 | 1704 | 0 | 2229 | 2423 | 92.0% |
| ov_SC04_000 | 2245 | 1706 | 0 | 2254 | 2546 | 88.5% |
| ov_SC04_002 | 2261 | 1702 | 0 | 2265 | 2636 | 85.9% |
| ov_SC04_003 | 2239 | 1702 | 0 | 2243 | 2502 | 89.6% |
| ov_SC04_004 | 2248 | 1702 | 0 | 2250 | 2558 | 88.0% |
| ov_SC04_005 | 2256 | 1702 | 0 | 2262 | 2612 | 86.6% |
| ov_SC04_006 | 2229 | 1702 | 0 | 2231 | 2454 | 90.9% |
| ov_SC04_007 | 2249 | 1702 | 0 | 2253 | 2569 | 87.7% |
| ov_SC04_008 | 2219 | 1702 | 0 | 2219 | 2415 | 91.9% |
| ov_SC04_009 | 2235 | 1702 | 0 | 2238 | 2441 | 91.7% |
| ov_SC04_010 | 2226 | 1702 | 0 | 2227 | 2419 | 92.1% |
| ov_SC04_011 | 2282 | 1702 | 0 | 2288 | 2803 | 81.6% |
| ov_SC04_012 | 2222 | 1702 | 0 | 2223 | 2420 | 91.9% |
| ov_SC04_015 | 2287 | 1703 | 0 | 2298 | 2611 | 88.0% |
| ov_SC04_016 | 2225 | 1702 | 0 | 2227 | 2440 | 91.3% |
| ov_SC04_018 | 2337 | 1737 | 0 | 2337 | 2857 | 81.8% |
| ov_SC04_019 | 2343 | 1737 | 0 | 2343 | 2857 | 82.0% |
| ov_SC04_020 | 2254 | 1702 | 0 | 2266 | 2567 | 88.3% |
| ov_SC04_021 | 2230 | 1704 | 0 | 2230 | 2423 | 92.0% |
| ov_SC05_000 | 2226 | 1706 | 0 | 2229 | 2422 | 92.0% |
| ov_SC05_001 | 2249 | 1702 | 0 | 2254 | 2574 | 87.6% |
| ov_SC05_002 | 2231 | 1702 | 0 | 2234 | 2442 | 91.5% |
| ov_SC05_003 | 2228 | 1702 | 0 | 2229 | 2481 | 89.8% |
| ov_SC05_004 | 2223 | 1702 | 0 | 2225 | 2464 | 90.3% |
| ov_SC05_005 | 2230 | 1702 | 0 | 2231 | 2491 | 89.6% |
| ov_SC05_006 | 2222 | 1702 | 0 | 2222 | 2430 | 91.4% |
| ov_SC05_007 | 2232 | 1702 | 0 | 2237 | 2482 | 90.1% |
| ov_SC05_008 | 2249 | 1702 | 0 | 2251 | 2543 | 88.5% |
| ov_SC05_009 | 2227 | 1702 | 0 | 2231 | 2438 | 91.5% |
| ov_SC05_010 | 2253 | 1702 | 0 | 2257 | 2588 | 87.2% |
| ov_SC05_011 | 2225 | 1702 | 0 | 2226 | 2409 | 92.4% |
| ov_SC05_017 | 2333 | 1699 | 0 | 2344 | 2842 | 82.5% |
| ov_SC05_018 | 2280 | 1702 | 0 | 2293 | 2673 | 85.8% |
| ov_SC05_019 | 2230 | 1704 | 0 | 2230 | 2423 | 92.0% |
| ov_SC06_000 | 2292 | 1711 | 0 | 2295 | 2691 | 85.3% |
| ov_SC06_006 | 2245 | 1702 | 0 | 2246 | 2511 | 89.4% |
| ov_SC06_008 | 2255 | 1704 | 0 | 2261 | 2542 | 88.9% |
| ov_SC06_010 | 2238 | 1702 | 0 | 2243 | 2517 | 89.1% |
| ov_SC06_011 | 2234 | 1702 | 0 | 2238 | 2468 | 90.7% |
| ov_SC06_013 | 2227 | 1702 | 0 | 2228 | 2425 | 91.9% |
| ov_SC06_014 | 2233 | 1702 | 0 | 2235 | 2453 | 91.1% |
| ov_SC06_015 | 2230 | 1702 | 0 | 2230 | 2421 | 92.1% |
| ov_SC06_016 | 2248 | 1702 | 0 | 2250 | 2549 | 88.3% |
| ov_SC06_018 | 2247 | 1705 | 0 | 2254 | 2665 | 84.6% |
| ov_SC06_020 | 2237 | 1704 | 0 | 2238 | 2518 | 88.9% |
| ov_SC06_022 | 2251 | 1702 | 0 | 2259 | 2642 | 85.5% |
| ov_SC06_024 | 2257 | 1702 | 0 | 2263 | 2667 | 84.9% |
| ov_SC06_025 | 2248 | 1702 | 0 | 2253 | 2572 | 87.6% |
| ov_SC06_027 | 2216 | 1702 | 0 | 2217 | 2408 | 92.1% |
| ov_SC06_029 | 2274 | 1702 | 0 | 2286 | 2662 | 85.9% |
| ov_SC06_030 | 2229 | 1702 | 0 | 2229 | 2456 | 90.8% |
| ov_SC06_032 | 2241 | 1703 | 0 | 2248 | 2658 | 84.6% |
| ov_SC06_033 | 2244 | 1703 | 0 | 2251 | 2631 | 85.6% |
| ov_SC07_000 | 2244 | 1706 | 0 | 2246 | 2521 | 89.1% |
| ov_SC07_001 | 2229 | 1702 | 0 | 2231 | 2454 | 90.9% |
| ov_SC07_002 | 2256 | 1702 | 0 | 2260 | 2579 | 87.6% |
| ov_SC01_080 | 2260 | 1702 | 0 | 2260 | 2512 | 90.0% |
| ov_SC01_084 | 2267 | 1702 | 0 | 2272 | 2579 | 88.1% |
| ov_SC02_000 | 2320 | 1737 | 0 | 2320 | 2683 | 86.5% |
| ov_SC02_003 | 2320 | 1737 | 0 | 2320 | 2683 | 86.5% |
| ov_SC02_004 | 2226 | 1702 | 0 | 2226 | 2401 | 92.7% |
| ov_SC02_005 | 2333 | 1698 | 0 | 2343 | 2927 | 80.0% |
| ov_SC02_011 | 2344 | 1705 | 0 | 2355 | 2893 | 81.4% |
| ov_SC02_015 | 2227 | 1704 | 0 | 2227 | 2414 | 92.3% |
| ov_SC02_016 | 2258 | 1704 | 0 | 2261 | 2545 | 88.8% |
| ov_SC02_017 | 2304 | 1704 | 0 | 2312 | 2732 | 84.6% |
| ov_SC02_021 | 2233 | 1704 | 0 | 2233 | 2437 | 91.6% |
| ov_SC02_026 | 2248 | 1702 | 0 | 2254 | 2572 | 87.6% |
| ov_SC02_027 | 2271 | 1702 | 0 | 2280 | 2692 | 84.7% |
| ov_SC02_028 | 2272 | 1702 | 0 | 2282 | 2701 | 84.5% |
| ov_SC02_031 | 2258 | 1703 | 0 | 2263 | 2562 | 88.3% |
| ov_SC02_035 | 2234 | 1702 | 0 | 2237 | 2520 | 88.8% |
| ov_SC02_039 | 2219 | 1702 | 0 | 2219 | 2416 | 91.8% |
| ov_SC02_041 | 2254 | 1702 | 0 | 2257 | 2561 | 88.1% |
| ov_SC03_001 | 2355 | 1703 | 0 | 2372 | 2869 | 82.7% |
| ov_SC03_002 | 2281 | 1707 | 0 | 2296 | 2631 | 87.3% |
| ov_SC03_003 | 2229 | 1702 | 0 | 2230 | 2423 | 92.0% |
| ov_SC03_006 | 2294 | 1708 | 0 | 2303 | 2767 | 83.2% |
| ov_SC03_007 | 2274 | 1702 | 0 | 2278 | 2623 | 86.8% |
| ov_SC03_010 | 2235 | 1702 | 0 | 2235 | 2470 | 90.5% |
| ov_SC03_011 | 2243 | 1702 | 0 | 2249 | 2527 | 89.0% |
| ov_SC03_012 | 2221 | 1702 | 0 | 2222 | 2406 | 92.4% |
| ov_SC03_013 | 2240 | 1702 | 0 | 2240 | 2492 | 89.9% |
| ov_SC03_014 | 2299 | 1727 | 0 | 2299 | 2685 | 85.6% |
| ov_SC03_015 | 2299 | 1727 | 0 | 2299 | 2685 | 85.6% |
| ov_SC03_023 | 2227 | 1702 | 0 | 2228 | 2435 | 91.5% |
| ov_SC03_024 | 2286 | 1707 | 0 | 2293 | 2641 | 86.8% |
| ov_SC03_028 | 2267 | 1702 | 0 | 2271 | 2664 | 85.2% |
| ov_SC03_029 | 2269 | 1704 | 0 | 2279 | 2644 | 86.2% |
| ov_SC03_030 | 2242 | 1707 | 0 | 2244 | 2495 | 89.9% |
| ov_SC03_031 | 2239 | 1702 | 0 | 2242 | 2514 | 89.2% |
| ov_SC03_089 | 2253 | 1702 | 0 | 2260 | 2581 | 87.6% |
| ov_SC03_090 | 2255 | 1702 | 0 | 2263 | 2625 | 86.2% |
| ov_SC03_091 | 2258 | 1702 | 0 | 2266 | 2640 | 85.8% |
| ov_SC03_092 | 2269 | 1702 | 0 | 2281 | 2587 | 88.2% |
| ov_SC03_093 | 2245 | 1702 | 0 | 2249 | 2563 | 87.7% |
| ov_SC03_094 | 2240 | 1702 | 0 | 2246 | 2577 | 87.2% |
| ov_SC03_095 | 2230 | 1702 | 0 | 2233 | 2474 | 90.3% |
| ov_SC03_096 | 2230 | 1702 | 0 | 2233 | 2465 | 90.6% |
| ov_SC03_097 | 2259 | 1702 | 0 | 2266 | 2603 | 87.1% |
| ov_SC03_098 | 2238 | 1702 | 0 | 2241 | 2541 | 88.2% |
| ov_SC03_099 | 2231 | 1702 | 0 | 2234 | 2504 | 89.2% |
| ov_SC03_100 | 2241 | 1702 | 0 | 2245 | 2539 | 88.4% |
| ov_SC03_101 | 2241 | 1702 | 0 | 2245 | 2528 | 88.8% |
| ov_SC03_102 | 2233 | 1702 | 0 | 2236 | 2492 | 89.7% |
| ov_SC03_103 | 2236 | 1704 | 0 | 2239 | 2510 | 89.2% |
| ov_SC03_104 | 2261 | 1702 | 0 | 2268 | 2616 | 86.7% |
| ov_SC03_105 | 2255 | 1702 | 0 | 2262 | 2597 | 87.1% |
| ov_SC03_108 | 2223 | 1702 | 0 | 2223 | 2443 | 91.0% |
| ov_SC03_109 | 2224 | 1702 | 0 | 2226 | 2424 | 91.8% |
| ov_SC03_110 | 2229 | 1702 | 0 | 2229 | 2468 | 90.3% |
| ov_SC03_111 | 2241 | 1702 | 0 | 2244 | 2510 | 89.4% |
| ov_SC03_112 | 2234 | 1704 | 0 | 2236 | 2526 | 88.5% |
| ov_SC03_113 | 2227 | 1704 | 0 | 2230 | 2468 | 90.4% |
| ov_SC03_114 | 2217 | 1702 | 0 | 2219 | 2415 | 91.9% |
| ov_SC03_115 | 2234 | 1702 | 0 | 2236 | 2472 | 90.5% |
| ov_SC03_116 | 2224 | 1702 | 0 | 2227 | 2438 | 91.3% |
| ov_SC03_117 | 2252 | 1702 | 0 | 2258 | 2557 | 88.3% |
| ov_SC03_118 | 2299 | 1726 | 0 | 2300 | 2685 | 85.7% |
| ov_SC03_119 | 2298 | 1726 | 0 | 2299 | 2685 | 85.6% |
| ov_SC03_121 | 2231 | 1702 | 0 | 2234 | 2459 | 90.8% |
| ov_SC03_124 | 2311 | 1698 | 0 | 2331 | 2741 | 85.0% |
| ov_SC03_125 | 2268 | 1702 | 0 | 2280 | 2588 | 88.1% |
| ov_SC03_126 | 2230 | 1704 | 0 | 2230 | 2423 | 92.0% |
| ov_SC04_000 | 2246 | 1706 | 0 | 2255 | 2546 | 88.6% |
| ov_SC04_002 | 2262 | 1702 | 0 | 2266 | 2636 | 86.0% |
| ov_SC04_003 | 2240 | 1702 | 0 | 2244 | 2502 | 89.7% |
| ov_SC04_004 | 2249 | 1702 | 0 | 2251 | 2558 | 88.0% |
| ov_SC04_005 | 2257 | 1702 | 0 | 2263 | 2612 | 86.6% |
| ov_SC04_006 | 2230 | 1702 | 0 | 2232 | 2454 | 91.0% |
| ov_SC04_007 | 2250 | 1702 | 0 | 2254 | 2569 | 87.7% |
| ov_SC04_008 | 2220 | 1702 | 0 | 2220 | 2415 | 91.9% |
| ov_SC04_009 | 2236 | 1702 | 0 | 2239 | 2441 | 91.7% |
| ov_SC04_010 | 2227 | 1702 | 0 | 2228 | 2419 | 92.1% |
| ov_SC04_011 | 2283 | 1702 | 0 | 2289 | 2803 | 81.7% |
| ov_SC04_012 | 2223 | 1702 | 0 | 2224 | 2420 | 91.9% |
| ov_SC04_015 | 2288 | 1703 | 0 | 2299 | 2611 | 88.1% |
| ov_SC04_016 | 2226 | 1702 | 0 | 2228 | 2440 | 91.3% |
| ov_SC04_018 | 2338 | 1737 | 0 | 2338 | 2857 | 81.8% |
| ov_SC04_019 | 2344 | 1737 | 0 | 2344 | 2857 | 82.0% |
| ov_SC04_020 | 2255 | 1702 | 0 | 2267 | 2567 | 88.3% |
| ov_SC04_021 | 2231 | 1704 | 0 | 2231 | 2423 | 92.1% |
| ov_SC05_000 | 2227 | 1706 | 0 | 2230 | 2422 | 92.1% |
| ov_SC05_001 | 2250 | 1702 | 0 | 2255 | 2574 | 87.6% |
| ov_SC05_002 | 2232 | 1702 | 0 | 2235 | 2442 | 91.5% |
| ov_SC05_003 | 2229 | 1702 | 0 | 2230 | 2481 | 89.9% |
| ov_SC05_004 | 2224 | 1702 | 0 | 2226 | 2464 | 90.3% |
| ov_SC05_005 | 2231 | 1702 | 0 | 2232 | 2491 | 89.6% |
| ov_SC05_006 | 2223 | 1702 | 0 | 2223 | 2430 | 91.5% |
| ov_SC05_007 | 2233 | 1702 | 0 | 2238 | 2482 | 90.2% |
| ov_SC05_008 | 2250 | 1702 | 0 | 2252 | 2543 | 88.6% |
| ov_SC05_009 | 2228 | 1702 | 0 | 2232 | 2438 | 91.6% |
| ov_SC05_010 | 2254 | 1702 | 0 | 2258 | 2588 | 87.2% |
| ov_SC05_011 | 2226 | 1702 | 0 | 2227 | 2409 | 92.4% |
| ov_SC05_017 | 2334 | 1699 | 0 | 2345 | 2842 | 82.5% |
| ov_SC05_018 | 2281 | 1702 | 0 | 2294 | 2673 | 85.8% |
| ov_SC05_019 | 2231 | 1704 | 0 | 2231 | 2423 | 92.1% |
| ov_SC06_000 | 2293 | 1711 | 0 | 2296 | 2691 | 85.3% |
| ov_SC06_006 | 2246 | 1702 | 0 | 2247 | 2511 | 89.5% |
| ov_SC06_008 | 2256 | 1704 | 0 | 2262 | 2542 | 89.0% |
| ov_SC06_010 | 2239 | 1702 | 0 | 2244 | 2517 | 89.2% |
| ov_SC06_011 | 2235 | 1702 | 0 | 2239 | 2468 | 90.7% |
| ov_SC06_013 | 2228 | 1702 | 0 | 2229 | 2425 | 91.9% |
| ov_SC06_014 | 2234 | 1702 | 0 | 2236 | 2453 | 91.2% |
| ov_SC06_015 | 2231 | 1702 | 0 | 2231 | 2421 | 92.2% |
| ov_SC06_016 | 2249 | 1702 | 0 | 2251 | 2549 | 88.3% |
| ov_SC06_018 | 2249 | 1705 | 0 | 2256 | 2665 | 84.7% |
| ov_SC06_020 | 2238 | 1704 | 0 | 2239 | 2518 | 88.9% |
| ov_SC06_022 | 2252 | 1702 | 0 | 2260 | 2642 | 85.5% |
| ov_SC06_024 | 2258 | 1702 | 0 | 2264 | 2667 | 84.9% |
| ov_SC06_025 | 2249 | 1702 | 0 | 2254 | 2572 | 87.6% |
| ov_SC06_027 | 2217 | 1702 | 0 | 2218 | 2408 | 92.1% |
| ov_SC06_029 | 2275 | 1702 | 0 | 2287 | 2662 | 85.9% |
| ov_SC06_030 | 2230 | 1702 | 0 | 2230 | 2456 | 90.8% |
| ov_SC06_032 | 2242 | 1703 | 0 | 2249 | 2658 | 84.6% |
| ov_SC06_033 | 2245 | 1703 | 0 | 2252 | 2631 | 85.6% |
| ov_SC07_000 | 2245 | 1706 | 0 | 2247 | 2521 | 89.1% |
| ov_SC07_001 | 2230 | 1702 | 0 | 2232 | 2454 | 91.0% |
| ov_SC07_002 | 2257 | 1702 | 0 | 2261 | 2579 | 87.7% |
| ov_SC07_006 | 1997 | 1549 | 0 | 2077 | 2456 | 84.6% |
| ov_SC07_007 | 2014 | 1550 | 0 | 2098 | 2614 | 80.3% |
| ov_SC07_008 | 2213 | 1702 | 0 | 2213 | 2386 | 92.7% |
| ov_SC07_009 | 2223 | 1702 | 0 | 2225 | 2430 | 91.6% |
| ov_SC07_008 | 2214 | 1702 | 0 | 2214 | 2386 | 92.8% |
| ov_SC07_009 | 2224 | 1702 | 0 | 2226 | 2430 | 91.6% |
| ov_SC07_010 | 2025 | 1550 | 0 | 2108 | 2526 | 83.5% |
| ov_SC07_011 | 2013 | 1549 | 0 | 2093 | 2450 | 85.4% |
+37
View File
@@ -1330,3 +1330,40 @@ conditional) · main-EXE/B9 + GLM/B6 + resident's 14 walls (P30) · behemoths B7
> **CARRIED:** 5 t5wave cracks still blocked (2 DIFF, 2 CC1-FAIL, 1 §57) at `.run/giants/t5wave_*` — do
> NOT re-draft. **HYGIENE:** a bankless `family_sweep` leaves byte-neutral NSD churn on matched code —
> `git checkout -- src/` after a 0-bank sweep (§57a NB); 133 such files reverted at this checkpoint.
- **✅ 2026-07-22 (SESSION-11, ultracode) — ov_SC06_018 CRACK-WAVE CALIBRATION + the fresh-exemplar-sweep
thesis MEASURED (it is FAMILY-SPECIFIC, not universal). Fleet 78.4→78.5% instr · 67.1→67.5% distinct ·
88.14→88.18% fn-count.**
**Scoping (R33/R35 — corrected the SESSION-10 assumptions vs the bytes via `corpus`):** the ov_SC06_018
prefetch (`.run/ov_SC06_018_funcs.txt`) = **95 genuine stubs, ALL with cached Ghidra-C**, all substantial
(80–710 ins), **94/95 in jr-carve files but only 12 with an in-body jtbl** (83 bank via plain harvest_verify).
Total family leverage **≈201k ins-instances ≈1.54pp** (confirms Task-5's 1.59pp), concentrated in **5 top
shared-region families** (reach 133–138 ≈115k). Manifest `.run/wave_sc06018_scope.json`.
**Wave (new `tools/workflows/wave_binary.js`, binary-aware; 8-target calibration, 8 xHigh drafters):
7/8 match_one MATCH, 1 near** (func_80181468 close=70, regalloc-coalescing → permuter fuel).
**BANKED (whole-binary byte-gate, R22 clean-fleet 140/140):**
- **func_801365B8 (155, reach 133) ×138** — the THESIS TEST. SESSION-10 refused this family 0/133 from an
ov077 exemplar; cracked FRESH in ov_SC06_018 + `family_sweep --hseq --source ov_SC06_018 --allow-pins` →
**132/132 siblings banked** (+the ov_SC06_018 ×1). **THESIS CONFIRMED for this family.** (~+20.6k ins.)
- **func_80133AB0 (137, reach 137) ×1** — the OTHER SESSION-10 refusal (0/137). Cracked fresh + banked ×1
(needed a §17a-1 byte-neutral cast reconcile of the banked caller `func_801343C4`: `int(int,s16,s16,int)`
view preserved via a call-site cast so the def's canonical `s32(s16,s16,s16,s32)` could splice). BUT the
family **sweep FAILED 0/136 even from the fresh exemplar** (reverted clean) — **THESIS REFUTED for this
family**: genuine per-member divergence beyond reloc symbols.
**⇒ THE REFINED FINDING (R14/R31, → decision-log): the fresh-exemplar sweep is FAMILY-SPECIFIC.** A fresh
×1 crack is NECESSARY but NOT SUFFICIENT; the whole-binary byte-gate arbitrates each family. 1 of 2
thesis-test families swept (~50% on this tiny sample) → **the ~1.5pp campaign estimate must be discounted**
(not every fresh crack unlocks its family). The SESSION-10 "provenance is the discriminator" thesis holds
DIRECTIONALLY (func_801365B8 swept where ov077 couldn't) but is not a blanket mechanical ×137.
**Tooling fixes (R33, all this session):** (1) `family_sweep --source` override now searches
`matched_members` too (a freshly-banked source member leaves `members` after a sig-regen → the override was
silently missing it → templated from ov077 → refuse); (2) `cdecl._depth0_spans` consumes `\`-continuations
so a raw-draft `#define` macro body no longer leaks bogus "declarations" (audit-cdecl was choking on the
func_80191C50 draft's `XFER` macro; committed source is cpp-expanded so was never affected).
**⚠️ PHANTOM BANK (trust source, not the report — SESSION-10 class):** `gate_stage` reported func_8017D648
banked but source stayed INCLUDE_ASM. NOT actually banked — needs a real re-bank (callee-conflict reconcile).
**PENDING (staged, next block):** re-bank func_8017D648 (reach 82) + sweep · the **3 high-reach jtbl families**
func_80135EB0/80135260/8012AAAC (×137 each ≈76k ins, members.json staged `.run/jtbl_members_*.json`; need the
§8e exemplar bank then `jtbl_family_bank`) · func_80191C50 ×3 · the near-miss func_80181468 (permuter) · the
**~87 untested ov_SC06_018 targets** (a full wave, gate/bank/sweep). tools-health green (dedup 1849/0,
C1 234615). Commit this block; Drew pushes.
+92 -1
View File
@@ -852,7 +852,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_000/nonmatchings/ov_SC01_000_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F198/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F1A0 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F19C;
extern u8 D_8017F198;
extern s16 *D_8017F1A0;
extern u8 D_8017F1A4;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F198)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F1A4)[0];
} else {
var_a3 = (*(s16 **)&D_8017F1A4)[0];
var_v1 = (*(s16 **)&D_8017F198)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F198;
b4 = D_8017F1A0;
b8 = *(s16 **)&D_8017F1A4;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F19C)[1];
b4[2] = (s16) (*(u16 **)&D_8017F19C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F1A0, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F1A0, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80183DE8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80183DF0 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80183DEC;
extern u8 D_80183DE8;
extern s16 *D_80183DF0;
extern u8 D_80183DF4;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80183DE8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80183DF4)[0];
} else {
var_a3 = (*(s16 **)&D_80183DF4)[0];
var_v1 = (*(s16 **)&D_80183DE8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80183DE8;
b4 = D_80183DF0;
b8 = *(s16 **)&D_80183DF4;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80183DEC)[1];
b4[2] = (s16) (*(u16 **)&D_80183DEC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80183DF0, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80183DF0, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F7AC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F7B4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F7B0;
extern u8 D_8017F7AC;
extern s16 *D_8017F7B4;
extern u8 D_8017F7B8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F7AC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F7B8)[0];
} else {
var_a3 = (*(s16 **)&D_8017F7B8)[0];
var_v1 = (*(s16 **)&D_8017F7AC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F7AC;
b4 = D_8017F7B4;
b8 = *(s16 **)&D_8017F7B8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F7B0)[1];
b4[2] = (s16) (*(u16 **)&D_8017F7B0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F7B4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F7B4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -841,7 +841,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80182940/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80182948 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80182944;
extern u8 D_80182940;
extern s16 *D_80182948;
extern u8 D_8018294C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80182940)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018294C)[0];
} else {
var_a3 = (*(s16 **)&D_8018294C)[0];
var_v1 = (*(s16 **)&D_80182940)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80182940;
b4 = D_80182948;
b8 = *(s16 **)&D_8018294C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80182944)[1];
b4[2] = (s16) (*(u16 **)&D_80182944)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80182948, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80182948, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -841,7 +841,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80182940/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80182948 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80182944;
extern u8 D_80182940;
extern s16 *D_80182948;
extern u8 D_8018294C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80182940)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018294C)[0];
} else {
var_a3 = (*(s16 **)&D_8018294C)[0];
var_v1 = (*(s16 **)&D_80182940)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80182940;
b4 = D_80182948;
b8 = *(s16 **)&D_8018294C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80182944)[1];
b4[2] = (s16) (*(u16 **)&D_80182944)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80182948, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80182948, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017FD20/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017FD28 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017FD24;
extern u8 D_8017FD20;
extern s16 *D_8017FD28;
extern u8 D_8017FD2C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017FD20)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017FD2C)[0];
} else {
var_a3 = (*(s16 **)&D_8017FD2C)[0];
var_v1 = (*(s16 **)&D_8017FD20)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017FD20;
b4 = D_8017FD28;
b8 = *(s16 **)&D_8017FD2C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017FD24)[1];
b4[2] = (s16) (*(u16 **)&D_8017FD24)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017FD28, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017FD28, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80182F08/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80182F10 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80182F0C;
extern u8 D_80182F08;
extern s16 *D_80182F10;
extern u8 D_80182F14;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80182F08)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80182F14)[0];
} else {
var_a3 = (*(s16 **)&D_80182F14)[0];
var_v1 = (*(s16 **)&D_80182F08)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80182F08;
b4 = D_80182F10;
b8 = *(s16 **)&D_80182F14;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80182F0C)[1];
b4[2] = (s16) (*(u16 **)&D_80182F0C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80182F10, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80182F10, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017EB88/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017EB90 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017EB8C;
extern u8 D_8017EB88;
extern s16 *D_8017EB90;
extern u8 D_8017EB94;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017EB88)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017EB94)[0];
} else {
var_a3 = (*(s16 **)&D_8017EB94)[0];
var_v1 = (*(s16 **)&D_8017EB88)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017EB88;
b4 = D_8017EB90;
b8 = *(s16 **)&D_8017EB94;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017EB8C)[1];
b4[2] = (s16) (*(u16 **)&D_8017EB8C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017EB90, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017EB90, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80183AE8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80183AF0 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80183AEC;
extern u8 D_80183AE8;
extern s16 *D_80183AF0;
extern u8 D_80183AF4;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80183AE8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80183AF4)[0];
} else {
var_a3 = (*(s16 **)&D_80183AF4)[0];
var_v1 = (*(s16 **)&D_80183AE8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80183AE8;
b4 = D_80183AF0;
b8 = *(s16 **)&D_80183AF4;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80183AEC)[1];
b4[2] = (s16) (*(u16 **)&D_80183AEC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80183AF0, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80183AF0, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80186DDC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80186DE4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80186DE0;
extern u8 D_80186DDC;
extern s16 *D_80186DE4;
extern u8 D_80186DE8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80186DDC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80186DE8)[0];
} else {
var_a3 = (*(s16 **)&D_80186DE8)[0];
var_v1 = (*(s16 **)&D_80186DDC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80186DDC;
b4 = D_80186DE4;
b8 = *(s16 **)&D_80186DE8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80186DE0)[1];
b4[2] = (s16) (*(u16 **)&D_80186DE0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80186DE4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80186DE4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018B18C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018B194 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018B190;
extern u8 D_8018B18C;
extern s16 *D_8018B194;
extern u8 D_8018B198;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018B18C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018B198)[0];
} else {
var_a3 = (*(s16 **)&D_8018B198)[0];
var_v1 = (*(s16 **)&D_8018B18C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018B18C;
b4 = D_8018B194;
b8 = *(s16 **)&D_8018B198;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018B190)[1];
b4[2] = (s16) (*(u16 **)&D_8018B190)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018B194, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018B194, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018B18C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018B194 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018B190;
extern u8 D_8018B18C;
extern s16 *D_8018B194;
extern u8 D_8018B198;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018B18C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018B198)[0];
} else {
var_a3 = (*(s16 **)&D_8018B198)[0];
var_v1 = (*(s16 **)&D_8018B18C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018B18C;
b4 = D_8018B194;
b8 = *(s16 **)&D_8018B198;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018B190)[1];
b4[2] = (s16) (*(u16 **)&D_8018B190)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018B194, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018B194, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_004/nonmatchings/ov_SC02_004_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017E26C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017E274 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017E270;
extern u8 D_8017E26C;
extern s16 *D_8017E274;
extern u8 D_8017E278;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017E26C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017E278)[0];
} else {
var_a3 = (*(s16 **)&D_8017E278)[0];
var_v1 = (*(s16 **)&D_8017E26C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017E26C;
b4 = D_8017E274;
b8 = *(s16 **)&D_8017E278;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017E270)[1];
b4[2] = (s16) (*(u16 **)&D_8017E270)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017E274, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017E274, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80190E70/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80190E78 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80190E74;
extern u8 D_80190E70;
extern s16 *D_80190E78;
extern u8 D_80190E7C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80190E70)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80190E7C)[0];
} else {
var_a3 = (*(s16 **)&D_80190E7C)[0];
var_v1 = (*(s16 **)&D_80190E70)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80190E70;
b4 = D_80190E78;
b8 = *(s16 **)&D_80190E7C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80190E74)[1];
b4[2] = (s16) (*(u16 **)&D_80190E74)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80190E78, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80190E78, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801912C0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801912C8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801912C4;
extern u8 D_801912C0;
extern s16 *D_801912C8;
extern u8 D_801912CC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801912C0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801912CC)[0];
} else {
var_a3 = (*(s16 **)&D_801912CC)[0];
var_v1 = (*(s16 **)&D_801912C0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801912C0;
b4 = D_801912C8;
b8 = *(s16 **)&D_801912CC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801912C4)[1];
b4[2] = (s16) (*(u16 **)&D_801912C4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801912C8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801912C8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_015/nonmatchings/ov_SC02_015_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017E7D4/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017E7DC file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017E7D8;
extern u8 D_8017E7D4;
extern s16 *D_8017E7DC;
extern u8 D_8017E7E0;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017E7D4)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017E7E0)[0];
} else {
var_a3 = (*(s16 **)&D_8017E7E0)[0];
var_v1 = (*(s16 **)&D_8017E7D4)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017E7D4;
b4 = D_8017E7DC;
b8 = *(s16 **)&D_8017E7E0;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017E7D8)[1];
b4[2] = (s16) (*(u16 **)&D_8017E7D8)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017E7DC, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017E7DC, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_016/nonmatchings/ov_SC02_016_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80184A0C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80184A14 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80184A10;
extern u8 D_80184A0C;
extern s16 *D_80184A14;
extern u8 D_80184A18;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80184A0C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80184A18)[0];
} else {
var_a3 = (*(s16 **)&D_80184A18)[0];
var_v1 = (*(s16 **)&D_80184A0C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80184A0C;
b4 = D_80184A14;
b8 = *(s16 **)&D_80184A18;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80184A10)[1];
b4[2] = (s16) (*(u16 **)&D_80184A10)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80184A14, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80184A14, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018AA64/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018AA6C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018AA68;
extern u8 D_8018AA64;
extern s16 *D_8018AA6C;
extern u8 D_8018AA70;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018AA64)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018AA70)[0];
} else {
var_a3 = (*(s16 **)&D_8018AA70)[0];
var_v1 = (*(s16 **)&D_8018AA64)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018AA64;
b4 = D_8018AA6C;
b8 = *(s16 **)&D_8018AA70;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018AA68)[1];
b4[2] = (s16) (*(u16 **)&D_8018AA68)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018AA6C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018AA6C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80180058/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80180060 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018005C;
extern u8 D_80180058;
extern s16 *D_80180060;
extern u8 D_80180064;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80180058)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80180064)[0];
} else {
var_a3 = (*(s16 **)&D_80180064)[0];
var_v1 = (*(s16 **)&D_80180058)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80180058;
b4 = D_80180060;
b8 = *(s16 **)&D_80180064;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018005C)[1];
b4[2] = (s16) (*(u16 **)&D_8018005C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80180060, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80180060, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801866AC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801866B4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801866B0;
extern u8 D_801866AC;
extern s16 *D_801866B4;
extern u8 D_801866B8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801866AC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801866B8)[0];
} else {
var_a3 = (*(s16 **)&D_801866B8)[0];
var_v1 = (*(s16 **)&D_801866AC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801866AC;
b4 = D_801866B4;
b8 = *(s16 **)&D_801866B8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801866B0)[1];
b4[2] = (s16) (*(u16 **)&D_801866B0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801866B4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801866B4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018B7D0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018B7D8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018B7D4;
extern u8 D_8018B7D0;
extern s16 *D_8018B7D8;
extern u8 D_8018B7DC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018B7D0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018B7DC)[0];
} else {
var_a3 = (*(s16 **)&D_8018B7DC)[0];
var_v1 = (*(s16 **)&D_8018B7D0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018B7D0;
b4 = D_8018B7D8;
b8 = *(s16 **)&D_8018B7DC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018B7D4)[1];
b4[2] = (s16) (*(u16 **)&D_8018B7D4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018B7D8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018B7D8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018B9D4/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018B9DC file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018B9D8;
extern u8 D_8018B9D4;
extern s16 *D_8018B9DC;
extern u8 D_8018B9E0;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018B9D4)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018B9E0)[0];
} else {
var_a3 = (*(s16 **)&D_8018B9E0)[0];
var_v1 = (*(s16 **)&D_8018B9D4)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018B9D4;
b4 = D_8018B9DC;
b8 = *(s16 **)&D_8018B9E0;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018B9D8)[1];
b4[2] = (s16) (*(u16 **)&D_8018B9D8)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018B9DC, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018B9DC, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80185200/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80185208 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80185204;
extern u8 D_80185200;
extern s16 *D_80185208;
extern u8 D_8018520C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80185200)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018520C)[0];
} else {
var_a3 = (*(s16 **)&D_8018520C)[0];
var_v1 = (*(s16 **)&D_80185200)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80185200;
b4 = D_80185208;
b8 = *(s16 **)&D_8018520C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80185204)[1];
b4[2] = (s16) (*(u16 **)&D_80185204)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80185208, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80185208, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80184A60/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80184A68 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80184A64;
extern u8 D_80184A60;
extern s16 *D_80184A68;
extern u8 D_80184A6C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80184A60)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80184A6C)[0];
} else {
var_a3 = (*(s16 **)&D_80184A6C)[0];
var_v1 = (*(s16 **)&D_80184A60)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80184A60;
b4 = D_80184A68;
b8 = *(s16 **)&D_80184A6C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80184A64)[1];
b4[2] = (s16) (*(u16 **)&D_80184A64)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80184A68, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80184A68, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F68C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F694 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F690;
extern u8 D_8017F68C;
extern s16 *D_8017F694;
extern u8 D_8017F698;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F68C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F698)[0];
} else {
var_a3 = (*(s16 **)&D_8017F698)[0];
var_v1 = (*(s16 **)&D_8017F68C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F68C;
b4 = D_8017F694;
b8 = *(s16 **)&D_8017F698;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F690)[1];
b4[2] = (s16) (*(u16 **)&D_8017F690)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F694, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F694, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018535C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80185364 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80185360;
extern u8 D_8018535C;
extern s16 *D_80185364;
extern u8 D_80185368;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018535C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80185368)[0];
} else {
var_a3 = (*(s16 **)&D_80185368)[0];
var_v1 = (*(s16 **)&D_8018535C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018535C;
b4 = D_80185364;
b8 = *(s16 **)&D_80185368;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80185360)[1];
b4[2] = (s16) (*(u16 **)&D_80185360)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80185364, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80185364, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018DA9C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018DAA4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018DAA0;
extern u8 D_8018DA9C;
extern s16 *D_8018DAA4;
extern u8 D_8018DAA8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018DA9C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018DAA8)[0];
} else {
var_a3 = (*(s16 **)&D_8018DAA8)[0];
var_v1 = (*(s16 **)&D_8018DA9C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018DA9C;
b4 = D_8018DAA4;
b8 = *(s16 **)&D_8018DAA8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018DAA0)[1];
b4[2] = (s16) (*(u16 **)&D_8018DAA0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018DAA4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018DAA4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80185A8C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80185A94 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80185A90;
extern u8 D_80185A8C;
extern s16 *D_80185A94;
extern u8 D_80185A98;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80185A8C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80185A98)[0];
} else {
var_a3 = (*(s16 **)&D_80185A98)[0];
var_v1 = (*(s16 **)&D_80185A8C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80185A8C;
b4 = D_80185A94;
b8 = *(s16 **)&D_80185A98;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80185A90)[1];
b4[2] = (s16) (*(u16 **)&D_80185A90)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80185A94, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80185A94, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_003/nonmatchings/ov_SC03_003_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F854/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F85C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F858;
extern u8 D_8017F854;
extern s16 *D_8017F85C;
extern u8 D_8017F860;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F854)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F860)[0];
} else {
var_a3 = (*(s16 **)&D_8017F860)[0];
var_v1 = (*(s16 **)&D_8017F854)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F854;
b4 = D_8017F85C;
b8 = *(s16 **)&D_8017F860;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F858)[1];
b4[2] = (s16) (*(u16 **)&D_8017F858)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F85C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F85C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018CB70/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018CB78 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018CB74;
extern u8 D_8018CB70;
extern s16 *D_8018CB78;
extern u8 D_8018CB7C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018CB70)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018CB7C)[0];
} else {
var_a3 = (*(s16 **)&D_8018CB7C)[0];
var_v1 = (*(s16 **)&D_8018CB70)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018CB70;
b4 = D_8018CB78;
b8 = *(s16 **)&D_8018CB7C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018CB74)[1];
b4[2] = (s16) (*(u16 **)&D_8018CB74)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018CB78, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018CB78, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80187968/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80187970 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018796C;
extern u8 D_80187968;
extern s16 *D_80187970;
extern u8 D_80187974;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80187968)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80187974)[0];
} else {
var_a3 = (*(s16 **)&D_80187974)[0];
var_v1 = (*(s16 **)&D_80187968)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80187968;
b4 = D_80187970;
b8 = *(s16 **)&D_80187974;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018796C)[1];
b4[2] = (s16) (*(u16 **)&D_8018796C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80187970, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80187970, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80180488/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80180490 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018048C;
extern u8 D_80180488;
extern s16 *D_80180490;
extern u8 D_80180494;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80180488)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80180494)[0];
} else {
var_a3 = (*(s16 **)&D_80180494)[0];
var_v1 = (*(s16 **)&D_80180488)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80180488;
b4 = D_80180490;
b8 = *(s16 **)&D_80180494;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018048C)[1];
b4[2] = (s16) (*(u16 **)&D_8018048C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80180490, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80180490, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801817F8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80181800 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801817FC;
extern u8 D_801817F8;
extern s16 *D_80181800;
extern u8 D_80181804;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801817F8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80181804)[0];
} else {
var_a3 = (*(s16 **)&D_80181804)[0];
var_v1 = (*(s16 **)&D_801817F8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801817F8;
b4 = D_80181800;
b8 = *(s16 **)&D_80181804;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801817FC)[1];
b4[2] = (s16) (*(u16 **)&D_801817FC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80181800, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80181800, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017E6D8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017E6E0 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017E6DC;
extern u8 D_8017E6D8;
extern s16 *D_8017E6E0;
extern u8 D_8017E6E4;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017E6D8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017E6E4)[0];
} else {
var_a3 = (*(s16 **)&D_8017E6E4)[0];
var_v1 = (*(s16 **)&D_8017E6D8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017E6D8;
b4 = D_8017E6E0;
b8 = *(s16 **)&D_8017E6E4;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017E6DC)[1];
b4[2] = (s16) (*(u16 **)&D_8017E6DC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017E6E0, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017E6E0, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801814C0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801814C8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801814C4;
extern u8 D_801814C0;
extern s16 *D_801814C8;
extern u8 D_801814CC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801814C0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801814CC)[0];
} else {
var_a3 = (*(s16 **)&D_801814CC)[0];
var_v1 = (*(s16 **)&D_801814C0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801814C0;
b4 = D_801814C8;
b8 = *(s16 **)&D_801814CC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801814C4)[1];
b4[2] = (s16) (*(u16 **)&D_801814C4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801814C8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801814C8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018BAFC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018BB04 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018BB00;
extern u8 D_8018BAFC;
extern s16 *D_8018BB04;
extern u8 D_8018BB08;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018BAFC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018BB08)[0];
} else {
var_a3 = (*(s16 **)&D_8018BB08)[0];
var_v1 = (*(s16 **)&D_8018BAFC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018BAFC;
b4 = D_8018BB04;
b8 = *(s16 **)&D_8018BB08;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018BB00)[1];
b4[2] = (s16) (*(u16 **)&D_8018BB00)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018BB04, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018BB04, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018BAFC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018BB04 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018BB00;
extern u8 D_8018BAFC;
extern s16 *D_8018BB04;
extern u8 D_8018BB08;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018BAFC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018BB08)[0];
} else {
var_a3 = (*(s16 **)&D_8018BB08)[0];
var_v1 = (*(s16 **)&D_8018BAFC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018BAFC;
b4 = D_8018BB04;
b8 = *(s16 **)&D_8018BB08;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018BB00)[1];
b4[2] = (s16) (*(u16 **)&D_8018BB00)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018BB04, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018BB04, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F478/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F480 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F47C;
extern u8 D_8017F478;
extern s16 *D_8017F480;
extern u8 D_8017F484;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F478)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F484)[0];
} else {
var_a3 = (*(s16 **)&D_8017F484)[0];
var_v1 = (*(s16 **)&D_8017F478)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F478;
b4 = D_8017F480;
b8 = *(s16 **)&D_8017F484;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F47C)[1];
b4[2] = (s16) (*(u16 **)&D_8017F47C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F480, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F480, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018749C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801874A4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801874A0;
extern u8 D_8018749C;
extern s16 *D_801874A4;
extern u8 D_801874A8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018749C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801874A8)[0];
} else {
var_a3 = (*(s16 **)&D_801874A8)[0];
var_v1 = (*(s16 **)&D_8018749C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018749C;
b4 = D_801874A4;
b8 = *(s16 **)&D_801874A8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801874A0)[1];
b4[2] = (s16) (*(u16 **)&D_801874A0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801874A4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801874A4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018BF68/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018BF70 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018BF6C;
extern u8 D_8018BF68;
extern s16 *D_8018BF70;
extern u8 D_8018BF74;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018BF68)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018BF74)[0];
} else {
var_a3 = (*(s16 **)&D_8018BF74)[0];
var_v1 = (*(s16 **)&D_8018BF68)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018BF68;
b4 = D_8018BF70;
b8 = *(s16 **)&D_8018BF74;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018BF6C)[1];
b4[2] = (s16) (*(u16 **)&D_8018BF6C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018BF70, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018BF70, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80187DA0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80187DA8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80187DA4;
extern u8 D_80187DA0;
extern s16 *D_80187DA8;
extern u8 D_80187DAC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80187DA0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80187DAC)[0];
} else {
var_a3 = (*(s16 **)&D_80187DAC)[0];
var_v1 = (*(s16 **)&D_80187DA0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80187DA0;
b4 = D_80187DA8;
b8 = *(s16 **)&D_80187DAC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80187DA4)[1];
b4[2] = (s16) (*(u16 **)&D_80187DA4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80187DA8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80187DA8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801823DC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801823E4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801823E0;
extern u8 D_801823DC;
extern s16 *D_801823E4;
extern u8 D_801823E8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801823DC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801823E8)[0];
} else {
var_a3 = (*(s16 **)&D_801823E8)[0];
var_v1 = (*(s16 **)&D_801823DC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801823DC;
b4 = D_801823E4;
b8 = *(s16 **)&D_801823E8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801823E0)[1];
b4[2] = (s16) (*(u16 **)&D_801823E0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801823E4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801823E4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801828F8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80182900 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801828FC;
extern u8 D_801828F8;
extern s16 *D_80182900;
extern u8 D_80182904;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801828F8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80182904)[0];
} else {
var_a3 = (*(s16 **)&D_80182904)[0];
var_v1 = (*(s16 **)&D_801828F8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801828F8;
b4 = D_80182900;
b8 = *(s16 **)&D_80182904;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801828FC)[1];
b4[2] = (s16) (*(u16 **)&D_801828FC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80182900, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80182900, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80189BF4/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80189BFC file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80189BF8;
extern u8 D_80189BF4;
extern s16 *D_80189BFC;
extern u8 D_80189C00;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80189BF4)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80189C00)[0];
} else {
var_a3 = (*(s16 **)&D_80189C00)[0];
var_v1 = (*(s16 **)&D_80189BF4)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80189BF4;
b4 = D_80189BFC;
b8 = *(s16 **)&D_80189C00;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80189BF8)[1];
b4[2] = (s16) (*(u16 **)&D_80189BF8)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80189BFC, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80189BFC, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018C018/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018C020 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018C01C;
extern u8 D_8018C018;
extern s16 *D_8018C020;
extern u8 D_8018C024;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018C018)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018C024)[0];
} else {
var_a3 = (*(s16 **)&D_8018C024)[0];
var_v1 = (*(s16 **)&D_8018C018)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018C018;
b4 = D_8018C020;
b8 = *(s16 **)&D_8018C024;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018C01C)[1];
b4[2] = (s16) (*(u16 **)&D_8018C01C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018C020, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018C020, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018CEC0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018CEC8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018CEC4;
extern u8 D_8018CEC0;
extern s16 *D_8018CEC8;
extern u8 D_8018CECC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018CEC0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018CECC)[0];
} else {
var_a3 = (*(s16 **)&D_8018CECC)[0];
var_v1 = (*(s16 **)&D_8018CEC0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018CEC0;
b4 = D_8018CEC8;
b8 = *(s16 **)&D_8018CECC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018CEC4)[1];
b4[2] = (s16) (*(u16 **)&D_8018CEC4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018CEC8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018CEC8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80185290/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80185298 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80185294;
extern u8 D_80185290;
extern s16 *D_80185298;
extern u8 D_8018529C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80185290)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018529C)[0];
} else {
var_a3 = (*(s16 **)&D_8018529C)[0];
var_v1 = (*(s16 **)&D_80185290)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80185290;
b4 = D_80185298;
b8 = *(s16 **)&D_8018529C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80185294)[1];
b4[2] = (s16) (*(u16 **)&D_80185294)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80185298, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80185298, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80186468/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80186470 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018646C;
extern u8 D_80186468;
extern s16 *D_80186470;
extern u8 D_80186474;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80186468)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80186474)[0];
} else {
var_a3 = (*(s16 **)&D_80186474)[0];
var_v1 = (*(s16 **)&D_80186468)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80186468;
b4 = D_80186470;
b8 = *(s16 **)&D_80186474;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018646C)[1];
b4[2] = (s16) (*(u16 **)&D_8018646C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80186470, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80186470, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80187E64/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80187E6C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80187E68;
extern u8 D_80187E64;
extern s16 *D_80187E6C;
extern u8 D_80187E70;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80187E64)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80187E70)[0];
} else {
var_a3 = (*(s16 **)&D_80187E70)[0];
var_v1 = (*(s16 **)&D_80187E64)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80187E64;
b4 = D_80187E6C;
b8 = *(s16 **)&D_80187E70;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80187E68)[1];
b4[2] = (s16) (*(u16 **)&D_80187E68)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80187E6C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80187E6C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801814C4/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801814CC file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801814C8;
extern u8 D_801814C4;
extern s16 *D_801814CC;
extern u8 D_801814D0;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801814C4)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801814D0)[0];
} else {
var_a3 = (*(s16 **)&D_801814D0)[0];
var_v1 = (*(s16 **)&D_801814C4)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801814C4;
b4 = D_801814CC;
b8 = *(s16 **)&D_801814D0;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801814C8)[1];
b4[2] = (s16) (*(u16 **)&D_801814C8)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801814CC, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801814CC, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80181044/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018104C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80181048;
extern u8 D_80181044;
extern s16 *D_8018104C;
extern u8 D_80181050;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80181044)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80181050)[0];
} else {
var_a3 = (*(s16 **)&D_80181050)[0];
var_v1 = (*(s16 **)&D_80181044)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80181044;
b4 = D_8018104C;
b8 = *(s16 **)&D_80181050;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80181048)[1];
b4[2] = (s16) (*(u16 **)&D_80181048)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018104C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018104C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80186424/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018642C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80186428;
extern u8 D_80186424;
extern s16 *D_8018642C;
extern u8 D_80186430;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80186424)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80186430)[0];
} else {
var_a3 = (*(s16 **)&D_80186430)[0];
var_v1 = (*(s16 **)&D_80186424)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80186424;
b4 = D_8018642C;
b8 = *(s16 **)&D_80186430;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80186428)[1];
b4[2] = (s16) (*(u16 **)&D_80186428)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018642C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018642C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801858B0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801858B8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801858B4;
extern u8 D_801858B0;
extern s16 *D_801858B8;
extern u8 D_801858BC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801858B0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801858BC)[0];
} else {
var_a3 = (*(s16 **)&D_801858BC)[0];
var_v1 = (*(s16 **)&D_801858B0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801858B0;
b4 = D_801858B8;
b8 = *(s16 **)&D_801858BC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801858B4)[1];
b4[2] = (s16) (*(u16 **)&D_801858B4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801858B8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801858B8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_099/nonmatchings/ov_SC03_099_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801839B0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801839B8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801839B4;
extern u8 D_801839B0;
extern s16 *D_801839B8;
extern u8 D_801839BC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801839B0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801839BC)[0];
} else {
var_a3 = (*(s16 **)&D_801839BC)[0];
var_v1 = (*(s16 **)&D_801839B0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801839B0;
b4 = D_801839B8;
b8 = *(s16 **)&D_801839BC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801839B4)[1];
b4[2] = (s16) (*(u16 **)&D_801839B4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801839B8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801839B8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_100/nonmatchings/ov_SC03_100_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80184E7C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80184E84 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80184E80;
extern u8 D_80184E7C;
extern s16 *D_80184E84;
extern u8 D_80184E88;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80184E7C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80184E88)[0];
} else {
var_a3 = (*(s16 **)&D_80184E88)[0];
var_v1 = (*(s16 **)&D_80184E7C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80184E7C;
b4 = D_80184E84;
b8 = *(s16 **)&D_80184E88;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80184E80)[1];
b4[2] = (s16) (*(u16 **)&D_80184E80)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80184E84, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80184E84, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80183E58/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80183E60 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80183E5C;
extern u8 D_80183E58;
extern s16 *D_80183E60;
extern u8 D_80183E64;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80183E58)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80183E64)[0];
} else {
var_a3 = (*(s16 **)&D_80183E64)[0];
var_v1 = (*(s16 **)&D_80183E58)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80183E58;
b4 = D_80183E60;
b8 = *(s16 **)&D_80183E64;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80183E5C)[1];
b4[2] = (s16) (*(u16 **)&D_80183E5C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80183E60, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80183E60, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_102/nonmatchings/ov_SC03_102_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80186710/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80186718 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80186714;
extern u8 D_80186710;
extern s16 *D_80186718;
extern u8 D_8018671C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80186710)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018671C)[0];
} else {
var_a3 = (*(s16 **)&D_8018671C)[0];
var_v1 = (*(s16 **)&D_80186710)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80186710;
b4 = D_80186718;
b8 = *(s16 **)&D_8018671C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80186714)[1];
b4[2] = (s16) (*(u16 **)&D_80186714)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80186718, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80186718, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801846C0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801846C8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801846C4;
extern u8 D_801846C0;
extern s16 *D_801846C8;
extern u8 D_801846CC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801846C0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801846CC)[0];
} else {
var_a3 = (*(s16 **)&D_801846CC)[0];
var_v1 = (*(s16 **)&D_801846C0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801846C0;
b4 = D_801846C8;
b8 = *(s16 **)&D_801846CC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801846C4)[1];
b4[2] = (s16) (*(u16 **)&D_801846C4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801846C8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801846C8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018B250/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018B258 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018B254;
extern u8 D_8018B250;
extern s16 *D_8018B258;
extern u8 D_8018B25C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018B250)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018B25C)[0];
} else {
var_a3 = (*(s16 **)&D_8018B25C)[0];
var_v1 = (*(s16 **)&D_8018B250)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018B250;
b4 = D_8018B258;
b8 = *(s16 **)&D_8018B25C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018B254)[1];
b4[2] = (s16) (*(u16 **)&D_8018B254)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018B258, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018B258, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018A8D8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018A8E0 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018A8DC;
extern u8 D_8018A8D8;
extern s16 *D_8018A8E0;
extern u8 D_8018A8E4;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018A8D8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018A8E4)[0];
} else {
var_a3 = (*(s16 **)&D_8018A8E4)[0];
var_v1 = (*(s16 **)&D_8018A8D8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018A8D8;
b4 = D_8018A8E0;
b8 = *(s16 **)&D_8018A8E4;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018A8DC)[1];
b4[2] = (s16) (*(u16 **)&D_8018A8DC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018A8E0, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018A8E0, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_108/nonmatchings/ov_SC03_108_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80181230/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80181238 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80181234;
extern u8 D_80181230;
extern s16 *D_80181238;
extern u8 D_8018123C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80181230)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018123C)[0];
} else {
var_a3 = (*(s16 **)&D_8018123C)[0];
var_v1 = (*(s16 **)&D_80181230)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80181230;
b4 = D_80181238;
b8 = *(s16 **)&D_8018123C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80181234)[1];
b4[2] = (s16) (*(u16 **)&D_80181234)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80181238, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80181238, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017E8DC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017E8E4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017E8E0;
extern u8 D_8017E8DC;
extern s16 *D_8017E8E4;
extern u8 D_8017E8E8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017E8DC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017E8E8)[0];
} else {
var_a3 = (*(s16 **)&D_8017E8E8)[0];
var_v1 = (*(s16 **)&D_8017E8DC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017E8DC;
b4 = D_8017E8E4;
b8 = *(s16 **)&D_8017E8E8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017E8E0)[1];
b4[2] = (s16) (*(u16 **)&D_8017E8E0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017E8E4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017E8E4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801822FC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80182304 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80182300;
extern u8 D_801822FC;
extern s16 *D_80182304;
extern u8 D_80182308;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801822FC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80182308)[0];
} else {
var_a3 = (*(s16 **)&D_80182308)[0];
var_v1 = (*(s16 **)&D_801822FC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801822FC;
b4 = D_80182304;
b8 = *(s16 **)&D_80182308;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80182300)[1];
b4[2] = (s16) (*(u16 **)&D_80182300)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80182304, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80182304, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80184EB0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80184EB8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80184EB4;
extern u8 D_80184EB0;
extern s16 *D_80184EB8;
extern u8 D_80184EBC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80184EB0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80184EBC)[0];
} else {
var_a3 = (*(s16 **)&D_80184EBC)[0];
var_v1 = (*(s16 **)&D_80184EB0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80184EB0;
b4 = D_80184EB8;
b8 = *(s16 **)&D_80184EBC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80184EB4)[1];
b4[2] = (s16) (*(u16 **)&D_80184EB4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80184EB8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80184EB8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80185CB8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80185CC0 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80185CBC;
extern u8 D_80185CB8;
extern s16 *D_80185CC0;
extern u8 D_80185CC4;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80185CB8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80185CC4)[0];
} else {
var_a3 = (*(s16 **)&D_80185CC4)[0];
var_v1 = (*(s16 **)&D_80185CB8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80185CB8;
b4 = D_80185CC0;
b8 = *(s16 **)&D_80185CC4;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80185CBC)[1];
b4[2] = (s16) (*(u16 **)&D_80185CBC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80185CC0, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80185CC0, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80183368/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80183370 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018336C;
extern u8 D_80183368;
extern s16 *D_80183370;
extern u8 D_80183374;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80183368)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80183374)[0];
} else {
var_a3 = (*(s16 **)&D_80183374)[0];
var_v1 = (*(s16 **)&D_80183368)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80183368;
b4 = D_80183370;
b8 = *(s16 **)&D_80183374;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018336C)[1];
b4[2] = (s16) (*(u16 **)&D_8018336C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80183370, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80183370, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_114/nonmatchings/ov_SC03_114_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017EFD0/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017EFD8 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017EFD4;
extern u8 D_8017EFD0;
extern s16 *D_8017EFD8;
extern u8 D_8017EFDC;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017EFD0)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017EFDC)[0];
} else {
var_a3 = (*(s16 **)&D_8017EFDC)[0];
var_v1 = (*(s16 **)&D_8017EFD0)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017EFD0;
b4 = D_8017EFD8;
b8 = *(s16 **)&D_8017EFDC;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017EFD4)[1];
b4[2] = (s16) (*(u16 **)&D_8017EFD4)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017EFD8, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017EFD8, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80180A3C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80180A44 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80180A40;
extern u8 D_80180A3C;
extern s16 *D_80180A44;
extern u8 D_80180A48;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80180A3C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80180A48)[0];
} else {
var_a3 = (*(s16 **)&D_80180A48)[0];
var_v1 = (*(s16 **)&D_80180A3C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80180A3C;
b4 = D_80180A44;
b8 = *(s16 **)&D_80180A48;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80180A40)[1];
b4[2] = (s16) (*(u16 **)&D_80180A40)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80180A44, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80180A44, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80182E40/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80182E48 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80182E44;
extern u8 D_80182E40;
extern s16 *D_80182E48;
extern u8 D_80182E4C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80182E40)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80182E4C)[0];
} else {
var_a3 = (*(s16 **)&D_80182E4C)[0];
var_v1 = (*(s16 **)&D_80182E40)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80182E40;
b4 = D_80182E48;
b8 = *(s16 **)&D_80182E4C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80182E44)[1];
b4[2] = (s16) (*(u16 **)&D_80182E44)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80182E48, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80182E48, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80184E4C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80184E54 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80184E50;
extern u8 D_80184E4C;
extern s16 *D_80184E54;
extern u8 D_80184E58;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80184E4C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80184E58)[0];
} else {
var_a3 = (*(s16 **)&D_80184E58)[0];
var_v1 = (*(s16 **)&D_80184E4C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80184E4C;
b4 = D_80184E54;
b8 = *(s16 **)&D_80184E58;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80184E50)[1];
b4[2] = (s16) (*(u16 **)&D_80184E50)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80184E54, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80184E54, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80189EF8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80189F00 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80189EFC;
extern u8 D_80189EF8;
extern s16 *D_80189F00;
extern u8 D_80189F04;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80189EF8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80189F04)[0];
} else {
var_a3 = (*(s16 **)&D_80189F04)[0];
var_v1 = (*(s16 **)&D_80189EF8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80189EF8;
b4 = D_80189F00;
b8 = *(s16 **)&D_80189F04;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80189EFC)[1];
b4[2] = (s16) (*(u16 **)&D_80189EFC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80189F00, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80189F00, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80189EF8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80189F00 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80189EFC;
extern u8 D_80189EF8;
extern s16 *D_80189F00;
extern u8 D_80189F04;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80189EF8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80189F04)[0];
} else {
var_a3 = (*(s16 **)&D_80189F04)[0];
var_v1 = (*(s16 **)&D_80189EF8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80189EF8;
b4 = D_80189F00;
b8 = *(s16 **)&D_80189F04;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80189EFC)[1];
b4[2] = (s16) (*(u16 **)&D_80189EFC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80189F00, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80189F00, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80182714/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018271C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80182718;
extern u8 D_80182714;
extern s16 *D_8018271C;
extern u8 D_80182720;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80182714)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80182720)[0];
} else {
var_a3 = (*(s16 **)&D_80182720)[0];
var_v1 = (*(s16 **)&D_80182714)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80182714;
b4 = D_8018271C;
b8 = *(s16 **)&D_80182720;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80182718)[1];
b4[2] = (s16) (*(u16 **)&D_80182718)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018271C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018271C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018B140/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018B148 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018B144;
extern u8 D_8018B140;
extern s16 *D_8018B148;
extern u8 D_8018B14C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018B140)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018B14C)[0];
} else {
var_a3 = (*(s16 **)&D_8018B14C)[0];
var_v1 = (*(s16 **)&D_8018B140)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018B140;
b4 = D_8018B148;
b8 = *(s16 **)&D_8018B14C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018B144)[1];
b4[2] = (s16) (*(u16 **)&D_8018B144)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018B148, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018B148, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80184310/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80184318 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80184314;
extern u8 D_80184310;
extern s16 *D_80184318;
extern u8 D_8018431C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80184310)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018431C)[0];
} else {
var_a3 = (*(s16 **)&D_8018431C)[0];
var_v1 = (*(s16 **)&D_80184310)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80184310;
b4 = D_80184318;
b8 = *(s16 **)&D_8018431C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80184314)[1];
b4[2] = (s16) (*(u16 **)&D_80184314)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80184318, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80184318, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F808/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F810 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F80C;
extern u8 D_8017F808;
extern s16 *D_8017F810;
extern u8 D_8017F814;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F808)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F814)[0];
} else {
var_a3 = (*(s16 **)&D_8017F814)[0];
var_v1 = (*(s16 **)&D_8017F808)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F808;
b4 = D_8017F810;
b8 = *(s16 **)&D_8017F814;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F80C)[1];
b4[2] = (s16) (*(u16 **)&D_8017F80C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F810, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F810, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80183814/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018381C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80183818;
extern u8 D_80183814;
extern s16 *D_8018381C;
extern u8 D_80183820;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80183814)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80183820)[0];
} else {
var_a3 = (*(s16 **)&D_80183820)[0];
var_v1 = (*(s16 **)&D_80183814)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80183814;
b4 = D_8018381C;
b8 = *(s16 **)&D_80183820;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80183818)[1];
b4[2] = (s16) (*(u16 **)&D_80183818)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018381C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018381C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80188980/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80188988 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80188984;
extern u8 D_80188980;
extern s16 *D_80188988;
extern u8 D_8018898C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80188980)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018898C)[0];
} else {
var_a3 = (*(s16 **)&D_8018898C)[0];
var_v1 = (*(s16 **)&D_80188980)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80188980;
b4 = D_80188988;
b8 = *(s16 **)&D_8018898C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80188984)[1];
b4[2] = (s16) (*(u16 **)&D_80188984)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80188988, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80188988, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018271C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80182724 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80182720;
extern u8 D_8018271C;
extern s16 *D_80182724;
extern u8 D_80182728;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018271C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80182728)[0];
} else {
var_a3 = (*(s16 **)&D_80182728)[0];
var_v1 = (*(s16 **)&D_8018271C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018271C;
b4 = D_80182724;
b8 = *(s16 **)&D_80182728;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80182720)[1];
b4[2] = (s16) (*(u16 **)&D_80182720)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80182724, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80182724, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80184C50/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80184C58 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80184C54;
extern u8 D_80184C50;
extern s16 *D_80184C58;
extern u8 D_80184C5C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80184C50)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80184C5C)[0];
} else {
var_a3 = (*(s16 **)&D_80184C5C)[0];
var_v1 = (*(s16 **)&D_80184C50)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80184C50;
b4 = D_80184C58;
b8 = *(s16 **)&D_80184C5C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80184C54)[1];
b4[2] = (s16) (*(u16 **)&D_80184C54)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80184C58, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80184C58, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80188084/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018808C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80188088;
extern u8 D_80188084;
extern s16 *D_8018808C;
extern u8 D_80188090;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80188084)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80188090)[0];
} else {
var_a3 = (*(s16 **)&D_80188090)[0];
var_v1 = (*(s16 **)&D_80188084)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80188084;
b4 = D_8018808C;
b8 = *(s16 **)&D_80188090;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80188088)[1];
b4[2] = (s16) (*(u16 **)&D_80188088)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018808C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018808C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80180164/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018016C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80180168;
extern u8 D_80180164;
extern s16 *D_8018016C;
extern u8 D_80180170;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80180164)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80180170)[0];
} else {
var_a3 = (*(s16 **)&D_80180170)[0];
var_v1 = (*(s16 **)&D_80180164)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80180164;
b4 = D_8018016C;
b8 = *(s16 **)&D_80180170;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80180168)[1];
b4[2] = (s16) (*(u16 **)&D_80180168)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018016C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018016C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018611C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80186124 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80186120;
extern u8 D_8018611C;
extern s16 *D_80186124;
extern u8 D_80186128;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018611C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80186128)[0];
} else {
var_a3 = (*(s16 **)&D_80186128)[0];
var_v1 = (*(s16 **)&D_8018611C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018611C;
b4 = D_80186124;
b8 = *(s16 **)&D_80186128;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80186120)[1];
b4[2] = (s16) (*(u16 **)&D_80186120)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80186124, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80186124, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F054/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F05C file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F058;
extern u8 D_8017F054;
extern s16 *D_8017F05C;
extern u8 D_8017F060;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F054)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F060)[0];
} else {
var_a3 = (*(s16 **)&D_8017F060)[0];
var_v1 = (*(s16 **)&D_8017F054)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F054;
b4 = D_8017F05C;
b8 = *(s16 **)&D_8017F060;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F058)[1];
b4[2] = (s16) (*(u16 **)&D_8017F058)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F05C, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F05C, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F080/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F088 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F084;
extern u8 D_8017F080;
extern s16 *D_8017F088;
extern u8 D_8017F08C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F080)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F08C)[0];
} else {
var_a3 = (*(s16 **)&D_8017F08C)[0];
var_v1 = (*(s16 **)&D_8017F080)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F080;
b4 = D_8017F088;
b8 = *(s16 **)&D_8017F08C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F084)[1];
b4[2] = (s16) (*(u16 **)&D_8017F084)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F088, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F088, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017E72C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017E734 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017E730;
extern u8 D_8017E72C;
extern s16 *D_8017E734;
extern u8 D_8017E738;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017E72C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017E738)[0];
} else {
var_a3 = (*(s16 **)&D_8017E738)[0];
var_v1 = (*(s16 **)&D_8017E72C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017E72C;
b4 = D_8017E734;
b8 = *(s16 **)&D_8017E738;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017E730)[1];
b4[2] = (s16) (*(u16 **)&D_8017E730)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017E734, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017E734, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801909BC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801909C4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801909C0;
extern u8 D_801909BC;
extern s16 *D_801909C4;
extern u8 D_801909C8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801909BC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801909C8)[0];
} else {
var_a3 = (*(s16 **)&D_801909C8)[0];
var_v1 = (*(s16 **)&D_801909BC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801909BC;
b4 = D_801909C4;
b8 = *(s16 **)&D_801909C8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801909C0)[1];
b4[2] = (s16) (*(u16 **)&D_801909C0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801909C4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801909C4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_012/nonmatchings/ov_SC04_012_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017EB90/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017EB98 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017EB94;
extern u8 D_8017EB90;
extern s16 *D_8017EB98;
extern u8 D_8017EB9C;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017EB90)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017EB9C)[0];
} else {
var_a3 = (*(s16 **)&D_8017EB9C)[0];
var_v1 = (*(s16 **)&D_8017EB90)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017EB90;
b4 = D_8017EB98;
b8 = *(s16 **)&D_8017EB9C;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017EB94)[1];
b4[2] = (s16) (*(u16 **)&D_8017EB94)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017EB98, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017EB98, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_80184AC8/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80184AD0 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80184ACC;
extern u8 D_80184AC8;
extern s16 *D_80184AD0;
extern u8 D_80184AD4;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_80184AC8)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80184AD4)[0];
} else {
var_a3 = (*(s16 **)&D_80184AD4)[0];
var_v1 = (*(s16 **)&D_80184AC8)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_80184AC8;
b4 = D_80184AD0;
b8 = *(s16 **)&D_80184AD4;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80184ACC)[1];
b4[2] = (s16) (*(u16 **)&D_80184ACC)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80184AD0, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80184AD0, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018058C/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_80180594 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_80180590;
extern u8 D_8018058C;
extern s16 *D_80180594;
extern u8 D_80180598;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018058C)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_80180598)[0];
} else {
var_a3 = (*(s16 **)&D_80180598)[0];
var_v1 = (*(s16 **)&D_8018058C)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018058C;
b4 = D_80180594;
b8 = *(s16 **)&D_80180598;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_80180590)[1];
b4[2] = (s16) (*(u16 **)&D_80180590)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_80180594, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_80180594, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018D7A4/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018D7AC file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018D7A8;
extern u8 D_8018D7A4;
extern s16 *D_8018D7AC;
extern u8 D_8018D7B0;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018D7A4)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018D7B0)[0];
} else {
var_a3 = (*(s16 **)&D_8018D7B0)[0];
var_v1 = (*(s16 **)&D_8018D7A4)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018D7A4;
b4 = D_8018D7AC;
b8 = *(s16 **)&D_8018D7B0;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018D7A8)[1];
b4[2] = (s16) (*(u16 **)&D_8018D7A8)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018D7AC, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018D7AC, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -840,7 +840,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8018D7A4/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8018D7AC file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8018D7A8;
extern u8 D_8018D7A4;
extern s16 *D_8018D7AC;
extern u8 D_8018D7B0;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8018D7A4)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8018D7B0)[0];
} else {
var_a3 = (*(s16 **)&D_8018D7B0)[0];
var_v1 = (*(s16 **)&D_8018D7A4)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8018D7A4;
b4 = D_8018D7AC;
b8 = *(s16 **)&D_8018D7B0;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8018D7A8)[1];
b4[2] = (s16) (*(u16 **)&D_8018D7A8)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8018D7AC, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8018D7AC, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_801838DC/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_801838E4 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_801838E0;
extern u8 D_801838DC;
extern s16 *D_801838E4;
extern u8 D_801838E8;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_801838DC)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_801838E8)[0];
} else {
var_a3 = (*(s16 **)&D_801838E8)[0];
var_v1 = (*(s16 **)&D_801838DC)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_801838DC;
b4 = D_801838E4;
b8 = *(s16 **)&D_801838E8;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_801838E0)[1];
b4[2] = (s16) (*(u16 **)&D_801838E0)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_801838E4, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_801838E4, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)
+92 -1
View File
@@ -838,7 +838,98 @@ s32 func_80136334(void *arg0, s32 arg1, s32 arg2) {
}
INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_jr_80135D20", func_801365B8);
// @class: regalloc-order — per-location family member of ov_SC01_077 exemplar func_801365B8 (x134).
// @stuck: none — MATCH expected; identical structure, only the 4 data ptrs differ (AC/B0/B4/B8 -> B64/68/6C/70).
// D_8017F808/68/70 file-scope `extern u8` holding pointers -> read via *(T**)&sym (§42c-2).
// D_8017F810 file-scope `extern s16*` -> use directly. D_80126720 file-scope `extern u8[]`
// -> single store via *(s16*)D_80126720. D_801152A8/AA/AC, D_80126722/24 block-scope externs
// (siblings use block-scope; gcc-2.7.2 does not cross-conflict block-scope externs).
extern u8 D_8017F80C;
extern u8 D_8017F808;
extern s16 *D_8017F810;
extern u8 D_8017F814;
extern u8 D_80126720[];
s32 func_801365B8(void *arg0, s32 arg1, s32 arg2) {
extern u8 D_801152A8[];
extern s16 D_801152AA;
extern s16 D_801152AC;
extern s16 D_80126722;
extern s16 D_80126724;
u16 *ac;
s16 *b8;
s16 *b4;
s16 temp_v0;
s16 temp_v1;
s32 var_a3;
s32 temp_a1;
s32 var_a1;
s32 var_v0;
s32 var_v1;
s32 a1c;
s32 a2c;
s32 cond;
register u32 zr __asm__("$0");
__asm__("addu %0,%1,$zero" : "=r"(a1c) : "r"(arg1));
cond = arg1 & 1;
a2c = arg2 + zr;
if (!cond) {
var_v1 = (s16) arg2 - (*(s16 **)&D_8017F808)[0];
var_a1 = var_v1;
var_a3 = -(*(s16 **)&D_8017F814)[0];
} else {
var_a3 = (*(s16 **)&D_8017F814)[0];
var_v1 = (*(s16 **)&D_8017F808)[0] - (s16) arg2;
var_a1 = -var_v1;
}
ac = *(u16 **)&D_8017F808;
b4 = D_8017F810;
b8 = *(s16 **)&D_8017F814;
b4[0] = ac[0] + var_a1;
temp_a1 = -var_v1;
b4[1] = ac[1] + (temp_a1 * b8[1]) / var_a3;
temp_v0 = ac[2] + (temp_a1 * b8[2]) / var_a3;
b4[2] = temp_v0;
var_v0 = 0;
if (temp_v0 < M2C_FIELD(arg0, s16 *, 0xC)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xE) < temp_v0) {
return var_v0;
}
temp_v1 = b4[1];
if (temp_v1 < M2C_FIELD(arg0, s16 *, 8)) {
return var_v0;
}
if (M2C_FIELD(arg0, s16 *, 0xA) < temp_v1) {
return var_v0;
}
__asm__("" :: "r"(a1c));
__asm__("" :: "r"(a1c));
if (a1c & 0x8000) {
b4[1] = (s16) (*(u16 **)&D_8017F80C)[1];
b4[2] = (s16) (*(u16 **)&D_8017F80C)[2];
}
D_801152AC = 0;
D_801152AA = 0;
if ((a1c & 1) != 0) {
*(s16 *)D_801152A8 = 0xFFF;
M2C_FIELD(D_8017F810, s16 *, 0) = a2c + 2;
} else {
*(s16 *)D_801152A8 = -0xFFF;
M2C_FIELD(D_8017F810, s16 *, 0) = a2c - 2;
}
*(s16 *)D_80126720 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 4) + M2C_FIELD(arg0, s16 *, 6)) >> 1);
D_80126722 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 8) + M2C_FIELD(arg0, s16 *, 0xA)) >> 1);
var_v0 = 1;
D_80126724 = (s16) ((s32) (M2C_FIELD(arg0, s16 *, 0xC) + M2C_FIELD(arg0, s16 *, 0xE)) >> 1);
return var_v0;
}
// @class: pointer-type — pointer-vs-array reconcile for func_80136824 (ov_SC01_077_a)

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