Skip to content

Commit 20d134c

Browse files
committed
betterarg
1 parent 3aad909 commit 20d134c

6 files changed

Lines changed: 47 additions & 40 deletions

File tree

test/db/anal/emu

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ ret paths
8080
.-------------------------------------.
8181
| 0x100007ed8 |
8282
| 92: sym._retbool (int64_t arg_20h); |
83-
| ; arg int64_t arg_20h @ sp+0x40 |
83+
| ; arg int64_t arg_20h @ sp+0x20 |
8484
| ; var int64_t var_10h @ sp+0x10 |
8585
| sub sp, sp, 0x20 |
8686
| stp x29, x30, [var_10h] |
@@ -193,8 +193,9 @@ EXPECT=<<EOF
193193
32: int main (int argc);
194194
; arg int argc @ x0
195195
; var int64_t var_8h @ sp+0x8
196+
; var int64_t var_ch @ sp+0xc
196197
0x100003f88 01:0001 sub sp, sp, 0x10
197-
0x100003f8c 01:0002 str wzr, [sp, 0xc]
198+
0x100003f8c 01:0002 str wzr, [var_ch]
198199
0x100003f90 01:0003 str wzr, [var_8h]
199200
0x100003f94 01:0004 b 0x100003f98
200201
0x100003f98 07:001d ldr w8, [var_8h]

test/db/anal/jmptbl

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ EXPECT=<<EOF
1010
;-- section.0.__TEXT.__text:
1111
; DATA XREF from sym.func.100004000 @ 0x100004040(r)
1212
276: sym.func.100004000 (int64_t arg1, int64_t arg2, int64_t arg3, int64_t arg4, int64_t arg5, int64_t arg6, int64_t arg_80h);
13-
`- args(x0, x1, x3, x4, x5, x6, sp[0x80..0x80]) vars(6:sp[0x10..0x60])
13+
`- args(x0, x1, x3, x4, x5, x6) vars(8:sp[0x10..0x80])
1414
0x100004000 sub sp, sp, 0x80 ; [00] -r-x section size 13240 named 0.__TEXT.__text
1515
0x100004004 str x28, [var_20h]
1616
0x100004008 stp x27, x26, [var_30h]
@@ -73,7 +73,7 @@ EXPECT=<<EOF
7373
| // true: 0x1000040b0
7474
0x1000040b0 str x28, [x26]
7575
0x1000040b4 add x8, x28, 0x20
76-
0x1000040b8 stp x27, x24, [sp, 8]
76+
0x1000040b8 stp x27, x24, [var_8h]
7777
0x1000040bc str x8, [sp]
7878
0x1000040c0 mov w0, 0
7979
0x1000040c4 mov w1, 2
@@ -383,7 +383,7 @@ pdr
383383
EOF
384384
EXPECT=<<EOF
385385
904: sym.func.100004124 (int64_t arg1, int64_t arg2, int64_t arg_140h);
386-
`- args(x0, x1, sp[0x140..0x140]) vars(25:sp[0x10..0x140])
386+
`- args(x0, x1) vars(25:sp[0x10..0x140])
387387
0x100004124 sub sp, sp, 0x140
388388
0x100004128 str x28, [var_e0h]
389389
0x10000412c stp x27, x26, [var_f0h]
@@ -438,21 +438,21 @@ EXPECT=<<EOF
438438
0x1000041b8 stur x24, [x29, -0x68]
439439
0x1000041bc cmp x26, 0
440440
0x1000041c0 csel x1, x26, xzr, gt
441-
0x1000041c4 str x0, [arg_140hx88] ; arg1
441+
0x1000041c4 str x0, [var_88h] ; arg1
442442
0x1000041c8 sub x20, x29, 0x68
443443
0x1000041cc mov w0, 0
444444
0x1000041d0 mov w2, 0
445445
0x1000041d4 bl sym.func.1000044bc
446-
0x1000041d8 ldr x22, [arg_140hx88]
446+
0x1000041d8 ldr x22, [var_88h]
447447
0x1000041dc sxtw x8, w22
448-
0x1000041e0 str x8, [arg_140hx78]
448+
0x1000041e0 str x8, [var_78h]
449449
0x1000041e4 str x19, [sp]
450450
0x1000041e8 cbz w25, 0x1000041fc
451451
| // true: 0x1000041fc false: 0x1000041ec
452452
0x1000041ec cmp w25, 1
453453
0x1000041f0 b.ne 0x100004204
454454
| // true: 0x100004204 false: 0x1000041f4
455-
0x1000041f4 ldr x23, [arg_140hx78]
455+
0x1000041f4 ldr x23, [var_78h]
456456
0x1000041f8 b 0x100004208
457457
| // true: 0x100004208
458458
0x1000041fc mov w23, w25
@@ -468,27 +468,27 @@ EXPECT=<<EOF
468468
0x100004214 ldr x9, [var_80h]
469469
0x100004218 and x20, x9, 0x3fffffffffffffff
470470
0x10000421c ubfx x8, x9, 0x30, 8
471-
0x100004220 stp x10, x8, [arg_140hx68]
471+
0x100004220 stp x10, x8, [var_0hx68]
472472
0x100004224 lsr x10, x22, 8
473473
0x100004228 lsr x8, x22, 0x10
474-
0x10000422c stp x8, x10, [arg_140hx58]
474+
0x10000422c stp x8, x10, [var_0hx58]
475475
0x100004230 lsr x10, x22, 0x18
476476
0x100004234 lsr x8, x22, 0x20
477-
0x100004238 stp x8, x10, [arg_140hx48]
477+
0x100004238 stp x8, x10, [var_0hx48]
478478
0x10000423c lsr x10, x22, 0x28
479479
0x100004240 lsr x8, x22, 0x30
480-
0x100004244 stp x8, x10, [arg_140hx38]
480+
0x100004244 stp x8, x10, [var_0hx38]
481481
0x100004248 lsr x10, x22, 0x38
482482
0x10000424c lsr x8, x9, 8
483-
0x100004250 stp x8, x10, [arg_140hx28]
483+
0x100004250 stp x8, x10, [var_0hx28]
484484
0x100004254 lsr x8, x9, 0x10
485-
0x100004258 str x8, [arg_140hx20]
485+
0x100004258 str x8, [var_0hx20]
486486
0x10000425c adrp x8, 0x100007000
487487
0x100004260 ldr q0, [x8, 0x800]
488-
0x100004264 str q0, [arg_140hx90]
488+
0x100004264 str q0, [var_0hx90]
489489
0x100004268 lsr x10, x9, 0x18
490490
0x10000426c lsr x8, x9, 0x20
491-
0x100004270 stp x8, x10, [arg_140hx10]
491+
0x100004270 stp x8, x10, [var_0hx10]
492492
0x100004274 lsr x8, x9, 0x28
493493
0x100004278 str x8, [var_8h]
494494
0x10000427c stp x25, x20, [x29, -0x88]
@@ -500,11 +500,11 @@ EXPECT=<<EOF
500500
0x100004288 cmp w25, 1
501501
0x10000428c b.ne 0x100004348
502502
| // true: 0x100004348 false: 0x100004290
503-
0x100004290 ldr x8, [arg_140hx78]
503+
0x100004290 ldr x8, [var_78h]
504504
0x100004294 cmp x23, x8
505505
0x100004298 b.lt 0x10000447c
506506
| // true: 0x10000447c false: 0x10000429c
507-
0x10000429c ldr x8, [arg_140hx68]
507+
0x10000429c ldr x8, [var_0hx68]
508508
0x1000042a0 cmp x23, x8
509509
0x1000042a4 b.ge 0x10000447c
510510
| // true: 0x10000447c false: 0x1000042a8
@@ -518,34 +518,34 @@ EXPECT=<<EOF
518518
| // true: 0x100004378 false: 0x1000042c0
519519
0x1000042c0 b 0x100004488
520520
| // true: 0x100004488
521-
0x1000042c4 ldr x8, [arg_140hx70]
521+
0x1000042c4 ldr x8, [var_0hx70]
522522
0x1000042c8 cmp x23, x8
523523
0x1000042cc b.ge 0x100004480
524524
| // true: 0x100004480 false: 0x1000042d0
525525
0x1000042d0 sturb w22, [x29, -0x78]
526-
0x1000042d4 ldr x8, [arg_140hx60]
526+
0x1000042d4 ldr x8, [var_0hx60]
527527
0x1000042d8 sturb w8, [x29, -0x77]
528-
0x1000042dc ldr x8, [arg_140hx58]
528+
0x1000042dc ldr x8, [var_0hx58]
529529
0x1000042e0 sturb w8, [x29, -0x76]
530-
0x1000042e4 ldr x8, [arg_140hx50]
530+
0x1000042e4 ldr x8, [var_0hx50]
531531
0x1000042e8 sturb w8, [x29, -0x75]
532-
0x1000042ec ldr x8, [arg_140hx48]
532+
0x1000042ec ldr x8, [var_0hx48]
533533
0x1000042f0 sturb w8, [x29, -0x74]
534-
0x1000042f4 ldr x8, [arg_140hx40]
534+
0x1000042f4 ldr x8, [var_0hx40]
535535
0x1000042f8 sturb w8, [x29, -0x73]
536-
0x1000042fc ldr x8, [arg_140hx38]
536+
0x1000042fc ldr x8, [var_0hx38]
537537
0x100004300 sturb w8, [x29, -0x72]
538-
0x100004304 ldr x8, [arg_140hx30]
538+
0x100004304 ldr x8, [var_0hx30]
539539
0x100004308 sturb w8, [x29, -0x71]
540540
0x10000430c ldr x8, [var_80h]
541541
0x100004310 sturb w8, [x29, -0x70]
542-
0x100004314 ldr x8, [arg_140hx28]
542+
0x100004314 ldr x8, [var_0hx28]
543543
0x100004318 sturb w8, [x29, -0x6f]
544-
0x10000431c ldr x8, [arg_140hx20]
544+
0x10000431c ldr x8, [var_0hx20]
545545
0x100004320 sturb w8, [x29, -0x6e]
546-
0x100004324 ldr x8, [arg_140hx18]
546+
0x100004324 ldr x8, [var_0hx18]
547547
0x100004328 sturb w8, [x29, -0x6d]
548-
0x10000432c ldr x8, [arg_140hx10]
548+
0x10000432c ldr x8, [var_0hx10]
549549
0x100004330 sturb w8, [x29, -0x6c]
550550
0x100004334 ldr x8, [var_8h]
551551
0x100004338 sturb w8, [x29, -0x6b]
@@ -570,7 +570,7 @@ EXPECT=<<EOF
570570
0x100004374 b.vs 0x100004490
571571
| // true: 0x100004490 false: 0x100004378
572572
0x100004378 ldrb w19, [x19, x8]
573-
0x10000437c ldr x22, [arg_140hx88]
573+
0x10000437c ldr x22, [var_88h]
574574
| // true: 0x100004380
575575
; CODE XREF from sym.func.100004124 @ 0x100004344(x)
576576
0x100004380 adrp x0, segment.__DATA ; 0x100010000
@@ -580,7 +580,7 @@ EXPECT=<<EOF
580580
0x100004390 mov w2, 7
581581
0x100004394 bl sym.imp.swift_allocObject
582582
0x100004398 mov x2, x0
583-
0x10000439c ldr q0, [arg_140hx90]
583+
0x10000439c ldr q0, [var_0hx90]
584584
0x1000043a0 str q0, [x0, 0x10]
585585
0x1000043a4 adrp x8, reloc.Foundation.__DataStorage.bytes.allocator_...itcfc_ ; 0x10000c000
586586
0x1000043a8 ldr x8, [x8, 0x360]
@@ -619,7 +619,7 @@ EXPECT=<<EOF
619619
0x10000441c mov x1, x19
620620
0x100004420 mov w2, 1
621621
0x100004424 bl sym.func.1000044bc
622-
0x100004428 ldr x22, [arg_140hx88]
622+
0x100004428 ldr x22, [var_88h]
623623
0x10000442c ldur x24, [x29, -0x68]
624624
0x100004430 b 0x1000043f0
625625
| // true: 0x1000043f0

test/db/anal/mach0

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,21 @@ EXPECT=<<EOF
6161
/ 2972: int main (int argc, char **argv); // noreturn
6262
| ; arg int argc @ x0
6363
| ; arg char **argv @ x1
64+
| ; var int64_t var_0h @ sp+0x0
6465
| ; var int64_t var_8h @ sp+0x8
6566
| ; var int64_t var_14h @ sp+0x14
6667
| ; var int64_t var_18h @ sp+0x18
67-
| ; var int64_t var_20h @ sp+0x20
68+
| ; var int64_t var_20h_2 @ sp+0x20
6869
| ; var int64_t var_220h @ sp+0x220
70+
| ; var int64_t var_10h @ sp+0x650
71+
| ; var int64_t var_20h @ sp+0x660
72+
| ; var int64_t var_30h @ sp+0x670
73+
| ; var int64_t var_40h @ sp+0x680
6974
| ; var int64_t var_50h @ sp+0x690
7075
| 0x100003a90 7f2303d5 pacibsp
7176
| 0x100003a94 fc6fbaa9 stp x28, x27, [sp, -0x60]!
72-
| 0x100003a98 fa6701a9 stp x26, x25, [sp, 0x10]
73-
| 0x100003a9c f85f02a9 stp x24, x23, [var_20h]
77+
| 0x100003a98 fa6701a9 stp x26, x25, [var_0hx10]
78+
| 0x100003a9c f85f02a9 stp x24, x23, [var_20h_2]
7479
EOF
7580
RUN
7681

test/db/anal/mips

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -636,8 +636,7 @@ EXPECT=<<EOF
636636
0x8060b56c 0800e003 jr ra
637637
0x8060b570 000080a0 sb zero, 0(a0)
638638
0x8060b574 00000000 nop
639-
20: fcn.8060b578 (int32_t arg_20h);
640-
`- args(sp[0x20..0x20]) vars(1:sp[0x20..0x20])
639+
20: fcn.8060b578 ();
641640
0x8060b578 e0ffbd27 addiu sp, sp, -32
642641
0x8060b57c 542d180c jal fcn.8060b550
643642
0x8060b580 00000000 nop

test/db/anal/vars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,7 @@ EXPECT=<<EOF
606606
| ; arg int argc @ x0
607607
| ; arg char **argv @ x1
608608
| ; arg int64_t envp @ sp+0x20
609+
| ; var int64_t var_0h @ sp+0x0
609610
| ; var int64_t var_8h @ sp+0x8
610611
| ; var int64_t var_ch @ sp+0xc
611612
| 0x100003f64 ff4300d1 sub sp, sp, 0x10 ; [00] -r-x section size 68 named 0.__TEXT.__text
@@ -634,6 +635,7 @@ EXPECT=<<EOF
634635
| ; arg int argc @ x0
635636
| ; arg char **argv @ x1
636637
| ; arg int64_t envp @ sp+0x20
638+
| ; var int64_t var_0h @ sp+0x0
637639
| ; var int64_t var_8h @ sp+0x8
638640
| ; var int64_t var_ch @ sp+0xc
639641
| 0x100003f64 ff4300d1 sub sp, sp, 0x10 ; [00] -r-x section size 68 named 0.__TEXT.__text

test/db/anal/x86_32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ e asm.var=false
2424
pdb
2525
EOF
2626
EXPECT=<<EOF
27-
/ 337: entry0 (int32_t arg_4h, int32_t arg_1dh, int32_t arg_31h, int32_t arg_0h, int32_t arg_ch, int32_t arg_10h, int32_t arg_14h, int32_t arg_1ch, int32_t arg_24h, int32_t arg_2ch, int32_t arg_30h, int32_t arg_38h, int32_t arg_3ch, int32_t arg_3eh, int32_t arg_40h, int32_t arg_44h, int32_t arg_48h, int32_t arg_4ch, int32_t arg_50h, int32_t arg_68h, int32_t arg_80h);
27+
/ 337: entry0 (int32_t arg_ch, int32_t arg_1dh, int32_t arg_31h, int32_t arg_0h, int32_t arg_4h, int32_t arg_18h, int32_t arg_1ch, int32_t arg_28h, int32_t arg_2ch, int32_t arg_30h, int32_t arg_44h, int32_t arg_50h, int32_t arg_78h, int32_t arg_7ch, int32_t arg_80h, int32_t arg_84h, int32_t arg_c8h);
2828
| 0x006453a1 e8d8170000 call fcn.00646b7e
2929
| 0x006453a6 8d642444 lea esp, [arg_44h]
3030
| ,=< 0x006453aa 0f85a6300000 jne 0x648456

0 commit comments

Comments
 (0)