dyninst-api
Thread
Date
Earlier messages
Messages by Thread
[DynInst_API:] [dyninst/dyninst] 8eff87: Fix AMDGPU rose to use explicit operands
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] bc9524: Add missing invalid mnemonics
Tim Haines
[DynInst_API:] [dyninst/dyninst] 35f2f5: Add Invalid OP entry and handling for AMDGPU
bbiiggppiigg
[DynInst_API:] Save the date: 2025 Scalable Tools Workshop
BARTON MILLER
[DynInst_API:] [dyninst/dyninst] 649a5b: Use x86_regpos_dword for x86/x86_64 segment register
Tim Haines
[DynInst_API:] [dyninst/dyninst] c4403c: Correctly handle IP/PC for x86_64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 7585c0: Preserve full register in AbsRegionConverter::conv...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 4489cd: Fix ROSE register conversions for aarch64 (#1852)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 805a95: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] b948cb: Change insn_size to is_compressed
wxrdnx
[DynInst_API:] [dyninst/dyninst] f380ec: Use correct ppc32/64 base registers in MachRegiste...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 808f3d: Preserve full register in AbsRegionConverter::conv...
Tim Haines
[DynInst_API:] [dyninst/dyninst] e5f816: Add executor for aarch64 return instruction (#1861)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 8d3e37: Preserve full register in AbsRegionConverter::conv...
Tim Haines
[DynInst_API:] [dyninst/dyninst] fdb3c0: Use correct ppc32/64 base registers in is* checks
Tim Haines
[DynInst_API:] [dyninst/dyninst] 83556f: Add executor for aarch64 return instruction
Tim Haines
[DynInst_API:] [dyninst/dyninst] a092b7: Fix rose register conversion for aarch64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 5fd776: Update aarch64 flag and pstate registers (#1866)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 0256e8: Fix operand fetch in RoseInsnFactory::convert -- B...
Tim Haines
[DynInst_API:] [dyninst/dyninst] fae0d4: Fix base register calculation for ppc (#1864)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 4a222d: Make pstate flags 1 bit
Tim Haines
[DynInst_API:] [dyninst/dyninst] 391bb0: ppc32
Tim Haines
[DynInst_API:] [dyninst/dyninst] cee7f6: Change aarch64::pstate to FLAG type
Tim Haines
[DynInst_API:] [dyninst/dyninst] 193ea0: Handle all architectures in MachRegister::getSysca...
Tim Haines
[DynInst_API:] [dyninst/dyninst] a11ded: Add Load Immediate
wxrdnx
[DynInst_API:] [dyninst/dyninst] bc6305: Update base registers for amdgpu_gfx908
Tim Haines
[DynInst_API:] [dyninst/dyninst] 409112: isGeneralPurpose - add stub
Tim Haines
[DynInst_API:] [dyninst/dyninst] a8fb2f: Use correct ppc32/64 base registers in is* checks
Tim Haines
[DynInst_API:] [dyninst/dyninst] 352772: Change aarch64::pstate to FLAG type
Tim Haines
[DynInst_API:] [dyninst/dyninst] 72eded: [AMDGPU][BPatch] Don't create symtab entry for var...
Ronak Chauhan
[DynInst_API:] [dyninst/dyninst] eb6f23: Handle all architectures in getSyscallNumberOReg
Tim Haines
[DynInst_API:] [dyninst/dyninst] 11b381: Fix base register calculation for ppc32
Tim Haines
[DynInst_API:] [dyninst/dyninst] 189696: Add C-Type Emitter
wxrdnx
[DynInst_API:] [dyninst/dyninst] 62d287: Preserve full register in AbsRegionConverter::conv...
Tim Haines
[DynInst_API:] [dyninst/dyninst] a6cee3: Fix aarch64 flag detection in AbsRegionConverter::...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 32c4bb: Fix aarch64 flag detection in AbsRegionConverter::...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 7cef00: Correctly handle IP/PC for x86_64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 0f92e1: Update exception handling in SymbolicExpansion::ex...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9b18f0: Add executor for aarch64 return instruction
Tim Haines
[DynInst_API:] [dyninst/dyninst] 55237a: Update exception handling in SymbolicExpansion::ex...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 3231d2: Fix operand fetch in RoseInsnFactory::convert -- BUG
Tim Haines
[DynInst_API:] [dyninst/dyninst] 1c17f9: Modify RISC-V Capstone instruction decoder
wxrdnx
[DynInst_API:] [dyninst/dyninst] 3c0fb9: Add CMake stub
wxrdnx
[DynInst_API:] [dyninst/dyninst] 9995fd: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] c6cd35: [AMDGPU] Change filename of instrumented kernel list
Ronak Chauhan
[DynInst_API:] [dyninst/dyninst] c170e4: Use MachRegister::isFlag in RegisterAST::isFlag (#...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 97b0d0: Clean up BPatch_binaryEdit::writeFile
Ronak Chauhan
[DynInst_API:] [dyninst/dyninst] 2fa3f5: Use MachRegister::isFlag in RegisterAST::isFlag
Tim Haines
[DynInst_API:] [dyninst/dyninst] fd0e42: Correctly handle IP/PC for x86_64
Tim Haines
[DynInst_API:] [dyninst/dyninst] ecd370: Fix rose register conversion for aarch64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 165c14: Fix position for x86::pc
Tim Haines
[DynInst_API:] [dyninst/dyninst] 5bdfdd: Add isGeneralPurpose
Tim Haines
[DynInst_API:] [dyninst/dyninst] eeb814: Fix MachRegister::isZeroFlag for ppc (#1857)
Tim Haines
[DynInst_API:] [dyninst/dyninst] e67a83: Treat avx k0-7 as control/status registers
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9f4f9e: ppc64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 7e230e: Fix MachRegister::isZeroFlag for ppc
Tim Haines
[DynInst_API:] [dyninst/dyninst] 00d7f4: Don't use base register in isZeroFlag (#1854)
Tim Haines
[DynInst_API:] [dyninst/dyninst] e2143a: Remove RegisterParts from dataflowAPI (#1856)
Tim Haines
[DynInst_API:] [dyninst/dyninst] bc31a9: Rename arch_riscv64 to DYNINST_HOST_ARCH_AARCH64
wxrdnx
[DynInst_API:] [dyninst/dyninst] 93b953: Use x86_regpos_qword for rflags
Tim Haines
[DynInst_API:] [dyninst/dyninst] c0929e: Add CMake stub
wxrdnx
[DynInst_API:] [dyninst/dyninst] 557f6f: Remove RegisterParts from dataflowAPI
Tim Haines
[DynInst_API:] [dyninst/dyninst] 60048e: Report aarch64::ffr as a status register
Tim Haines
[DynInst_API:] [dyninst/dyninst] 2da501: Add isGeneralPurpose
Tim Haines
[DynInst_API:] [dyninst/dyninst] 0bd518: Don't use base register in isZeroFlag
Tim Haines
[DynInst_API:] [dyninst/dyninst] 1ddbf1: Fix register calculation in parse_func::calcUsedRe...
Tim Haines
[DynInst_API:] [dyninst/dyninst] cd626d: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] ef4797: Fix rose register conversion for aarch64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 6bef11: Correctly handle IP/PC for x86_64
Tim Haines
[DynInst_API:] [dyninst/dyninst] b8199b: Unify valid instruction detection (#1850)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 6d78ba: Fix MachRegister::getBaseRegister for x86 vector t...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 1d20f0: Fix non-unique AMDGPU registers
Tim Haines
[DynInst_API:] [dyninst/dyninst] 0cf8d6: Correctly handle IP/PC for x86_64
Tim Haines
[DynInst_API:] [dyninst/dyninst] fad437: Fix rose register conversion for aarch64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9be602: Add x86_64::eip -> rip
Tim Haines
[DynInst_API:] [dyninst/dyninst] 6b2518: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] 693afc: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] a1c371: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] c1eafc: Squash duplicate code
Tim Haines
[DynInst_API:] [dyninst/dyninst] f0fb17: Fix MachRegister::getBaseRegister for x86 vector t...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 691c81: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] 1b4d57: Unify valid instruction detection
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9d6c64: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] 53f833: Fix register calculation in parse_func::calcUsedRe...
Tim Haines
[DynInst_API:] [dyninst/dyninst] cf8733: Move DWARF register encoding/decoding into Dyninst...
Tim Haines
[DynInst_API:] [dyninst/dyninst] a03f44: Amalgamate 32 and 64 bit fpr
wxrdnx
[DynInst_API:] [dyninst/dyninst] 1eb4bf: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] 76a3cb: MachRegister: use base register for category/class...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 18004e: MachRegister: handle aarch64 SPRs in getBaseRegist...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 0b0591: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] cd22b5: Fix register calculation in parse_func::calcUsedRe...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 68981a: MachRegister: use base register for category/class...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 5348bc: MachRegister: handle aarch64 SPRs in getBaseRegister
Tim Haines
[DynInst_API:] [dyninst/dyninst] eb32a4: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] 8836e7: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] 05227e: Fix register calculation in parse_func::calcUsedRe...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 06045e: Fix register calculation in parse_func::calcUsedRe...
Tim Haines
[DynInst_API:] [dyninst/dyninst] f7c00a: Add stub
Tim Haines
[DynInst_API:] [dyninst/dyninst] 254490: Fix aarch64 MachRegister -> ROSE register conversi...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9cb674: Fix PC conversion
Tim Haines
[DynInst_API:] [dyninst/dyninst] 97d05d: Fix x86 MachRegister -> ROSE register conversion (...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 6f1f2c: x86: fix PC conversion
Tim Haines
[DynInst_API:] [dyninst/dyninst] ea6ed8: Fix PC conversion
Tim Haines
[DynInst_API:] [dyninst/dyninst] 1ed8fc: Move MachRegister -> ROSE register conversion into...
Tim Haines
[DynInst_API:] [dyninst/dyninst] bb2730: add RISC-V instruction mnemonics and registers
wxrdnx
[DynInst_API:] [dyninst/dyninst] 61faa3: More include cleanup
Tim Haines
[DynInst_API:] [dyninst/dyninst] f494d4: Fix comment in convert.C
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9fa04a: x86: fix PC conversion
Tim Haines
[DynInst_API:] [dyninst/dyninst] 0435b9: aarch64: fix PC conversion
Tim Haines
[DynInst_API:] [dyninst/dyninst] eef063: Add conversion to RegisterDescription
Tim Haines
[DynInst_API:] [dyninst/dyninst] df74a1: Add stub for new converter
Tim Haines
[DynInst_API:] [dyninst/dyninst] 422b31: Separate dataflowAPI files from parseAPI CMakeList...
Tim Haines
[DynInst_API:] [dyninst/dyninst] df418d: Re-use source checkout in build action (#1840)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 942fd3: Re-use source checkout in build action
Tim Haines
[DynInst_API:] [dyninst/dyninst] aa6db6: GitHubCI: expand events that trigger workflows (#1...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 29c649: Re-use source checkout in build action
Tim Haines
[DynInst_API:] [dyninst/dyninst] e91071: Re-use source checkout in build action
Tim Haines
[DynInst_API:] [dyninst/dyninst] ae8626: Expand events that trigger workflows
Tim Haines
[DynInst_API:] [dyninst/dyninst] dfd84c: Expand events that trigger workflows
Tim Haines
[DynInst_API:] [dyninst/dyninst] 03b7ed: Re-use source checkout in build action
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9b3221: Remove dead classes from dataflowAPI/rose (#1839)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 797c79: Treat linker warnings as errors when DYNINST_WARNI...
Tim Haines
[DynInst_API:] [dyninst/dyninst] b4141f: Fix formatting
Tim Haines
[DynInst_API:] [dyninst/dyninst] 8f634e: Remove dead classes from dataflowAPI/rose
Tim Haines
[DynInst_API:] [dyninst/dyninst] d6154c: Fix transitive includes from MachRegister.h (#1837)
Tim Haines
[DynInst_API:] [dyninst/dyninst] ed83d3: Treat linker warnings as errors when DYNINST_WARNI...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9cd26d: Fix transitive includes from MachRegister.h
Tim Haines
[DynInst_API:] [dyninst/dyninst] e5b93d: Fix attribute ordering in deprecated Instruction::...
Tim Haines
[DynInst_API:] [dyninst/dyninst] ae28c1: Remove unused ROSE files from dataflowAPI (#1832)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 11ccc9: Replace use of deprecated tmpnam
Tim Haines
[DynInst_API:] [dyninst/dyninst] 83bc82: Implement some instruction emission functions
wxrdnx
[DynInst_API:] [dyninst/dyninst] 430036: Add RISC-V Instruction API
wxrdnx
[DynInst_API:] [dyninst/dyninst] 4fcda0: Add RISC-V Instruction API
wxrdnx
[DynInst_API:] [dyninst/dyninst] bfcf05: Add RISC-V Symtab API
wxrdnx
[DynInst_API:] [dyninst/dyninst] 64499a: Fix return semantics on aarch64 and ppc (#1827)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 32b448: Separate operand interface in Instruction class (#...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 17c312: Separate operand interface in Instruction class
Tim Haines
[DynInst_API:] [dyninst/dyninst] d7c365: Fix crashes in Elf_X (#1829)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9b47d9: Fix crash in DwarfFrameParser::create (#1828)
Tim Haines
[DynInst_API:] [dyninst/dyninst] e0a631: Add RISC-V Symtab API
wxrdnx
[DynInst_API:] [dyninst/dyninst] f8602e: Add RISC-V Symtab API
wxrdnx
[DynInst_API:] [dyninst/dyninst] ba4a7c: Add RISC-V Symtab API
wxrdnx
[DynInst_API:] [dyninst/dyninst] 2bcd23: Add RISC-V Symtab API
wxrdnx
[DynInst_API:] [dyninst/dyninst] f2336c: Fix crashes in Elf_X
Tim Haines
[DynInst_API:] [dyninst/dyninst] ea1de7: Remove declaration, rather than commenting it out
Tim Haines
[DynInst_API:] [dyninst/dyninst] 232b88: Fix crash in DwarfFrameParser::create
Tim Haines
[DynInst_API:] [dyninst/dyninst] 44b476: Revert changes to aarch64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 666ecb: Use CODEGEN_ARCH instead of HOST_ARCH to condition...
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 5c7c71: run cmake-format
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] b69d23: fix typo
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] a45273: Replace HOST_ARCH with CODEGEN_ARCH in dwarf
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] a59e2b: Replace missed HOST_ARCH with CODEGEN_ARCH
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 23af57: Replace HOST_ARCH with CODEGEN_ARCH in dyninstAPI
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 483dfd: Replace HOST_ARCH with CODEGEN_ARCH in parseAPI
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 17b7f0: Replace HOST_ARCH with CODEGNE_ARCH in dataflowAPI
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 33390d: Replace HOST_ARCH with CODEGEN_ARCH in common
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 914066: Add DYNINST_CODEGEN_ARCH to cmake
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] b37171: Rename -Darch_* to -DDYNINST_HOST_ARCH_* (#1807)
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 03654e: Add RISC-V Symtab API
wxrdnx
[DynInst_API:] [dyninst/dyninst] 5f7f42: Rename -DDYNINST_ARCH and -Darch
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 550869: Implement MachRegister::getBaseRegister for aarch6...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 123394: Implemented MachRegister::getBaseRegister for aarch64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9ca1a7: Remove unused parameter from dyninstAPI/convertReg...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 3b8c61: Update aarch64 registers for Capstone 6 (#1824)
Tim Haines
[DynInst_API:] [dyninst/dyninst] 50fa61: Add RISC-V Dataflow API
wxrdnx
[DynInst_API:] [dyninst/dyninst] 64474c: Add RISC-V semantics
wxrdnx
[DynInst_API:] [dyninst/dyninst] 6f4c2a: Add RISC-V semantics
wxrdnx
[DynInst_API:] [dyninst/dyninst] 69cbd5: Add RISC-V Instruction API
wxrdnx
[DynInst_API:] [dyninst/dyninst] c0512d: Add Capstone to Instruction API
wxrdnx
[DynInst_API:] [dyninst/dyninst] c0dbed: Add RISC-V Symtab API
wxrdnx
[DynInst_API:] [dyninst/dyninst] c1d4e2: Implemented MachRegister::getBaseRegister for aarch64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 1d114a: Implemented MachRegister::getBaseRegister for aarch64
Tim Haines
[DynInst_API:] [dyninst/dyninst] 630d9f: aarch64: make x29 and x30 GPRs
Tim Haines
[DynInst_API:] [dyninst/dyninst] 081f7b: Revert "Import and update ppc64le opcodes from Cap...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 7fdc55: Separate operand interface in Instruction class
Tim Haines
[DynInst_API:] [dyninst/dyninst] 7b85b9: Revert "Import and update ppc64le opcodes from Cap...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 452882: Separate operand interface in Instruction class
Tim Haines
[DynInst_API:] [dyninst/dyninst] 2a691d: Revert "Import and update ppc64le opcodes from Cap...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 34a2b9: Make RISC-V dyninst compile on a RISC-V machine
wxrdnx
[DynInst_API:] [dyninst/dyninst] 77bb66: Clean up InstructionAPI decoder and AST classes (#...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 5d6833: Revert "Import and update ppc64le opcodes from Cap...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 5d6833: Revert "Import and update ppc64le opcodes from Cap...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 618dc6: Add missing RTstatic_ctors_dtors-riscv64.c
wxrdnx
[DynInst_API:] [dyninst/dyninst] 360745: Add RISC-V stackwalk guard
wxrdnx
[DynInst_API:] [dyninst/dyninst] 409955: fix mulhsu instruction semantic
wxrdnx
[DynInst_API:] [dyninst/dyninst] 6bf125: BinaryFunction - remove dead code
Tim Haines
[DynInst_API:] [dyninst/dyninst] 4122b1: Fix null pointer access in Operand::get{Read, Write...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 6f6c41: Fix null pointer access in Operand::get{Read, Write...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 9efb68: aarch64 - fix missing returns in AliasMap functions
Tim Haines
[DynInst_API:] [dyninst/dyninst] 525cbc: Make InstructionDecoder::doDelayedDecode private (...
Tim Haines
[DynInst_API:] [dyninst/dyninst] fd1ffc: Move InstructionImpl::decode into InstructionDecod...
Tim Haines
[DynInst_API:] [dyninst/dyninst] f09e91: Make InstructionDecoder::doDelayedDecode private
Tim Haines
[DynInst_API:] [dyninst/dyninst] c1a36d: Move InstructionDecoderImpl::decode into Instructi...
Tim Haines
[DynInst_API:] [dyninst/dyninst] de98a7: Clean up, extend, and document Instruction categor...
Tim Haines
[DynInst_API:] [dyninst/dyninst] c94275: Actually deprecate...
Tim Haines
[DynInst_API:] [dyninst/dyninst] 0f9dda: Separate operand interface in Instruction class
Tim Haines
[DynInst_API:] [dyninst/dyninst] abf109: Rename -DDYNINST_ARCH and -Darch
bbiiggppiigg
[DynInst_API:] [dyninst/dyninst] 1907e0: Update and document InsnCategory
Tim Haines
[DynInst_API:] [dyninst/dyninst] f3d4c2: Remove InstructionDecoder_x86::decode
Tim Haines
[DynInst_API:] [dyninst/dyninst] 5f9282: Add hasControlFlowTarget to Instruction class
Tim Haines
Earlier messages