[DynInst_API:] [dyninst/dyninst] 5ad794: Prevent fallthrough analysis of amdgpu swap/set pc...


Date: Wed, 22 Feb 2023 03:52:00 -0800
From: Bolo -- Josef Burger <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 5ad794: Prevent fallthrough analysis of amdgpu swap/set pc...
  Branch: refs/heads/wuxx1279/amdgpu
  Home:   https://github.com/dyninst/dyninst
  Commit: 5ad79439de5468982f9ba878e916403f2c8671ec
      https://github.com/dyninst/dyninst/commit/5ad79439de5468982f9ba878e916403f2c8671ec
  Author: Bolo <bolo@xxxxxxxxxxx>
  Date:   2023-02-20 (Mon, 20 Feb 2023)

  Changed paths:
    M instructionAPI/src/Instruction.C

  Log Message:
  -----------
  Prevent fallthrough analysis of amdgpu swap/set pc instructions.

Both amdgpu setpc and swappc instructions are _not_
fallthrough branch instructions.  We need to stop analysis
at that instruction.

The CDNA2 (MI200) instructions of swappc and ssetpc were
missing.  They have been added for similar fallthrough
prevention on that architecture.


  Commit: f1987aa94789d4d2318a6db2a9edab9b303af560
      https://github.com/dyninst/dyninst/commit/f1987aa94789d4d2318a6db2a9edab9b303af560
  Author: Bolo <bolo@xxxxxxxxxxx>
  Date:   2023-02-21 (Tue, 21 Feb 2023)

  Changed paths:
    M dataflowAPI/src/SymEval.C

  Log Message:
  -----------
  Allow CFG analysis based on instructionAPI alone w/out semantics.

Dyninst can generate a CFG just based on instructions and decoding.

However, up to this point if a semantics package was not available
for an architecture, a non-semantics architecture would result
in a panic.

With this change, a warning message, similar to the crash message,
is output once to allow users to know that they aren't using
semantic info, and only instructionAPI itself.


  Commit: 1f624a6af15b6b7bdacd15fa363353a9b11175b9
      https://github.com/dyninst/dyninst/commit/1f624a6af15b6b7bdacd15fa363353a9b11175b9
  Author: Bolo -- Josef Burger <bigtrak@xxxxxxxxxxxxxxxxxxxxxxxx>
  Date:   2023-02-21 (Tue, 21 Feb 2023)

  Changed paths:
    M instructionAPI/src/Instruction.C

  Log Message:
  -----------
  Merge pull request #1376 from dyninst/bolo/amdgpu_branch_fallthrough

Prevent fall-through analysis of amd gpu swap/set pc instructions.


  Commit: f359d52ed1e0a07ee9e3bb93d5e4ba9717b92554
      https://github.com/dyninst/dyninst/commit/f359d52ed1e0a07ee9e3bb93d5e4ba9717b92554
  Author: Bolo -- Josef Burger <bigtrak@xxxxxxxxxxxxxxxxxxxxxxxx>
  Date:   2023-02-21 (Tue, 21 Feb 2023)

  Changed paths:
    M dataflowAPI/src/SymEval.C

  Log Message:
  -----------
  Merge pull request #1379 from dyninst/bolo/cfg_without_semantics

Allow CFG analysis based on instructionAPI alone w/out semantics.


  Commit: 4939c4807e036b4a1cb5e8ed589ad5232d99cf46
      https://github.com/dyninst/dyninst/commit/4939c4807e036b4a1cb5e8ed589ad5232d99cf46
  Author: Bolo -- Josef Burger <bigtrak@xxxxxxxxxxxxxxxxxxxxxxxx>
  Date:   2023-02-21 (Tue, 21 Feb 2023)

  Changed paths:
    A common/h/AMDGPU/gfx908/amdgpu_gfx908_op_table.h
    A common/h/AMDGPU/gfx908/amdgpu_gfx908_sys_regs.h
    M common/h/dyn_regs.h
    M common/h/entryIDs.h
    M common/src/dyn_regs.C
    M dwarf/src/dwarfHandle.C
    M elf/src/Elf_X.C
    M instructionAPI/CMakeLists.txt
    M instructionAPI/h/Instruction.h
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/h/Register.h
    M instructionAPI/src/AMDGPU/cdna2/InstructionDecoder-amdgpu-cdna2.C
    M instructionAPI/src/AMDGPU/cdna2/decodeOperands.C
    M instructionAPI/src/AMDGPU/cdna2/decodeOperands.h
    M instructionAPI/src/AMDGPU/cdna2/finalizeOperands.C
    A instructionAPI/src/AMDGPU/gfx908/InstructionDecoder-amdgpu-gfx908.C
    A instructionAPI/src/AMDGPU/gfx908/InstructionDecoder-amdgpu-gfx908.h
    A instructionAPI/src/AMDGPU/gfx908/amdgpu_gfx908_decoder_impl.C
    A instructionAPI/src/AMDGPU/gfx908/amdgpu_gfx908_decoder_impl.h
    A instructionAPI/src/AMDGPU/gfx908/amdgpu_gfx908_insn_entry.h
    A instructionAPI/src/AMDGPU/gfx908/amdgpu_gfx908_opcode_tables.C
    A instructionAPI/src/AMDGPU/gfx908/decodeOperands.C
    A instructionAPI/src/AMDGPU/gfx908/decodeOperands.h
    A instructionAPI/src/AMDGPU/gfx908/finalizeOperands.C
    M instructionAPI/src/ArchSpecificFormatters.C
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionCategories.C
    M instructionAPI/src/InstructionDecoderImpl.C
    M instructionAPI/src/InstructionDecoderImpl.h
    M instructionAPI/src/Register.C
    M instructionAPI/src/amdgpu_branchinsn_table.h
    M parseAPI/src/IA_IAPI.C
    M parseAPI/src/IA_amdgpu.C
    M parseAPI/src/Parser.C
    M parseAPI/src/SymbolicExpression.C
    M proccontrol/src/process.C

  Log Message:
  -----------
  Merge pull request #1283 from dyninst/wuxx1279/amdgpu

Added support for gfx908 based on the XML-ISA-DROP for MI100


  Commit: 73e59912986c623e4f8f21f2697693cc9d2c356f
      https://github.com/dyninst/dyninst/commit/73e59912986c623e4f8f21f2697693cc9d2c356f
  Author: Bolo <bolo@xxxxxxxxxxx>
  Date:   2023-02-21 (Tue, 21 Feb 2023)

  Changed paths:
    M instructionAPI/src/Instruction.C

  Log Message:
  -----------
  Fix all-through instructions for newly added AMD gpu gfx908

Fixes #1375 for gfx908 (mi25 and mi200 already fixed)


  Commit: 7a82081d448d81def9945a3d1683756594038d8d
      https://github.com/dyninst/dyninst/commit/7a82081d448d81def9945a3d1683756594038d8d
  Author: Bolo -- Josef Burger <bigtrak@xxxxxxxxxxxxxxxxxxxxxxxx>
  Date:   2023-02-21 (Tue, 21 Feb 2023)

  Changed paths:
    M instructionAPI/src/Instruction.C

  Log Message:
  -----------
  Merge pull request #1381 from dyninst/bolo/gfx908_fallthrough

Fix all-through instructions for newly added AMD gpu gfx908


Compare: https://github.com/dyninst/dyninst/compare/2473f27ef87a...7a82081d448d
[← Prev in Thread] Current Thread [Next in Thread→]