mirror of
https://github.com/capstone-engine/capstone
synced 2026-08-11 16:26:07 -04:00
The Xtensa disassembler enabled the ESP32-S3 SIMD/AI (ee.*) and HiFi3 ops for every target because the subtarget feature gates were stubbed to return true (Xtensa_getFeatureBits and hasDensity/hasESP32S3Ops/hasHIFI3). As a result, on a non-ESP32-S3 Xtensa config any instruction with op0=0xE/0xF was matched as a 4-byte ee.* op, so a base-ISA byte stream desynced. Make Xtensa_getFeatureBits map the mode to a feature set (mirroring the SystemZ precedent), thread MI->csh->mode into the three has*Ops gates, and add an opt-in CS_MODE_XTENSA_ESP32S3. Base/esp32/esp32s2/esp8266 no longer emit ESP32-S3 ops; CS_MODE_XTENSA_ESP32S3 preserves them. Concrete instance of issue #1992. The saved auto-sync patch hashes are updated so the fix survives the next LLVM re-sync. Adds tests/MC/Xtensa/esp32s3.s.yaml. Co-authored-by: Denys Melnyk <denys@com2cloud.com> |
||
|---|---|---|
| .. | ||
| capstone | ||
| windowsce | ||
| platform.h | ||