rizin/test/db/analysis/hppa
2026-02-01 18:23:12 +08:00

158 lines
5.8 KiB
Text

NAME=hppa analysis graph
FILE=bins/hppa/elf-Linux-hppa-bash
CMDS=<<EOF
aaa
s sym.array_keys_to_word_list
pdf
agf
EOF
EXPECT=<<EOF
/ sym.array_keys_to_word_list();
| 0x000607ec stw rp, -0x14(sp)
| 0x000607f0 stw,ma r5, 0x80(sp)
| 0x000607f4 ldo -0x70(sp), r1
| 0x000607f8 stw r4, -0x7c(sp)
| 0x000607fc stw r3, -0x78(sp)
| ,=< 0x00060800 movb,<> r26, r5, 0x6082c
| | 0x00060804 fstd,ma fr12, 8(r1)
| | 0x00060808 ldo 0(flags), r4
| | 0x0006080c or r4, flags, ret0
| | 0x00060810 ldo -0x70(sp), r1
| | 0x00060814 ldw -0x94(sp), rp
| | 0x00060818 ldw -0x7c(sp), r4
| | 0x0006081c ldw -0x78(sp), r3
| | 0x00060820 fldd,ma 8(r1), fr12
| | 0x00060824 bve (rp)
| | 0x00060828 ldw,mb -0x80(sp), r5
| `-> 0x0006082c ldw 0x10(r5), ret0
| 0x00060830 ldw 0x14(r5), r19
| 0x00060834 or,* ret0, r19, ret0
| 0x00060838 cmpib,= 0, ret0, 0x6080c
| 0x0006083c ldo 0(flags), r4
| 0x00060840 ldw 0x18(r5), ret0
| 0x00060844 ldw 0xc(ret0), r3
| 0x00060848 cmpb,= r3, ret0, 0x60810
| 0x0006084c or r4, flags, ret0
| 0x00060850 ldw 0(r3), r25
| 0x00060854 ldw 4(r3), r26
| 0x00060858 b,l sym.itos, flags
| 0x0006085c or flags, flags, flags
| 0x00060860 stw ret0, -0x10(sp)
| 0x00060864 fldw -0x10(sp), fr12
| 0x00060868 b,l sym.make_bare_word, r31
| 0x0006086c or ret0, flags, r26
| 0x00060870 or r4, flags, r25
| 0x00060874 b,l sym.make_word_list, r31
| 0x00060878 or ret0, flags, r26
| 0x0006087c fstw fr12, -0x10(sp)
| 0x00060880 ldw -0x10(sp), r26
| 0x00060884 b,l 0x76aec, flags
| 0x00060888 or ret0, flags, r4
| 0x0006088c ldw 0xc(r3), r3
| 0x00060890 ldw 0x18(r5), ret0
| 0x00060894 cmpb,<> r3, ret0, 0x60850
| 0x00060898 or flags, flags, flags
| 0x0006089c cmpib,= 0, r4, 0x60810
| 0x000608a0 or r4, flags, ret0
| 0x000608a4 ldw 0(r4), ret0
| 0x000608a8 cmpib,= 0, ret0, 0x6080c
| 0x000608ac or r4, flags, r26
| 0x000608b0 ldo -0x70(sp), r1
| 0x000608b4 ldw -0x94(sp), rp
| 0x000608b8 ldw -0x7c(sp), r4
| 0x000608bc ldw -0x78(sp), r3
| 0x000608c0 fldd,ma 8(r1), fr12
| 0x000608c4 b,l sym.list_reverse, flags
| 0x000608c8 ldw,mb -0x80(sp), r5
\ 0x000608cc or flags, flags, flags
.--------------------------------.
| 0x607ec |
| sym.array_keys_to_word_list(); |
| stw rp, -0x14(sp) |
| stw,ma r5, 0x80(sp) |
| ldo -0x70(sp), r1 |
| stw r4, -0x7c(sp) |
| stw r3, -0x78(sp) |
| movb,<> r26, r5, 0x6082c |
`--------------------------------'
f t
| |
| '--------------.
.------' |
| |
.----------------------. |
| 0x60804 | |
| fstd,ma fr12, 8(r1) | |
| ldo 0(flags), r4 | |
| or r4, flags, ret0 | |
| ldo -0x70(sp), r1 | |
| ldw -0x94(sp), rp | |
| ldw -0x7c(sp), r4 | |
| ldw -0x78(sp), r3 | |
| fldd,ma 8(r1), fr12 | |
| bve (rp) | |
| ldw,mb -0x80(sp), r5 | |
`----------------------' |
v |
| |
'------. |
| .--------------'
| |
.-----------------------------.
| 0x6082c |
| ldw 0x10(r5), ret0 |
| ldw 0x14(r5), r19 |
| or,* ret0, r19, ret0 |
| cmpib,= 0, ret0, 0x6080c |
| ldo 0(flags), r4 |
| ldw 0x18(r5), ret0 |
| ldw 0xc(ret0), r3 |
| cmpb,= r3, ret0, 0x60810 |
| or r4, flags, ret0 |
| ldw 0(r3), r25 |
| ldw 4(r3), r26 |
| b,l sym.itos, flags |
| or flags, flags, flags |
| stw ret0, -0x10(sp) |
| fldw -0x10(sp), fr12 |
| b,l sym.make_bare_word, r31 |
| or ret0, flags, r26 |
| or r4, flags, r25 |
| b,l sym.make_word_list, r31 |
| or ret0, flags, r26 |
| fstw fr12, -0x10(sp) |
| ldw -0x10(sp), r26 |
| b,l 0x76aec, flags |
| or ret0, flags, r4 |
| ldw 0xc(r3), r3 |
| ldw 0x18(r5), ret0 |
| cmpb,<> r3, ret0, 0x60850 |
| or flags, flags, flags |
| cmpib,= 0, r4, 0x60810 |
| or r4, flags, ret0 |
| ldw 0(r4), ret0 |
| cmpib,= 0, ret0, 0x6080c |
| or r4, flags, r26 |
| ldo -0x70(sp), r1 |
| ldw -0x94(sp), rp |
| ldw -0x7c(sp), r4 |
| ldw -0x78(sp), r3 |
| fldd,ma 8(r1), fr12 |
| b,l sym.list_reverse, flags |
| ldw,mb -0x80(sp), r5 |
| or flags, flags, flags |
`-----------------------------'
v
|
'.
|
.---------------------------.
| 0x608d0 |
| sym.array_to_word_list(); |
| stw rp, -0x14(sp) |
| stw,ma r5, 0x40(sp) |
| stw r4, -0x3c(sp) |
| movb,<> r26, r5, 0x60900 |
`---------------------------'
EOF
RUN