chore: DSP kernel map (complex-mul/double-mul/max), DumpList getFunctionContaining fix
This commit is contained in:
+11
@@ -158,3 +158,14 @@
|
||||
- Param/curve generators (exp/log/pow/tan based, DAT_1824c4xxx): FUN_1805316e0 (6238), FUN_180529fe0 (2051), FUN_18052e9b0 (3167).
|
||||
- Dispatch index global `DAT_1826159a0` written only in PACE wrappers 18000101b/180001046.
|
||||
- big spectral-area functions are mostly param/memory/PACE; the real dsp sticks are dispatch kernels (245 targets).
|
||||
|
||||
### DSP kernel map (xref cross-check)
|
||||
- **Complex multiply** `FUN_18003fa20(double*, cplx[][16], n)` — called ONLY from `FUN_180008440` (init area, twiddle build) — NOT a dispatch slot.
|
||||
- **Double mul** `FUN_180008500` — dispatch slot @182615f20; called from **FUN_18000c5e0** (double FFT stage kernel, 507B):
|
||||
loop over 0x40-chunks: `thunk_FUN_1801560a0(param_2,re,im,0x40)` (load twiddle), `FUN_180008500(param_1,re,n)`,
|
||||
`FUN_180008500(param_1,im,n)`, `FUN_180044700(im,re,param_3,n)`.
|
||||
- **Double add** `FUN_1800025e0` slot @1826159e8; **float max** `FUN_1800104e0` slot @1826164a0; `180010860` = vmax/vmin with const.
|
||||
- Decompiler entry-point trick: `getFunctionAt` misses overlapping/obfuscated entries => use `getFunctionContaining` (DumpList updated).
|
||||
- OBtained: full FFT-plan model, factor tables, per-type kernels, block->detector->mask flow.
|
||||
- Next sub-goal: trace the FFT-stage kernel call order used by detector (which plan fields drive per-stage twiddle/mul)
|
||||
=> then C++ re-implementation is a direct transcription of that order.
|
||||
|
||||
Reference in New Issue
Block a user