From 92afd62e2c6eda78fcecb01b43f494d810df9ae1 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Wed, 9 Jun 2021 21:35:13 -0400 Subject: [PATCH] [decompiler] fix missing casts issue (#573) * fix casts issue * fix bug * one last small fix --- decompiler/IR2/AtomicOp.cpp | 11 +- decompiler/IR2/AtomicOpTypeAnalysis.cpp | 44 ++-- decompiler/IR2/Form.cpp | 9 + decompiler/IR2/FormExpressionAnalysis.cpp | 4 +- decompiler/analysis/variable_naming.cpp | 45 +++- decompiler/config/all-types.gc | 2 +- goal_src/kernel/gkernel.gc | 8 +- .../reference/engine/anim/bones-h_REF.gc | 6 +- .../reference/engine/anim/joint-h_REF.gc | 2 +- .../reference/engine/anim/mspace-h_REF.gc | 2 +- .../reference/engine/camera/camera-h_REF.gc | 2 +- .../engine/camera/math-camera-h_REF.gc | 3 +- .../engine/camera/math-camera_REF.gc | 3 +- .../engine/camera/pov-camera-h_REF.gc | 6 +- .../engine/collide/collide-frag-h_REF.gc | 6 +- .../engine/collide/collide-shape-h_REF.gc | 10 +- .../reference/engine/data/art-h_REF.gc | 2 +- .../reference/engine/data/res-h_REF.gc | 4 +- .../reference/engine/debug/debug-h_REF.gc | 6 +- .../reference/engine/dma/dma-disasm_REF.gc | 8 +- .../reference/engine/dma/dma_REF.gc | 14 +- .../reference/engine/draw/draw-node-h_REF.gc | 6 +- .../engine/draw/drawable-ambient-h_REF.gc | 2 +- .../reference/engine/draw/drawable-h_REF.gc | 2 +- .../draw/drawable-inline-array-h_REF.gc | 4 +- .../engine/draw/process-drawable-h_REF.gc | 9 +- .../reference/engine/engine/connect_REF.gc | 14 +- .../reference/engine/entity/entity-h_REF.gc | 2 +- .../engine/game/effect-control-h_REF.gc | 6 +- .../reference/engine/game/game-h_REF.gc | 2 +- .../engine/game/generic-obs-h_REF.gc | 6 +- .../reference/engine/game/main-h_REF.gc | 2 +- .../engine/game/projectiles-h_REF.gc | 6 +- .../reference/engine/game/settings-h_REF.gc | 6 +- .../engine/game/task/hint-control-h_REF.gc | 3 +- .../engine/game/task/task-control-h_REF.gc | 6 +- .../engine/geometry/bounding-box-h_REF.gc | 3 +- .../engine/geometry/geometry-h_REF.gc | 4 +- .../reference/engine/gfx/background-h_REF.gc | 6 +- .../reference/engine/gfx/decomp-h_REF.gc | 6 +- .../reference/engine/gfx/depth-cue-h_REF.gc | 6 +- .../reference/engine/gfx/eye-h_REF.gc | 2 +- .../reference/engine/gfx/font-h_REF.gc | 2 +- .../engine/gfx/generic/generic-vu1-h_REF.gc | 6 +- .../engine/gfx/generic/generic-work-h_REF.gc | 6 +- .../reference/engine/gfx/hw/display-h_REF.gc | 6 +- .../reference/engine/gfx/hw/display_REF.gc | 6 +- .../reference/engine/gfx/hw/video-h_REF.gc | 2 +- .../reference/engine/gfx/hw/vu1-user-h_REF.gc | 3 +- .../reference/engine/gfx/lights-h_REF.gc | 2 +- .../engine/gfx/merc/generic-merc-h_REF.gc | 6 +- .../reference/engine/gfx/merc/merc-h_REF.gc | 2 +- .../reference/engine/gfx/mood-h_REF.gc | 6 +- .../reference/engine/gfx/ocean/ocean-h_REF.gc | 3 +- .../reference/engine/gfx/ripple_REF.gc | 2 +- .../engine/gfx/shadow/shadow-h_REF.gc | 6 +- .../engine/gfx/shrub/shrubbery-h_REF.gc | 6 +- .../reference/engine/gfx/sky/sky-h_REF.gc | 2 +- .../engine/gfx/sparticle/sparticle-h_REF.gc | 6 +- .../gfx/sparticle/sparticle-launcher-h_REF.gc | 6 +- .../engine/gfx/sprite/sprite-h_REF.gc | 6 +- .../reference/engine/gfx/texture-h_REF.gc | 2 +- .../engine/gfx/tfrag/subdivide-h_REF.gc | 6 +- .../reference/engine/gfx/tfrag/tfrag-h_REF.gc | 6 +- .../engine/gfx/tie/generic-tie-h_REF.gc | 6 +- .../engine/gfx/tie/prototype-h_REF.gc | 6 +- .../reference/engine/gfx/tie/tie-h_REF.gc | 6 +- .../reference/engine/gfx/time-of-day-h_REF.gc | 6 +- .../reference/engine/gfx/vis/bsp-h_REF.gc | 13 +- .../reference/engine/gfx/water/water-h_REF.gc | 6 +- .../reference/engine/load/load-dgo_REF.gc | 6 +- .../reference/engine/load/loader-h_REF.gc | 6 +- .../reference/engine/load/ramdisk_REF.gc | 6 +- .../reference/engine/math/euler-h_REF.gc | 2 +- .../reference/engine/math/math_REF.gc | 2 +- .../reference/engine/math/quaternion-h_REF.gc | 3 +- .../reference/engine/math/transform-h_REF.gc | 3 +- .../reference/engine/math/transformq-h_REF.gc | 6 +- .../engine/physics/dynamics-h_REF.gc | 6 +- .../engine/physics/trajectory-h_REF.gc | 6 +- .../engine/physics/trajectory_REF.gc | 2 +- .../reference/engine/ps2/memcard-h_REF.gc | 8 +- .../reference/engine/ps2/pad_REF.gc | 4 +- .../reference/engine/ps2/rpc-h_REF.gc | 6 +- .../reference/engine/ps2/timer-h_REF.gc | 2 +- .../reference/engine/ps2/vif-h_REF.gc | 4 +- .../reference/engine/sound/gsound-h_REF.gc | 8 +- .../engine/target/joint-mod-h_REF.gc | 109 ++++------ .../reference/engine/target/pat-h_REF.gc | 6 +- .../reference/engine/target/surface-h_REF.gc | 6 +- .../reference/engine/target/target-h_REF.gc | 2 +- .../reference/engine/ui/hud-h_REF.gc | 6 +- .../reference/engine/ui/text-h_REF.gc | 2 +- .../reference/engine/util/sync-info-h_REF.gc | 6 +- test/decompiler/reference/kernel/dgo-h_REF.gc | 3 +- .../reference/kernel/gcommon_REF.gc | 2 +- .../reference/kernel/gkernel-h_REF.gc | 2 +- .../reference/kernel/gkernel_REF.gc | 193 ++++++++---------- .../decompiler/reference/kernel/gstate_REF.gc | 1 + test/decompiler/test_FormExpressionBuild2.cpp | 2 +- test/decompiler/test_gkernel_decomp.cpp | 4 +- test/offline/offline_test_main.cpp | 3 +- 102 files changed, 340 insertions(+), 528 deletions(-) diff --git a/decompiler/IR2/AtomicOp.cpp b/decompiler/IR2/AtomicOp.cpp index 86b6374397..ee19ae4da2 100644 --- a/decompiler/IR2/AtomicOp.cpp +++ b/decompiler/IR2/AtomicOp.cpp @@ -1515,9 +1515,9 @@ RegisterAccess CallOp::get_set_destination() const { void CallOp::update_register_info() { // throw std::runtime_error("CallOp::update_register_info cannot be done until types are known"); m_read_regs.push_back(Register(Reg::GPR, Reg::T9)); - // if the type analysis succeeds, it will remove this if the function doesn't return a value. - // but, in the case we want to keep running without type information, we may need a - // renamed variable here, so we add this. + // previously, if the type analysis succeeds, it would remove this if the function doesn't return + // a value. however, this turned out to be not quite right because GOAL internally thinks that all + // functions return a value. m_write_regs.push_back(Register(Reg::GPR, Reg::V0)); clobber_temps(); } @@ -1528,9 +1528,8 @@ void CallOp::collect_vars(RegAccessSet& vars) const { vars.insert(e); } - if (m_call_type_set && m_call_type.last_arg() != TypeSpec("none")) { - vars.insert(m_return_var); - } + // even if we don't actually return a value, GOAL pretends like we do. + vars.insert(m_return_var); } ///////////////////////////// diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index faa24a35bd..f1df0db77f 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -858,27 +858,25 @@ TP_Type LoadVarOp::get_src_type(const TypeState& input, // of method 0. return TP_Type::make_from_ts(TypeSpec("function")); } - // Assume we're accessing a field of an object. - FieldReverseLookupInput rd_in; - DerefKind dk; - dk.is_store = false; - dk.reg_kind = get_reg_kind(ro.reg); - dk.sign_extend = m_kind == Kind::SIGNED; - dk.size = m_size; - rd_in.deref = dk; - rd_in.base_type = input_type.typespec(); - rd_in.stride = 0; - rd_in.offset = ro.offset; - auto rd = dts.ts.reverse_field_lookup(rd_in); - if (rd.success) { - // load_path_set = true; - // load_path_addr_of = rd.addr_of; - // load_path_base = ro.reg_ir; - // for (auto& x : rd.tokens) { - // load_path.push_back(x.print()); - // } - return TP_Type::make_from_ts(coerce_to_reg_type(rd.result_type)); + // Assume we're accessing a field of an object. + // if we are a pair with sloppy typing, don't use this and instead use the case down below. + if (input_type.typespec() != TypeSpec("pair") || !env.allow_sloppy_pair_typing()) { + FieldReverseLookupInput rd_in; + DerefKind dk; + dk.is_store = false; + dk.reg_kind = get_reg_kind(ro.reg); + dk.sign_extend = m_kind == Kind::SIGNED; + dk.size = m_size; + rd_in.deref = dk; + rd_in.base_type = input_type.typespec(); + rd_in.stride = 0; + rd_in.offset = ro.offset; + auto rd = dts.ts.reverse_field_lookup(rd_in); + + if (rd.success) { + return TP_Type::make_from_ts(coerce_to_reg_type(rd.result_type)); + } } if (input_type.typespec() == TypeSpec("pointer") || @@ -1087,10 +1085,10 @@ TypeState CallOp::propagate_types_internal(const TypeState& input, m_arg_vars.push_back(RegisterAccess(AccessMode::READ, m_read_regs.back(), m_my_idx)); } + // _always_ write the v0 register, even if the function returns none. + // GOAL seems to insert coloring moves even on functions returning none. m_write_regs.clear(); - if (in_type.last_arg() != TypeSpec("none")) { - m_write_regs.emplace_back(Reg::GPR, Reg::V0); - } + m_write_regs.emplace_back(Reg::GPR, Reg::V0); return end_types; } diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index b40a708fb6..c8db019b52 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -1645,6 +1645,12 @@ CastElement::CastElement(TypeSpec type, Form* source, bool numeric) } goos::Object CastElement::to_form_internal(const Env& env) const { + auto atom = form_as_atom(m_source); + if (atom && atom->is_var()) { + return pretty_print::build_list( + m_numeric ? "the" : "the-as", m_type.print(), + atom->var().to_form(env, RegisterAccess::Print::AS_VARIABLE_NO_CAST)); + } return pretty_print::build_list(m_numeric ? "the" : "the-as", m_type.print(), m_source->to_form(env)); } @@ -2173,6 +2179,9 @@ void LetElement::apply_form(const std::function& f) { void LetElement::collect_vars(RegAccessSet& vars, bool recursive) const { for (auto& entry : m_entries) { vars.insert(entry.dest); + if (recursive) { + entry.src->collect_vars(vars, recursive); + } } m_body->collect_vars(vars, recursive); } diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index ffbee04b8c..fca204f991 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -3131,8 +3131,9 @@ void push_asm_pextuw_to_stack(const AsmOp* op, } } +/* void push_asm_madds_to_stack(const AsmOp* op, - FormElement* /*form_elt*/, + FormElement* form_elt, const Env& env, FormPool& pool, FormStack& stack) { @@ -3153,6 +3154,7 @@ void push_asm_madds_to_stack(const AsmOp* op, nullptr, GenericOperator::make_fixed(FixedOperatorKind::ASM_MADDS), vars), true, env.get_variable_type(*dst, true)); } +*/ void push_asm_to_stack(const AsmOp* op, FormElement* form_elt, diff --git a/decompiler/analysis/variable_naming.cpp b/decompiler/analysis/variable_naming.cpp index 763c3feefa..f374350454 100644 --- a/decompiler/analysis/variable_naming.cpp +++ b/decompiler/analysis/variable_naming.cpp @@ -590,18 +590,56 @@ void update_var_info(VariableNames::VarInfo* info, const TypeState& ts, int var_id, const DecompilerTypeSystem& dts) { + auto& type = ts.get(reg); if (info->initialized) { assert(info->reg_id.id == var_id); assert(info->reg_id.reg == reg); + bool changed; - info->type = dts.tp_lca(info->type, ts.get(reg), &changed); + info->type = dts.tp_lca(info->type, type, &changed); + } else { info->reg_id.id = var_id; info->reg_id.reg = reg; - info->type = ts.get(reg); + + info->type = type; + info->initialized = true; } } + +bool merge_infos(VariableNames::VarInfo* info1, + VariableNames::VarInfo* info2, + const DecompilerTypeSystem& dts) { + if (info1->initialized && info2->initialized) { + bool changed; + auto new_type = dts.tp_lca(info1->type, info2->type, &changed); + if (changed) { + // fmt::print("changed new to {} from {} {} ({} {})\n", new_type.print(), + // info1->type.print(), + // info2->type.print(), info1->reg_id.print(), info2->reg_id.print()); + info1->type = new_type; + info2->type = new_type; + + return true; + } + } + return false; +} + +void merge_infos( + std::unordered_map, Register::hash>& info1, + std::unordered_map, Register::hash>& info2, + const DecompilerTypeSystem& dts) { + for (auto& [reg, infos] : info1) { + auto other = info2.find(reg); + if (other != info2.end()) { + for (size_t i = 0; i < std::min(other->second.size(), infos.size()); i++) { + merge_infos(&infos.at(i), &other->second.at(i), dts); + } + } + } +} } // namespace /*! @@ -613,6 +651,7 @@ void SSA::make_vars(const Function& function, const DecompilerTypeSystem& dts) { const TypeState* init_types = &function.ir2.env.get_types_at_block_entry(block_id); for (auto& instr : block.ins) { auto op_id = instr.op_id; + const TypeState* end_types = &function.ir2.env.get_types_after_op(op_id); if (instr.dst.has_value()) { @@ -645,6 +684,8 @@ void SSA::make_vars(const Function& function, const DecompilerTypeSystem& dts) { } } + merge_infos(program_write_vars, program_read_vars, dts); + // copy types from input argument coloring moves: for (auto& instr : blocks.at(0).ins) { if (instr.is_arg_coloring_move) { diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index aee1c3dc46..7308fe78ab 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -836,7 +836,7 @@ (define-extern *listener-function* (function object)) (define-extern reset-and-call (function thread function object)) (define-extern execute-process-tree (function process-tree (function object object) kernel-context object)) -(define-extern search-process-tree (function process-tree (function process-tree object) process)) +(define-extern search-process-tree (function process-tree (function process-tree object) process-tree)) (define-extern iterate-process-tree (function process-tree (function object object) kernel-context object)) (define-extern process-not-name (function object process-tree process)) (define-extern process-by-name (function object process-tree process)) diff --git a/goal_src/kernel/gkernel.gc b/goal_src/kernel/gkernel.gc index 6347cc91e4..49abb161eb 100644 --- a/goal_src/kernel/gkernel.gc +++ b/goal_src/kernel/gkernel.gc @@ -1476,7 +1476,7 @@ (define *global-search-name* (the basic #f)) (define *global-search-count* 0) -(define-extern search-process-tree (function process-tree (function process-tree object) process)) +(define-extern search-process-tree (function process-tree (function process-tree object) process-tree)) (define-extern iterate-process-tree (function process-tree (function object object) kernel-context object)) (define-extern execute-process-tree (function process-tree (function object object) kernel-context object)) @@ -1617,7 +1617,7 @@ (unless (process-mask? (-> obj mask) process-tree) ;; is this a match? (when (func obj) - (return-from #f (the process obj)) + (return-from #f obj) ) ) @@ -1627,14 +1627,14 @@ (let ((temp (-> (-> brother) brother))) (let ((ret (search-process-tree (-> brother) func))) (when ret - (return-from #f (the process ret)) + (return-from #f ret) ) ) (set! brother temp) ) ) ) - (the process #f) + (the process-tree #f) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/test/decompiler/reference/engine/anim/bones-h_REF.gc b/test/decompiler/reference/engine/anim/bones-h_REF.gc index 33e9bef2ba..f9be65863e 100644 --- a/test/decompiler/reference/engine/anim/bones-h_REF.gc +++ b/test/decompiler/reference/engine/anim/bones-h_REF.gc @@ -226,9 +226,5 @@ ) ;; failed to figure out what this is: -(let ((v0-9 0)) +(let ((v0-18 0)) ) - - - - diff --git a/test/decompiler/reference/engine/anim/joint-h_REF.gc b/test/decompiler/reference/engine/anim/joint-h_REF.gc index c89dd44bb7..7c654b47e2 100644 --- a/test/decompiler/reference/engine/anim/joint-h_REF.gc +++ b/test/decompiler/reference/engine/anim/joint-h_REF.gc @@ -192,5 +192,5 @@ ) ;; failed to figure out what this is: -(let ((v0-5 0)) +(let ((v0-10 0)) ) diff --git a/test/decompiler/reference/engine/anim/mspace-h_REF.gc b/test/decompiler/reference/engine/anim/mspace-h_REF.gc index a90bc2966f..72500450a1 100644 --- a/test/decompiler/reference/engine/anim/mspace-h_REF.gc +++ b/test/decompiler/reference/engine/anim/mspace-h_REF.gc @@ -153,5 +153,5 @@ ) ;; failed to figure out what this is: -(let ((v0-6 0)) +(let ((v0-13 0)) ) diff --git a/test/decompiler/reference/engine/camera/camera-h_REF.gc b/test/decompiler/reference/engine/camera/camera-h_REF.gc index 1d3849214f..a06aa44e21 100644 --- a/test/decompiler/reference/engine/camera/camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/camera-h_REF.gc @@ -842,5 +842,5 @@ ) ;; failed to figure out what this is: -(let ((v0-11 0)) +(let ((v0-28 0)) ) diff --git a/test/decompiler/reference/engine/camera/math-camera-h_REF.gc b/test/decompiler/reference/engine/camera/math-camera-h_REF.gc index b8506a913e..cf51ea526b 100644 --- a/test/decompiler/reference/engine/camera/math-camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/math-camera-h_REF.gc @@ -191,6 +191,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-6 0)) ) - diff --git a/test/decompiler/reference/engine/camera/math-camera_REF.gc b/test/decompiler/reference/engine/camera/math-camera_REF.gc index 28e009c748..6c7ee71ad0 100644 --- a/test/decompiler/reference/engine/camera/math-camera_REF.gc +++ b/test/decompiler/reference/engine/camera/math-camera_REF.gc @@ -145,8 +145,7 @@ ) ) (fog-corrector-setup *math-camera-fog-correction* math-cam) - (let ((v0-1 (matrix-identity! (-> math-cam camera-rot)))) - ) + (matrix-identity! (-> math-cam camera-rot)) (let ((fog-constant-1 100.0) (fog-constant-2 16760631.0) ) diff --git a/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc b/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc index cfae9b3491..38612b11fa 100644 --- a/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc +++ b/test/decompiler/reference/engine/camera/pov-camera-h_REF.gc @@ -47,9 +47,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) - - - - diff --git a/test/decompiler/reference/engine/collide/collide-frag-h_REF.gc b/test/decompiler/reference/engine/collide/collide-frag-h_REF.gc index a0460520e3..11b2a4766a 100644 --- a/test/decompiler/reference/engine/collide/collide-frag-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-frag-h_REF.gc @@ -104,9 +104,5 @@ ) ;; failed to figure out what this is: -(let ((v0-5 0)) +(let ((v0-9 0)) ) - - - - diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index 809183cc1d..722e701656 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -617,7 +617,7 @@ ) (set! (-> obj pat) (the-as uint 16)) (set! (-> obj prim-core prim-type) -1) - (the-as collide-shape-prim-sphere (the-as collide-shape-prim obj)) + (the-as collide-shape-prim-sphere obj) ) ) @@ -650,7 +650,7 @@ (set! (-> obj mesh-id) (the-as int mesh-id)) (set! (-> obj mesh-cache-id) (the-as uint 0)) (set! (-> obj prim-core prim-type) 1) - (the-as collide-shape-prim-mesh (the-as collide-shape-prim obj)) + (the-as collide-shape-prim-mesh obj) ) ) @@ -687,7 +687,7 @@ (set! (-> obj prim elt-count) (the-as uint #f)) (nop!) ) - (the-as collide-shape-prim-group (the-as collide-shape-prim obj)) + (the-as collide-shape-prim-group obj) ) ) @@ -853,7 +853,3 @@ :mesh #f ) ) - - - - diff --git a/test/decompiler/reference/engine/data/art-h_REF.gc b/test/decompiler/reference/engine/data/art-h_REF.gc index c8d5416600..4d15697306 100644 --- a/test/decompiler/reference/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/engine/data/art-h_REF.gc @@ -504,5 +504,5 @@ ) ;; failed to figure out what this is: -(let ((v0-21 0)) +(let ((v0-37 0)) ) diff --git a/test/decompiler/reference/engine/data/res-h_REF.gc b/test/decompiler/reference/engine/data/res-h_REF.gc index 7999dc3e92..1d209e3b02 100644 --- a/test/decompiler/reference/engine/data/res-h_REF.gc +++ b/test/decompiler/reference/engine/data/res-h_REF.gc @@ -63,7 +63,5 @@ (define *res-key-string* (new 'global 'string 64 (the-as string #f))) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-4 0)) ) - - diff --git a/test/decompiler/reference/engine/debug/debug-h_REF.gc b/test/decompiler/reference/engine/debug/debug-h_REF.gc index 756b95d079..105e319c98 100644 --- a/test/decompiler/reference/engine/debug/debug-h_REF.gc +++ b/test/decompiler/reference/engine/debug/debug-h_REF.gc @@ -66,9 +66,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-6 0)) ) - - - - diff --git a/test/decompiler/reference/engine/dma/dma-disasm_REF.gc b/test/decompiler/reference/engine/dma/dma-disasm_REF.gc index cb6b3fe736..f0175ebd37 100644 --- a/test/decompiler/reference/engine/dma/dma-disasm_REF.gc +++ b/test/decompiler/reference/engine/dma/dma-disasm_REF.gc @@ -734,16 +734,16 @@ (set! qwc (the-as int (-> current-tag qwc))) (when mode-2 (let - ((v0-9 + ((v0-10 (disasm-vif-tag (&-> data-2 vif0) 2 stream-2 (= mode-2 'details)) ) ) (disasm-vif-tag (the-as (pointer vif-tag) - (+ (the-as uint addr) (the-as uint v0-9)) + (+ (the-as uint addr) (the-as uint v0-10)) ) - (the-as int (- (* qwc 4) (the-as uint (/ v0-9 4)))) + (the-as int (- (* qwc 4) (the-as uint (/ v0-10 4)))) stream-2 (= mode-2 'details) ) @@ -878,7 +878,7 @@ (set! addr (&-> (the-as (pointer uint64) data-2) 2)) (set! qwc (the-as int (-> current-tag qwc))) (set! end-condition #t) - (let ((v0-16 (if mode-2 + (let ((v0-17 (if mode-2 (disasm-vif-tag (the-as (pointer vif-tag) diff --git a/test/decompiler/reference/engine/dma/dma_REF.gc b/test/decompiler/reference/engine/dma/dma_REF.gc index 039ae6332d..9f1d535890 100644 --- a/test/decompiler/reference/engine/dma/dma_REF.gc +++ b/test/decompiler/reference/engine/dma/dma_REF.gc @@ -50,7 +50,7 @@ (.sync.l) (set! (-> arg0 chcr) (new 'static 'dma-chcr :str #x1)) (.sync.l) - (let ((v0-1 0)) + (let ((v0-2 0)) ) (none) ) @@ -82,7 +82,7 @@ (new 'static 'dma-chcr :dir #x1 :mod #x1 :tte #x1 :str #x1) ) (.sync.l) - (let ((v0-1 0)) + (let ((v0-2 0)) ) (none) ) @@ -111,7 +111,7 @@ (.sync.l) (set! (-> arg0 chcr) (new 'static 'dma-chcr :dir #x1 :mod #x1 :str #x1)) (.sync.l) - (let ((v0-1 0)) + (let ((v0-2 0)) ) (none) ) @@ -167,7 +167,7 @@ (dma-sync (the-as pointer s5-0) 0 0) ) ) - (let ((v0-2 0)) + (let ((v0-3 0)) ) (none) ) @@ -218,7 +218,7 @@ (dma-sync (the-as pointer s5-0) 0 0) ) ) - (let ((v0-2 0)) + (let ((v0-3 0)) ) (none) ) @@ -351,7 +351,7 @@ (reset-path) (reset-graph 1 1 *video-reset-parm* 1) (format 0 "gkernel: vif1 path reset!~%") - (let ((v0-3 0)) + (let ((v0-5 0)) ) (none) ) @@ -397,7 +397,7 @@ ) ) ) - (let ((v0-4 0)) + (let ((v0-5 0)) ) (none) ) diff --git a/test/decompiler/reference/engine/draw/draw-node-h_REF.gc b/test/decompiler/reference/engine/draw/draw-node-h_REF.gc index 5c84ace690..b8b1836a28 100644 --- a/test/decompiler/reference/engine/draw/draw-node-h_REF.gc +++ b/test/decompiler/reference/engine/draw/draw-node-h_REF.gc @@ -46,9 +46,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-5 0)) ) - - - - diff --git a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc index 94f3a29f7e..66324bd4c9 100644 --- a/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-ambient-h_REF.gc @@ -111,5 +111,5 @@ ) ;; failed to figure out what this is: -(let ((v0-5 0)) +(let ((v0-10 0)) ) diff --git a/test/decompiler/reference/engine/draw/drawable-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-h_REF.gc index 360e11af63..f775ba02d2 100644 --- a/test/decompiler/reference/engine/draw/drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-h_REF.gc @@ -49,5 +49,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-4 0)) ) diff --git a/test/decompiler/reference/engine/draw/drawable-inline-array-h_REF.gc b/test/decompiler/reference/engine/draw/drawable-inline-array-h_REF.gc index 1ff2310b95..d2dc81ed91 100644 --- a/test/decompiler/reference/engine/draw/drawable-inline-array-h_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable-inline-array-h_REF.gc @@ -20,7 +20,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) - - diff --git a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc index 53e648b980..6da3801221 100644 --- a/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc +++ b/test/decompiler/reference/engine/draw/process-drawable-h_REF.gc @@ -114,11 +114,10 @@ ;; definition for function num-func-blend-in! (defun num-func-blend-in! ((arg0 joint-control-channel) (arg1 float)) - (let* - ((v0-0 + (let + ((f30-0 (seek (-> arg0 frame-interp) 1.0 (* arg1 (-> *display* time-adjust-ratio))) ) - (f30-0 (the-as float v0-0)) ) (set! (-> arg0 frame-interp) f30-0) (set! (-> arg0 frame-interp) f30-0) @@ -158,7 +157,3 @@ ;; failed to figure out what this is: (let ((v0-0 0)) ) - - - - diff --git a/test/decompiler/reference/engine/engine/connect_REF.gc b/test/decompiler/reference/engine/engine/connect_REF.gc index fbc5169075..7b3b032ddd 100644 --- a/test/decompiler/reference/engine/engine/connect_REF.gc +++ b/test/decompiler/reference/engine/engine/connect_REF.gc @@ -164,10 +164,16 @@ ((allocation symbol) (type-to-make type) (name basic) (length int)) (let ((obj - (object-new - allocation - type-to-make - (the-as int (+ (-> type-to-make size) (the-as uint (* (+ length -1) 32)))) + (the-as + object + (object-new + allocation + type-to-make + (the-as + int + (+ (-> type-to-make size) (the-as uint (* (+ length -1) 32))) + ) + ) ) ) ) diff --git a/test/decompiler/reference/engine/entity/entity-h_REF.gc b/test/decompiler/reference/engine/entity/entity-h_REF.gc index 71b36f4a53..a5ff9e71a6 100644 --- a/test/decompiler/reference/engine/entity/entity-h_REF.gc +++ b/test/decompiler/reference/engine/entity/entity-h_REF.gc @@ -310,5 +310,5 @@ ) ;; failed to figure out what this is: -(let ((v0-12 0)) +(let ((v0-20 0)) ) diff --git a/test/decompiler/reference/engine/game/effect-control-h_REF.gc b/test/decompiler/reference/engine/game/effect-control-h_REF.gc index bcf797868b..c3bbf0a4f9 100644 --- a/test/decompiler/reference/engine/game/effect-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/effect-control-h_REF.gc @@ -81,9 +81,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-4 0)) ) - - - - diff --git a/test/decompiler/reference/engine/game/game-h_REF.gc b/test/decompiler/reference/engine/game/game-h_REF.gc index 99e1f4b3f0..17a6468da7 100644 --- a/test/decompiler/reference/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/engine/game/game-h_REF.gc @@ -189,5 +189,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-8 0)) ) diff --git a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc index 32f79328ba..5a71a1bcf9 100644 --- a/test/decompiler/reference/engine/game/generic-obs-h_REF.gc +++ b/test/decompiler/reference/engine/game/generic-obs-h_REF.gc @@ -348,9 +348,5 @@ ) ;; failed to figure out what this is: -(let ((v0-9 0)) +(let ((v0-18 0)) ) - - - - diff --git a/test/decompiler/reference/engine/game/main-h_REF.gc b/test/decompiler/reference/engine/game/main-h_REF.gc index f243f10742..656dae0bd3 100644 --- a/test/decompiler/reference/engine/game/main-h_REF.gc +++ b/test/decompiler/reference/engine/game/main-h_REF.gc @@ -326,5 +326,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-4 0)) ) diff --git a/test/decompiler/reference/engine/game/projectiles-h_REF.gc b/test/decompiler/reference/engine/game/projectiles-h_REF.gc index 6b4f6f1c9e..8aea6a3912 100644 --- a/test/decompiler/reference/engine/game/projectiles-h_REF.gc +++ b/test/decompiler/reference/engine/game/projectiles-h_REF.gc @@ -116,9 +116,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-6 0)) ) - - - - diff --git a/test/decompiler/reference/engine/game/settings-h_REF.gc b/test/decompiler/reference/engine/game/settings-h_REF.gc index 63e845f847..aba24d7bf3 100644 --- a/test/decompiler/reference/engine/game/settings-h_REF.gc +++ b/test/decompiler/reference/engine/game/settings-h_REF.gc @@ -218,9 +218,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-7 0)) ) - - - - diff --git a/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc b/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc index ab66a46f4a..f30c98201b 100644 --- a/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/hint-control-h_REF.gc @@ -74,6 +74,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-6 0)) ) - diff --git a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc index 6af72c1dd6..97b11c85a5 100644 --- a/test/decompiler/reference/engine/game/task/task-control-h_REF.gc +++ b/test/decompiler/reference/engine/game/task/task-control-h_REF.gc @@ -190,9 +190,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-8 0)) ) - - - - diff --git a/test/decompiler/reference/engine/geometry/bounding-box-h_REF.gc b/test/decompiler/reference/engine/geometry/bounding-box-h_REF.gc index eaa728951d..adfe6a68dd 100644 --- a/test/decompiler/reference/engine/geometry/bounding-box-h_REF.gc +++ b/test/decompiler/reference/engine/geometry/bounding-box-h_REF.gc @@ -65,6 +65,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-6 0)) ) - diff --git a/test/decompiler/reference/engine/geometry/geometry-h_REF.gc b/test/decompiler/reference/engine/geometry/geometry-h_REF.gc index a2cdcf9b85..df13f3f289 100644 --- a/test/decompiler/reference/engine/geometry/geometry-h_REF.gc +++ b/test/decompiler/reference/engine/geometry/geometry-h_REF.gc @@ -54,7 +54,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-4 0)) ) - - diff --git a/test/decompiler/reference/engine/gfx/background-h_REF.gc b/test/decompiler/reference/engine/gfx/background-h_REF.gc index 1b667716d5..26565b18f5 100644 --- a/test/decompiler/reference/engine/gfx/background-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/background-h_REF.gc @@ -80,9 +80,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/decomp-h_REF.gc b/test/decompiler/reference/engine/gfx/decomp-h_REF.gc index ce04804d85..3b028fe325 100644 --- a/test/decompiler/reference/engine/gfx/decomp-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/decomp-h_REF.gc @@ -24,9 +24,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/depth-cue-h_REF.gc b/test/decompiler/reference/engine/gfx/depth-cue-h_REF.gc index 78500a5c7b..2c5a590729 100644 --- a/test/decompiler/reference/engine/gfx/depth-cue-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/depth-cue-h_REF.gc @@ -64,9 +64,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-4 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/eye-h_REF.gc b/test/decompiler/reference/engine/gfx/eye-h_REF.gc index b3db3fd1f8..471f3b3eb7 100644 --- a/test/decompiler/reference/engine/gfx/eye-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/eye-h_REF.gc @@ -107,5 +107,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-8 0)) ) diff --git a/test/decompiler/reference/engine/gfx/font-h_REF.gc b/test/decompiler/reference/engine/gfx/font-h_REF.gc index 817bfa034f..840ad3433f 100644 --- a/test/decompiler/reference/engine/gfx/font-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/font-h_REF.gc @@ -774,5 +774,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-20 0)) ) diff --git a/test/decompiler/reference/engine/gfx/generic/generic-vu1-h_REF.gc b/test/decompiler/reference/engine/gfx/generic/generic-vu1-h_REF.gc index d22c00861e..15e893e2f3 100644 --- a/test/decompiler/reference/engine/gfx/generic/generic-vu1-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/generic/generic-vu1-h_REF.gc @@ -80,9 +80,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-6 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/generic/generic-work-h_REF.gc b/test/decompiler/reference/engine/gfx/generic/generic-work-h_REF.gc index f5a8088bb6..13f4e8227e 100644 --- a/test/decompiler/reference/engine/gfx/generic/generic-work-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/generic/generic-work-h_REF.gc @@ -185,9 +185,5 @@ (define *generic-debug* (new 'global 'generic-debug)) ;; failed to figure out what this is: -(let ((v0-9 0)) +(let ((v0-17 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc b/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc index a94d6c1276..df3263bda3 100644 --- a/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display-h_REF.gc @@ -345,9 +345,5 @@ (define *post-draw-hook* nothing) ;; failed to figure out what this is: -(let ((v0-5 0)) +(let ((v0-12 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/hw/display_REF.gc b/test/decompiler/reference/engine/gfx/hw/display_REF.gc index 9ead0dfa02..3833b9b74c 100644 --- a/test/decompiler/reference/engine/gfx/hw/display_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/display_REF.gc @@ -571,11 +571,7 @@ ) (set! (-> a2-4 base) (&+ gif-buf 32)) ) - (let - ((total-qwc - (/ (&+ (- -16 (the-as int (the-as pointer end-dma))) (-> buf base)) 16) - ) - ) + (let ((total-qwc (/ (&+ (- -16 (the-as int end-dma)) (-> buf base)) 16))) (cond ((nonzero? total-qwc) (set! diff --git a/test/decompiler/reference/engine/gfx/hw/video-h_REF.gc b/test/decompiler/reference/engine/gfx/hw/video-h_REF.gc index 3e9883168a..caa9c29e15 100644 --- a/test/decompiler/reference/engine/gfx/hw/video-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/video-h_REF.gc @@ -73,5 +73,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) diff --git a/test/decompiler/reference/engine/gfx/hw/vu1-user-h_REF.gc b/test/decompiler/reference/engine/gfx/hw/vu1-user-h_REF.gc index b4b756090f..5e8baeeb3d 100644 --- a/test/decompiler/reference/engine/gfx/hw/vu1-user-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/vu1-user-h_REF.gc @@ -110,6 +110,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-8 0)) ) - diff --git a/test/decompiler/reference/engine/gfx/lights-h_REF.gc b/test/decompiler/reference/engine/gfx/lights-h_REF.gc index 6631dd37eb..9b9e607ccb 100644 --- a/test/decompiler/reference/engine/gfx/lights-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/lights-h_REF.gc @@ -206,5 +206,5 @@ ) ;; failed to figure out what this is: -(let ((v0-9 0)) +(let ((v0-19 0)) ) diff --git a/test/decompiler/reference/engine/gfx/merc/generic-merc-h_REF.gc b/test/decompiler/reference/engine/gfx/merc/generic-merc-h_REF.gc index b46df432e7..363dcfd4fa 100644 --- a/test/decompiler/reference/engine/gfx/merc/generic-merc-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/merc/generic-merc-h_REF.gc @@ -281,9 +281,5 @@ ) ;; failed to figure out what this is: -(let ((v0-9 0)) +(let ((v0-18 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/merc/merc-h_REF.gc b/test/decompiler/reference/engine/gfx/merc/merc-h_REF.gc index c3ed098405..73d6b78303 100644 --- a/test/decompiler/reference/engine/gfx/merc/merc-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/merc/merc-h_REF.gc @@ -718,5 +718,5 @@ ) ;; failed to figure out what this is: -(let ((v0-23 0)) +(let ((v0-47 0)) ) diff --git a/test/decompiler/reference/engine/gfx/mood-h_REF.gc b/test/decompiler/reference/engine/gfx/mood-h_REF.gc index e9ee8cdd01..fe74e4c101 100644 --- a/test/decompiler/reference/engine/gfx/mood-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/mood-h_REF.gc @@ -258,9 +258,5 @@ ) ;; failed to figure out what this is: -(let ((v0-7 0)) +(let ((v0-15 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc b/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc index a414eed338..8a63afcab3 100644 --- a/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/ocean/ocean-h_REF.gc @@ -818,6 +818,5 @@ ) ;; failed to figure out what this is: -(let ((v0-32 0)) +(let ((v0-64 0)) ) - diff --git a/test/decompiler/reference/engine/gfx/ripple_REF.gc b/test/decompiler/reference/engine/gfx/ripple_REF.gc index f9dd6e65b5..efe367714f 100644 --- a/test/decompiler/reference/engine/gfx/ripple_REF.gc +++ b/test/decompiler/reference/engine/gfx/ripple_REF.gc @@ -126,7 +126,7 @@ ) ) (set! (-> *ripple-globals* count) 0) - (let ((v0-3 0)) + (let ((v0-4 0)) ) ) (none) diff --git a/test/decompiler/reference/engine/gfx/shadow/shadow-h_REF.gc b/test/decompiler/reference/engine/gfx/shadow/shadow-h_REF.gc index c8774939d9..d94688657d 100644 --- a/test/decompiler/reference/engine/gfx/shadow/shadow-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/shadow/shadow-h_REF.gc @@ -60,9 +60,5 @@ (define *fake-shadow-buffer* *fake-shadow-buffer-1*) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-6 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/shrub/shrubbery-h_REF.gc b/test/decompiler/reference/engine/gfx/shrub/shrubbery-h_REF.gc index 79924600c5..98fba2050e 100644 --- a/test/decompiler/reference/engine/gfx/shrub/shrubbery-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/shrub/shrubbery-h_REF.gc @@ -465,9 +465,5 @@ ) ;; failed to figure out what this is: -(let ((v0-14 0)) +(let ((v0-23 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc b/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc index 6b689bb617..dc0ba08d58 100644 --- a/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sky/sky-h_REF.gc @@ -309,5 +309,5 @@ (define *cloud-drawn* #f) ;; failed to figure out what this is: -(let ((v0-15 0)) +(let ((v0-27 0)) ) diff --git a/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc b/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc index 69341d33bf..e0ce563371 100644 --- a/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sparticle/sparticle-h_REF.gc @@ -152,9 +152,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-7 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc b/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc index c97686764b..5e54ff3e27 100644 --- a/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sparticle/sparticle-launcher-h_REF.gc @@ -215,9 +215,5 @@ (set! (-> sparticle-launch-control heap-base) (the-as uint 32)) ;; failed to figure out what this is: -(let ((v0-6 0)) +(let ((v0-12 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/sprite/sprite-h_REF.gc b/test/decompiler/reference/engine/gfx/sprite/sprite-h_REF.gc index 9a52a60293..12bb391818 100644 --- a/test/decompiler/reference/engine/gfx/sprite/sprite-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/sprite/sprite-h_REF.gc @@ -158,9 +158,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-8 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/texture-h_REF.gc b/test/decompiler/reference/engine/gfx/texture-h_REF.gc index 10e1402d37..88f27d1782 100644 --- a/test/decompiler/reference/engine/gfx/texture-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/texture-h_REF.gc @@ -403,5 +403,5 @@ (define *ocean-base-page* 0) ;; failed to figure out what this is: -(let ((v0-14 0)) +(let ((v0-25 0)) ) diff --git a/test/decompiler/reference/engine/gfx/tfrag/subdivide-h_REF.gc b/test/decompiler/reference/engine/gfx/tfrag/subdivide-h_REF.gc index 551989872e..2f4782f9dc 100644 --- a/test/decompiler/reference/engine/gfx/tfrag/subdivide-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tfrag/subdivide-h_REF.gc @@ -397,9 +397,5 @@ (define *collide-stats* (new 'global 'collide-stats)) ;; failed to figure out what this is: -(let ((v0-17 0)) +(let ((v0-33 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc b/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc index ebdfda25da..bf13aed127 100644 --- a/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tfrag/tfrag-h_REF.gc @@ -476,9 +476,5 @@ ) ;; failed to figure out what this is: -(let ((v0-19 0)) +(let ((v0-30 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/tie/generic-tie-h_REF.gc b/test/decompiler/reference/engine/gfx/tie/generic-tie-h_REF.gc index d4e4bceeae..438ff13aef 100644 --- a/test/decompiler/reference/engine/gfx/tie/generic-tie-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/generic-tie-h_REF.gc @@ -464,9 +464,5 @@ ) ;; failed to figure out what this is: -(let ((v0-15 0)) +(let ((v0-30 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc b/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc index 8a736beab9..8bda5df92b 100644 --- a/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/prototype-h_REF.gc @@ -264,9 +264,5 @@ ) ;; failed to figure out what this is: -(let ((v0-8 0)) +(let ((v0-16 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/tie/tie-h_REF.gc b/test/decompiler/reference/engine/gfx/tie/tie-h_REF.gc index fda3164511..fa0b4249bc 100644 --- a/test/decompiler/reference/engine/gfx/tie/tie-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/tie/tie-h_REF.gc @@ -423,9 +423,5 @@ (define *instance-tie-work-copy* (the-as basic #f)) ;; failed to figure out what this is: -(let ((v0-10 0)) +(let ((v0-18 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc b/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc index 563949fa43..5e57cae363 100644 --- a/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc @@ -218,9 +218,5 @@ (define *time-of-day-context* (new 'static 'time-of-day-context)) ;; failed to figure out what this is: -(let ((v0-7 0)) +(let ((v0-13 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc b/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc index b68f5d576f..791bff20a5 100644 --- a/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/vis/bsp-h_REF.gc @@ -139,13 +139,12 @@ ) (else (format #t "_#x~X________________~%" arg1) - (let ((v0-1 (the-as object (inspect arg1))) - (s4-0 *print-column*) - ) + (inspect arg1) + (let ((s4-0 *print-column*)) (set! *print-column* (+ *print-column* (the-as uint 64))) (if (> (-> arg1 front) 0) (inspect-bsp-tree arg0 (the-as bsp-node (-> arg1 front))) - (set! v0-1 (format #t "_#x~X________________~%" arg1)) + (format #t "_#x~X________________~%" arg1) ) (if (> (-> arg1 back) 0) (inspect-bsp-tree arg0 (the-as bsp-node (-> arg1 back))) @@ -239,9 +238,5 @@ ) ;; failed to figure out what this is: -(let ((v0-6 0)) +(let ((v0-12 0)) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc index 6e393bc6d6..ba92e459c9 100644 --- a/test/decompiler/reference/engine/gfx/water/water-h_REF.gc +++ b/test/decompiler/reference/engine/gfx/water/water-h_REF.gc @@ -178,9 +178,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-7 0)) ) - - - - diff --git a/test/decompiler/reference/engine/load/load-dgo_REF.gc b/test/decompiler/reference/engine/load/load-dgo_REF.gc index fb19ae143d..47482a6f22 100644 --- a/test/decompiler/reference/engine/load/load-dgo_REF.gc +++ b/test/decompiler/reference/engine/load/load-dgo_REF.gc @@ -288,7 +288,7 @@ ) ) ) - (the-as pointer (the-as uint load-location)) + (the-as pointer load-location) ) ) @@ -417,7 +417,3 @@ ) (none) ) - - - - diff --git a/test/decompiler/reference/engine/load/loader-h_REF.gc b/test/decompiler/reference/engine/load/loader-h_REF.gc index b7d1044267..7584a7d1ef 100644 --- a/test/decompiler/reference/engine/load/loader-h_REF.gc +++ b/test/decompiler/reference/engine/load/loader-h_REF.gc @@ -272,9 +272,5 @@ ) ;; failed to figure out what this is: -(let ((v0-5 0)) +(let ((v0-12 0)) ) - - - - diff --git a/test/decompiler/reference/engine/load/ramdisk_REF.gc b/test/decompiler/reference/engine/load/ramdisk_REF.gc index fc0c693cba..7eac6b7f48 100644 --- a/test/decompiler/reference/engine/load/ramdisk_REF.gc +++ b/test/decompiler/reference/engine/load/ramdisk_REF.gc @@ -101,9 +101,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-7 0)) ) - - - - diff --git a/test/decompiler/reference/engine/math/euler-h_REF.gc b/test/decompiler/reference/engine/math/euler-h_REF.gc index 2ab51ca668..f02b528e8b 100644 --- a/test/decompiler/reference/engine/math/euler-h_REF.gc +++ b/test/decompiler/reference/engine/math/euler-h_REF.gc @@ -39,5 +39,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) diff --git a/test/decompiler/reference/engine/math/math_REF.gc b/test/decompiler/reference/engine/math/math_REF.gc index 236541e02f..8f4ba281d3 100644 --- a/test/decompiler/reference/engine/math/math_REF.gc +++ b/test/decompiler/reference/engine/math/math_REF.gc @@ -222,5 +222,5 @@ ;; ERROR: function was not converted to expressions. Cannot decompile. ;; failed to figure out what this is: -(let ((v0-6 0)) +(let ((v0-7 0)) ) diff --git a/test/decompiler/reference/engine/math/quaternion-h_REF.gc b/test/decompiler/reference/engine/math/quaternion-h_REF.gc index 691b732ccc..dd9f671011 100644 --- a/test/decompiler/reference/engine/math/quaternion-h_REF.gc +++ b/test/decompiler/reference/engine/math/quaternion-h_REF.gc @@ -35,6 +35,5 @@ (define *unity-quaternion* (new 'static 'quaternion :w 1.0)) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) - diff --git a/test/decompiler/reference/engine/math/transform-h_REF.gc b/test/decompiler/reference/engine/math/transform-h_REF.gc index b8d5fe6f77..795c7f6cca 100644 --- a/test/decompiler/reference/engine/math/transform-h_REF.gc +++ b/test/decompiler/reference/engine/math/transform-h_REF.gc @@ -45,6 +45,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-4 0)) ) - diff --git a/test/decompiler/reference/engine/math/transformq-h_REF.gc b/test/decompiler/reference/engine/math/transformq-h_REF.gc index 35691a5a7d..deb7e6fa84 100644 --- a/test/decompiler/reference/engine/math/transformq-h_REF.gc +++ b/test/decompiler/reference/engine/math/transformq-h_REF.gc @@ -147,9 +147,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-8 0)) ) - - - - diff --git a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc b/test/decompiler/reference/engine/physics/dynamics-h_REF.gc index f6de7a499a..be16a7f7b4 100644 --- a/test/decompiler/reference/engine/physics/dynamics-h_REF.gc +++ b/test/decompiler/reference/engine/physics/dynamics-h_REF.gc @@ -64,9 +64,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) - - - - diff --git a/test/decompiler/reference/engine/physics/trajectory-h_REF.gc b/test/decompiler/reference/engine/physics/trajectory-h_REF.gc index 0612e179e4..3da0f4dedb 100644 --- a/test/decompiler/reference/engine/physics/trajectory-h_REF.gc +++ b/test/decompiler/reference/engine/physics/trajectory-h_REF.gc @@ -33,9 +33,5 @@ ) ;; failed to figure out what this is: -(let ((v0-1 0)) +(let ((v0-2 0)) ) - - - - diff --git a/test/decompiler/reference/engine/physics/trajectory_REF.gc b/test/decompiler/reference/engine/physics/trajectory_REF.gc index 0a9c4eab69..aab21215fd 100644 --- a/test/decompiler/reference/engine/physics/trajectory_REF.gc +++ b/test/decompiler/reference/engine/physics/trajectory_REF.gc @@ -72,7 +72,7 @@ (let ((f0-1 (/ (vector-vector-xz-distance arg1 arg0) arg2))) (TODO-RENAME-11 obj arg0 arg1 f0-1 arg3) ) - (let ((v0-1 0)) + (let ((v0-2 0)) ) (none) ) diff --git a/test/decompiler/reference/engine/ps2/memcard-h_REF.gc b/test/decompiler/reference/engine/ps2/memcard-h_REF.gc index 2df83a657a..506f0a27ae 100644 --- a/test/decompiler/reference/engine/ps2/memcard-h_REF.gc +++ b/test/decompiler/reference/engine/ps2/memcard-h_REF.gc @@ -150,15 +150,11 @@ (draw-string-xy *temp-string* dma-buf 32 (+ (* 12 slot-idx) 8) 3 1) ) ) - (let ((v0-12 0)) + (let ((v0-13 0)) ) (none) ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-5 0)) ) - - - - diff --git a/test/decompiler/reference/engine/ps2/pad_REF.gc b/test/decompiler/reference/engine/ps2/pad_REF.gc index 505ba9a645..370bbe0bdd 100644 --- a/test/decompiler/reference/engine/ps2/pad_REF.gc +++ b/test/decompiler/reference/engine/ps2/pad_REF.gc @@ -358,11 +358,11 @@ (defun buzz-stop! ((idx int)) (cpad-set-buzz! (-> *cpad-list* cpads idx) 0 0 0) (cpad-set-buzz! (-> *cpad-list* cpads idx) 1 0 0) - (let ((v0-0 0)) + (let ((v0-2 0)) ) (none) ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-9 0)) ) diff --git a/test/decompiler/reference/engine/ps2/rpc-h_REF.gc b/test/decompiler/reference/engine/ps2/rpc-h_REF.gc index 0a518cb950..50317b85ec 100644 --- a/test/decompiler/reference/engine/ps2/rpc-h_REF.gc +++ b/test/decompiler/reference/engine/ps2/rpc-h_REF.gc @@ -241,9 +241,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-12 0)) ) - - - - diff --git a/test/decompiler/reference/engine/ps2/timer-h_REF.gc b/test/decompiler/reference/engine/ps2/timer-h_REF.gc index eaf1041b73..2e2488c646 100644 --- a/test/decompiler/reference/engine/ps2/timer-h_REF.gc +++ b/test/decompiler/reference/engine/ps2/timer-h_REF.gc @@ -165,5 +165,5 @@ ) ;; failed to figure out what this is: -(let ((v0-7 0)) +(let ((v0-14 0)) ) diff --git a/test/decompiler/reference/engine/ps2/vif-h_REF.gc b/test/decompiler/reference/engine/ps2/vif-h_REF.gc index dea1c3ca47..013e64414e 100644 --- a/test/decompiler/reference/engine/ps2/vif-h_REF.gc +++ b/test/decompiler/reference/engine/ps2/vif-h_REF.gc @@ -119,7 +119,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-6 0)) ) - - diff --git a/test/decompiler/reference/engine/sound/gsound-h_REF.gc b/test/decompiler/reference/engine/sound/gsound-h_REF.gc index 7001e29948..aca76d93b6 100644 --- a/test/decompiler/reference/engine/sound/gsound-h_REF.gc +++ b/test/decompiler/reference/engine/sound/gsound-h_REF.gc @@ -785,11 +785,5 @@ (define *sound-bank-2* #f) ;; failed to figure out what this is: -(let ((v0-34 0)) +(let ((v0-65 0)) ) - - - - - - diff --git a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc index d4a5c65882..74689b81af 100644 --- a/test/decompiler/reference/engine/target/joint-mod-h_REF.gc +++ b/test/decompiler/reference/engine/target/joint-mod-h_REF.gc @@ -67,7 +67,7 @@ ;; INFO: Return type mismatch int vs none. (defun-debug joint-mod-debug-draw ((mod joint-mod)) (add-debug-matrix #t (bucket-id debug-draw) (-> mod joint bone transform)) - (let ((v0-0 0)) + (let ((v0-1 0)) ) (none) ) @@ -379,13 +379,7 @@ ;; WARN: Unsupported inline assembly instruction kind - [madd.s f1, f3, f6] ;; Used lq/sq (defun joint-mod-look-at-handler ((csp cspace) (xform transformq)) - (local-vars - (v0-20 quaternion) - (f1-12 float) - (sv-48 vector) - (sv-52 vector) - (sv-56 vector) - ) + (local-vars (f1-12 float) (sv-48 vector) (sv-52 vector) (sv-56 vector)) (rlet ((vf0 :class vf) (vf4 :class vf) (vf5 :class vf) @@ -520,33 +514,24 @@ (let ((v1-27 (-> gp-0 ear))) (cond ((zero? v1-27) - (set! - v0-20 - (quaternion-rotate-x! - (the-as quaternion (-> xform rot)) - (the-as quaternion (-> xform rot)) - (-> gp-0 twist x) - ) + (quaternion-rotate-x! + (the-as quaternion (-> xform rot)) + (the-as quaternion (-> xform rot)) + (-> gp-0 twist x) ) ) ((= v1-27 1) - (set! - v0-20 - (quaternion-rotate-local-y! - (the-as quaternion (-> xform rot)) - (the-as quaternion (-> xform rot)) - (-> gp-0 twist x) - ) + (quaternion-rotate-local-y! + (the-as quaternion (-> xform rot)) + (the-as quaternion (-> xform rot)) + (-> gp-0 twist x) ) ) (else - (set! - v0-20 - (quaternion-rotate-z! - (the-as quaternion (-> xform rot)) - (the-as quaternion (-> xform rot)) - (-> gp-0 twist x) - ) + (quaternion-rotate-z! + (the-as quaternion (-> xform rot)) + (the-as quaternion (-> xform rot)) + (-> gp-0 twist x) ) ) ) @@ -563,7 +548,7 @@ ) ) ) - (let ((v0-21 0)) + (let ((v0-26 0)) ) (none) ) @@ -683,39 +668,33 @@ (if (< f1-14 0.1) (set! f0-20 0.0) ) - (let - ((v0-17 - (the-as - object - (deg-seek - (-> gp-0 twist x) - f0-20 - (fmax 1.0 (* 0.1 (fabs (deg-diff f0-20 (-> gp-0 twist x))))) - ) - ) - ) + (set! + (-> gp-0 twist x) + (deg-seek + (-> gp-0 twist x) + f0-20 + (fmax 1.0 (* 0.1 (fabs (deg-diff f0-20 (-> gp-0 twist x))))) ) - (set! (-> gp-0 twist x) (the-as float v0-17)) - (when (!= (-> gp-0 twist x) 0.0) - (let* ((v1-20 (-> gp-0 ear)) - (a1-17 ((cond - ((zero? v1-20) - matrix-rotate-x! - ) - ((= v1-20 1) - matrix-rotate-y! - ) - (else - matrix-rotate-z! - ) - ) - (new 'stack-no-clear 'matrix) (-> gp-0 twist x) + ) + ) + (when (!= (-> gp-0 twist x) 0.0) + (let* ((v1-20 (-> gp-0 ear)) + (a1-17 ((cond + ((zero? v1-20) + matrix-rotate-x! ) - ) - ) - (set! v0-17 (matrix*! s5-0 a1-17 s5-0)) - ) - ) + ((= v1-20 1) + matrix-rotate-y! + ) + (else + matrix-rotate-z! + ) + ) + (new 'stack-no-clear 'matrix) (-> gp-0 twist x) + ) + ) + ) + (matrix*! s5-0 a1-17 s5-0) ) ) ) @@ -730,7 +709,7 @@ ) ) ) - (let ((v0-19 0)) + (let ((v0-22 0)) ) (none) ) @@ -807,7 +786,7 @@ ) ) (cspace<-parented-transformq-joint! arg0 arg1) - (let ((v0-9 0)) + (let ((v0-10 0)) ) (none) ) @@ -822,7 +801,7 @@ (set! (-> arg1 scale quad) (-> s4-0 scale quad)) ) (cspace<-parented-transformq-joint! arg0 arg1) - (let ((v0-1 0)) + (let ((v0-2 0)) ) (none) ) @@ -866,7 +845,7 @@ ) ) ) - (let ((v0-3 0)) + (let ((v0-4 0)) ) (none) ) diff --git a/test/decompiler/reference/engine/target/pat-h_REF.gc b/test/decompiler/reference/engine/target/pat-h_REF.gc index b526c7f9b7..bdff64565c 100644 --- a/test/decompiler/reference/engine/target/pat-h_REF.gc +++ b/test/decompiler/reference/engine/target/pat-h_REF.gc @@ -223,9 +223,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-4 0)) ) - - - - diff --git a/test/decompiler/reference/engine/target/surface-h_REF.gc b/test/decompiler/reference/engine/target/surface-h_REF.gc index 25467f5c10..19048dedde 100644 --- a/test/decompiler/reference/engine/target/surface-h_REF.gc +++ b/test/decompiler/reference/engine/target/surface-h_REF.gc @@ -1400,9 +1400,5 @@ (define *swim-surface* *stone-surface*) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-6 0)) ) - - - - diff --git a/test/decompiler/reference/engine/target/target-h_REF.gc b/test/decompiler/reference/engine/target/target-h_REF.gc index bc0f739c24..6f38ae740a 100644 --- a/test/decompiler/reference/engine/target/target-h_REF.gc +++ b/test/decompiler/reference/engine/target/target-h_REF.gc @@ -101,5 +101,5 @@ (define-perm *sidekick* sidekick #f) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-4 0)) ) diff --git a/test/decompiler/reference/engine/ui/hud-h_REF.gc b/test/decompiler/reference/engine/ui/hud-h_REF.gc index 4193ac7f07..c124fe0c7c 100644 --- a/test/decompiler/reference/engine/ui/hud-h_REF.gc +++ b/test/decompiler/reference/engine/ui/hud-h_REF.gc @@ -183,9 +183,5 @@ ) ;; failed to figure out what this is: -(let ((v0-4 0)) +(let ((v0-8 0)) ) - - - - diff --git a/test/decompiler/reference/engine/ui/text-h_REF.gc b/test/decompiler/reference/engine/ui/text-h_REF.gc index c19d27a7c0..c5b2f443c2 100644 --- a/test/decompiler/reference/engine/ui/text-h_REF.gc +++ b/test/decompiler/reference/engine/ui/text-h_REF.gc @@ -65,5 +65,5 @@ (define *common-text* (the-as game-text-info #f)) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-5 0)) ) diff --git a/test/decompiler/reference/engine/util/sync-info-h_REF.gc b/test/decompiler/reference/engine/util/sync-info-h_REF.gc index 6df36cae91..439f630a28 100644 --- a/test/decompiler/reference/engine/util/sync-info-h_REF.gc +++ b/test/decompiler/reference/engine/util/sync-info-h_REF.gc @@ -231,9 +231,5 @@ ) ;; failed to figure out what this is: -(let ((v0-8 0)) +(let ((v0-16 0)) ) - - - - diff --git a/test/decompiler/reference/kernel/dgo-h_REF.gc b/test/decompiler/reference/kernel/dgo-h_REF.gc index f934cc0d3d..615da25ad3 100644 --- a/test/decompiler/reference/kernel/dgo-h_REF.gc +++ b/test/decompiler/reference/kernel/dgo-h_REF.gc @@ -42,6 +42,5 @@ ) ;; failed to figure out what this is: -(let ((v0-2 0)) +(let ((v0-4 0)) ) - diff --git a/test/decompiler/reference/kernel/gcommon_REF.gc b/test/decompiler/reference/kernel/gcommon_REF.gc index fce4c82308..bf7295fd33 100644 --- a/test/decompiler/reference/kernel/gcommon_REF.gc +++ b/test/decompiler/reference/kernel/gcommon_REF.gc @@ -1229,5 +1229,5 @@ ) ;; failed to figure out what this is: -(let ((v0-3 0)) +(let ((v0-19 0)) ) diff --git a/test/decompiler/reference/kernel/gkernel-h_REF.gc b/test/decompiler/reference/kernel/gkernel-h_REF.gc index 738493844d..81ee995173 100644 --- a/test/decompiler/reference/kernel/gkernel-h_REF.gc +++ b/test/decompiler/reference/kernel/gkernel-h_REF.gc @@ -373,5 +373,5 @@ ) ;; failed to figure out what this is: -(let ((v0-11 0)) +(let ((v0-23 0)) ) diff --git a/test/decompiler/reference/kernel/gkernel_REF.gc b/test/decompiler/reference/kernel/gkernel_REF.gc index 26c8bec960..05c126e68d 100644 --- a/test/decompiler/reference/kernel/gkernel_REF.gc +++ b/test/decompiler/reference/kernel/gkernel_REF.gc @@ -188,7 +188,7 @@ (set! (-> obj suspend-hook) (method-of-object obj thread-suspend)) (set! (-> obj resume-hook) (method-of-object obj thread-resume)) (set! (-> obj stack-size) arg2) - (the-as cpu-thread (the-as pointer obj)) + (the-as cpu-thread obj) ) ) @@ -590,7 +590,7 @@ "WARNING: ~A ~A had to be allocated from the debug pool, because ~A was empty.~%" ) (a2-1 arg0) - (v1-6 (the-as process s4-0)) + (v1-6 (the-as object s4-0)) ) (t9-1 a0-2 a1-2 a2-1 (if (the-as process v1-6) (-> (the-as (pointer process) v1-6) 0 self) @@ -1139,20 +1139,28 @@ (define *global-search-count* 0) ;; definition for function process-by-name +;; INFO: Return type mismatch process-tree vs process. (defun process-by-name ((arg0 object) (arg1 process-tree)) (set! *global-search-name* (the-as basic arg0)) - (search-process-tree - arg1 - (lambda ((a0-0 process)) (name= (-> a0-0 name) *global-search-name*)) + (the-as + process + (search-process-tree + arg1 + (lambda ((a0-0 process)) (name= (-> a0-0 name) *global-search-name*)) + ) ) ) ;; definition for function process-not-name +;; INFO: Return type mismatch process-tree vs process. (defun process-not-name ((arg0 object) (arg1 process-tree)) (set! *global-search-name* (the-as basic arg0)) - (search-process-tree - arg1 - (lambda ((a0-0 process)) (not (name= (-> a0-0 name) *global-search-name*))) + (the-as + process + (search-process-tree + arg1 + (lambda ((a0-0 process)) (not (name= (-> a0-0 name) *global-search-name*))) + ) ) ) @@ -1175,9 +1183,7 @@ (defun kill-by-name ((arg0 object) (arg1 process-tree)) (local-vars (a0-1 process)) (while (begin - (let ((v0-0 (process-by-name arg0 arg1))) - (set! a0-1 (the-as process v0-0)) - ) + (set! a0-1 (process-by-name arg0 arg1)) a0-1 ) (deactivate a0-1) @@ -1187,18 +1193,15 @@ ;; definition for function kill-by-type (defun kill-by-type ((arg0 object) (arg1 process-tree)) - (local-vars (a0-1 process)) + (local-vars (a0-1 process-tree)) (set! *global-search-name* (the-as basic arg0)) (while (begin - (let - ((v0-0 - (search-process-tree - arg1 - (lambda ((a0-0 process)) (= (-> a0-0 type) *global-search-name*)) - ) - ) + (set! + a0-1 + (search-process-tree + arg1 + (lambda ((a0-0 process)) (= (-> a0-0 type) *global-search-name*)) ) - (set! a0-1 (the-as process v0-0)) ) a0-1 ) @@ -1211,9 +1214,7 @@ (defun kill-not-name ((arg0 object) (arg1 process-tree)) (local-vars (a0-1 process)) (while (begin - (let ((v0-0 (process-not-name arg0 arg1))) - (set! a0-1 (the-as process v0-0)) - ) + (set! a0-1 (process-not-name arg0 arg1)) a0-1 ) (deactivate a0-1) @@ -1223,18 +1224,15 @@ ;; definition for function kill-not-type (defun kill-not-type ((arg0 object) (arg1 process-tree)) - (local-vars (a0-1 process)) + (local-vars (a0-1 process-tree)) (set! *global-search-name* (the-as basic arg0)) (while (begin - (let - ((v0-0 - (search-process-tree - arg1 - (lambda ((a0-0 process)) (!= (-> a0-0 type) *global-search-name*)) - ) - ) + (set! + a0-1 + (search-process-tree + arg1 + (lambda ((a0-0 process)) (!= (-> a0-0 type) *global-search-name*)) ) - (set! a0-1 (the-as process v0-0)) ) a0-1 ) @@ -1315,7 +1313,6 @@ ) ;; definition for function search-process-tree -;; INFO: Return type mismatch process-tree vs process. (defun search-process-tree ((arg0 process-tree) (arg1 (function process-tree object))) @@ -1336,7 +1333,7 @@ ) ) ) - (the-as process (the-as process-tree #f)) + (the-as process-tree #f) ) ;; definition for function kernel-dispatcher @@ -1388,12 +1385,7 @@ ) ) ) - (let - ((v0-1 - (reset-and-call s4-0 (-> a0-0 trans-hook)) - ) - ) - ) + (reset-and-call s4-0 (-> a0-0 trans-hook)) (delete s4-0) ) (if (= (-> a0-0 status) 'dead) @@ -1524,13 +1516,13 @@ protect-frame ((allocation symbol) (type-to-make type) (arg0 (function object))) (local-vars (pp process)) - (let ((v0-0 (the-as protect-frame (+ (the-as int allocation) 4)))) + (let ((v0-0 (the-as object (+ (the-as int allocation) 4)))) (set! (-> (the-as protect-frame v0-0) type) type-to-make) (set! (-> (the-as protect-frame v0-0) name) 'protect-frame) (set! (-> (the-as protect-frame v0-0) exit) arg0) (set! (-> (the-as protect-frame v0-0) next) (-> pp stack-frame-top)) (set! (-> pp stack-frame-top) (the-as protect-frame v0-0)) - (the-as protect-frame (the-as int v0-0)) + (the-as protect-frame v0-0) ) ) @@ -1822,70 +1814,65 @@ ;; WARN: Unsupported inline assembly instruction kind - [lw ra, return-from-thread(s7)] ;; WARN: Unsupported inline assembly instruction kind - [jr ra] (defmethod deactivate process ((obj process)) - (let ((v0-0 (when (!= (-> obj status) 'dead) - (set! (-> obj next-state) dead-state) - (if (-> obj entity) - (entity-deactivate-handler obj (-> obj entity)) - ) - (let ((s5-0 pp)) - (let ((s4-0 (-> obj stack-frame-top))) - (while (the-as protect-frame s4-0) - (let ((v1-5 (-> s4-0 type))) - (if (or (= v1-5 protect-frame) (= v1-5 state)) - ((-> (the-as protect-frame s4-0) exit)) - ) - ) - (set! - (the-as protect-frame s4-0) - (-> (the-as protect-frame s4-0) next) - ) - ) - ) - (let ((s6-2 s5-0)) - ) - ) - (let ((v0-2 (process-disconnect obj))) - ) - (let ((v1-11 (-> obj child))) - (while v1-11 - (let ((s5-1 (-> v1-11 0 brother))) - (deactivate (-> v1-11 0)) - (set! v1-11 s5-1) - ) - ) - ) - (return-process (-> obj pool) obj) - (set! (-> obj state) #f) - (set! (-> obj next-state) #f) - (set! (-> obj entity) #f) - (set! (-> obj pid) 0) - (cond - ((= (-> *kernel-context* current-process) obj) - (set! (-> obj status) 'dead) - (.lw ra-0 return-from-thread s7-0) - (.jr ra-0) - (nop!) - (let ((v1-21 0)) - ) - ) - ((= (-> obj status) 'initialize) - (set! (-> obj status) 'dead) - (throw 'initialize #f) - ) - ) - (set! (-> obj status) 'dead) - 0 - ) - ) + (local-vars (pp process) (s7-0 none) (ra-0 int)) + (when (!= (-> obj status) 'dead) + (set! (-> obj next-state) dead-state) + (if (-> obj entity) + (entity-deactivate-handler obj (-> obj entity)) + ) + (let ((s5-0 pp)) + (let ((s4-0 (-> obj stack-frame-top))) + (while (the-as protect-frame s4-0) + (let ((v1-5 (-> s4-0 type))) + (if (or (= v1-5 protect-frame) (= v1-5 state)) + ((-> (the-as protect-frame s4-0) exit)) ) + ) + (set! (the-as protect-frame s4-0) (-> (the-as protect-frame s4-0) next)) + ) + ) + (let ((s6-2 s5-0)) + ) + ) + (process-disconnect obj) + (let ((v1-11 (-> obj child))) + (while v1-11 + (let ((s5-1 (-> v1-11 0 brother))) + (deactivate (-> v1-11 0)) + (set! v1-11 s5-1) + ) + ) + ) + (return-process (-> obj pool) obj) + (set! (-> obj state) #f) + (set! (-> obj next-state) #f) + (set! (-> obj entity) #f) + (set! (-> obj pid) 0) + (cond + ((= (-> *kernel-context* current-process) obj) + (set! (-> obj status) 'dead) + (.lw ra-0 return-from-thread s7-0) + (.jr ra-0) + (nop!) + (let ((v1-21 0)) + ) + ) + ((= (-> obj status) 'initialize) + (set! (-> obj status) 'dead) + (throw 'initialize #f) + ) + ) + (set! (-> obj status) 'dead) + (let ((v0-7 0)) + ) ) (none) ) ;; failed to figure out what this is: -(let ((v0-1 (new 'global 'process 'listener 2048))) - (set! *listener-process* v0-1) - (let ((gp-0 v0-1)) +(let ((v0-40 (new 'global 'process 'listener 2048))) + (set! *listener-process* v0-40) + (let ((gp-0 v0-40)) (set! (-> gp-0 status) 'ready) (set! (-> gp-0 pid) 1) (set! @@ -1952,10 +1939,10 @@ ;; failed to figure out what this is: (let ((gp-1 change-parent) - (v0-13 (new 'global 'process-tree 'display-pool)) + (v0-52 (new 'global 'process-tree 'display-pool)) ) - (set! *display-pool* v0-13) - (gp-1 v0-13 *active-pool*) + (set! *display-pool* v0-52) + (gp-1 v0-52 *active-pool*) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/kernel/gstate_REF.gc b/test/decompiler/reference/kernel/gstate_REF.gc index 3646b4ae74..27009c5470 100644 --- a/test/decompiler/reference/kernel/gstate_REF.gc +++ b/test/decompiler/reference/kernel/gstate_REF.gc @@ -147,6 +147,7 @@ ;; definition for function send-event-function (defun send-event-function ((arg0 process) (arg1 event-message-block)) + (local-vars (pp process)) (when (and arg0 (!= (-> arg0 type) process-tree) (-> arg0 event-hook)) (let ((gp-0 pp)) (let ((s6-1 arg0)) diff --git a/test/decompiler/test_FormExpressionBuild2.cpp b/test/decompiler/test_FormExpressionBuild2.cpp index 4872079864..753eabc5a7 100644 --- a/test/decompiler/test_FormExpressionBuild2.cpp +++ b/test/decompiler/test_FormExpressionBuild2.cpp @@ -939,7 +939,7 @@ TEST_F(FormRegressionTest, DmaBufferAddVuFunction) { " (while (> a3-0 0)\n" " (let ((t0-1 (min 127 a3-0)))\n" " (let* ((t1-1 arg0)\n" - " (t2-0 (the-as dma-packet (-> t1-1 base)))\n" + " (t2-0 (the-as object (-> t1-1 base)))\n" " )\n" " (set!\n" " (-> (the-as dma-packet t2-0) dma)\n" diff --git a/test/decompiler/test_gkernel_decomp.cpp b/test/decompiler/test_gkernel_decomp.cpp index 355e344803..4a1c8cfc05 100644 --- a/test/decompiler/test_gkernel_decomp.cpp +++ b/test/decompiler/test_gkernel_decomp.cpp @@ -363,7 +363,7 @@ TEST_F(FormRegressionTest, ExprMethod0Thread) { " (set! (-> obj suspend-hook) (method-of-object obj thread-suspend))\n" " (set! (-> obj resume-hook) (method-of-object obj thread-resume))\n" " (set! (-> obj stack-size) arg4)\n" - " (the-as cpu-thread (the-as pointer obj))\n" + " (the-as cpu-thread obj)\n" " )"; test_with_expr(func, type, expected, false, "cpu-thread", {}, "[[[13, 28], \"v0\", \"cpu-thread\"]]", @@ -1080,7 +1080,7 @@ TEST_F(FormRegressionTest, ExprMethod14DeadPool) { "empty.~%\"\n" " )\n" " (a2-1 arg1)\n" - " (v1-6 (the-as process s4-0))\n" + " (v1-6 (the-as object s4-0))\n" " )\n" " (t9-1 a0-2 a1-2 a2-1 (if (the-as process v1-6)\n" " (-> (the-as (pointer process) v1-6) 0 self)\n" diff --git a/test/offline/offline_test_main.cpp b/test/offline/offline_test_main.cpp index 2063d41b37..8d56fa4551 100644 --- a/test/offline/offline_test_main.cpp +++ b/test/offline/offline_test_main.cpp @@ -102,8 +102,7 @@ const std::unordered_set g_functions_to_skip_compiling = { "(method 10 process)", /// GSTATE - "enter-state", // stack pointer asm - "send-event-function", // pp asm (eventually we should make this work) + "enter-state", // stack pointer asm /// MATH "rand-vu-init",