[DynInst_API:] [dyninst/dyninst] 8b90d3: Add access specifiers in Operand::format -- REMOVE


Date: Sun, 31 May 2026 14:28:02 -0700
From: Tim Haines <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 8b90d3: Add access specifiers in Operand::format -- REMOVE
  Branch: refs/heads/thaines/capstone_integration
  Home:   https://github.com/dyninst/dyninst
  Commit: 8b90d308952e6cbbbfa874dd5f4de260a513bf45
      https://github.com/dyninst/dyninst/commit/8b90d308952e6cbbbfa874dd5f4de260a513bf45
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-29 (Fri, 29 May 2026)

  Changed paths:
    M instructionAPI/src/Operand.C

  Log Message:
  -----------
  Add access specifiers in Operand::format -- REMOVE

This might be nice to have in general, but let's remove it after
debugging the new decoder.


  Commit: e28018313989b7665b567d8d7963944c86aee82a
      https://github.com/dyninst/dyninst/commit/e28018313989b7665b567d8d7963944c86aee82a
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-29 (Fri, 29 May 2026)

  Changed paths:
    M .github/workflows/build-opts.yaml
    M CMakeLists.txt
    M cmake/DyninstLibrary.cmake
    M cmake/DyninstOptions.cmake
    M cmake/DyninstPlatform.cmake
    M instructionAPI/CMakeLists.txt
    M instructionAPI/src/InstructionDecoderImpl.C
    M tests/integration/CMakeLists.txt

  Log Message:
  -----------
  Remove DYNINST_ENABLE_CAPSTONE

It's always needed now.


  Commit: 8407053cc6a87d191613439dc1107115e8529fa6
      https://github.com/dyninst/dyninst/commit/8407053cc6a87d191613439dc1107115e8529fa6
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-29 (Fri, 29 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    R instructionAPI/src/InstructionDecoder-x86.C
    R instructionAPI/src/InstructionDecoder-x86.h
    M instructionAPI/src/InstructionDecoderImpl.C

  Log Message:
  -----------
  Remove old x86 decoder


  Commit: 04db99401bcbaadfa0dc98ce333065a22fad990c
      https://github.com/dyninst/dyninst/commit/04db99401bcbaadfa0dc98ce333065a22fad990c
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    M instructionAPI/h/Instruction.h
    M instructionAPI/src/InstructionDecoderImpl.C
    A instructionAPI/src/decoder/x86/decoder.C
    A instructionAPI/src/decoder/x86/decoder.h

  Log Message:
  -----------
  Add stub replacement for x86 decoder


  Commit: afad85dcc51c3b71b5738e0363e6962279ede620
      https://github.com/dyninst/dyninst/commit/afad85dcc51c3b71b5738e0363e6962279ede620
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    M instructionAPI/capstone/import_registers.py
    M instructionAPI/capstone/x86/registers.py
    A instructionAPI/src/decoder/x86/register_xlat.C
    A instructionAPI/src/decoder/x86/register_xlat.h

  Log Message:
  -----------
  Add Capstone->Dyninst register translation


  Commit: 2e6b40f99d1add487a573e3751d7f1e97130b5f3
      https://github.com/dyninst/dyninst/commit/2e6b40f99d1add487a573e3751d7f1e97130b5f3
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    A instructionAPI/src/decoder/x86/opcode_xlat.C
    A instructionAPI/src/decoder/x86/opcode_xlat.h

  Log Message:
  -----------
  Add Capstone->Dyninst opcode translation


  Commit: 444c3ed9c8320bba23e5c36f54cd62a9d1e400d1
      https://github.com/dyninst/dyninst/commit/444c3ed9c8320bba23e5c36f54cd62a9d1e400d1
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/src/decoder/x86/decoder.C

  Log Message:
  -----------
  Implement x86_decoder::decode


  Commit: 129f4ba50d5bed0af8470fd77e6436b95e6067d0
      https://github.com/dyninst/dyninst/commit/129f4ba50d5bed0af8470fd77e6436b95e6067d0
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/src/decoder/x86/decoder.C

  Log Message:
  -----------
  Implement skeleton for x86_decoder::decode_operands


  Commit: fa3094fd8093612d394c4788eade7e3e0c96d2e6
      https://github.com/dyninst/dyninst/commit/fa3094fd8093612d394c4788eade7e3e0c96d2e6
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    A instructionAPI/src/decoder/x86/categories.h
    M instructionAPI/src/decoder/x86/decoder.C

  Log Message:
  -----------
  Decode instruction categories


  Commit: 5b388896d1f44e4b7771c5b795a4a80b9eca3d1d
      https://github.com/dyninst/dyninst/commit/5b388896d1f44e4b7771c5b795a4a80b9eca3d1d
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/h/Instruction.h
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionCategories.C

  Log Message:
  -----------
  Use new categories in Instruction


  Commit: acd57371460b7b1cb38461a1dc4e383db3229afd
      https://github.com/dyninst/dyninst/commit/acd57371460b7b1cb38461a1dc4e383db3229afd
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    A instructionAPI/src/decoder/x86/decode_reg.C
    M instructionAPI/src/decoder/x86/decoder.C
    M instructionAPI/src/decoder/x86/decoder.h

  Log Message:
  -----------
  Decode explicit register operands


  Commit: 92dd2cb1283e25a2f947fdace54e0f37d06ba9fe
      https://github.com/dyninst/dyninst/commit/92dd2cb1283e25a2f947fdace54e0f37d06ba9fe
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    A instructionAPI/src/decoder/x86/decode_imm.C
    M instructionAPI/src/decoder/x86/decoder.C
    M instructionAPI/src/decoder/x86/decoder.h

  Log Message:
  -----------
  Decode explicit immediate operands


  Commit: e0bb36241d008b93a52dfecf351971c3ad51f013
      https://github.com/dyninst/dyninst/commit/e0bb36241d008b93a52dfecf351971c3ad51f013
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    A instructionAPI/src/decoder/x86/decode_mem.C
    M instructionAPI/src/decoder/x86/decoder.C
    M instructionAPI/src/decoder/x86/decoder.h

  Log Message:
  -----------
  Decode explicit memory operands


  Commit: 3ddcd4ca9e755ef82a308276f83718fdb14093c0
      https://github.com/dyninst/dyninst/commit/3ddcd4ca9e755ef82a308276f83718fdb14093c0
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    A instructionAPI/src/decoder/x86/decode_implicit.C
    M instructionAPI/src/decoder/x86/decoder.C
    M instructionAPI/src/decoder/x86/decoder.h

  Log Message:
  -----------
  Decode implicit operands


  Commit: 5213dc12f0c9bee16bf1746043ea17deb044dd2e
      https://github.com/dyninst/dyninst/commit/5213dc12f0c9bee16bf1746043ea17deb044dd2e
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/src/decoder/x86/decode_implicit.C

  Log Message:
  -----------
  Decode implicit memory operands

Capstone doesn't track these at all. The additional memory op for push
instructions was taken directly from Operation::setupNonOperandData.


  Commit: 3900c2d6208f58a23f744bd6eb87d2969e785927
      https://github.com/dyninst/dyninst/commit/3900c2d6208f58a23f744bd6eb87d2969e785927
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/src/decoder/x86/decode_implicit.C

  Log Message:
  -----------
  Decode implicit flags for interrupt instructions

Capstone doesn't fully track eflags for interrupt instructions.


  Commit: 6a1c5036477c72c891fafa3ee7243fad9d919d05
      https://github.com/dyninst/dyninst/commit/6a1c5036477c72c891fafa3ee7243fad9d919d05
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/src/syscalls.C

  Log Message:
  -----------
  Update syscalls to handle corrected AST

The new x86 instruction decoder correctly creates AST for the cases like
`call gs:[0x10]` to be the same as for `call [Base + 0x10]`. Moreover,
the new decoder handles generic segment-based addressing allowed in
64-bit mode like `call [Seg + Base + (Index * Scale) + Disp]` which is
not a system call.


  Commit: 253022647b1b3f6dbfff4e445d3e5d8e74488d6c
      https://github.com/dyninst/dyninst/commit/253022647b1b3f6dbfff4e445d3e5d8e74488d6c
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M common/CMakeLists.txt
    M tests/unit/common/registers/CMakeLists.txt
    A tests/unit/common/registers/register_set.cpp

  Log Message:
  -----------
  Add register_set

This is a collection of MachRegisters with set operations but without
any ordering constraints.


  Commit: 73b70539d2870551c2ef5050adae2be687c05fef
      https://github.com/dyninst/dyninst/commit/73b70539d2870551c2ef5050adae2be687c05fef
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/cft_tests.cpp

  Log Message:
  -----------
  Add 'isConditional' test in cft tests


  Commit: 39025953cc084618b6522d9860490267cb566a54
      https://github.com/dyninst/dyninst/commit/39025953cc084618b6522d9860490267cb566a54
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/x86/arithmetic.cpp

  Log Message:
  -----------
  arithmetic tests


  Commit: 850d1b35dcb665633b85c5ec0df4e86821f3bdaf
      https://github.com/dyninst/dyninst/commit/850d1b35dcb665633b85c5ec0df4e86821f3bdaf
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/x86/branches.cpp

  Log Message:
  -----------
  branches tests


  Commit: 6491cce5e9a3db84af2478bf9fd834a4625191e1
      https://github.com/dyninst/dyninst/commit/6491cce5e9a3db84af2478bf9fd834a4625191e1
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/call.cpp

  Log Message:
  -----------
  call tests


  Commit: c7eac0f04252c8c7d4badee043593d8f60783733
      https://github.com/dyninst/dyninst/commit/c7eac0f04252c8c7d4badee043593d8f60783733
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/x86/data_transfer.cpp

  Log Message:
  -----------
  data transfer tests


  Commit: e59c5d39d965c643d861b292206a534e331f3145
      https://github.com/dyninst/dyninst/commit/e59c5d39d965c643d861b292206a534e331f3145
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/x86/sse.cpp

  Log Message:
  -----------
  sse tests


  Commit: c63dfe6480a03adfb410a3d046bd4a90a8e3f0ea
      https://github.com/dyninst/dyninst/commit/c63dfe6480a03adfb410a3d046bd4a90a8e3f0ea
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/x86/strings.cpp

  Log Message:
  -----------
  string tests


  Commit: 2ada11acbe02fda7889a437780613c5de93110d4
      https://github.com/dyninst/dyninst/commit/2ada11acbe02fda7889a437780613c5de93110d4
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/x86/stack.cpp

  Log Message:
  -----------
  stack tests


  Commit: 737898dde6fa43ea28e500c282a3ce8cb3119aa5
      https://github.com/dyninst/dyninst/commit/737898dde6fa43ea28e500c282a3ce8cb3119aa5
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/x86/sysctl.cpp

  Log Message:
  -----------
  sysctl tests


  Commit: cfe9363e78065a95bd18bf6dec65bece9bc529e0
      https://github.com/dyninst/dyninst/commit/cfe9363e78065a95bd18bf6dec65bece9bc529e0
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M tests/integration/InstructionAPI/decoder/x86/CMakeLists.txt
    A tests/integration/InstructionAPI/decoder/x86/x87.cpp

  Log Message:
  -----------
  x87 tests


  Commit: 78cd17e385be55ecd044e3de3d734e898037ae93
      https://github.com/dyninst/dyninst/commit/78cd17e385be55ecd044e3de3d734e898037ae93
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Remove Operation::SetUpNonOperandData

All implicit operands are now accounted for in the decoder.


  Commit: 155f3502534d9574f45ab6f0218e554602d44d74
      https://github.com/dyninst/dyninst/commit/155f3502534d9574f45ab6f0218e554602d44d74
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/doc/API/Operation.tex
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Remove Operation::is{Read,Written}

All implicit operands are now accounted for in the decoder.


  Commit: 0550b3774f5825c755baedf16ab2482c3f755417
      https://github.com/dyninst/dyninst/commit/0550b3774f5825c755baedf16ab2482c3f755417
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/doc/API/Operation.tex
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Remove Operation::implicit{Reads,Writes}

All implicit operands are now accounted for in the decoder.


  Commit: 152783a1d1e46c099ab966af839e28d62d55e6c6
      https://github.com/dyninst/dyninst/commit/152783a1d1e46c099ab966af839e28d62d55e6c6
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/doc/API/Operation.tex
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Remove Operation::getImplicitMem{Reads,Writes}

All implicit operands are now accounted for in the decoder.


  Commit: 7a4aa67b2e38effa1ca6a9c92d8c20f7cc55e428
      https://github.com/dyninst/dyninst/commit/7a4aa67b2e38effa1ca6a9c92d8c20f7cc55e428
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Remove unused Operation::addrWidth


  Commit: 41ebd2b6401ae2623b5c1374b158b8572de96a8d
      https://github.com/dyninst/dyninst/commit/41ebd2b6401ae2623b5c1374b158b8572de96a8d
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Remove Operation SMFs

Now that the std::once_flag has been removed, the special member
functions (SMFs) are no longer needed. The compiler-generated ones
will work correctly.


  Commit: 75c2be6b81066fcbc8d7ca42766751926226427d
      https://github.com/dyninst/dyninst/commit/75c2be6b81066fcbc8d7ca42766751926226427d
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Remove x86 entry lookup in Operation::format

The decoder always populates the mnemonic, so this code will never be
used.


  Commit: 5523b7362a59eb90fe565812b03af1950b6b4718
      https://github.com/dyninst/dyninst/commit/5523b7362a59eb90fe565812b03af1950b6b4718
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/Operation.C

  Log Message:
  -----------
  Operation: inline all member functions


  Commit: 240fa9f4066cd66da5dd36bf8747fb6fbcd929ab
      https://github.com/dyninst/dyninst/commit/240fa9f4066cd66da5dd36bf8747fb6fbcd929ab
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/h/Operation_impl.h
    M instructionAPI/src/decoder/x86/decoder.C

  Log Message:
  -----------
  Remove Operation::archDecodedFrom

It's no longer needed.


  Commit: ef5c74c631ce4f94f9152ca292dc7729f1bad0ec
      https://github.com/dyninst/dyninst/commit/ef5c74c631ce4f94f9152ca292dc7729f1bad0ec
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M instructionAPI/CMakeLists.txt
    R instructionAPI/src/Operation.C

  Log Message:
  -----------
  Remove Operation.C

All of it has been removed or inlined into its header.


  Commit: ba2c1b7b8451a83c680f841d7f47106e6b2537f2
      https://github.com/dyninst/dyninst/commit/ba2c1b7b8451a83c680f841d7f47106e6b2537f2
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M dataflowAPI/src/AbslocInterface.C

  Log Message:
  -----------
  Only use explicit operand to make assignments for x86 pop

It is no longer guaranteed that the first operand coming from
getAllOperands is the destination. It _is_ guaranteed to be the first
explicit operand- because -it's the only explicit one.


  Commit: c4cdc4dfa884d87ea9bd3acbe11e570b0c728b69
      https://github.com/dyninst/dyninst/commit/c4cdc4dfa884d87ea9bd3acbe11e570b0c728b69
  Author: Tim Haines <thaines.astro@xxxxxxxxx>
  Date:   2026-05-30 (Sat, 30 May 2026)

  Changed paths:
    M parseAPI/src/IndirectAnalyzer.C

  Log Message:
  -----------
  Do not build a jump table for an instruction without an assignment

This can happen when semantic information is incomplete for the
instruction.


Compare: https://github.com/dyninst/dyninst/compare/c524457faca7...c4cdc4dfa884

To unsubscribe from these emails, change your notification settings at https://github.com/dyninst/dyninst/settings/notifications
[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 8b90d3: Add access specifiers in Operand::format -- REMOVE, Tim Haines <=