rizin/test/db/cmd/cmd_avx
Anton Angelov 95f94ae258
refactor: SwissTable implementation for ht (#5860)
* Add ht benchmarks
* Initial implementation
* Finalize native per-group lookup support
* Lookup SSE2 implementation
* Improve hashing
* Add support for custom elem_size
* Avoid double h2 hashing when reserving slot
* Make custom elem_size support conditional
* Fix issues with bitwise and default lookup implementations
* Implement deletion trick optimization
* Track growth_size instead of deleted_slots
* Refactor SDB to access ht via API instead of internals
* Modify SDB tests which rely on hashtable order
* Fix SDB build warnings
* Fix bug with finding next power of two
* foreach_kv to return a bool result
* Change SDB diff order expected by serialize_analysis unit test
* Fix bug in the bitwise lookup implementation
* Remove second call to rz_core_init() which causes memory leaks
* Update some regression tests to accept reordered output
* Adapt ht clear to new implementation
* Use fini_kv_pair and fix 1 potential leak on malloc failure
* Fix cmd/types test after merge
* Avoid second call to calsize_key and avoid iter leaks on malloc failure
* Improve hash distribution
* Extend benchmark suite
* Fix bug with string hashing
* Branchless write to mirrored ctrl bytes
* Simplify string hash and remove potential UB
* Move RZ_PREFETCH macro to rz_types.h
* Add SSE2 discovery in Meson
* Forward SDB string hash function to ht string hash
* Try to revert test_cpu_profiles() to avoid relying on a baked SDB file
* Revert SDB/CDB hash function change
* Fix SDB reference to HT hash function instead of CDB hash
* Change calloc to malloc
* Avoid storing/checking key_len and key_value if they are ut64
* Improve string hash function
* Rename default hash functions
* Improve bench code
* linter.yml: set clang-path to point to llvm-18
2026-03-02 12:31:35 +08:00

85 lines
No EOL
1.5 KiB
Text

NAME=cxx virtual xrefs simple (x86-64)
FILE=bins/elf/analysis/x86-class-C
CMDS=<<EOF
aaaa
avD @ main
avx method.C.print
EOF
EXPECT=<<EOF
Virtual xrefs to method.C.print
C 0x004008c5 call rdx
EOF
RUN
NAME=cxx virtual xrefs multiple (arm64)
FILE=bins/mach0/arm64-class-conditional
CMDS=<<EOF
aaaa
avD @ main
avx method.Dog.run
EOF
EXPECT=<<EOF
Virtual xrefs to method.Dog.run
C 0x10000289c blr x8
C 0x100002958 blr x8
C 0x10000290c blr x8
EOF
RUN
NAME=cxx virtual xrefs multiple with table output (arm64)
FILE=bins/mach0/arm64-class-conditional
CMDS=<<EOF
aaaa
avD @ main
avxt method.Dog.run
EOF
EXPECT=<<EOF
from
------------
0x10000289c
0x100002958
0x10000290c
EOF
RUN
NAME=objc message dispatch (amd64)
FILE=bins/mach0/objc-employee
CMDS=<<EOF
aaaa
avD @ main
avx method_Employee_sayHello
avxt method_Employee_sayHello
EOF
EXPECT=<<EOF
Virtual xrefs to method_Employee_sayHello
C 0x100001937 call qword [reloc.objc_msgSend]
C 0x100001914 call qword [reloc.objc_msgSend]
from
------------
0x100001937
0x100001914
EOF
RUN
NAME=objc msg dispatch (arm64)
FILE=bins/mach0/objc-employee-ios14-arm64e
CMDS=<<EOF
aaaa
avD @ main
avx method_Employee_base
avx method_Employee_sayHello
avxt method_Employee_sayHello
EOF
EXPECT=<<EOF
Virtual xrefs to method_Employee_base
C 0x100007804 bl sym.imp.objc_msgSend
Virtual xrefs to method_Employee_sayHello
C 0x1000077d4 bl sym.imp.objc_msgSend
C 0x1000077c0 bl sym.imp.objc_msgSend
from
------------
0x1000077d4
0x1000077c0
EOF
RUN