forked from capstone-engine/capstone
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add HPPA(PA-RISC) architecture (capstone-engine#2265)
* Refactor HPPA * Add full HPPA 1.1 instructions support * Add HPPA 1.1 cs tests * Fix HPPA dissassembler * Add HPPA 2.0 instructions * Add HPPA tests * Fix HPPA disasm & printer * Update HPPA tests * Remove unused code * Add implicit register access info & Refactor HPPA main files * Add python bindings/tests and cstests * Fix HPPA disasm wrong decoding * Rewrite invalid test cases * Update HPPA python constants * Make HPPA python test executable * Change HPPA python tests sequence to match c tests * Refactor HPPA main files * Write target instead of offset in details * Add HPPA detail function support in cstest * Rewrite targets in branch tests * Make correct string modifier addition * Add hppa test calls * Add zero operands check * Remove MCOperand array * Change immediate values printing * Add HPPA 2.0 wide support * Fix invalid break instruction decode Remove unused code * Add HPPA to fuzzing tests * Add HPPA to options * Add HPPA to docs * Refactor HPPA * Fix invalid branch insn decoding * Add HPPA to labeler * clang-format hppa files * Document internal structures and minor refactoring * Add missing default statements * Fix invalid default statement
- Loading branch information
Showing
79 changed files
with
8,639 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
/* Capstone Disassembly Engine */ | ||
/* By Dmitry Sibirtsev <[email protected]>, 2023 */ | ||
|
||
/* This file defines constants and macros used for parsing a HPPA instruction */ | ||
|
||
#ifndef CS_HPPA_CONSTANTS_H | ||
#define CS_HPPA_CONSTANTS_H | ||
|
||
#define HPPA_OP_TYPE(byte) (byte) >> 2 | ||
#define MODE_IS_HPPA_20(mode) (((mode)&CS_MODE_HPPA_20) != 0) | ||
#define MODE_IS_HPPA_20W(mode) (((mode) & (1 << 3)) != 0) | ||
|
||
///> HPPA opcode types | ||
#define HPPA_OP_TYPE_SYSOP 0x00 | ||
#define HPPA_OP_TYPE_MEMMGMT 0x01 | ||
#define HPPA_OP_TYPE_ALU 0x02 | ||
#define HPPA_OP_TYPE_IDXMEM 0x03 | ||
#define HPPA_OP_TYPE_SPOP 0x04 | ||
#define HPPA_OP_TYPE_DIAG 0x05 | ||
#define HPPA_OP_TYPE_FMPYADD 0x06 | ||
#define HPPA_OP_TYPE_LDIL 0x08 | ||
#define HPPA_OP_TYPE_COPRW 0x09 | ||
#define HPPA_OP_TYPE_ADDIL 0x0a | ||
#define HPPA_OP_TYPE_COPRDW 0x0b | ||
#define HPPA_OP_TYPE_COPR 0x0c | ||
#define HPPA_OP_TYPE_LDO 0x0d | ||
#define HPPA_OP_TYPE_FLOAT 0x0e | ||
#define HPPA_OP_TYPE_PRDSPEC 0x0f | ||
#define HPPA_OP_TYPE_LDB 0x10 | ||
#define HPPA_OP_TYPE_LDH 0x11 | ||
#define HPPA_OP_TYPE_LDW 0x12 | ||
#define HPPA_OP_TYPE_LDWM 0x13 | ||
#define HPPA_OP_TYPE_LOADDW 0x14 | ||
#define HPPA_OP_TYPE_FLDW 0x16 | ||
#define HPPA_OP_TYPE_LOADW 0x17 | ||
#define HPPA_OP_TYPE_STB 0x18 | ||
#define HPPA_OP_TYPE_STH 0x19 | ||
#define HPPA_OP_TYPE_STW 0x1a | ||
#define HPPA_OP_TYPE_STWM 0x1b | ||
#define HPPA_OP_TYPE_STOREDW 0x1c | ||
#define HPPA_OP_TYPE_FSTW 0x1e | ||
#define HPPA_OP_TYPE_STOREW 0x1f | ||
#define HPPA_OP_TYPE_CMPBT 0x20 | ||
#define HPPA_OP_TYPE_CMPIBT 0x21 | ||
#define HPPA_OP_TYPE_CMPBF 0x22 | ||
#define HPPA_OP_TYPE_CMPIBF 0x23 | ||
#define HPPA_OP_TYPE_CMPICLR 0x24 | ||
#define HPPA_OP_TYPE_SUBI 0x25 | ||
#define HPPA_OP_TYPE_FMPYSUB 0x26 | ||
#define HPPA_OP_TYPE_CMPBDWT 0x27 | ||
#define HPPA_OP_TYPE_ADDBT 0x28 | ||
#define HPPA_OP_TYPE_ADDIBT 0x29 | ||
#define HPPA_OP_TYPE_ADDBF 0x2a | ||
#define HPPA_OP_TYPE_ADDIBF 0x2b | ||
#define HPPA_OP_TYPE_ADDIT 0x2c | ||
#define HPPA_OP_TYPE_ADDI 0x2d | ||
#define HPPA_OP_TYPE_FPFUSED 0x2e | ||
#define HPPA_OP_TYPE_CMPBDWF 0x2f | ||
#define HPPA_OP_TYPE_BBS 0x30 | ||
#define HPPA_OP_TYPE_BB 0x31 | ||
#define HPPA_OP_TYPE_MOVB 0x32 | ||
#define HPPA_OP_TYPE_MOVIB 0x33 | ||
#define HPPA_OP_TYPE_SHEXDEP0 0x34 | ||
#define HPPA_OP_TYPE_SHEXDEP1 0x35 | ||
#define HPPA_OP_TYPE_SHEXDEP2 0x36 | ||
#define HPPA_OP_TYPE_BE 0x38 | ||
#define HPPA_OP_TYPE_BLE 0x39 | ||
#define HPPA_OP_TYPE_BRANCH 0x3a | ||
#define HPPA_OP_TYPE_CMPIBDW 0x3b | ||
#define HPPA_OP_TYPE_SHEXDEP3 0x3c | ||
#define HPPA_OP_TYPE_SHEXDEP4 0x3d | ||
#define HPPA_OP_TYPE_MULTMED 0x3e | ||
|
||
#endif // CS_HPPA_CONSTANTS_H |
Oops, something went wrong.