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
* Notice that despite the apparent complexity of the rules above, there are really only 4 distinct outcomes:
254
-
- An instruction is treated normally (as itself)
255
-
- An instruction is treated as if it's the uncompressed form of itself (if it's compressed)
256
-
- An instruction is treated as if it's the alias form of itself (whether compressed or not)
257
-
-An instruction is treated as if it's the alias form of its uncompressed form (if it's compressed)
254
+
- An instruction is treated exactly as decoded (No uncompression and no aliasing happens)
255
+
- An instruction is treated as if it's the uncompressed form (if it's compressed)
256
+
- An instruction is treated as if it's the alias form (whether compressed or not)
257
+
-Assuming an instruction is compressed: it is uncompressed, then the alias of the uncompressed instruction is printed.
258
258
* and then every flag is encoding a different bias or preference over those outcomes:
259
-
- Real: has no bias, every instruction is treated as itself
259
+
- Real: has no bias, every instruction is always treated exactly as decoded
260
260
- Uncompressed Real: has a bias for the uncompressed but non-alias forms
261
261
- Alias: has a bias for alias forms, and considers the uncompressed form as a last-resort alias form preferable to the original
262
262
263
263
-`CS_OPT_SYNTAX_*` and `CS_OPT_DETAIL_*` flag sets are independent and can be chosen separately, in that case their combined effect will take effect. For example `CS_OPT_SYNTAX_REAL` and `CS_OPT_DETAIL_UNCOMPRESSED_REAL` will always preserve the text of compressed instructions but their details will be of the uncompressed equivalents.
264
264
265
-
-By default, no syntax flag given means `CS_OPT_SYNTAX_ALIAS` and no detail flag given means `CS_OPT_DETAIL_UNCOMPRESSED_REAL`
265
+
-**The default case** is: `CS_OPT_SYNTAX_ALIAS` and `CS_OPT_DETAIL_ALIAS`
266
266
267
267
- Added `reg_access` capstone callback to return all read and written registers for the instructions, including registers used as part of memory operands.
268
268
* Note that `reg_access` does NOT treat CSRs as registers, detailed reasons for why can be found in [the PR implementing the feature](https://github.com/capstone-engine/capstone/pull/2895)
0 commit comments