Enable ASTRAL CHAIN 60 fps with corrected game timing
This commit is contained in:
1 parent
7a3b95873b
commit
ec4ea16da0
9 files changed
+995
-11
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# ASTRAL CHAIN (`01007300020FA000`)
|
||||
|
||||
Update 1.0.1 (v65536) over the base game. PlatinumGames' engine, SDK 6.4.0, NVN, Wwise audio through `AudioOut`; modules `main` and `sdk`. The Mac reaches the opening motorcycle tutorial at 30 fps. An unsigned IPA builds; iPhone testing is pending.
|
||||
Update 1.0.1 (v65536) over the base game. PlatinumGames' engine, SDK 6.4.0, NVN, Wwise audio through `AudioOut`; modules `main` and `sdk`. The 1.0.1 profile enables a 60 fps gameplay target with corrected game timing; fixed-step cinematics retain 30 fps. Mac testing completes motorcycle combat and reaches the first on-foot checkpoint. An unsigned IPA builds; iPhone testing is pending.
|
||||
|
||||
## What it needs
|
||||
|
||||
@@ -9,6 +9,7 @@ Update 1.0.1 (v65536) over the base game. PlatinumGames' engine, SDK 6.4.0, NVN,
|
||||
| `mem_reserve 0xf0000000`, `mem_alias 0x10000000`, `mem_stack 0x10000000`, `app_pool 0xCD500000` | [`game.tsv`](game.tsv) | 3 GB heap region; the first Mac boot requests 2.96 GB, with the game's 191 MB BSS counted as used memory |
|
||||
| `sys_resource 0x0` | `game.tsv` | the NPDM declares no system resource; no virtual address memory |
|
||||
| `pad_layout full` | `game.tsv` | movement and camera use both sticks |
|
||||
| `fps_target 60` | `game.tsv`, [`patches.py`](patches.py) | host-paced gameplay with fractional timer carry, integer input windows and camera smoothing; only the verified 1.0.1 main build |
|
||||
|
||||
## Files and shaders
|
||||
|
||||
@@ -23,7 +24,7 @@ Update 1.0.1 (v65536) over the base game. PlatinumGames' engine, SDK 6.4.0, NVN,
|
||||
|
||||
## Status on the Mac
|
||||
|
||||
- ZL+ZR prompt, logos, opening real-time cinematic, character creation (including software-keyboard naming), save creation/reload and the motorcycle tutorial render on an M4 Pro. The tutorial's warm frame median is 33.34 ms; first-use pipeline compilation can produce longer frames.
|
||||
- ZL+ZR prompt, logos, opening real-time cinematic, character creation (including software-keyboard naming), save creation/reload and the motorcycle tutorial render on an M4 Pro. The original 30 fps run had a warm frame median of 33.34 ms. The 60 fps validation and its limits are below.
|
||||
- Wwise opens a stereo `AudioOut`; the 15-minute `play03` run reaches 84,000 device callbacks with zero reported underruns. Resident memory grows from 1.44 GB at the title to 2.57 GB on entering the tutorial; Metal allocated memory is about 3.02 GB there.
|
||||
- The first boot rendered in a Mac window. A later windowed run stalled in the display link; the sustained measurements and screenshots use `DM_WINDOW` unset and `DM_PRESENT_LINK=0`. They measure offscreen native rendering, not on-screen presentation quality.
|
||||
- **Current:** entering the motorcycle scene reports one cube/2D texture mismatch, handled by the existing [zero-cube fallback](../../../docs/reference/rendering.md#a-2d-texture-in-a-cube-slot-binds-the-zero-cube). The scene renders, but that binding has not been traced to establish whether it is an intentional placeholder.
|
||||
@@ -31,12 +32,24 @@ Update 1.0.1 (v65536) over the base game. PlatinumGames' engine, SDK 6.4.0, NVN,
|
||||
|
||||
## Frame rate
|
||||
|
||||
**Current: 30 fps; 60 fps is not enabled in the profile or IPA.** The `fps60` experiment reaches 60.0 fps at the title on the M4 Pro with `DM_PRESENT_INTERVAL=display` and the four [FPSLocker timing cuts](https://github.com/masagrator/FPSLocker-Warehouse/blob/v4/SaltySD/plugins/FPSLocker/patches/01007300020FA000/4B159F0F7A360669.yaml). Those exact sites were verified on main build `4b159f0f7a360669738390ee8657b4f0`: `0x91dc94`, `0x91dca0` and `0x91dcac` lower the elapsed-time clamp from 1 to 0.5 in 30 Hz units; `0x91dc10` makes cutscenes use elapsed time. The experiment is preserved as `fpslocker-experiment.py` in the work folder and was removed before the final rewrite/pack.
|
||||
**Current: 60 fps gameplay target on 1.0.1**, main build `4b159f0f7a360669738390ee8657b4f0`. The profile uses the host's frame step and pacing instead of simply overriding present interval 2. `DM_FPS_TARGET=30` selects a 30 fps cap with the same timing; `DM_FPS_TARGET=0` executes the original instructions at every hook.
|
||||
|
||||
The clamp change alone is insufficient: `main+0x48be14` truncates the floating step to an integer before incrementing a counter toward 30, so half-frame steps can stop it; `main+0x57e7e0` similarly truncates another counter. Other action/input windows count frames directly. [AstralChain-Dynamic-FPS](https://github.com/yogesh1239/AstralChain-Dynamic-FPS) provides an MIT-licensed, experimental larger patch for these consumers and camera smoothing, but reports remaining cutscene audio drift and incomplete timer coverage. Its additional hooks were surveyed locally; it was not integrated or runtime-validated here. A production 60 fps profile needs those semantics verified, including combat input windows and audio/video sync, rather than only a higher present rate.
|
||||
**Resolved: half-frame steps stop integer timers.** The earlier four-cut [FPSLocker experiment](https://github.com/masagrator/FPSLocker-Warehouse/blob/v4/SaltySD/plugins/FPSLocker/patches/01007300020FA000/4B159F0F7A360669.yaml) raised the title frame rate, but `main+0x48be14` and `main+0x57e7e0` truncated the half-frame step to zero. The new clock stores the floating 30 Hz step at clock `+0xd0`, carries fractional ticks at `+0xd4` and publishes whole ticks at `+0xd8`. Both 60 half-step updates and 30 full-step updates advance integer timers by 30 ticks. Action/input windows, hit-stop, pad repeat and rumble counters consume those whole ticks; camera interpolation uses elapsed-time decay.
|
||||
|
||||
The timer and camera helpers are adapted from the MIT-licensed [AstralChain-Dynamic-FPS v1.1.1](https://github.com/yogesh1239/AstralChain-Dynamic-FPS/tree/79965b4df077f64b27b74456d0db88c6afac5bbe), with its license retained in `patches.py`. Its measured-time core and interval overrides are replaced by a host-paced clock. All 112 hook sites check their original bytes, and the complete set is build-ID gated. Helpers are relocated into the rewriter's allocated patch area rather than overwriting the upstream code caves. With this main's 191 MB BSS, helpers sit before the module base; frame state is at `main+0xccec000`, image size `0xccf0000` (the general allocation fix is linked below).
|
||||
|
||||
The engine's fixed-step mode (`w21 == 0` at `main+0x91dc10`) sets the host's 30 fps cinematic flag and a two-vsync step. Variable-step gameplay releases that cap and consumes the host's chosen step, including catch-up after late frames. This preserves the fixed-step mode's original clock rather than forcing every cinematic to 60 fps. Other real-time cinematics can use the engine's variable-step mode. Audio/video synchronization across all movies has not been verified; the upstream patch reports some remaining drift and incomplete timer coverage.
|
||||
|
||||
Validation on the M4 Pro:
|
||||
|
||||
- ARM64 execution tests run the emitted stubs without game files: fractional carry, integer consumers (including the zero-tick branch), first-sample initialization, cinematic cap/release, input-window duration and flags, original behavior with target 0, and camera decay after equal elapsed time. The original integer conversion failed the 60-half-step check before the fix.
|
||||
- Native `timing61` loads a save, passes character creation, completes motorcycle combat with firing, steering and evasion, and reaches the first on-foot checkpoint. Movement and camera rendering work there, with sampled windows reaching 60.0 fps. The warmed title holds 60 fps (16.6 ms median); the fixed-step opening cinematic changes to 30 and character creation releases the cap to 60. Motorcycle rendering reaches 59.7 fps but also dips under concurrent machine load; sustained 60 fps throughout gameplay is not established.
|
||||
- Host telemetry records 30.00 game seconds in 30.00 real seconds in a 60 fps window. With adaptive holds during motorcycle combat, representative windows are 40.98/40.87 and 61.05/60.93 seconds (ratios 1.003 and 1.002). This checks clock speed, not all combat mechanics or on-screen presentation. Later stalls can exhaust catch-up; it is not an unlimited compensation for arbitrary pauses.
|
||||
- The run uses offscreen native rendering as described above. Later Legion combat, Bink movies, end credits and iPhone performance remain untested.
|
||||
|
||||
## Found on this game
|
||||
|
||||
- [Frame-step state with a front patch area](../../../docs/reference/rewriter.md#frame-step-state-with-a-front-patch-area).
|
||||
- [PKZ version 1 archives](../../../docs/reference/shaders.md#pkz-version-1-archives).
|
||||
- [Newest GPU code version reported by the driver](../../../docs/reference/nvn-objects.md#newest-gpu-code-version-reported-by-the-driver): precompiled shader versions do not follow the linked SDK.
|
||||
|
||||
@@ -44,5 +57,5 @@ The clamp change alone is insufficient: `main+0x48be14` truncates the floating s
|
||||
|
||||
- Validate the unsigned IPA on an iPhone, including memory pressure and touch controls.
|
||||
- Trace the tutorial's cube placeholder and validate visible effects against the original game.
|
||||
- Complete and validate the 60 fps timing work above; the shipped profile retains the game's own interval and timing.
|
||||
- Validate later combat input windows, camera behavior and cinematic audio/video sync with the 60 fps profile; establish sustained performance without competing workloads.
|
||||
- Later levels and Bink movies are untested.
|
||||
@@ -11,6 +11,8 @@ ipa AstralChain.ipa
|
||||
app_category public.app-category.action-games
|
||||
# Both sticks are used for movement and camera.
|
||||
pad_layout full
|
||||
# Build-gated frame step: 60 fps gameplay, 30 fps fixed-step cinematics.
|
||||
fps_target 60
|
||||
|
||||
# ---- Versions ----
|
||||
build v65536 1.0.1 main=4b159f0f7a360669738390ee8657b4f0 sdk=e29be8ad6778527aa248310d0c71a8a5
|
||||
|
||||
|
@@ -0,0 +1,788 @@
|
||||
# ASTRAL CHAIN 1.0.1, main 4b159f0f7a360669738390ee8657b4f0.
|
||||
# Host-paced 60 fps gameplay; fixed-step cinematics retain 30 fps for audio sync.
|
||||
# Target 0 runs the original instructions at every hook. Helpers live in the
|
||||
# rewriter's patch area, never in upstream's padding / empty-function caves.
|
||||
# Integer timer and camera helpers adapted from AstralChain-Dynamic-FPS v1.1.1:
|
||||
# https://github.com/yogesh1239/AstralChain-Dynamic-FPS/tree/79965b4df077f64b27b74456d0db88c6afac5bbe
|
||||
# Its measured-time core and interval patches are replaced by the host's frame step.
|
||||
# Every game-code hook is asserted below; the NSO build ID gates the entire set.
|
||||
#
|
||||
# MIT License
|
||||
# Copyright (c) 2026 yogesh1239
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
from nso_asm import ADRP, ADDI, B, STP_PRE, LDP_POST
|
||||
|
||||
|
||||
def signed(n, bits):
|
||||
return n - (1 << bits) if n & (1 << (bits - 1)) else n
|
||||
|
||||
|
||||
def width(w):
|
||||
# ADR and short conditional branches expand; the other instructions stay one word.
|
||||
return 2 if (w & 0x9f000000 == 0x10000000 or w & 0xff000010 == 0x54000000
|
||||
or w & 0x7e000000 in (0x34000000, 0x36000000)) else 1
|
||||
|
||||
|
||||
def relocate(w, old, new, targets):
|
||||
def dest(a): return targets.get(a, a)
|
||||
if w & 0x7c000000 == 0x14000000: # B / BL
|
||||
return [B(new, dest(old + signed(w & 0x3ffffff, 26) * 4)) | (w & 0x80000000)]
|
||||
if w & 0x9f000000 in (0x10000000, 0x90000000): # ADR / ADRP
|
||||
imm = signed(((w >> 5 & 0x7ffff) << 2) | (w >> 29 & 3), 21)
|
||||
if w & 0x80000000: return [ADRP(w & 31, new, (old & ~0xfff) + (imm << 12))]
|
||||
a = dest(old + imm)
|
||||
return [ADRP(w & 31, new, a), ADDI(w & 31, w & 31, a & 0xfff)]
|
||||
if w & 0xff000010 == 0x54000000 or w & 0x7e000000 in (0x34000000, 0x36000000):
|
||||
bits = 14 if w & 0x7e000000 == 0x36000000 else 19
|
||||
mask = ((1 << bits) - 1) << 5
|
||||
a = dest(old + signed(w >> 5 & ((1 << bits) - 1), bits) * 4)
|
||||
invert = 1 if w & 0xff000010 == 0x54000000 else 0x01000000
|
||||
return [((w ^ invert) & ~mask) | (2 << 5), B(new + 4, a)]
|
||||
assert w & 0x3b000000 != 0x18000000, 'unexpected literal load in timing helper'
|
||||
return [w]
|
||||
|
||||
|
||||
def frame_step(ctx):
|
||||
# At main+0x91dc10 x19 is the clock, w21 selects elapsed-time gameplay
|
||||
# (0 is fixed-step cinematics), x20 is this frame's timestamp. The ordinary
|
||||
# epilogue restores d8/x19/x20/x21. s0/s1/s2 and x8/x16/x17 are scratch here.
|
||||
core = ctx.here(); ctx.emit(ADRP(16, core, ctx.state))
|
||||
for i, w in enumerate(clock):
|
||||
if i == 22: w = B(ctx.here(), 0x8a9570) | 0x80000000 # game's positive speed override
|
||||
elif i == len(clock) - 1: w = B(ctx.here(), 0x91dcb4) # timestamp and epilogue
|
||||
ctx.emit(w)
|
||||
targets = {0xa0e7d0: core, 0xa0e828: core}
|
||||
cursor = ctx.here()
|
||||
for old, w in helpers:
|
||||
targets[old] = cursor; cursor += width(w) * 4
|
||||
for old, w in helpers:
|
||||
assert ctx.here() == targets[old]
|
||||
for insn in relocate(w, old, ctx.here(), targets): ctx.emit(insn)
|
||||
for site, orig, w, reason in sites:
|
||||
ctx.site(site, orig)
|
||||
start = ctx.here(); nw = width(w)
|
||||
# CBZ changes no flags: preserve all original NZCV and scratch registers,
|
||||
# including at decrement sites whose caller consumes the resulting flags.
|
||||
for insn in (STP_PRE(16, 17, 31, -16), ADRP(16, start + 4, ctx.state),
|
||||
0xb9400210, 0x34000010 | ((3 + nw) << 5), LDP_POST(16, 17, 31, 16)):
|
||||
ctx.emit(insn)
|
||||
for insn in relocate(w, site, ctx.here(), targets): ctx.emit(insn)
|
||||
ctx.emit(B(ctx.here(), site + 4))
|
||||
ctx.emit(LDP_POST(16, 17, 31, 16))
|
||||
for insn in relocate(int.from_bytes(bytes.fromhex(orig), 'little'), site, ctx.here(), {}): ctx.emit(insn)
|
||||
ctx.emit(B(ctx.here(), site + 4))
|
||||
ctx.put(site, [B(site, start)], 'frame step (0 = original): ' + reason)
|
||||
|
||||
|
||||
FRAME_STEP = {'4b159f0f7a360669738390ee8657b4f0': frame_step}
|
||||
|
||||
# Core: frame-state +4 marks a 30 fps cinematic; +0x24 fixes its step at two
|
||||
# vsyncs. Gameplay takes the host's step (+0x20), or 60 / target before the first
|
||||
# present. Game clock +0xd0 is the floating 30 Hz step, +0xd4 retains fractional
|
||||
# ticks, +0xd8 publishes whole ticks. Integer consumers therefore advance 30
|
||||
# ticks per second at both 30 and 60 fps instead of truncating every half tick.
|
||||
clock = (
|
||||
0x350000d5, # cbnz w21, #0x18
|
||||
0x52800031, # mov w17, #1
|
||||
0xb9000611, # str w17, [x16, #4]
|
||||
0x52800051, # mov w17, #2
|
||||
0xb9002611, # str w17, [x16, #0x24]
|
||||
0x1400000a, # b #0x3c
|
||||
0xb900061f, # str wzr, [x16, #4]
|
||||
0xb900261f, # str wzr, [x16, #0x24]
|
||||
0xb9402211, # ldr w17, [x16, #0x20]
|
||||
0x350000d1, # cbnz w17, #0x3c
|
||||
0xbd400200, # ldr s0, [x16]
|
||||
0x1e27d001, # fmov s1, #30.00000000
|
||||
0x1e212821, # fadd s1, s1, s1
|
||||
0x1e201820, # fdiv s0, s1, s0
|
||||
0x1e390011, # fcvtzu w17, s0
|
||||
0x1e230228, # ucvtf s8, w17
|
||||
0x1e2c1001, # fmov s1, #0.50000000
|
||||
0x1e210908, # fmul s8, s8, s1
|
||||
0x34000115, # cbz w21, #0x68
|
||||
0xf9401a08, # ldr x8, [x16, #0x30]
|
||||
0x8b314108, # add x8, x8, w17, uxtw
|
||||
0xf9001a08, # str x8, [x16, #0x30]
|
||||
0x94000010, # bl #0x98
|
||||
0x1e202008, # fcmp s0, #0.0
|
||||
0x5400004d, # b.le #0x68
|
||||
0x1e200908, # fmul s8, s8, s0
|
||||
0x1e201001, # fmov s1, #2.00000000
|
||||
0x1e217900, # fminnm s0, s8, s1
|
||||
0xbd00d260, # str s0, [x19, #0xd0]
|
||||
0xbd40d661, # ldr s1, [x19, #0xd4]
|
||||
0x1e202821, # fadd s1, s1, s0
|
||||
0x1e390028, # fcvtzu w8, s1
|
||||
0x1e230102, # ucvtf s2, w8
|
||||
0x1e223821, # fsub s1, s1, s2
|
||||
0xbd00d661, # str s1, [x19, #0xd4]
|
||||
0xb900da68, # str w8, [x19, #0xd8]
|
||||
0xb900e67f, # str wzr, [x19, #0xe4]
|
||||
0x14000001, # b #0x98
|
||||
)
|
||||
|
||||
# Upstream helper addresses are relocation labels only. No original cave is overwritten.
|
||||
helpers = [
|
||||
(0x5763e4, 0x1e2a5800), # fmin s0,s0,s10: entry1 (eye): a = min(w*rate, 1)
|
||||
(0x5763e8, 0x140ee8d5), # b 0x93073C [relocated]
|
||||
(0x5763ec, 0x1e2a5820), # fmin s0,s1,s10: entry2 (look-at): a = min(w*rate, 1)
|
||||
(0x5763f0, 0x140ee8d3), # b 0x93073C [relocated]
|
||||
(0x5763f4, 0xa9bf7bfd), # stp x29,x30,[sp,#-0x10]!: entry3 (up + scalar blend)
|
||||
(0x5763f8, 0x910003fd), # mov x29,sp
|
||||
(0x5763fc, 0x1e204120), # fmov s0,s9
|
||||
(0x576400, 0x940ee8cf), # bl 0x93073C [relocated]
|
||||
(0x576404, 0x1e204109), # fmov s9,s8: w for +0x100/+0x108 blend (0x3A2E04/0x3A2E0C)
|
||||
(0x576408, 0xbd421660), # ldr s0,[x19,0x214]: re-test [cam+0x214] > 0
|
||||
(0x57640c, 0x1e202008), # fcmp s0,#0.0
|
||||
(0x576410, 0x1e29cd48), # fcsel s8,s10,s9,gt
|
||||
(0x576414, 0xa8c17bfd), # ldp x29,x30,[sp],0x10
|
||||
(0x576418, 0xd65f03c0), # ret
|
||||
(0x93073c, 0x1e204008), # fmov s8,s0: common: s8 = 1-powf(1-a, clamp(step,0,4))
|
||||
(0x930740, 0xa9bd7bfd), # stp x29,x30,[sp,#-0x30]!
|
||||
(0x930744, 0x910003fd), # mov x29,sp
|
||||
(0x930748, 0xa90107e0), # stp x0,x1,[sp,0x10]
|
||||
(0x93074c, 0xf90013e2), # str x2,[sp,0x20]
|
||||
(0x930750, 0x90002450), # adrp x16,0xdb8000: timer object via GOT 0xDB89A0 [relocated]
|
||||
(0x930754, 0xf944d210), # ldr x16,[x16,0x9a0]
|
||||
(0x930758, 0xb4000230), # cbz x16,0x93079c
|
||||
(0x93075c, 0xbd40d201), # ldr s1,[x16,0xd0]: v2 step [timer+0xD0]
|
||||
(0x930760, 0x1e2e1002), # fmov s2,#1.00000000
|
||||
(0x930764, 0x1e222020), # fcmp s1,s2
|
||||
(0x930768, 0x540001a0), # b.eq 0x93079c: step == 1.0: exact passthrough
|
||||
(0x93076c, 0x1e202008), # fcmp s0,#0.0
|
||||
(0x930770, 0x5400016d), # b.le 0x93079c: a <= 0 or NaN: passthrough
|
||||
(0x930774, 0x1e222000), # fcmp s0,s2
|
||||
(0x930778, 0x5400012a), # b.ge 0x93079c: a >= 1: passthrough
|
||||
(0x93077c, 0x2f00e403), # movi d3,#0000000000000000
|
||||
(0x930780, 0x1e236821), # fmaxnm s1,s1,s3
|
||||
(0x930784, 0x1e221003), # fmov s3,#4.00000000
|
||||
(0x930788, 0x1e237821), # fminnm s1,s1,s3
|
||||
(0x93078c, 0x1e203840), # fsub s0,s2,s0
|
||||
(0x930790, 0x940373a0), # bl 0xa0d610: powf PLT [relocated]
|
||||
(0x930794, 0x1e2e1002), # fmov s2,#1.00000000
|
||||
(0x930798, 0x1e203848), # fsub s8,s2,s0
|
||||
(0x93079c, 0xa94107e0), # ldp x0,x1,[sp,0x10]
|
||||
(0x9307a0, 0xf94013e2), # ldr x2,[sp,0x20]
|
||||
(0x9307a4, 0xa8c37bfd), # ldp x29,x30,[sp],0x30
|
||||
(0x9307a8, 0xd65f03c0), # ret
|
||||
(0xa0e830, 0xd0001d49), # r2 cave 0x308a9c: adrp x9, #0xdb8000
|
||||
(0xa0e834, 0xf944d129), # r2 cave 0x308a9c: ldr x9, [x9, #0x9a0]
|
||||
(0xa0e838, 0xb940d929), # r2 cave 0x308a9c: ldr w9, [x9, #0xd8]
|
||||
(0xa0e83c, 0x340000c9), # r2 cave 0x308a9c: cbz w9, #0xa0e854
|
||||
(0xa0e840, 0x7100051f), # r2 cave 0x308a9c: cmp w8, #1
|
||||
(0xa0e844, 0x7a49a100), # r2 cave 0x308a9c: ccmp w8, w9, #0, ge
|
||||
(0xa0e848, 0x1a89b109), # r2 cave 0x308a9c: csel w9, w8, w9, lt
|
||||
(0xa0e84c, 0x6b090108), # r2 cave 0x308a9c: subs w8, w8, w9
|
||||
(0xa0e850, 0x17e3e894), # r2 cave 0x308a9c: b #0x308aa0
|
||||
(0xa0e854, 0x7100011f), # r2 cave 0x308a9c: cmp w8, #0
|
||||
(0xa0e858, 0x7a40c908), # r2 cave 0x308a9c: ccmp w8, #0, #8, gt
|
||||
(0xa0e85c, 0x17e3e891), # r2 cave 0x308a9c: b #0x308aa0
|
||||
(0xa0e860, 0xd0001d4a), # r2 cave 0xf8720: adrp x10, #0xdb8000
|
||||
(0xa0e864, 0xf944d14a), # r2 cave 0xf8720: ldr x10, [x10, #0x9a0]
|
||||
(0xa0e868, 0xb940d94a), # r2 cave 0xf8720: ldr w10, [x10, #0xd8]
|
||||
(0xa0e86c, 0x340000ca), # r2 cave 0xf8720: cbz w10, #0xa0e884
|
||||
(0xa0e870, 0x7100051f), # r2 cave 0xf8720: cmp w8, #1
|
||||
(0xa0e874, 0x7a4aa100), # r2 cave 0xf8720: ccmp w8, w10, #0, ge
|
||||
(0xa0e878, 0x1a8ab10a), # r2 cave 0xf8720: csel w10, w8, w10, lt
|
||||
(0xa0e87c, 0x6b0a0108), # r2 cave 0xf8720: subs w8, w8, w10
|
||||
(0xa0e880, 0x17dba7a9), # r2 cave 0xf8720: b #0xf8724
|
||||
(0xa0e884, 0x7100011f), # r2 cave 0xf8720: cmp w8, #0
|
||||
(0xa0e888, 0x7a40c908), # r2 cave 0xf8720: ccmp w8, #0, #8, gt
|
||||
(0xa0e88c, 0x17dba7a6), # r2 cave 0xf8720: b #0xf8724
|
||||
(0xa0e890, 0xd0001d4a), # r2 cave 0xe7f64: adrp x10, #0xdb8000
|
||||
(0xa0e894, 0xf944d14a), # r2 cave 0xe7f64: ldr x10, [x10, #0x9a0]
|
||||
(0xa0e898, 0xb940d94a), # r2 cave 0xe7f64: ldr w10, [x10, #0xd8]
|
||||
(0xa0e89c, 0x340000ca), # r2 cave 0xe7f64: cbz w10, #0xa0e8b4
|
||||
(0xa0e8a0, 0x7100051f), # r2 cave 0xe7f64: cmp w8, #1
|
||||
(0xa0e8a4, 0x7a4aa100), # r2 cave 0xe7f64: ccmp w8, w10, #0, ge
|
||||
(0xa0e8a8, 0x1a8ab10a), # r2 cave 0xe7f64: csel w10, w8, w10, lt
|
||||
(0xa0e8ac, 0x6b0a0108), # r2 cave 0xe7f64: subs w8, w8, w10
|
||||
(0xa0e8b0, 0x17db65ae), # r2 cave 0xe7f64: b #0xe7f68
|
||||
(0xa0e8b4, 0x7100011f), # r2 cave 0xe7f64: cmp w8, #0
|
||||
(0xa0e8b8, 0x7a40c908), # r2 cave 0xe7f64: ccmp w8, #0, #8, gt
|
||||
(0xa0e8bc, 0x17db65ab), # r2 cave 0xe7f64: b #0xe7f68
|
||||
(0xa0e8c0, 0xd0001d49), # r2 cave 0xf7ce8: adrp x9, #0xdb8000
|
||||
(0xa0e8c4, 0xf944d129), # r2 cave 0xf7ce8: ldr x9, [x9, #0x9a0]
|
||||
(0xa0e8c8, 0xb940d929), # r2 cave 0xf7ce8: ldr w9, [x9, #0xd8]
|
||||
(0xa0e8cc, 0x340000c9), # r2 cave 0xf7ce8: cbz w9, #0xa0e8e4
|
||||
(0xa0e8d0, 0x7100051f), # r2 cave 0xf7ce8: cmp w8, #1
|
||||
(0xa0e8d4, 0x7a49a100), # r2 cave 0xf7ce8: ccmp w8, w9, #0, ge
|
||||
(0xa0e8d8, 0x1a89b109), # r2 cave 0xf7ce8: csel w9, w8, w9, lt
|
||||
(0xa0e8dc, 0x6b090108), # r2 cave 0xf7ce8: subs w8, w8, w9
|
||||
(0xa0e8e0, 0x17dba503), # r2 cave 0xf7ce8: b #0xf7cec
|
||||
(0xa0e8e4, 0x7100011f), # r2 cave 0xf7ce8: cmp w8, #0
|
||||
(0xa0e8e8, 0x7a40c908), # r2 cave 0xf7ce8: ccmp w8, #0, #8, gt
|
||||
(0xa0e8ec, 0x17dba500), # r2 cave 0xf7ce8: b #0xf7cec
|
||||
(0xa0e8f0, 0xd0001d4a), # r2 cave 0xd5e28: adrp x10, #0xdb8000
|
||||
(0xa0e8f4, 0xf944d14a), # r2 cave 0xd5e28: ldr x10, [x10, #0x9a0]
|
||||
(0xa0e8f8, 0xb940d94a), # r2 cave 0xd5e28: ldr w10, [x10, #0xd8]
|
||||
(0xa0e8fc, 0x340000ca), # r2 cave 0xd5e28: cbz w10, #0xa0e914
|
||||
(0xa0e900, 0x7100051f), # r2 cave 0xd5e28: cmp w8, #1
|
||||
(0xa0e904, 0x7a4aa100), # r2 cave 0xd5e28: ccmp w8, w10, #0, ge
|
||||
(0xa0e908, 0x1a8ab10a), # r2 cave 0xd5e28: csel w10, w8, w10, lt
|
||||
(0xa0e90c, 0x6b0a0108), # r2 cave 0xd5e28: subs w8, w8, w10
|
||||
(0xa0e910, 0x17db1d47), # r2 cave 0xd5e28: b #0xd5e2c
|
||||
(0xa0e914, 0x7100011f), # r2 cave 0xd5e28: cmp w8, #0
|
||||
(0xa0e918, 0x7a40c908), # r2 cave 0xd5e28: ccmp w8, #0, #8, gt
|
||||
(0xa0e91c, 0x17db1d44), # r2 cave 0xd5e28: b #0xd5e2c
|
||||
(0xa0e920, 0xd0001d4a), # r2 cave 0x2828ac: adrp x10, #0xdb8000
|
||||
(0xa0e924, 0xf944d14a), # r2 cave 0x2828ac: ldr x10, [x10, #0x9a0]
|
||||
(0xa0e928, 0xb940d94a), # r2 cave 0x2828ac: ldr w10, [x10, #0xd8]
|
||||
(0xa0e92c, 0x340000ca), # r2 cave 0x2828ac: cbz w10, #0xa0e944
|
||||
(0xa0e930, 0x7100051f), # r2 cave 0x2828ac: cmp w8, #1
|
||||
(0xa0e934, 0x7a4aa100), # r2 cave 0x2828ac: ccmp w8, w10, #0, ge
|
||||
(0xa0e938, 0x1a8ab10a), # r2 cave 0x2828ac: csel w10, w8, w10, lt
|
||||
(0xa0e93c, 0x6b0a0108), # r2 cave 0x2828ac: subs w8, w8, w10
|
||||
(0xa0e940, 0x17e1cfdc), # r2 cave 0x2828ac: b #0x2828b0
|
||||
(0xa0e944, 0x7100011f), # r2 cave 0x2828ac: cmp w8, #0
|
||||
(0xa0e948, 0x7a40c908), # r2 cave 0x2828ac: ccmp w8, #0, #8, gt
|
||||
(0xa0e94c, 0x17e1cfd9), # r2 cave 0x2828ac: b #0x2828b0
|
||||
(0xa0e950, 0xd0001d4a), # r2 cave 0x283100: adrp x10, #0xdb8000
|
||||
(0xa0e954, 0xf944d14a), # r2 cave 0x283100: ldr x10, [x10, #0x9a0]
|
||||
(0xa0e958, 0xb940d94a), # r2 cave 0x283100: ldr w10, [x10, #0xd8]
|
||||
(0xa0e95c, 0x340000ca), # r2 cave 0x283100: cbz w10, #0xa0e974
|
||||
(0xa0e960, 0x7100051f), # r2 cave 0x283100: cmp w8, #1
|
||||
(0xa0e964, 0x7a4aa100), # r2 cave 0x283100: ccmp w8, w10, #0, ge
|
||||
(0xa0e968, 0x1a8ab10a), # r2 cave 0x283100: csel w10, w8, w10, lt
|
||||
(0xa0e96c, 0x6b0a0108), # r2 cave 0x283100: subs w8, w8, w10
|
||||
(0xa0e970, 0x17e1d1e5), # r2 cave 0x283100: b #0x283104
|
||||
(0xa0e974, 0x7100011f), # r2 cave 0x283100: cmp w8, #0
|
||||
(0xa0e978, 0x7a40c908), # r2 cave 0x283100: ccmp w8, #0, #8, gt
|
||||
(0xa0e97c, 0x17e1d1e2), # r2 cave 0x283100: b #0x283104
|
||||
(0xa0e980, 0xd0001d4a), # r2 cave 0x28311c: adrp x10, #0xdb8000
|
||||
(0xa0e984, 0xf944d14a), # r2 cave 0x28311c: ldr x10, [x10, #0x9a0]
|
||||
(0xa0e988, 0xb940d94a), # r2 cave 0x28311c: ldr w10, [x10, #0xd8]
|
||||
(0xa0e98c, 0x340000ca), # r2 cave 0x28311c: cbz w10, #0xa0e9a4
|
||||
(0xa0e990, 0x7100051f), # r2 cave 0x28311c: cmp w8, #1
|
||||
(0xa0e994, 0x7a4aa100), # r2 cave 0x28311c: ccmp w8, w10, #0, ge
|
||||
(0xa0e998, 0x1a8ab10a), # r2 cave 0x28311c: csel w10, w8, w10, lt
|
||||
(0xa0e99c, 0x6b0a0108), # r2 cave 0x28311c: subs w8, w8, w10
|
||||
(0xa0e9a0, 0x17e1d1e0), # r2 cave 0x28311c: b #0x283120
|
||||
(0xa0e9a4, 0x7100011f), # r2 cave 0x28311c: cmp w8, #0
|
||||
(0xa0e9a8, 0x7a40c908), # r2 cave 0x28311c: ccmp w8, #0, #8, gt
|
||||
(0xa0e9ac, 0x17e1d1dd), # r2 cave 0x28311c: b #0x283120
|
||||
(0xa0e9b0, 0xd0001d4a), # r2 cave 0x28759c: adrp x10, #0xdb8000
|
||||
(0xa0e9b4, 0xf944d14a), # r2 cave 0x28759c: ldr x10, [x10, #0x9a0]
|
||||
(0xa0e9b8, 0xb940d94a), # r2 cave 0x28759c: ldr w10, [x10, #0xd8]
|
||||
(0xa0e9bc, 0x340000ca), # r2 cave 0x28759c: cbz w10, #0xa0e9d4
|
||||
(0xa0e9c0, 0x7100051f), # r2 cave 0x28759c: cmp w8, #1
|
||||
(0xa0e9c4, 0x7a4aa100), # r2 cave 0x28759c: ccmp w8, w10, #0, ge
|
||||
(0xa0e9c8, 0x1a8ab10a), # r2 cave 0x28759c: csel w10, w8, w10, lt
|
||||
(0xa0e9cc, 0x6b0a0108), # r2 cave 0x28759c: subs w8, w8, w10
|
||||
(0xa0e9d0, 0x17e1e2f4), # r2 cave 0x28759c: b #0x2875a0
|
||||
(0xa0e9d4, 0x7100011f), # r2 cave 0x28759c: cmp w8, #0
|
||||
(0xa0e9d8, 0x7a40c908), # r2 cave 0x28759c: ccmp w8, #0, #8, gt
|
||||
(0xa0e9dc, 0x17e1e2f1), # r2 cave 0x28759c: b #0x2875a0
|
||||
(0xa0e9e0, 0xd0001d4a), # r2 cave 0x2875ac: adrp x10, #0xdb8000
|
||||
(0xa0e9e4, 0xf944d14a), # r2 cave 0x2875ac: ldr x10, [x10, #0x9a0]
|
||||
(0xa0e9e8, 0xb940d94a), # r2 cave 0x2875ac: ldr w10, [x10, #0xd8]
|
||||
(0xa0e9ec, 0x340000ca), # r2 cave 0x2875ac: cbz w10, #0xa0ea04
|
||||
(0xa0e9f0, 0x7100051f), # r2 cave 0x2875ac: cmp w8, #1
|
||||
(0xa0e9f4, 0x7a4aa100), # r2 cave 0x2875ac: ccmp w8, w10, #0, ge
|
||||
(0xa0e9f8, 0x1a8ab10a), # r2 cave 0x2875ac: csel w10, w8, w10, lt
|
||||
(0xa0e9fc, 0x6b0a0108), # r2 cave 0x2875ac: subs w8, w8, w10
|
||||
(0xa0ea00, 0x17e1e2ec), # r2 cave 0x2875ac: b #0x2875b0
|
||||
(0xa0ea04, 0x7100011f), # r2 cave 0x2875ac: cmp w8, #0
|
||||
(0xa0ea08, 0x7a40c908), # r2 cave 0x2875ac: ccmp w8, #0, #8, gt
|
||||
(0xa0ea0c, 0x17e1e2e9), # r2 cave 0x2875ac: b #0x2875b0
|
||||
(0xa0ea10, 0xd0001d4a), # r2 cave 0x2875bc: adrp x10, #0xdb8000
|
||||
(0xa0ea14, 0xf944d14a), # r2 cave 0x2875bc: ldr x10, [x10, #0x9a0]
|
||||
(0xa0ea18, 0xb940d94a), # r2 cave 0x2875bc: ldr w10, [x10, #0xd8]
|
||||
(0xa0ea1c, 0x340000ca), # r2 cave 0x2875bc: cbz w10, #0xa0ea34
|
||||
(0xa0ea20, 0x7100051f), # r2 cave 0x2875bc: cmp w8, #1
|
||||
(0xa0ea24, 0x7a4aa100), # r2 cave 0x2875bc: ccmp w8, w10, #0, ge
|
||||
(0xa0ea28, 0x1a8ab10a), # r2 cave 0x2875bc: csel w10, w8, w10, lt
|
||||
(0xa0ea2c, 0x6b0a0108), # r2 cave 0x2875bc: subs w8, w8, w10
|
||||
(0xa0ea30, 0x17e1e2e4), # r2 cave 0x2875bc: b #0x2875c0
|
||||
(0xa0ea34, 0x7100011f), # r2 cave 0x2875bc: cmp w8, #0
|
||||
(0xa0ea38, 0x7a40c908), # r2 cave 0x2875bc: ccmp w8, #0, #8, gt
|
||||
(0xa0ea3c, 0x17e1e2e1), # r2 cave 0x2875bc: b #0x2875c0
|
||||
(0xa0ea40, 0xd0001d4a), # r2 cave 0x2875cc: adrp x10, #0xdb8000
|
||||
(0xa0ea44, 0xf944d14a), # r2 cave 0x2875cc: ldr x10, [x10, #0x9a0]
|
||||
(0xa0ea48, 0xb940d94a), # r2 cave 0x2875cc: ldr w10, [x10, #0xd8]
|
||||
(0xa0ea4c, 0x340000ca), # r2 cave 0x2875cc: cbz w10, #0xa0ea64
|
||||
(0xa0ea50, 0x7100051f), # r2 cave 0x2875cc: cmp w8, #1
|
||||
(0xa0ea54, 0x7a4aa100), # r2 cave 0x2875cc: ccmp w8, w10, #0, ge
|
||||
(0xa0ea58, 0x1a8ab10a), # r2 cave 0x2875cc: csel w10, w8, w10, lt
|
||||
(0xa0ea5c, 0x6b0a0108), # r2 cave 0x2875cc: subs w8, w8, w10
|
||||
(0xa0ea60, 0x17e1e2dc), # r2 cave 0x2875cc: b #0x2875d0
|
||||
(0xa0ea64, 0x7100011f), # r2 cave 0x2875cc: cmp w8, #0
|
||||
(0xa0ea68, 0x7a40c908), # r2 cave 0x2875cc: ccmp w8, #0, #8, gt
|
||||
(0xa0ea6c, 0x17e1e2d9), # r2 cave 0x2875cc: b #0x2875d0
|
||||
(0xa0ea70, 0xd0001d4a), # r2 cave 0x2875dc: adrp x10, #0xdb8000
|
||||
(0xa0ea74, 0xf944d14a), # r2 cave 0x2875dc: ldr x10, [x10, #0x9a0]
|
||||
(0xa0ea78, 0xb940d94a), # r2 cave 0x2875dc: ldr w10, [x10, #0xd8]
|
||||
(0xa0ea7c, 0x340000ca), # r2 cave 0x2875dc: cbz w10, #0xa0ea94
|
||||
(0xa0ea80, 0x7100051f), # r2 cave 0x2875dc: cmp w8, #1
|
||||
(0xa0ea84, 0x7a4aa100), # r2 cave 0x2875dc: ccmp w8, w10, #0, ge
|
||||
(0xa0ea88, 0x1a8ab10a), # r2 cave 0x2875dc: csel w10, w8, w10, lt
|
||||
(0xa0ea8c, 0x6b0a0108), # r2 cave 0x2875dc: subs w8, w8, w10
|
||||
(0xa0ea90, 0x17e1e2d4), # r2 cave 0x2875dc: b #0x2875e0
|
||||
(0xa0ea94, 0x7100011f), # r2 cave 0x2875dc: cmp w8, #0
|
||||
(0xa0ea98, 0x7a40c908), # r2 cave 0x2875dc: ccmp w8, #0, #8, gt
|
||||
(0xa0ea9c, 0x17e1e2d1), # r2 cave 0x2875dc: b #0x2875e0
|
||||
(0xa0eaa0, 0xd0001d4b), # r2 cave 0x283044: adrp x11, #0xdb8000
|
||||
(0xa0eaa4, 0xf944d16b), # r2 cave 0x283044: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eaa8, 0xb940d96b), # r2 cave 0x283044: ldr w11, [x11, #0xd8]
|
||||
(0xa0eaac, 0x6b0b010b), # r2 cave 0x283044: subs w11, w8, w11
|
||||
(0xa0eab0, 0x1a9f816b), # r2 cave 0x283044: csel w11, w11, wzr, hi
|
||||
(0xa0eab4, 0x7100011f), # r2 cave 0x283044: cmp w8, #0
|
||||
(0xa0eab8, 0x1a88c168), # r2 cave 0x283044: csel w8, w11, w8, gt
|
||||
(0xa0eabc, 0x17e1d163), # r2 cave 0x283044: b #0x283048
|
||||
(0xa0eac0, 0xd0001d4b), # r2 cave 0x283054: adrp x11, #0xdb8000
|
||||
(0xa0eac4, 0xf944d16b), # r2 cave 0x283054: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eac8, 0xb940d96b), # r2 cave 0x283054: ldr w11, [x11, #0xd8]
|
||||
(0xa0eacc, 0x6b0b010b), # r2 cave 0x283054: subs w11, w8, w11
|
||||
(0xa0ead0, 0x1a9f816b), # r2 cave 0x283054: csel w11, w11, wzr, hi
|
||||
(0xa0ead4, 0x7100011f), # r2 cave 0x283054: cmp w8, #0
|
||||
(0xa0ead8, 0x1a88c168), # r2 cave 0x283054: csel w8, w11, w8, gt
|
||||
(0xa0eadc, 0x17e1d15f), # r2 cave 0x283054: b #0x283058
|
||||
(0xa0eae0, 0xd0001d4b), # r2 cave 0x283064: adrp x11, #0xdb8000
|
||||
(0xa0eae4, 0xf944d16b), # r2 cave 0x283064: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eae8, 0xb940d96b), # r2 cave 0x283064: ldr w11, [x11, #0xd8]
|
||||
(0xa0eaec, 0x6b0b010b), # r2 cave 0x283064: subs w11, w8, w11
|
||||
(0xa0eaf0, 0x1a9f816b), # r2 cave 0x283064: csel w11, w11, wzr, hi
|
||||
(0xa0eaf4, 0x7100011f), # r2 cave 0x283064: cmp w8, #0
|
||||
(0xa0eaf8, 0x1a88c168), # r2 cave 0x283064: csel w8, w11, w8, gt
|
||||
(0xa0eafc, 0x17e1d15b), # r2 cave 0x283064: b #0x283068
|
||||
(0xa0eb00, 0xd0001d4b), # r2 cave 0x283074: adrp x11, #0xdb8000
|
||||
(0xa0eb04, 0xf944d16b), # r2 cave 0x283074: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eb08, 0xb940d96b), # r2 cave 0x283074: ldr w11, [x11, #0xd8]
|
||||
(0xa0eb0c, 0x6b0b010b), # r2 cave 0x283074: subs w11, w8, w11
|
||||
(0xa0eb10, 0x1a9f816b), # r2 cave 0x283074: csel w11, w11, wzr, hi
|
||||
(0xa0eb14, 0x7100011f), # r2 cave 0x283074: cmp w8, #0
|
||||
(0xa0eb18, 0x1a88c168), # r2 cave 0x283074: csel w8, w11, w8, gt
|
||||
(0xa0eb1c, 0x17e1d157), # r2 cave 0x283074: b #0x283078
|
||||
(0xa0eb20, 0xd0001d4b), # r2 cave 0x283084: adrp x11, #0xdb8000
|
||||
(0xa0eb24, 0xf944d16b), # r2 cave 0x283084: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eb28, 0xb940d96b), # r2 cave 0x283084: ldr w11, [x11, #0xd8]
|
||||
(0xa0eb2c, 0x6b0b010b), # r2 cave 0x283084: subs w11, w8, w11
|
||||
(0xa0eb30, 0x1a9f816b), # r2 cave 0x283084: csel w11, w11, wzr, hi
|
||||
(0xa0eb34, 0x7100011f), # r2 cave 0x283084: cmp w8, #0
|
||||
(0xa0eb38, 0x1a88c168), # r2 cave 0x283084: csel w8, w11, w8, gt
|
||||
(0xa0eb3c, 0x17e1d153), # r2 cave 0x283084: b #0x283088
|
||||
(0xa0eb40, 0xd0001d4b), # r2 cave 0x283094: adrp x11, #0xdb8000
|
||||
(0xa0eb44, 0xf944d16b), # r2 cave 0x283094: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eb48, 0xb940d96b), # r2 cave 0x283094: ldr w11, [x11, #0xd8]
|
||||
(0xa0eb4c, 0x6b0b010b), # r2 cave 0x283094: subs w11, w8, w11
|
||||
(0xa0eb50, 0x1a9f816b), # r2 cave 0x283094: csel w11, w11, wzr, hi
|
||||
(0xa0eb54, 0x7100011f), # r2 cave 0x283094: cmp w8, #0
|
||||
(0xa0eb58, 0x1a88c168), # r2 cave 0x283094: csel w8, w11, w8, gt
|
||||
(0xa0eb5c, 0x17e1d14f), # r2 cave 0x283094: b #0x283098
|
||||
(0xa0eb60, 0xd0001d4b), # r2 cave 0x2830a4: adrp x11, #0xdb8000
|
||||
(0xa0eb64, 0xf944d16b), # r2 cave 0x2830a4: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eb68, 0xb940d96b), # r2 cave 0x2830a4: ldr w11, [x11, #0xd8]
|
||||
(0xa0eb6c, 0x6b0b010b), # r2 cave 0x2830a4: subs w11, w8, w11
|
||||
(0xa0eb70, 0x1a9f816b), # r2 cave 0x2830a4: csel w11, w11, wzr, hi
|
||||
(0xa0eb74, 0x7100011f), # r2 cave 0x2830a4: cmp w8, #0
|
||||
(0xa0eb78, 0x1a88c168), # r2 cave 0x2830a4: csel w8, w11, w8, gt
|
||||
(0xa0eb7c, 0x17e1d14b), # r2 cave 0x2830a4: b #0x2830a8
|
||||
(0xa0eb80, 0xd0001d4b), # r2 cave 0x2830b4: adrp x11, #0xdb8000
|
||||
(0xa0eb84, 0xf944d16b), # r2 cave 0x2830b4: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eb88, 0xb940d96b), # r2 cave 0x2830b4: ldr w11, [x11, #0xd8]
|
||||
(0xa0eb8c, 0x6b0b010b), # r2 cave 0x2830b4: subs w11, w8, w11
|
||||
(0xa0eb90, 0x1a9f816b), # r2 cave 0x2830b4: csel w11, w11, wzr, hi
|
||||
(0xa0eb94, 0x7100011f), # r2 cave 0x2830b4: cmp w8, #0
|
||||
(0xa0eb98, 0x1a88c168), # r2 cave 0x2830b4: csel w8, w11, w8, gt
|
||||
(0xa0eb9c, 0x17e1d147), # r2 cave 0x2830b4: b #0x2830b8
|
||||
(0xa0eba0, 0xd0001d4b), # r2 cave 0x2830c4: adrp x11, #0xdb8000
|
||||
(0xa0eba4, 0xf944d16b), # r2 cave 0x2830c4: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eba8, 0xb940d96b), # r2 cave 0x2830c4: ldr w11, [x11, #0xd8]
|
||||
(0xa0ebac, 0x6b0b010b), # r2 cave 0x2830c4: subs w11, w8, w11
|
||||
(0xa0ebb0, 0x1a9f816b), # r2 cave 0x2830c4: csel w11, w11, wzr, hi
|
||||
(0xa0ebb4, 0x7100011f), # r2 cave 0x2830c4: cmp w8, #0
|
||||
(0xa0ebb8, 0x1a88c168), # r2 cave 0x2830c4: csel w8, w11, w8, gt
|
||||
(0xa0ebbc, 0x17e1d143), # r2 cave 0x2830c4: b #0x2830c8
|
||||
(0xa0ebc0, 0xd0001d4b), # r2 cave 0x2830d4: adrp x11, #0xdb8000
|
||||
(0xa0ebc4, 0xf944d16b), # r2 cave 0x2830d4: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ebc8, 0xb940d96b), # r2 cave 0x2830d4: ldr w11, [x11, #0xd8]
|
||||
(0xa0ebcc, 0x6b0b010b), # r2 cave 0x2830d4: subs w11, w8, w11
|
||||
(0xa0ebd0, 0x1a9f816b), # r2 cave 0x2830d4: csel w11, w11, wzr, hi
|
||||
(0xa0ebd4, 0x7100011f), # r2 cave 0x2830d4: cmp w8, #0
|
||||
(0xa0ebd8, 0x1a88c168), # r2 cave 0x2830d4: csel w8, w11, w8, gt
|
||||
(0xa0ebdc, 0x17e1d13f), # r2 cave 0x2830d4: b #0x2830d8
|
||||
(0xa0ebe0, 0xd0001d4b), # r2 cave 0x2830e4: adrp x11, #0xdb8000
|
||||
(0xa0ebe4, 0xf944d16b), # r2 cave 0x2830e4: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ebe8, 0xb940d96b), # r2 cave 0x2830e4: ldr w11, [x11, #0xd8]
|
||||
(0xa0ebec, 0x6b0b010b), # r2 cave 0x2830e4: subs w11, w8, w11
|
||||
(0xa0ebf0, 0x1a9f816b), # r2 cave 0x2830e4: csel w11, w11, wzr, hi
|
||||
(0xa0ebf4, 0x7100011f), # r2 cave 0x2830e4: cmp w8, #0
|
||||
(0xa0ebf8, 0x1a88c168), # r2 cave 0x2830e4: csel w8, w11, w8, gt
|
||||
(0xa0ebfc, 0x17e1d13b), # r2 cave 0x2830e4: b #0x2830e8
|
||||
(0xa0ec00, 0xd0001d4b), # r2 cave 0x2830f4: adrp x11, #0xdb8000
|
||||
(0xa0ec04, 0xf944d16b), # r2 cave 0x2830f4: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ec08, 0xb940d96b), # r2 cave 0x2830f4: ldr w11, [x11, #0xd8]
|
||||
(0xa0ec0c, 0x6b0b010b), # r2 cave 0x2830f4: subs w11, w8, w11
|
||||
(0xa0ec10, 0x1a9f816b), # r2 cave 0x2830f4: csel w11, w11, wzr, hi
|
||||
(0xa0ec14, 0x7100011f), # r2 cave 0x2830f4: cmp w8, #0
|
||||
(0xa0ec18, 0x1a88c168), # r2 cave 0x2830f4: csel w8, w11, w8, gt
|
||||
(0xa0ec1c, 0x17e1d137), # r2 cave 0x2830f4: b #0x2830f8
|
||||
(0xa0ec20, 0xd0001d4b), # r2 cave 0x283138: adrp x11, #0xdb8000
|
||||
(0xa0ec24, 0xf944d16b), # r2 cave 0x283138: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ec28, 0xb940d96b), # r2 cave 0x283138: ldr w11, [x11, #0xd8]
|
||||
(0xa0ec2c, 0x6b0b010b), # r2 cave 0x283138: subs w11, w8, w11
|
||||
(0xa0ec30, 0x1a9f816b), # r2 cave 0x283138: csel w11, w11, wzr, hi
|
||||
(0xa0ec34, 0x7100011f), # r2 cave 0x283138: cmp w8, #0
|
||||
(0xa0ec38, 0x1a88c168), # r2 cave 0x283138: csel w8, w11, w8, gt
|
||||
(0xa0ec3c, 0x17e1d140), # r2 cave 0x283138: b #0x28313c
|
||||
(0xa0ec40, 0xd0001d4b), # r2 cave 0x283148: adrp x11, #0xdb8000
|
||||
(0xa0ec44, 0xf944d16b), # r2 cave 0x283148: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ec48, 0xb940d96b), # r2 cave 0x283148: ldr w11, [x11, #0xd8]
|
||||
(0xa0ec4c, 0x6b0b010b), # r2 cave 0x283148: subs w11, w8, w11
|
||||
(0xa0ec50, 0x1a9f816b), # r2 cave 0x283148: csel w11, w11, wzr, hi
|
||||
(0xa0ec54, 0x7100011f), # r2 cave 0x283148: cmp w8, #0
|
||||
(0xa0ec58, 0x1a88c168), # r2 cave 0x283148: csel w8, w11, w8, gt
|
||||
(0xa0ec5c, 0x17e1d13c), # r2 cave 0x283148: b #0x28314c
|
||||
(0xa0ec60, 0xd0001d4b), # r2 cave 0x283158: adrp x11, #0xdb8000
|
||||
(0xa0ec64, 0xf944d16b), # r2 cave 0x283158: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ec68, 0xb940d96b), # r2 cave 0x283158: ldr w11, [x11, #0xd8]
|
||||
(0xa0ec6c, 0x6b0b010b), # r2 cave 0x283158: subs w11, w8, w11
|
||||
(0xa0ec70, 0x1a9f816b), # r2 cave 0x283158: csel w11, w11, wzr, hi
|
||||
(0xa0ec74, 0x7100011f), # r2 cave 0x283158: cmp w8, #0
|
||||
(0xa0ec78, 0x1a88c168), # r2 cave 0x283158: csel w8, w11, w8, gt
|
||||
(0xa0ec7c, 0x17e1d138), # r2 cave 0x283158: b #0x28315c
|
||||
(0xa0ec80, 0xd0001d4b), # r2 cave 0x283168: adrp x11, #0xdb8000
|
||||
(0xa0ec84, 0xf944d16b), # r2 cave 0x283168: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ec88, 0xb940d96b), # r2 cave 0x283168: ldr w11, [x11, #0xd8]
|
||||
(0xa0ec8c, 0x6b0b010b), # r2 cave 0x283168: subs w11, w8, w11
|
||||
(0xa0ec90, 0x1a9f816b), # r2 cave 0x283168: csel w11, w11, wzr, hi
|
||||
(0xa0ec94, 0x7100011f), # r2 cave 0x283168: cmp w8, #0
|
||||
(0xa0ec98, 0x1a88c168), # r2 cave 0x283168: csel w8, w11, w8, gt
|
||||
(0xa0ec9c, 0x17e1d134), # r2 cave 0x283168: b #0x28316c
|
||||
(0xa0eca0, 0xd0001d4b), # r2 cave 0x283178: adrp x11, #0xdb8000
|
||||
(0xa0eca4, 0xf944d16b), # r2 cave 0x283178: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eca8, 0xb940d96b), # r2 cave 0x283178: ldr w11, [x11, #0xd8]
|
||||
(0xa0ecac, 0x6b0b010b), # r2 cave 0x283178: subs w11, w8, w11
|
||||
(0xa0ecb0, 0x1a9f816b), # r2 cave 0x283178: csel w11, w11, wzr, hi
|
||||
(0xa0ecb4, 0x7100011f), # r2 cave 0x283178: cmp w8, #0
|
||||
(0xa0ecb8, 0x1a88c168), # r2 cave 0x283178: csel w8, w11, w8, gt
|
||||
(0xa0ecbc, 0x17e1d130), # r2 cave 0x283178: b #0x28317c
|
||||
(0xa0ecc0, 0xd0001d4b), # r2 cave 0x283188: adrp x11, #0xdb8000
|
||||
(0xa0ecc4, 0xf944d16b), # r2 cave 0x283188: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ecc8, 0xb940d96b), # r2 cave 0x283188: ldr w11, [x11, #0xd8]
|
||||
(0xa0eccc, 0x6b0b010b), # r2 cave 0x283188: subs w11, w8, w11
|
||||
(0xa0ecd0, 0x1a9f816b), # r2 cave 0x283188: csel w11, w11, wzr, hi
|
||||
(0xa0ecd4, 0x7100011f), # r2 cave 0x283188: cmp w8, #0
|
||||
(0xa0ecd8, 0x1a88c168), # r2 cave 0x283188: csel w8, w11, w8, gt
|
||||
(0xa0ecdc, 0x17e1d12c), # r2 cave 0x283188: b #0x28318c
|
||||
(0xa0ece0, 0xd0001d4b), # r2 cave 0x283198: adrp x11, #0xdb8000
|
||||
(0xa0ece4, 0xf944d16b), # r2 cave 0x283198: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ece8, 0xb940d96b), # r2 cave 0x283198: ldr w11, [x11, #0xd8]
|
||||
(0xa0ecec, 0x6b0b010b), # r2 cave 0x283198: subs w11, w8, w11
|
||||
(0xa0ecf0, 0x1a9f816b), # r2 cave 0x283198: csel w11, w11, wzr, hi
|
||||
(0xa0ecf4, 0x7100011f), # r2 cave 0x283198: cmp w8, #0
|
||||
(0xa0ecf8, 0x1a88c168), # r2 cave 0x283198: csel w8, w11, w8, gt
|
||||
(0xa0ecfc, 0x17e1d128), # r2 cave 0x283198: b #0x28319c
|
||||
(0xa0ed00, 0xd0001d4b), # r2 cave 0x2831a8: adrp x11, #0xdb8000
|
||||
(0xa0ed04, 0xf944d16b), # r2 cave 0x2831a8: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ed08, 0xb940d96b), # r2 cave 0x2831a8: ldr w11, [x11, #0xd8]
|
||||
(0xa0ed0c, 0x6b0b010b), # r2 cave 0x2831a8: subs w11, w8, w11
|
||||
(0xa0ed10, 0x1a9f816b), # r2 cave 0x2831a8: csel w11, w11, wzr, hi
|
||||
(0xa0ed14, 0x7100011f), # r2 cave 0x2831a8: cmp w8, #0
|
||||
(0xa0ed18, 0x1a88c168), # r2 cave 0x2831a8: csel w8, w11, w8, gt
|
||||
(0xa0ed1c, 0x17e1d124), # r2 cave 0x2831a8: b #0x2831ac
|
||||
(0xa0ed20, 0xd0001d4b), # r2 cave 0x2831b8: adrp x11, #0xdb8000
|
||||
(0xa0ed24, 0xf944d16b), # r2 cave 0x2831b8: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ed28, 0xb940d96b), # r2 cave 0x2831b8: ldr w11, [x11, #0xd8]
|
||||
(0xa0ed2c, 0x6b0b010b), # r2 cave 0x2831b8: subs w11, w8, w11
|
||||
(0xa0ed30, 0x1a9f816b), # r2 cave 0x2831b8: csel w11, w11, wzr, hi
|
||||
(0xa0ed34, 0x7100011f), # r2 cave 0x2831b8: cmp w8, #0
|
||||
(0xa0ed38, 0x1a88c168), # r2 cave 0x2831b8: csel w8, w11, w8, gt
|
||||
(0xa0ed3c, 0x17e1d120), # r2 cave 0x2831b8: b #0x2831bc
|
||||
(0xa0ed40, 0xd0001d4b), # r2 cave 0x2831c8: adrp x11, #0xdb8000
|
||||
(0xa0ed44, 0xf944d16b), # r2 cave 0x2831c8: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ed48, 0xb940d96b), # r2 cave 0x2831c8: ldr w11, [x11, #0xd8]
|
||||
(0xa0ed4c, 0x6b0b010b), # r2 cave 0x2831c8: subs w11, w8, w11
|
||||
(0xa0ed50, 0x1a9f816b), # r2 cave 0x2831c8: csel w11, w11, wzr, hi
|
||||
(0xa0ed54, 0x7100011f), # r2 cave 0x2831c8: cmp w8, #0
|
||||
(0xa0ed58, 0x1a88c168), # r2 cave 0x2831c8: csel w8, w11, w8, gt
|
||||
(0xa0ed5c, 0x17e1d11c), # r2 cave 0x2831c8: b #0x2831cc
|
||||
(0xa0ed60, 0xd0001d4b), # r2 cave 0x2831dc: adrp x11, #0xdb8000
|
||||
(0xa0ed64, 0xf944d16b), # r2 cave 0x2831dc: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ed68, 0xb940d96b), # r2 cave 0x2831dc: ldr w11, [x11, #0xd8]
|
||||
(0xa0ed6c, 0x6b0b010b), # r2 cave 0x2831dc: subs w11, w8, w11
|
||||
(0xa0ed70, 0x1a9f816b), # r2 cave 0x2831dc: csel w11, w11, wzr, hi
|
||||
(0xa0ed74, 0x7100011f), # r2 cave 0x2831dc: cmp w8, #0
|
||||
(0xa0ed78, 0x1a88c168), # r2 cave 0x2831dc: csel w8, w11, w8, gt
|
||||
(0xa0ed7c, 0x17e1d119), # r2 cave 0x2831dc: b #0x2831e0
|
||||
(0xa0ed80, 0xf81f0fe9), # r3 hs_w8: str x9, [sp, #-0x10]!
|
||||
(0xa0ed84, 0xd0001d49), # r3 hs_w8: adrp x9, #0xdb8000
|
||||
(0xa0ed88, 0xf944d129), # r3 hs_w8: ldr x9, [x9, #0x9a0]
|
||||
(0xa0ed8c, 0xb940d929), # r3 hs_w8: ldr w9, [x9, #0xd8]
|
||||
(0xa0ed90, 0x340000e9), # r3 hs_w8: cbz w9, #0xa0edac
|
||||
(0xa0ed94, 0x7100051f), # r3 hs_w8: cmp w8, #1
|
||||
(0xa0ed98, 0x7a49a100), # r3 hs_w8: ccmp w8, w9, #0, ge
|
||||
(0xa0ed9c, 0x1a89b109), # r3 hs_w8: csel w9, w8, w9, lt
|
||||
(0xa0eda0, 0x6b090108), # r3 hs_w8: subs w8, w8, w9
|
||||
(0xa0eda4, 0xf84107e9), # r3 hs_w8: ldr x9, [sp], #0x10
|
||||
(0xa0eda8, 0xd65f03c0), # r3 hs_w8: ret
|
||||
(0xa0edac, 0x7100011f), # r3 hs_w8: cmp w8, #0
|
||||
(0xa0edb0, 0x7a40c908), # r3 hs_w8: ccmp w8, #0, #8, gt
|
||||
(0xa0edb4, 0xf84107e9), # r3 hs_w8: ldr x9, [sp], #0x10
|
||||
(0xa0edb8, 0xd65f03c0), # r3 hs_w8: ret
|
||||
(0xa0edbc, 0xf81f0fea), # r3 hs_w9: str x10, [sp, #-0x10]!
|
||||
(0xa0edc0, 0xd0001d4a), # r3 hs_w9: adrp x10, #0xdb8000
|
||||
(0xa0edc4, 0xf944d14a), # r3 hs_w9: ldr x10, [x10, #0x9a0]
|
||||
(0xa0edc8, 0xb940d94a), # r3 hs_w9: ldr w10, [x10, #0xd8]
|
||||
(0xa0edcc, 0x340000ea), # r3 hs_w9: cbz w10, #0xa0ede8
|
||||
(0xa0edd0, 0x7100053f), # r3 hs_w9: cmp w9, #1
|
||||
(0xa0edd4, 0x7a4aa120), # r3 hs_w9: ccmp w9, w10, #0, ge
|
||||
(0xa0edd8, 0x1a8ab12a), # r3 hs_w9: csel w10, w9, w10, lt
|
||||
(0xa0eddc, 0x6b0a0129), # r3 hs_w9: subs w9, w9, w10
|
||||
(0xa0ede0, 0xf84107ea), # r3 hs_w9: ldr x10, [sp], #0x10
|
||||
(0xa0ede4, 0xd65f03c0), # r3 hs_w9: ret
|
||||
(0xa0ede8, 0x7100013f), # r3 hs_w9: cmp w9, #0
|
||||
(0xa0edec, 0x7a40c928), # r3 hs_w9: ccmp w9, #0, #8, gt
|
||||
(0xa0edf0, 0xf84107ea), # r3 hs_w9: ldr x10, [sp], #0x10
|
||||
(0xa0edf4, 0xd65f03c0), # r3 hs_w9: ret
|
||||
(0xa0edf8, 0xd0001d4c), # r3 rh_w8: adrp x12, #0xdb8000
|
||||
(0xa0edfc, 0xf944d18c), # r3 rh_w8: ldr x12, [x12, #0x9a0]
|
||||
(0xa0ee00, 0xb940d98c), # r3 rh_w8: ldr w12, [x12, #0xd8]
|
||||
(0xa0ee04, 0x7100051f), # r3 rh_w8: cmp w8, #1
|
||||
(0xa0ee08, 0x1a9f158c), # r3 rh_w8: csinc w12, w12, wzr, ne
|
||||
(0xa0ee0c, 0x340000cc), # r3 rh_w8: cbz w12, #0xa0ee24
|
||||
(0xa0ee10, 0x7100051f), # r3 rh_w8: cmp w8, #1
|
||||
(0xa0ee14, 0x7a4ca100), # r3 rh_w8: ccmp w8, w12, #0, ge
|
||||
(0xa0ee18, 0x1a8cb10c), # r3 rh_w8: csel w12, w8, w12, lt
|
||||
(0xa0ee1c, 0x6b0c0109), # r3 rh_w8: subs w9, w8, w12
|
||||
(0xa0ee20, 0xd61f0160), # r3 rh_w8: br x11
|
||||
(0xa0ee24, 0x2a0803e9), # r3 rh_w8: mov w9, w8
|
||||
(0xa0ee28, 0x7100011f), # r3 rh_w8: cmp w8, #0
|
||||
(0xa0ee2c, 0x7a40c908), # r3 rh_w8: ccmp w8, #0, #8, gt
|
||||
(0xa0ee30, 0xd61f0160), # r3 rh_w8: br x11
|
||||
(0xa0ee34, 0xd0001d4c), # r3 rh_w9: adrp x12, #0xdb8000
|
||||
(0xa0ee38, 0xf944d18c), # r3 rh_w9: ldr x12, [x12, #0x9a0]
|
||||
(0xa0ee3c, 0xb940d98c), # r3 rh_w9: ldr w12, [x12, #0xd8]
|
||||
(0xa0ee40, 0x7100053f), # r3 rh_w9: cmp w9, #1
|
||||
(0xa0ee44, 0x1a9f158c), # r3 rh_w9: csinc w12, w12, wzr, ne
|
||||
(0xa0ee48, 0x340000cc), # r3 rh_w9: cbz w12, #0xa0ee60
|
||||
(0xa0ee4c, 0x7100053f), # r3 rh_w9: cmp w9, #1
|
||||
(0xa0ee50, 0x7a4ca120), # r3 rh_w9: ccmp w9, w12, #0, ge
|
||||
(0xa0ee54, 0x1a8cb12c), # r3 rh_w9: csel w12, w9, w12, lt
|
||||
(0xa0ee58, 0x6b0c012a), # r3 rh_w9: subs w10, w9, w12
|
||||
(0xa0ee5c, 0xd61f0160), # r3 rh_w9: br x11
|
||||
(0xa0ee60, 0x2a0903ea), # r3 rh_w9: mov w10, w9
|
||||
(0xa0ee64, 0x7100013f), # r3 rh_w9: cmp w9, #0
|
||||
(0xa0ee68, 0x7a40c928), # r3 rh_w9: ccmp w9, #0, #8, gt
|
||||
(0xa0ee6c, 0xd61f0160), # r3 rh_w9: br x11
|
||||
(0xa0ee70, 0xd0001d4a), # r3 cave_4f4010: adrp x10, #0xdb8000
|
||||
(0xa0ee74, 0xf944d14a), # r3 cave_4f4010: ldr x10, [x10, #0x9a0]
|
||||
(0xa0ee78, 0xb940d94a), # r3 cave_4f4010: ldr w10, [x10, #0xd8]
|
||||
(0xa0ee7c, 0x4b0a0129), # r3 cave_4f4010: sub w9, w9, w10
|
||||
(0xa0ee80, 0x7100053f), # r3 cave_4f4010: cmp w9, #1
|
||||
(0xa0ee84, 0x1a9fa529), # r3 cave_4f4010: csinc w9, w9, wzr, ge
|
||||
(0xa0ee88, 0x17eb9463), # r3 cave_4f4010: b #0x4f4014
|
||||
(0xa0ee8c, 0xd0001d49), # r3 cave_4f4018: adrp x9, #0xdb8000
|
||||
(0xa0ee90, 0xf944d129), # r3 cave_4f4018: ldr x9, [x9, #0x9a0]
|
||||
(0xa0ee94, 0xb940d929), # r3 cave_4f4018: ldr w9, [x9, #0xd8]
|
||||
(0xa0ee98, 0x0b090108), # r3 cave_4f4018: add w8, w8, w9
|
||||
(0xa0ee9c, 0x17eb9460), # r3 cave_4f4018: b #0x4f401c
|
||||
(0xa0eea0, 0xd0001d4b), # r3 cave_283a94: adrp x11, #0xdb8000
|
||||
(0xa0eea4, 0xf944d16b), # r3 cave_283a94: ldr x11, [x11, #0x9a0]
|
||||
(0xa0eea8, 0xb940d96b), # r3 cave_283a94: ldr w11, [x11, #0xd8]
|
||||
(0xa0eeac, 0x340000cb), # r3 cave_283a94: cbz w11, #0xa0eec4
|
||||
(0xa0eeb0, 0x7100055f), # r3 cave_283a94: cmp w10, #1
|
||||
(0xa0eeb4, 0x7a4ba140), # r3 cave_283a94: ccmp w10, w11, #0, ge
|
||||
(0xa0eeb8, 0x1a8bb14b), # r3 cave_283a94: csel w11, w10, w11, lt
|
||||
(0xa0eebc, 0x6b0b014a), # r3 cave_283a94: subs w10, w10, w11
|
||||
(0xa0eec0, 0x17e1d2f6), # r3 cave_283a94: b #0x283a98
|
||||
(0xa0eec4, 0x7100015f), # r3 cave_283a94: cmp w10, #0
|
||||
(0xa0eec8, 0x7a40c948), # r3 cave_283a94: ccmp w10, #0, #8, gt
|
||||
(0xa0eecc, 0x17e1d2f3), # r3 cave_283a94: b #0x283a98
|
||||
(0xa0eed0, 0xd0001d4a), # r3 cave_2846f0: adrp x10, #0xdb8000
|
||||
(0xa0eed4, 0xf944d14a), # r3 cave_2846f0: ldr x10, [x10, #0x9a0]
|
||||
(0xa0eed8, 0xb940d94a), # r3 cave_2846f0: ldr w10, [x10, #0xd8]
|
||||
(0xa0eedc, 0x0b0a012a), # r3 cave_2846f0: add w10, w9, w10
|
||||
(0xa0eee0, 0x17e1d605), # r3 cave_2846f0: b #0x2846f4
|
||||
(0xa0eee4, 0xd0001d4a), # r3 cave_286c2c: adrp x10, #0xdb8000
|
||||
(0xa0eee8, 0xf944d14a), # r3 cave_286c2c: ldr x10, [x10, #0x9a0]
|
||||
(0xa0eeec, 0xb940d94a), # r3 cave_286c2c: ldr w10, [x10, #0xd8]
|
||||
(0xa0eef0, 0x7100013f), # r3 cave_286c2c: cmp w9, #0
|
||||
(0xa0eef4, 0x7a400940), # r3 cave_286c2c: ccmp w10, #0, #0, eq
|
||||
(0xa0eef8, 0x1a9f154a), # r3 cave_286c2c: csinc w10, w10, wzr, ne
|
||||
(0xa0eefc, 0x0b0a0129), # r3 cave_286c2c: add w9, w9, w10
|
||||
(0xa0ef00, 0x17e1df4c), # r3 cave_286c2c: b #0x286c30
|
||||
(0xa0ef04, 0xd0001d51), # r3 cave_91de50: adrp x17, #0xdb8000
|
||||
(0xa0ef08, 0xf944d231), # r3 cave_91de50: ldr x17, [x17, #0x9a0]
|
||||
(0xa0ef0c, 0xb940da31), # r3 cave_91de50: ldr w17, [x17, #0xd8]
|
||||
(0xa0ef10, 0x340000d1), # r3 cave_91de50: cbz w17, #0xa0ef28
|
||||
(0xa0ef14, 0x7100061f), # r3 cave_91de50: cmp w16, #1
|
||||
(0xa0ef18, 0x7a51a200), # r3 cave_91de50: ccmp w16, w17, #0, ge
|
||||
(0xa0ef1c, 0x1a91b211), # r3 cave_91de50: csel w17, w16, w17, lt
|
||||
(0xa0ef20, 0x6b110210), # r3 cave_91de50: subs w16, w16, w17
|
||||
(0xa0ef24, 0x17fc3bcc), # r3 cave_91de50: b #0x91de54
|
||||
(0xa0ef28, 0x7100021f), # r3 cave_91de50: cmp w16, #0
|
||||
(0xa0ef2c, 0x7a40ca08), # r3 cave_91de50: ccmp w16, #0, #8, gt
|
||||
(0xa0ef30, 0x17fc3bc9), # r3 cave_91de50: b #0x91de54
|
||||
(0xa0ef34, 0xd0001d51), # r3 cave_91dee8: adrp x17, #0xdb8000
|
||||
(0xa0ef38, 0xf944d231), # r3 cave_91dee8: ldr x17, [x17, #0x9a0]
|
||||
(0xa0ef3c, 0xb940da31), # r3 cave_91dee8: ldr w17, [x17, #0xd8]
|
||||
(0xa0ef40, 0x6b110210), # r3 cave_91dee8: subs w16, w16, w17
|
||||
(0xa0ef44, 0x17fc3bea), # r3 cave_91dee8: b #0x91deec
|
||||
(0xa0ef48, 0xd0001d4b), # r3 cave_9abf40: adrp x11, #0xdb8000
|
||||
(0xa0ef4c, 0xf944d16b), # r3 cave_9abf40: ldr x11, [x11, #0x9a0]
|
||||
(0xa0ef50, 0xb940d96b), # r3 cave_9abf40: ldr w11, [x11, #0xd8]
|
||||
(0xa0ef54, 0x0b0b0129), # r3 cave_9abf40: add w9, w9, w11
|
||||
(0xa0ef58, 0x17fe73fb), # r3 cave_9abf40: b #0x9abf44
|
||||
(0xa0ef5c, 0x10ce688b), # r3 stub_9abc68: adr x11, #0x9abc6c
|
||||
(0xa0ef60, 0x17ffffa6), # r3 stub_9abc68: b #0xa0edf8
|
||||
(0xa0ef64, 0x10ce68eb), # r3 stub_9abc7c: adr x11, #0x9abc80
|
||||
(0xa0ef68, 0x17ffffb3), # r3 stub_9abc7c: b #0xa0ee34
|
||||
(0xa0ef6c, 0x10ce6acb), # r3 stub_9abcc0: adr x11, #0x9abcc4
|
||||
(0xa0ef70, 0x17ffffb1), # r3 stub_9abcc0: b #0xa0ee34
|
||||
(0xa0ef74, 0x10ce6e2b), # r3 stub_9abd34: adr x11, #0x9abd38
|
||||
(0xa0ef78, 0x17ffffaf), # r3 stub_9abd34: b #0xa0ee34
|
||||
(0xa0ef7c, 0x10ce6b2b), # r3 stub_9abcdc: adr x11, #0x9abce0
|
||||
(0xa0ef80, 0x17ffffad), # r3 stub_9abcdc: b #0xa0ee34
|
||||
(0xa0ef84, 0x10ce6e8b), # r3 stub_9abd50: adr x11, #0x9abd54
|
||||
(0xa0ef88, 0x17ffffab), # r3 stub_9abd50: b #0xa0ee34
|
||||
(0xa0ef8c, 0x10ce724b), # r3 stub_9abdd0: adr x11, #0x9abdd4
|
||||
(0xa0ef90, 0x17ffffa9), # r3 stub_9abdd0: b #0xa0ee34
|
||||
(0xa0ef94, 0x10ce6eeb), # r3 stub_9abd6c: adr x11, #0x9abd70
|
||||
(0xa0ef98, 0x17ffffa7), # r3 stub_9abd6c: b #0xa0ee34
|
||||
(0xa0ef9c, 0x10ce72ab), # r3 stub_9abdec: adr x11, #0x9abdf0
|
||||
(0xa0efa0, 0x17ffffa5), # r3 stub_9abdec: b #0xa0ee34
|
||||
(0xa0efa4, 0x10ce776b), # r3 stub_9abe8c: adr x11, #0x9abe90
|
||||
(0xa0efa8, 0x17ffffa3), # r3 stub_9abe8c: b #0xa0ee34
|
||||
(0xa0efac, 0xbd4e1d00), # r4 cave_4f406c: ldr s0, [x8, #0xe1c]
|
||||
(0xa0efb0, 0xd0001d48), # r4 cave_4f406c: adrp x8, #0xdb8000
|
||||
(0xa0efb4, 0xf944d108), # r4 cave_4f406c: ldr x8, [x8, #0x9a0]
|
||||
(0xa0efb8, 0xb940d908), # r4 cave_4f406c: ldr w8, [x8, #0xd8]
|
||||
(0xa0efbc, 0x1e220101), # r4 cave_4f406c: scvtf s1, w8
|
||||
(0xa0efc0, 0x1e210801), # r4 cave_4f406c: fmul s1, s0, s1
|
||||
(0xa0efc4, 0xbd407e60), # r4 cave_4f406c: ldr s0, [x19, #0x7c]
|
||||
(0xa0efc8, 0x17eb942b), # r4 cave_4f406c: b #0x4f4074
|
||||
(0xa0efcc, 0x2a0a03e9), # r5 stub_w10w9: mov w9, w10
|
||||
(0xa0efd0, 0x17ffff7b), # r5 stub_w10w9: b #0xa0edbc
|
||||
]
|
||||
|
||||
# Site, expected original bytes, upstream instruction to relocate, purpose.
|
||||
sites = [
|
||||
(0xd5dd4, '08050071', 0x9424e3eb, '[hs] +0x2024 sibling path: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0xd5e28, '08050071', 0x1424e2b2, 'S3 +0x2024 exact-zero (D1 handler 0xD3380) +0x2024: b 0xa0e8f0 (was subs w8,w8,#1)'),
|
||||
(0xe7f64, '08050071', 0x14249a4b, '15-count (v1 site 3) +0x2020: b 0xa0e890 (was subs w8,w8,#1)'),
|
||||
(0xf7ce8, '08050071', 0x14245af6, 'chain bind (v1 site 4) +0x2024: b 0xa0e8c0 (was subs w8,w8,#1)'),
|
||||
(0xf8720, '08050071', 0x14245850, 'S3 15-count in site-4 routine +0x2020: b 0xa0e860 (was subs w8,w8,#1)'),
|
||||
(0x2828ac, '08050071', 0x141e301d, '+0xF64 short latch +0xf64: b 0xa0e920 (was subs w8,w8,#1)'),
|
||||
(0x283044, '08050051', 0x141e2e97, 'bank +0x1364 buffer +0x1364: b 0xa0eaa0 (was sub w8,w8,#1)'),
|
||||
(0x283054, '08050051', 0x141e2e9b, 'bank +0x1368 buffer +0x1368: b 0xa0eac0 (was sub w8,w8,#1)'),
|
||||
(0x283064, '08050051', 0x141e2e9f, 'bank +0x136c buffer +0x136c: b 0xa0eae0 (was sub w8,w8,#1)'),
|
||||
(0x283074, '08050051', 0x141e2ea3, 'bank +0x138c buffer +0x138c: b 0xa0eb00 (was sub w8,w8,#1)'),
|
||||
(0x283084, '08050051', 0x141e2ea7, 'bank +0x1378 buffer +0x1378: b 0xa0eb20 (was sub w8,w8,#1)'),
|
||||
(0x283094, '08050051', 0x141e2eab, 'bank +0x137c buffer +0x137c: b 0xa0eb40 (was sub w8,w8,#1)'),
|
||||
(0x2830a4, '08050051', 0x141e2eaf, 'bank +0x1390 buffer +0x1390: b 0xa0eb60 (was sub w8,w8,#1)'),
|
||||
(0x2830b4, '08050051', 0x141e2eb3, 'bank +0x1370 buffer +0x1370: b 0xa0eb80 (was sub w8,w8,#1)'),
|
||||
(0x2830c4, '08050051', 0x141e2eb7, 'bank +0x1374 buffer +0x1374: b 0xa0eba0 (was sub w8,w8,#1)'),
|
||||
(0x2830d4, '08050051', 0x141e2ebb, 'bank +0x13a4 buffer +0x13a4: b 0xa0ebc0 (was sub w8,w8,#1)'),
|
||||
(0x2830e4, '08050051', 0x141e2ebf, 'bank +0x13a8 buffer +0x13a8: b 0xa0ebe0 (was sub w8,w8,#1)'),
|
||||
(0x2830f4, '08050051', 0x141e2ec3, 'bank +0x13cc buffer +0x13cc: b 0xa0ec00 (was sub w8,w8,#1)'),
|
||||
(0x283100, '08050071', 0x141e2e14, '+0x14B8 buffer +0x14b8: b 0xa0e950 (was subs w8,w8,#1)'),
|
||||
(0x28311c, '08050071', 0x141e2e19, '+0x46AEF0 tap buffer +0x46aef0: b 0xa0e980 (was subs w8,w8,#1)'),
|
||||
(0x283138, '08050051', 0x141e2eba, 'bank +0x1470 buffer +0x1470: b 0xa0ec20 (was sub w8,w8,#1)'),
|
||||
(0x283148, '08050051', 0x141e2ebe, 'bank +0x1474 buffer +0x1474: b 0xa0ec40 (was sub w8,w8,#1)'),
|
||||
(0x283158, '08050051', 0x141e2ec2, 'bank +0x1478 buffer +0x1478: b 0xa0ec60 (was sub w8,w8,#1)'),
|
||||
(0x283168, '08050051', 0x141e2ec6, 'bank +0x147c buffer +0x147c: b 0xa0ec80 (was sub w8,w8,#1)'),
|
||||
(0x283178, '08050051', 0x141e2eca, 'bank +0x1480 buffer +0x1480: b 0xa0eca0 (was sub w8,w8,#1)'),
|
||||
(0x283188, '08050051', 0x141e2ece, 'bank +0x1484 buffer +0x1484: b 0xa0ecc0 (was sub w8,w8,#1)'),
|
||||
(0x283198, '08050051', 0x141e2ed2, 'bank +0x1488 buffer +0x1488: b 0xa0ece0 (was sub w8,w8,#1)'),
|
||||
(0x2831a8, '08050051', 0x141e2ed6, 'bank +0x148c buffer +0x148c: b 0xa0ed00 (was sub w8,w8,#1)'),
|
||||
(0x2831b8, '08050051', 0x141e2eda, 'bank +0x1490 buffer +0x1490: b 0xa0ed20 (was sub w8,w8,#1)'),
|
||||
(0x2831c8, '08050051', 0x141e2ede, 'bank +0x1450 buffer +0x1450: b 0xa0ed40 (was sub w8,w8,#1)'),
|
||||
(0x2831dc, '08050051', 0x141e2ee1, 'bank +0x1454 buffer +0x1454: b 0xa0ed60 (was sub w8,w8,#1)'),
|
||||
(0x283294, '29050071', 0x941e2eca, '[hs] +0x46AE28 window: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x283360, '08050071', 0x941e2e88, '[hs] +0x46ADAC exact-zero: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x283a94, '4a050071', 0x141e2d03, '[isubs] +0x46B4C4 lockout: b cave 0xa0eea0 (was subs w10, w10, #1)'),
|
||||
(0x2846f0, '2a050011', 0x141e29f8, '[up] +0x46B62C up-counter: b cave 0xa0eed0 (was add w10, w9, #1)'),
|
||||
(0x284ad4, '08050071', 0x941e28ab, '[hs] +0x14E0 window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x284af0, '08050071', 0x941e28a4, '[hs] +0x46AEF8 window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x284b00, '08050071', 0x941e28a0, '[hs] +0xDA4 window (set 15 at 0x325300; next to r3 0x284AD4/0x284AF0): bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x284bb8, '08050071', 0x941e2872, '[hs] +0x46AF00 window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x284bf4, '08050071', 0x941e2863, '[hs] +0x46AF04 window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x285464, '08050071', 0x941e2647, '[hs] +0x46AE10 queue window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x2856f8, '29050071', 0x941e25b1, '[hs] +0x46AE14 re-injected press window: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x286c2c, '29050011', 0x141e20ae, '[upmin1] +0xC50 tap/hold count-up: b cave 0xa0eee4 (was add w9, w9, #1)'),
|
||||
(0x286e38, '08050071', 0x941e1fd2, '[hs] +0x14E0 window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x286f98, '08050071', 0x941e1f7a, '[hs] +0x14E0 window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x287044, '08050071', 0x941e1f4f, '[hs] +0x14E0 window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x28759c, '08050071', 0x141e1d05, '+0x14D4 buffer +0x14d4: b 0xa0e9b0 (was subs w8,w8,#1)'),
|
||||
(0x2875ac, '08050071', 0x141e1d0d, '+0x14D8 buffer +0x14d8: b 0xa0e9e0 (was subs w8,w8,#1)'),
|
||||
(0x2875bc, '08050071', 0x141e1d15, '+0x1414 buffer +0x1414: b 0xa0ea10 (was subs w8,w8,#1)'),
|
||||
(0x2875cc, '08050071', 0x141e1d1d, '+0x149C buffer +0x149c: b 0xa0ea40 (was subs w8,w8,#1)'),
|
||||
(0x2875dc, '08050071', 0x141e1d25, '+0x14DC buffer +0x14dc: b 0xa0ea70 (was subs w8,w8,#1)'),
|
||||
(0x287694, '49050071', 0x941e1e4e, '[hs] +0x13A0 second-tap window, path A (b.ge -> 0x28772C mov w10,w9; str): bl stub_w10w9 0xa0efcc (was subs w9, w10, #1)'),
|
||||
(0x2876d4, '08050071', 0x941e1dab, '[hs] +0x14D4 r2-sibling path (shares store 0x2875A4 with r2 0x28759C): bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x287724, '49050071', 0x941e1e2a, '[hs] +0x13A0 second-tap window, path B (b.lt -> 0x287734): bl stub_w10w9 0xa0efcc (was subs w9, w10, #1)'),
|
||||
(0x287738, '29050071', 0x941e1da1, '[hs] +0x139C window (set 15 with bank +0x137C at 0x287764/0x287790): bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x28783c, '29050071', 0x941e1d60, '[hs] +0x13B0 window (set 15 at 0x287830 next to bank +0x13A8 = 15): bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x288f40, '29050071', 0x941e179f, '[hs] lockout bank +0x46a8b0: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x288f5c, '29050071', 0x941e1798, '[hs] lockout bank +0x46a8c4: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x288f78, '29050071', 0x941e1791, '[hs] lockout bank +0x46b3a8: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x288f94, '29050071', 0x941e178a, '[hs] lockout bank +0x46b3ac: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x288fb0, '29050071', 0x941e1783, '[hs] lockout bank +0x46b460: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x288fcc, '29050071', 0x941e177c, '[hs] lockout bank +0x46b464: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x288fe8, '29050071', 0x941e1775, '[hs] lockout bank +0x46b490: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x289004, '29050071', 0x941e176e, '[hs] lockout bank +0x46b49c: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x289020, '29050071', 0x941e1767, '[hs] lockout bank +0x46b638: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x28903c, '29050071', 0x941e1760, '[hs] lockout bank +0x46b640: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x289244, '29050071', 0x941e16de, '[hs] lockout bank +0x46b658: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x289260, '29050071', 0x941e16d7, '[hs] lockout bank +0x46b664: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x28927c, '29050071', 0x941e16d0, '[hs] lockout bank +0x46b66c: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x289298, '29050071', 0x941e16c9, '[hs] lockout bank +0x46b39c: bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x308a9c, '08050071', 0x141c1765, 'combo cue (v1 site 1) +0x1290: b 0xa0e830 (was subs w8,w8,#1)'),
|
||||
(0x32cac8, '29050071', 0x941b88bd, '[hs] player deferred hitstop delay +0x7e88; exact-zero -> 0x91D6A0(w2=0): bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x32cdc0, '29050071', 0x941b87ff, '[hs] player deferred hitstop delay +0x7e94; exact-zero -> 0x91D6A0(w2=0): bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x32d0b8, '29050071', 0x941b8741, '[hs] player deferred hitstop delay +0x7e80; exact-zero -> 0x91D6A0(w2=0): bl hs_w9 0xa0edbc (was subs w9, w9, #1)'),
|
||||
(0x3a2d40, '08582a1e', 0x94074da9, 'was fmin s8,s0,s10 -> bl 0x5763E4'),
|
||||
(0x3a2d80, '28582a1e', 0x94074d9b, 'was fmin s8,s1,s10 -> bl 0x5763EC'),
|
||||
(0x3a2dc0, '48cd291e', 0x94074d8d, 'was fcsel s8,s10,s9,gt -> bl 0x5763F4'),
|
||||
(0x48be14, '0800381e', 0xb940d908, 'Replace FCVTZS: ldr w8,[x8,#0xD8]'),
|
||||
(0x4f3d30, '08050071', 0x94146c14, '[hs] +0x38 delay set by 0x4F27A0(w3); exact-zero -> 0x4F27A0(+0x3C,+0x40) issues the scale: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3d5c, '08050071', 0x94146c09, '[hs] +0x34 duration of scale +0x30; exact-zero -> sound 0x8DD890 + 0x923B90(+0xE8); expiry -> +0x30=1.0: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3d98, '08050071', 0x94146bfa, '[hs] +0x48 duration of scale +0x44; exact-zero -> +0x14=0; expiry -> +0x44=1.0: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3db0, '08050071', 0x94146bf4, '[hs] +0x74 duration of scale +0x70; exact-zero -> +0x10=0, 0x923B90(+0x100); expiry -> +0x70=1.0: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3e4c, '08050071', 0x94146bcd, '[hs] +0xA8 request suppression window: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3e64, '08050071', 0x94146bc7, '[hs] +0x48 sibling path after +0x34 expiry: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3e78, '08050071', 0x94146bc2, '[hs] +0x74 sibling path after +0x48 expiry: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3f04, '08050071', 0x94146b9f, '[hs] +0xA8 request suppression window, b.lt path: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3f14, '08050071', 0x94146b9b, '[hs] +0xA4 duration of scale +0xA0: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3f3c, '08050071', 0x94146b91, '[hs] +0x54 duration of scale +0x50: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3f54, '08050071', 0x94146b8b, '[hs] +0x80 hold-request delay: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3f88, '08050071', 0x94146b7e, '[hs] +0x54 sibling path after +0xA4 expiry: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f3fb0, '08050071', 0x94146b74, '[hs] +0x8C cue delay after request release; exact-zero -> sound 0x8DD890: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x4f4010, '29050051', 0x14146b98, '[clamp1] +0x8C clamped decrement: b cave 0xa0ee70 (was sub w9, w9, #1)'),
|
||||
(0x4f4018, '08050011', 0x14146b9d, '[up] +0x84 freeze-phase count-up: b cave 0xa0ee8c (was add w8, w8, #1)'),
|
||||
(0x4f406c, '607e40bd', 0x14146bd0, '[ramp] manager +0x7C ramp step c*T: b cave 0xa0efac (was ldr s0, [x19, #0x7c]; 0x4F4070 now skipped)'),
|
||||
(0x4f41b0, '08050071', 0x94146af4, '[hs] +0xB4 window; expiry -> +0xAC=0: bl hs_w8 0xa0ed80 (was subs w8, w8, #1)'),
|
||||
(0x57e7dc, '00d340bd', 0xb940db08, 'Load whole ticks: ldr w8,[x24,#0xD8]'),
|
||||
(0x57e7e0, '0800391e', 0x34000188, 'Zero ticks: cbz w8,0x57E810'),
|
||||
(0x91dbdc, 'c80600b4', 0xb4786268, 'First sample: cbz x8,0xA0E828'),
|
||||
(0x91dc10, 'd5010034', 0x1403c2f0, 'Measured sample: b 0xA0E7D0'),
|
||||
(0x91de50, '10060071', 0x1403c42d, '[isubs] clock +0x34 delay: b cave 0xa0ef04 (was subs w16, w16, #1)'),
|
||||
(0x91dee8, '10060071', 0x1403c413, '[naive] clock +0x30 duration: b cave 0xa0ef34 (was subs w16, w16, #1)'),
|
||||
(0x9abc68, '09050071', 0x14018cbd, '[rumble] rumble channel 0 count +0x48: b stub 0xa0ef5c -> rh_w8 (was subs w9, w8, #1)'),
|
||||
(0x9abc7c, '2a050071', 0x14018cba, '[rumble] rumble channel count +0x60: b stub 0xa0ef64 -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abcc0, '2a050071', 0x14018cab, '[rumble] rumble channel count +0x60: b stub 0xa0ef6c -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abcdc, '2a050071', 0x14018ca8, '[rumble] rumble channel count +0x78: b stub 0xa0ef7c -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abd34, '2a050071', 0x14018c90, '[rumble] rumble channel count +0x60: b stub 0xa0ef74 -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abd50, '2a050071', 0x14018c8d, '[rumble] rumble channel count +0x78: b stub 0xa0ef84 -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abd6c, '2a050071', 0x14018c8a, '[rumble] rumble channel count +0x90: b stub 0xa0ef94 -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abdd0, '2a050071', 0x14018c6f, '[rumble] rumble channel count +0x78: b stub 0xa0ef8c -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abdec, '2a050071', 0x14018c6c, '[rumble] rumble channel count +0x90: b stub 0xa0ef9c -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abe8c, '2a050071', 0x14018c46, '[rumble] rumble channel count +0x90: b stub 0xa0efa4 -> rh_w9 (was subs w10, w9, #1)'),
|
||||
(0x9abf40, '29050011', 0x14018c02, '[up] pad auto-repeat count +0x30: b cave 0xa0ef48 (was add w9, w9, #1)'),
|
||||
]
|
||||
Reference in new issue
Block a user