Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing load/store categories for some AARCH64 instructions #7146

Open
edeiana opened this issue Dec 17, 2024 · 0 comments
Open

Missing load/store categories for some AARCH64 instructions #7146

edeiana opened this issue Dec 17, 2024 · 0 comments

Comments

@edeiana
Copy link
Contributor

edeiana commented Dec 17, 2024

Some AARCH64 instructions that perform read/write operations are missing their corresponding load/store categories (DR_INSTR_CATEGORY_LOAD, DR_INSTR_CATEGORY_STORE).
For example:

13127323    10416044:        7446 ifetch       4 byte(s) @ 0x0000aaaaefe73500 88eb7dac   casa   %w11 %w12 (%x13)[4byte] -> %w11 (%x13)[4byte]
13127324    10416044:        7446 read         4 byte(s) @ 0x0000115cffc33ba0 by PC 0x0000aaaaefe73500
13127325    10416044:        7446 write        4 byte(s) @ 0x0000115cffc33ba0 by PC 0x0000aaaaefe73500

Performs a read and write operation, hence it should have both load and store categories.

However, hacking the view_tool to print the categories for this instructions reveals that only the load category (printed right before the casa opcode) is set:

13127323    10416044:        7446 ifetch       4 byte(s) @ 0x0000aaaaefe73500 88eb7dac   load casa   %w11 %w12 (%x13)[4byte] -> %w11 (%x13)[4byte]
13127324    10416044:        7446 read         4 byte(s) @ 0x0000115cffc33ba0 by PC 0x0000aaaaefe73500
13127325    10416044:        7446 write        4 byte(s) @ 0x0000115cffc33ba0 by PC 0x0000aaaaefe73500

This is likely a bug in decode_load_store_category() in core/ir/aarch64/codec.c.

We have not observed this issue in x86 instructions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant