You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I found this issue when implementing Crabstone Ruby binding on Capstone 5. The existing unit tests failed with Capstone 5.
I am currently rebuild testing. If you want to add support for newer versions, add support only for future v6 (the current next branch, release set to September). It is way way more up to data and modernized. If you continue, consider rebasing on #2384. You can consume the yaml files with test cases there. Way way more easier.
I found this issue when implementing Crabstone Ruby binding on Capstone 5. The existing unit tests failed with Capstone 5.
Work environment
git clone
Instruction bytes giving faulty results
Expected results
It should be:
Have two operands, one is PREFETCH and one is MEM.
Steps to get the wrong result
With
cstool
:On the v5 branch, only one operand is reported:
On the next branch, it reports two operands but the first one doesn't look right, at least it seems reporting mnemonic instead of the operand.
cstool/cstool -d aarch64 '404ba6f8' 0 40 4b a6 f8 prfm pldl1keep, [x26, w6, uxtw] ID: 782 (prfm) op_count: 2 operands[0].type: SYS ALIAS: operands[0].subtype PRFM = 0x0 operands[1].type: MEM operands[1].mem.base: REG = x26 operands[1].mem.index: REG = w6 operands[1].access: READ Ext: 3 Registers read: x26 w6
On both Capstone v3 and v4 the output match what I expect:
On v3:
cstool/cstool -d arm64 '404ba6f8' 0 40 4b a6 f8 prfm pldl1keep, [x26, w6, uxtw] op_count: 2 operands[0].type: PREFETCH = 0x1 operands[1].type: MEM operands[1].mem.base: REG = x26 operands[1].mem.index: REG = w6 Ext: 3
On v4:
The text was updated successfully, but these errors were encountered: