Branch: refs/heads/master Home: https://github.com/dyninst/dyninst Commit: 3b64ef448dc6fab0c2609005e83709b84a07c620 https://github.com/dyninst/dyninst/commit/3b64ef448dc6fab0c2609005e83709b84a07c620 Author: Tim Haines <thaines.as...@gmail.com> Date: 2023-11-28 (Tue, 28 Nov 2023)
Changed paths: M .gitignore M common/h/mnemonics/x86_entryIDs.h M common/src/arch-x86.C M dataflowAPI/src/RoseInsnFactory.C M dataflowAPI/src/convertOpcodes.C M dataflowAPI/src/stackanalysis.C A instructionAPI/capstone/aarch64.py A instructionAPI/capstone/capstone.py A instructionAPI/capstone/import.py A instructionAPI/capstone/ppc.py A instructionAPI/capstone/x86.py M instructionAPI/src/Instruction.C M instructionAPI/src/InstructionCategories.C M instructionAPI/src/InstructionDecoder-x86.C M instructionAPI/src/Operation.C M parseAPI/src/BoundFactCalculator.C M parseAPI/src/BoundFactData.C M parseAPI/src/IA_x86.C M parseAPI/src/IdiomModelDesc.C Log Message: ----------- Synchronize x86 mnemonics with Capstone (#1634) * Create Capstone import script This currently only supports x86, but can be readily expanded to the other architectures. * Remove invalid opcodes Some of these are used to label subtypes of the general instruction and some are just madeup mnemonics that were never used in Dyninst. * Move pseudo-mnemonics to top of file This makes them easier to see. * Remove AT&T aliases * Replace fstcw with fnstcw * Replace fstenv with fnstenv * Replace fstsw with fnstsw * Replace fsave with fnsave The fstX instructions are actually aliases for 'waitf' followed by the fnstX variant. There's no need to have both. * Rename loopn -> loopne loopn isn't a valid mnemonic for 0xE0. * Remove e_jmpe The opcode 0x0FB8 is decoded as popcnt unless the preceeding byte is 0xF3. However, not even Xed decodes this instruction. From Table A-3 of the June 2021 Intel SDM: JMPE (reserved for emulator on IPF) * Rename cmpxch -> cmpxchg * Rename e_cmpxch -> e_cmpxchg * Rename cmpxch8b -> cmpxchg8b * Rename e_prefetchNTA -> e_prefetchnta * Rename e_prefetchT0 -> e_prefetcht0 * Rename e_prefetchT1 -> e_prefetcht1 * Rename e_prefetchT2 -> e_prefetcht2 * Rename e_punpcklqld -> e_punpcklqdq * Rename e_shl_sal -> e_shl There's no real concensus, but Capstone and Xed use shl. * Rename e_ud -> e_ud0 * Make cmovnbe an alias of cmova * Make cmovnb an alias of cmovae * Make cmovnae an alias of cmovb * Make cmovng an alias of cmovle * Make cmovnge an alias of cmovl * Make cmovnl an alias of cmovge * Make cmovpe an alias of cmovp * Make cmovpo an alias of cmovnp * Make cwd an alias of cdq * Make fcomip an alias of fcompi * Make fucomip an alias of fucompi * Make jnb an alias of jae * Make jnbe an alias of ja * Make jnl an alias of jge * Make jnle an alias of jg * Make jnz an alias of jne * Make jz an alias of je * Make jrcxz an alias of jcxz * Make lods an alias of lodsb * Make popa an alias of popal popal isn't a valid mnemonic, but it's what Capstone uses. * Make popad an alias of popaw popaw isn't a valid mnemonic, but it's what Capstone uses. * Make pushad, pusha, and pushaw aliases of pushal pushal isn't a valid mnemonic, but it's what Capstone uses. * Make pushfd an alias of pushf * Make setnb an alias of setae * Make setnbe an alias of seta * Make setnl an alias of setge * Make setnle an alias of setg * Make setnz an alias of setne * Make setz an alias of sete * Make xlat an alias of xlatb * Add new mnemonics _______________________________________________ Dyninst-api mailing list Dyninst-api@cs.wisc.edu https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api