macaw/macaw-x86-syntax
Your Name 896d35cba9 x86-symbolic: Remove terse register names from top-level exports
These names are so short that they might conflict with local names in
files that import this module. Instead, export them from `Regs` and
encourage qualified use of that module.
2024-09-24 13:50:39 -04:00
..
src/Data/Macaw/X86/Symbolic x86-symbolic: Remove terse register names from top-level exports 2024-09-24 13:50:39 -04:00
test macaw-x86-syntax: Syntactic sugar for macaw-x86-symbolic CFGs 2024-08-16 15:32:49 -04:00
test-data x86-syntax: set-reg 2024-08-16 15:32:49 -04:00
LICENSE macaw-x86-syntax: Syntactic sugar for macaw-x86-symbolic CFGs 2024-08-16 15:32:49 -04:00
macaw-x86-syntax.cabal x86-syntax: Use upstream register indices 2024-08-16 15:32:49 -04:00
README.md x86-syntax: set-reg 2024-08-16 15:32:49 -04:00

macaw-x86-syntax

This package provides concrete syntax for macaw-x86-symbolic types and operations.

Concretely, it implements a ParserHooks for use with crucible-syntax. This ParserHooks supports the following types and operations:

Types:

  • X86Regs: the struct of all x86_64 registers

Operations:

  • get-reg :: X86Reg -> X86Regs -> t: extract an x86 register
  • set-reg :: X86Reg -> t -> X86Regs -> X86Regs: set an x86 register
  • Registers:
    • rip :: X86Reg: instruction pointer
    • rax :: X86Reg: SysV return value register
    • rbx :: X86Reg: general-purpose register
    • rcx :: X86Reg: general-purpose register
    • rdx :: X86Reg: general-purpose register
    • rsp :: X86Reg: stack pointer
    • rbp :: X86Reg: base pointer
    • rsi :: X86Reg: general-purpose register
    • rdi :: X86Reg: general-purpose register
    • r8 :: X86Reg: general-purpose register
    • r9 :: X86Reg: general-purpose register
    • r10 :: X86Reg: general-purpose register
    • r11 :: X86Reg: general-purpose register
    • r12 :: X86Reg: general-purpose register
    • r13 :: X86Reg: general-purpose register
    • r14 :: X86Reg: general-purpose register
    • r15 :: X86Reg: general-purpose register