[DynInst_API:] [dyninst/dyninst] ef9bf0: Refactor common/dyn_regs.h (#1590)


Date: Fri, 27 Oct 2023 19:57:10 -0700
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] ef9bf0: Refactor common/dyn_regs.h (#1590)
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: ef9bf0ae9ad915f2c57ea9837cbe63248fb9423c
      https://github.com/dyninst/dyninst/commit/ef9bf0ae9ad915f2c57ea9837cbe63248fb9423c
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2023-10-27 (Fri, 27 Oct 2023)

  Changed paths:
    M common/CMakeLists.txt
    R common/h/AMDGPU/gfx908/amdgpu_gfx908_sys_regs.h
    R common/h/AMDGPU/gfx90a/amdgpu_gfx90a_sys_regs.h
    R common/h/AMDGPU/gfx940/amdgpu_gfx940_sys_regs.h
    A common/h/Architecture.h
    M common/h/MachSyscall.h
    M common/h/ProcReader.h
    M common/h/SymReader.h
    M common/h/VariableLocation.h
    R common/h/aarch64_sys_regs.h
    M common/h/dyn_regs.h
    A common/h/registers/AMDGPU/amdgpu_gfx908_regs.h
    A common/h/registers/AMDGPU/amdgpu_gfx90a_regs.h
    A common/h/registers/AMDGPU/amdgpu_gfx940_regs.h
    A common/h/registers/MachRegister.h
    A common/h/registers/aarch64_regs.h
    A common/h/registers/abstract_regs.h
    A common/h/registers/cuda_regs.h
    A common/h/registers/ppc32_regs.h
    A common/h/registers/ppc64_regs.h
    A common/h/registers/reg_def.h
    A common/h/registers/x86_64_regs.h
    A common/h/registers/x86_regs.h
    M common/src/SyscallInformation.C
    M common/src/arch-aarch64.h
    M common/src/arch-power.h
    M common/src/arch-x86.C
    M common/src/arch-x86.h
    M common/src/dyn_regs.C
    A common/src/registers/MachRegister.C
    M dataflowAPI/h/ABI.h
    M dataflowAPI/h/stackanalysis.h
    M dataflowAPI/rose/semantics/SymEvalSemantics.C
    M dataflowAPI/src/ABI.C
    M dataflowAPI/src/AbslocInterface.C
    M dataflowAPI/src/ExpressionConversionVisitor.h
    M dataflowAPI/src/RegisterMap.C
    M dataflowAPI/src/RegisterMap.h
    M dataflowAPI/src/SymEvalPolicy.C
    M dataflowAPI/src/liveness.C
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C
    M dwarf/h/dwarfExprParser.h
    M dwarf/h/dwarfFrameParser.h
    M dwarf/h/dwarfHandle.h
    M dwarf/h/dwarfResult.h
    M dwarf/src/dwarfExprParser.C
    M dwarf/src/dwarfFrameParser.C
    M dwarf/src/dwarfResult.C
    M dyninstAPI/src/BPatch_object.C
    M dyninstAPI/src/BPatch_type.C
    M dyninstAPI/src/RegisterConversion-aarch64.C
    M dyninstAPI/src/RegisterConversion-ppc.C
    M dyninstAPI/src/RegisterConversion-x86.C
    M dyninstAPI/src/RegisterConversion.h
    M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
    M dyninstAPI/src/StackMod/OffsetVector.h
    M dyninstAPI/src/StackMod/StackAccess.C
    M dyninstAPI/src/StackMod/StackAccess.h
    M dyninstAPI/src/StackMod/StackLocation.h
    M dyninstAPI/src/StackMod/TMap.C
    M dyninstAPI/src/StackMod/TMap.h
    M dyninstAPI/src/codegen-x86.h
    M dyninstAPI/src/frameChecker.C
    M dyninstAPI/src/linux-x86.C
    M dyninstAPI/src/parse-x86.C
    M elf/h/Elf_X.h
    M instructionAPI/h/ArchSpecificFormatters.h
    M instructionAPI/h/Register.h
    M instructionAPI/h/Ternary.h
    M instructionAPI/src/AMDGPU/gfx908/InstructionDecoder-amdgpu-gfx908.C
    M instructionAPI/src/AMDGPU/gfx908/InstructionDecoder-amdgpu-gfx908.h
    M instructionAPI/src/AMDGPU/gfx90a/InstructionDecoder-amdgpu-gfx90a.C
    M instructionAPI/src/AMDGPU/gfx90a/InstructionDecoder-amdgpu-gfx90a.h
    M instructionAPI/src/AMDGPU/gfx940/InstructionDecoder-amdgpu-gfx940.C
    M instructionAPI/src/AMDGPU/gfx940/InstructionDecoder-amdgpu-gfx940.h
    M instructionAPI/src/ArchSpecificFormatters.C
    M instructionAPI/src/InstructionDecoder-aarch64.C
    M instructionAPI/src/InstructionDecoder-aarch64.h
    M instructionAPI/src/InstructionDecoder-power.C
    M instructionAPI/src/InstructionDecoder-power.h
    M instructionAPI/src/InstructionDecoder-x86.C
    M instructionAPI/src/InstructionDecoderImpl.h
    M instructionAPI/src/Operation.C
    M instructionAPI/src/Register.C
    M instructionAPI/src/Ternary.C
    M parseAPI/h/InstructionSource.h
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/IA_IAPI.C
    M parseAPI/src/IA_aarch64.C
    M parseAPI/src/IA_power.C
    M parseAPI/src/IdiomModelDesc.C
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/JumpTableFormatPred.C
    M parseAPI/src/Parser.C
    M parseAPI/src/ProbabilisticParser.C
    M parseAPI/src/ThunkData.h
    M proccontrol/h/PCProcess.h
    M proccontrol/src/freebsd.C
    M proccontrol/src/handler.C
    M proccontrol/src/int_process.h
    M proccontrol/src/linux.C
    M proccontrol/src/mmapalloc.C
    M proccontrol/src/windows_handler.C
    M proccontrol/src/x86_process.C
    M proccontrol/src/x86_process.h
    M stackwalk/h/basetypes.h
    M stackwalk/h/local_var.h
    M stackwalk/h/procstate.h
    M stackwalk/src/aarch64-swk.C
    M stackwalk/src/dbginfo-stepper.C
    M stackwalk/src/linux-aarch64-swk.C
    M stackwalk/src/linux-ppc-swk.C
    M stackwalk/src/linux-swk.C
    M stackwalk/src/linuxbsd-x86-swk.C
    M stackwalk/src/ppc-swk.C
    M stackwalk/src/sw_pcontrol.C
    M stackwalk/src/walker.C
    M stackwalk/src/x86-swk.C
    M symtabAPI/h/Variable.h
    M symtabAPI/src/Function.C
    M symtabAPI/src/Variable.C
    M syscalls/generateSyscallInformation.py

  Log Message:
  -----------
  Refactor common/dyn_regs.h (#1590)

This is a substantial re-architecture of the files used to record the per-architecture machine instructions. Most of the changes here are to facilitate automation of integrating new instructions via Capstone.

* Move Dyninst::Architecture into its own file

* Move MachRegister into separate files

* Remove non-existent classes in MachRegister.h

These should have been removed by d42b65910 in 2021.

* Only define registers in dyn_regs.C

* Move getArchAddressWidth into Architecture.h

* Use new Architecture.h and registers/MachRegister.h headers everywhere

Also fix broken transient includes.

* Remove unnecessary includes of 'dyn_regs.h'

* Put registers for each arch in separate file

* Move isSegmentRegister into x86_regs.h

* Use new per-architecture register files

This should reduce compile times and file sizes.

* Remove unnecessary comment in stackwalk/procstate.h

* Merge aarch64 sys regs into regs file

* Fix whitespace in aarch64_regs.h

* Get rid of aarch64 subdir

* Merge gfx908 sys_regs into regs

* Whitespace gfx908 regs

* Reorder gfx908 register declarations

This makes it consistent with the other architectures.

* Merge gfx90a sys_regs into regs

* Whitespace gfx90a

* Reorder gfx90a register declarations

This makes it consistent with the other architectures.

* Merge gfx940 sys_regs into regs

* Whitespace gfx940

* Reorder gfx940 register declarations

This makes it consistent with the other architectures.

* Flatten AMDGPU register namespace

This makes it consistent with the mnemonics namespace.

* Whitespace ppc32

* Whitespace ppc64

* Whitespace x86_64

* Whitespace ppc32

* Whitespace x86

* Whitespace abstract

* Whitespace cuda

* Remove extra slash in AMDGPU paths


[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] ef9bf0: Refactor common/dyn_regs.h (#1590), Tim Haines <=