add heap-record
This commit is contained in:
parent
01c12a53ac
commit
e1825d1e93
2 changed files with 37 additions and 0 deletions
3
src/research/heap-record.ld
Normal file
3
src/research/heap-record.ld
Normal file
|
@ -0,0 +1,3 @@
|
|||
$$ = 0;
|
||||
$C2$.init = 0x34 + TApplication.proc;
|
||||
$C2$.onHeapAlloc = 0x88 + JKRSolidHeap.alloc;
|
34
src/research/heap-record.s
Normal file
34
src/research/heap-record.s
Normal file
|
@ -0,0 +1,34 @@
|
|||
.set rSlot, 12
|
||||
.set rSp, 11
|
||||
.set rSize, 30
|
||||
.set rPtr, 31
|
||||
|
||||
.init:
|
||||
lis rSlot, 0x9000
|
||||
lis rSp, 0x9400
|
||||
stw rSp, 0(rSlot)
|
||||
## orig
|
||||
li r29, 0
|
||||
|
||||
.onHeapAlloc:
|
||||
## prepare
|
||||
### r12 = &sp = 9000_0000
|
||||
lis rSlot, 0x9000
|
||||
### r11 = sp
|
||||
lwz rSp, 0(rSlot)
|
||||
## record (size, ptr)
|
||||
stwu rSize, -4(rSp)
|
||||
stwu rPtr, -4(rSp)
|
||||
## store LR
|
||||
### r3 = sp of alloc
|
||||
lwz r3, 0(r1)
|
||||
### r3 = sp of operator_new
|
||||
lwz r3, 0(r3)
|
||||
### r3 = LR of operator_new
|
||||
lwz r3, 4(r3)
|
||||
### store
|
||||
stwu r3, -4(rSp)
|
||||
## write back sp
|
||||
stw rSp, 0(rSlot)
|
||||
## orig
|
||||
addi r3, r29, 0x18
|
Loading…
Reference in a new issue