Commit Graph

1808 Commits

Author SHA1 Message Date
billow
8b56ae652b refactor: Add new TriCore instructions and remove deprecated ones.
- Remove deprecated instructions
- Update comments and formatting
2023-04-14 00:35:35 +08:00
billow
d41decd0f0 feat: Add and remove TriCore instructions.
- Add 3 new TriCore instructions
- Remove TriCore instruction "TriCore_INS_INIT"
- Alphabetized and rearranged various TriCore instructions
- Commented out code remains in the diff but is not part of the program.
2023-04-14 00:35:34 +08:00
billow
d631ecc723 add tricore_feature support 2023-04-14 00:35:33 +08:00
billow
a076fdeb0a refactor: Refactor TriCore instruction decoding and register definition.
- Update TriCore processor register definitions with auto-generated file `TriCoreGenCSRegEnum.inc`
- Add several new TriCore processor instructions with auto-generated file `TriCoreGenCSInsnEnum.inc`
- Update TriCore_OP_GROUP enumeration with auto-generated file `TriCoreGenCSOpGroup.inc`
- Rename and restructure TriCore processor register classes
- Remove unused register class definitions and related code
2023-04-14 00:35:32 +08:00
billow
d58a83c7f1 refactor: Update TriCore instruction requirements
- Update `Requires` directives for several instructions to reflect changes in hardware versions
2023-04-14 00:35:32 +08:00
billow
7dbeb5c58f refactor: Add support for new TriCore instructions and constraints.
- Add support for V110 and V120 in various LD instructions
- Define new multiclass for code reuse
- Restructure LD_A_v120 in favor of LD_A with Requires constraint
- Add new defs for LT_U with suffixes for V110 support
2023-04-14 00:35:31 +08:00
billow
2fa188ec5a refactor: Improve TriCore instruction handling.
- Add new instructions for TriCore architecture
- Implement changes to TriCoreInstrInfo.td
2023-04-14 00:35:30 +08:00
billow
d515e62ddc refactor: Refactor TriCore register names.
- Rename TriCore register names for better readability
- Update TriCore instruction information
2023-04-14 00:35:29 +08:00
billow
ad0e18fece fix cachea 2023-04-14 00:35:28 +08:00
billow
4567335c20 add some tricore v1.1 inst 2023-04-14 00:35:27 +08:00
billow
753b6a4ce0 cleanup 2023-04-14 00:35:26 +08:00
billow
b9eba6f1fd add tricore Predicates 2023-04-14 00:35:25 +08:00
billow
c862106861 just add TriCoreISA enum 2023-04-14 00:35:25 +08:00
billow
d759996f15 fix: disp print and fill 2023-04-14 00:35:24 +08:00
billow
878e09db04 fix: decode j call loop 2023-04-14 00:35:22 +08:00
billow
d9e715bc17 feat: Fix bugs and update instructions for TriCore architecture.
- Fix bug in `printDisp8Imm` function in `TriCoreInstPrinter.c`
- Add new `CALL_sb` instruction to `TriCoreInstrInfo.td`
- Reorder instruction definitions and operands in `TriCoreInstrInfo.td`
2023-04-14 00:35:21 +08:00
billow
fae62b74bf refactor: Refactor TriCore instructions and operands
- Add new immediate operands and refactor code for better readability in TriCoreInstrInfo
- Update InstPrinter functions to handle new immediate operands and remove unused function
2023-04-14 00:35:20 +08:00
billow
5b7e20ad55 fix: TriCore Instruction Formats and Printing
- Add new operand type `off18imm`
- Add `printOff18Imm` function for printing specific immediate value
2023-04-14 00:35:19 +08:00
billow
7e937d10ad Fix: TriCore instruction operations and decoding. 2023-04-14 00:35:18 +08:00
billow
6bd7b4b894 fix: decode error 2023-04-14 00:35:17 +08:00
billow
9bdd734d0e fix: TriCore instruction decoding and printing.
- Modify TriCore instructions to use bracket syntax and offsets for better clarity
- Add off4_fixup and printSExtImm_n
2023-04-14 00:35:17 +08:00
billow
a78a46a397 fix: TriCore architecture disassembly codes
- Rename `ISLR_post_increment` to `ISLR_pos` for clarity
- Fix register decoding for TriCore architecture in `TriCoreDisassembler.c`
- Add new file `LoadStore.s.cs` to `suite/MC/TriCore`
2023-04-14 00:35:16 +08:00
billow
f19a93ad43 add BO 2023-04-14 00:35:14 +08:00
billow
6381b0750e add MTCR 2023-04-14 00:35:13 +08:00
billow
1c190c49cc Whether to call a10 a sp 2023-04-14 00:35:12 +08:00
billow
fc3cf3aa80 fix imask 2023-04-14 00:35:11 +08:00
billow
63db2dc804 fix mov.a mov.d 2023-04-14 00:35:10 +08:00
billow
927e075500 fix 2023-04-14 00:35:09 +08:00
billow
fec75ae36a fix RR 2023-04-14 00:35:09 +08:00
billow
85d2936f87 fix INSERT_rrpw 2023-04-14 00:35:08 +08:00
billow
3a6076a6d4 fix RRPW 2023-04-14 00:35:07 +08:00
billow
9567b8915d fix 2023-04-14 00:35:06 +08:00
billow
70058f9104 fix SRRS 2023-04-14 00:35:05 +08:00
billow
fd8a2b8dc9 fix BO BOL 2023-04-14 00:35:04 +08:00
billow
001f3487b1 fix DecodeRegisterClass 2023-04-14 00:35:03 +08:00
billow
8fa4d4cb99 fix DecodeRegisterClass
- `DecodeABSInstruction`
- `DecodeRLCInstruction`
- `DecodeSSRInstruction`
- `DecodeSRCInstruction`
2023-04-14 00:35:02 +08:00
billow
98f0eb61a8 fix 2023-04-14 00:35:01 +08:00
billow
e5b44ff47c add sign_ext zero_ext 2023-04-14 00:35:01 +08:00
billow
cffcfdbb4c fix 2023-04-14 00:34:58 +08:00
billow
564f962146 fix 2023-04-14 00:34:57 +08:00
billow
75c5e26358 fix DecodeInstruction 2023-04-14 00:34:54 +08:00
billow
bb16f2d785 Decode*Instruction 2023-04-14 00:34:53 +08:00
billow
b1f7cfeb84 fix build 2023-04-14 00:34:52 +08:00
billow
30432c862d add FPU Instructions 2023-04-14 00:34:52 +08:00
billow
33080bb326 update TriCore*.inc 2023-04-14 00:34:51 +08:00
billow
1a148e2b65 ST SUB SYSCALL XOR XNOR 2023-04-14 00:34:50 +08:00
billow
1e44b5346d SHA* ST* 2023-04-14 00:34:49 +08:00
billow
27e5ef647a RSUB* SAT* SEL* SH* 2023-04-14 00:34:48 +08:00
billow
093829be2b modified: arch/TriCore/TriCoreInstrInfo.td 2023-04-14 00:34:47 +08:00
billow
f7aa5d17ff MUL* NAND* NE* NOP NOR OR 2023-04-14 00:34:46 +08:00
billow
26454fd243 MSUB* 2023-04-14 00:34:45 +08:00
billow
248f7c6f14 MOV* 2023-04-14 00:34:45 +08:00
billow
86f6a60818 MAX* MFCR MIN* 2023-04-14 00:34:44 +08:00
billow
dae993af5d fix MADD* 2023-04-14 00:34:43 +08:00
billow
7f32015cfb MADD* 2023-04-14 00:34:42 +08:00
billow
3bbb2d5b76 - LD*
- `LEA*`
- `LHA*`
- `LOOP*`
- `LT*`
2023-04-14 00:34:41 +08:00
billow
16befd3724 ld* 2023-04-14 00:34:40 +08:00
billow
30cf8288e8 modified: arch/TriCore/TriCoreInstrInfo.td 2023-04-14 00:34:39 +08:00
billow
59da967a01 Changes to be committed:
modified:   arch/TriCore/TriCoreInstrFormats.td
	modified:   arch/TriCore/TriCoreInstrInfo.td
2023-04-14 00:34:38 +08:00
billow
1968699d4d add:
- `DEXTR*`
- `DISABLE*`
- `DSYNC*`
- `DVADJ*`
- `DIV*`
- `DVINIT*`
- `DVSTEP*`
- `ENABLE*`
- `EQ*`
2023-04-14 00:34:38 +08:00
billow
f8c7dc474f add:
- `CALL*`
- `CL*`
- `CMOV*`
- `CMPSWAP_W`
- `CRC*`
- `CSUB*`
- `DEBUG*`
2023-04-14 00:34:37 +08:00
billow
f7175332ba add cadd 2023-04-14 00:34:36 +08:00
billow
688ee6a07c add cache inst 2023-04-14 00:34:35 +08:00
billow
69e051687a add AND 2023-04-14 00:34:34 +08:00
billow
b5b456b4f4 add more ADD 2023-04-14 00:34:33 +08:00
billow
96aec6be49 Add more multiclass 2023-04-14 00:34:32 +08:00
billow
ed94f7fcfc add more ADD 2023-04-14 00:34:31 +08:00
billow
175691f2cf add ABS 2023-04-14 00:34:30 +08:00
billow
e6513b26ad add TriCore tablegen files 2023-04-14 00:34:30 +08:00
billow
d1021f4a6b Fix build and test 2023-04-14 00:34:28 +08:00
Sidney Pontes Filho
81b1df7f91 Transfer modifications of TriDis/llvm-tricore on Feb, 04 2017 2023-04-14 00:34:25 +08:00
Sidney Pontes Filho
707c57b921 Fix TriCore register mapping 2023-04-14 00:34:23 +08:00
Sidney Pontes Filho
8ea8d69cc5 Fix TriCore Mapping 2023-04-14 00:34:23 +08:00
Sidney Pontes Filho
72cdfdab80 Adjustments in TriCore and add more instructions into tests/test_tricore.c 2023-04-14 00:34:22 +08:00
Sidney Pontes Filho
651aa5a1f1 Fix memory access printing and clean unused functions 2023-04-14 00:34:21 +08:00
Sidney Pontes Filho
4aace70036 Transfer modifications of TriDis/llvm-tricore on Oct 05, 2016 2023-04-14 00:34:20 +08:00
Sidney Pontes Filho
4bc36ec68b Transfer modifications of TriDis/llvm-tricore on Sep 20, 2016 2023-04-14 00:34:19 +08:00
Sidney Pontes Filho
f855c92b46 Adjust printing of Registers and upgrade TriCore test 2023-04-14 00:34:18 +08:00
Sidney Pontes Filho
3c63df7f45 Fix printing MemSrc 2023-04-14 00:34:17 +08:00
Sidney Pontes Filho
edbd73409c Remove all compiler warnings 2023-04-14 00:34:17 +08:00
Sidney Pontes Filho
dd4011297b Fix all compiler errors 2023-04-14 00:34:16 +08:00
Sidney Pontes Filho
4ec3dd12a8 Fix all errors in TriCoreInstPrinter 2023-04-14 00:34:15 +08:00
Sidney Pontes Filho
30f344a1c3 Fix all errors in TriCoreDisassembler 2023-04-14 00:34:14 +08:00
Sidney Pontes Filho
62dba6e681 Fix error of undeclared instructions and registers 2023-04-14 00:34:13 +08:00
Sidney Pontes Filho
bca9ef7420 Add group name maps 2023-04-14 00:34:12 +08:00
Sidney Pontes Filho
5e276956f8 Fix TriCore GenAsmWriter and InstPrinter 2023-04-14 00:34:11 +08:00
Sidney Pontes Filho
104ad28a7e Improve TriCore InstPrinter and Mapping 2023-04-14 00:34:10 +08:00
Sidney Pontes Filho
5d1cd026d8 Map instruction and fix part of InstPrinter 2023-04-14 00:34:10 +08:00
Sidney Pontes Filho
82c874c209 Fix Disassembler and TableGen Files of TriCore 2023-04-14 00:34:09 +08:00
Sidney Pontes Filho
f5687523e3 Modify Makefiles for TriCore architecture 2023-04-14 00:34:08 +08:00
Sidney Pontes Filho
67f3c46f1b Add TriCore Architecture 2023-04-14 00:34:07 +08:00
Wu ChenXu
b3c9068bcb Merge pull request #1960 from Rot127/sh-build-warnings
[SH] Fix build warnings
2023-04-06 18:01:54 +08:00
Rot127
c3cc9ae533 Remove unused variable 2023-04-06 03:57:28 -05:00
Wu ChenXu
05c2e95e4f Merge pull request #1974 from thomasdangl/next 2023-03-19 17:35:46 +08:00
Thomas Dangl
c08f80ce7a AArch64: fixes register access flags for moves 2023-03-14 15:50:11 +01:00
stevielavern
f1a36b6894 Fix for missing register usages on ARM64 authenticated branches (issue #1975) 2023-03-14 11:36:05 +01:00
Nam Cao
43ddc91283 correct register accesses for ARM's sxtb/uxtb and similar instructions 2023-03-07 18:59:06 +01:00
Rot127
854153e7c9 [SH] Fix several unused variable warnings. 2023-03-06 21:35:22 -05:00
Rot127
cd469285dd [SH] Fix unsued function warnings. 2023-02-24 13:52:09 -05:00
Wu ChenXu
fe63ddb108 Merge pull request #1927 from ysat0/superh 2023-01-27 14:58:24 +08:00
Johan Mattsson
81b57c6eb4 Fix potential array out of bounds 2022-11-26 15:59:18 +01:00
Yoshinori Sato
78a1fa2f5d SH: fix include path.
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
2022-11-25 15:01:09 +09:00
Wu ChenXu
a7e325389b Merge pull request #1934 from frida/fix/custom-allocator-regressions
Fix regressions in custom memory allocator support
2022-11-24 18:35:19 +08:00
ζeh Matt
1249f05c49 Add post_index to arm 2022-11-22 22:25:08 +02:00
ζeh Matt
b5c865a0cd Add post_index field for cs_arm64 2022-11-22 19:23:32 +02:00
Yoshinori Sato
15bebb5cca Fix include path.
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
2022-11-14 16:21:34 +09:00
Ole André Vadla Ravnås
4307c0a6a4 Fix regressions in custom memory allocator support
Where new code started using malloc() and free() directly instead of
going through the cs_mem_* functions.
2022-11-09 01:01:12 +01:00
Wu ChenXu
ba3effd320 Merge pull request #1925 from FinnWilkinson/next
Fixed SME index alias printing issue.
2022-10-24 19:10:17 +08:00
Yoshinori Sato
586e405a7c Merge remote-tracking branch 'origin/next' into superh 2022-10-13 12:30:15 +09:00
Yoshinori Sato
b681153238 sh: superh support backend.
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
2022-10-12 20:11:12 +09:00
Finn Wilkinson
51235dedef Fixed for loop initial declaration errors in AArch64InstPrinter. 2022-10-12 10:10:46 +01:00
pancake
b83d341b3d arm64: fix invalid free introduced in 662bb3f6cc 2022-10-11 18:56:03 +02:00
Finn Wilkinson
483f14a920 Fixed SME index alias printing issue. 2022-10-11 15:37:34 +01:00
Wu ChenXu
215822fde7 Merge pull request #1921 from huth/fixes
m68k: Add support for the FNOP instruction
2022-10-07 13:57:15 +08:00
Wu ChenXu
c0e1839d5c Merge pull request #1907 from FinnWilkinson/AArch64-Armv9.2-update 2022-10-06 17:27:20 +08:00
Thomas Huth
15286490fb m68k: Add support for the FNOP instruction (fixes #1916)
The FNOP instruction has the same encoding as FBF with zero displacement,
but according to the manual, it has some additional synchronization
functions, so it would be good if Capstone disassembles this with the
FNOP mnemonic instead of the FBF mnemonic.

Before this change:

$ cstool m68k40 0xf2800000
 0  f2 80 00 00  fbf.w	$2

After this change:

$ cstool m68k40 0xf2800000
 0  f2 80 00 00  fnop
2022-10-02 08:07:33 +02:00
Thomas Huth
55dd90c50a m68k: Remove duplicated LIMIT_CPU_TYPES statement
The second one is unnecessary and was likely a copy-n-paste error.
2022-10-02 08:06:12 +02:00
Finn Wilkinson
6d5a3b1a44 Updated AArch64 Instruction Printer to support new Armv9.2 instructions.
Implemented new functions present in LLVM 14.0.5 for any new instruction
type in Armv9.2; mainly SME / Matrix printing functions.

New set_sme_index function added (called from AArch64GenAsmWriter.inc)
to correctly add operands to new sme_index operand type. Doing_SME_Index
bool added to cs_struct to indicate when operands should be added to
sme_index type.

Functionality added to support SMSTART/SMSTOP aliases.
2022-09-30 16:34:09 +01:00
Finn Wilkinson
222a8b4278 Updated AArch64 BaseInfo.h and Mapping.c to refelct Armv9.2 architectural changes and .inc file changes. 2022-09-30 16:14:37 +01:00
Finn Wilkinson
b60d0df0d8 Updated AArch64 Disassembler.
Added new decode functions, mainly for SME matrix operands and SVCR sys
register, as well as updating existing decode functions which have seen
changes in LLVM 14.0.5.

The _getInstruction function has also been updated to its LLVM 14.0.5
counterpart; with a new switch case for adding implicit operands to the
relevant SME instructions.
2022-09-30 16:07:07 +01:00
Finn Wilkinson
4a5e69f69e Generated new Armv9.2 AArch64 .inc files from LLVM 14.0.5 2022-09-30 15:51:03 +01:00
Mario Haustein
3f8a6e8537 PPC: fix out of bound memory access
closes #1912
2022-09-07 17:27:54 +02:00
pancake
23a4475cec Fix -Werror build 2022-07-31 15:24:52 +02:00
Richard Patel
4af02db7bc Avoid setting PowerPC branch hint on signed disp 2022-07-23 16:44:12 +02:00
Richard Patel
f1a2281f03 Fix PPC insn names and psq displacement 2022-07-23 16:44:12 +02:00
Richard Patel
6a13a78d21 Run synctools (PPC PS support) 2022-07-23 08:50:47 +02:00
pancake
f477dd4f70 One semicolon is enough in C (#1892)
Co-authored-by: pancake <pancake@nopcode.org>
2022-07-08 07:06:38 +08:00
Wu ChenXu
3fd4712b0b Merge pull request #1886 from terorie/ebpf-callx 2022-06-09 21:37:40 +08:00
Richard Patel
fb34475a1f Add eBPF callx instruction 2022-06-06 11:56:40 +02:00
Richard Patel
26999b6df5 Fix eBPF lddw opcode 2022-06-06 10:51:48 +02:00
Adam Seitz
b27f3df27e Comprehensively add vas specifiers to ARM aliases 2022-04-29 13:49:52 -04:00
Adam Seitz
9998268b93 Fix AArch64InstPrinter indentation 2022-04-28 17:41:14 -04:00
Wu ChenXu
2bd6f00b53 Merge branch 'next' into aarch64-alias-vas-specifiers 2022-03-22 22:58:06 +08:00
Adam Seitz
ee689c4512 Set .vas for aliased AArch64 instructions 2022-03-21 13:24:57 -04:00
Adam Seitz
d729d88e87 Combine aarch64 sys operand enums 2022-03-18 14:15:46 -04:00
Adam Seitz
6687276cad Build SYS operand for AArch64 sys operations 2022-03-18 09:43:13 -04:00
Wu ChenXu
524e863ad1 Merge pull request #1840 from stevielavern/fix_ldr
Fix AArch64 ldapr detailed information #1839
2022-02-28 14:23:55 +08:00
kabeor
cdce5c8190 fixed incorrect MI->ac_idx leading to wrong AArch64 InsnOp access printing 2022-02-28 13:26:08 +08:00
stevielavern
6751c53aec Fix ldapr detailed information #1839 2022-02-22 15:22:41 +01:00
pancake
792721b90c Revert "x86: fix lcall seg:off format for x86-16 (#1827)" (#1833)
This reverts commit e4965783cf.

Co-authored-by: pancake <pancake@nopcode.org>
2022-01-28 10:22:00 +08:00
Nguyen Anh Quynh
50b7bc01ab x86: fix lcall seg:off format for x86-16 (#1827) 2022-01-26 11:35:07 +08:00
kabeor
8a3f4df74e Fixed incorrect operand access on x86 instruction vmovdqu 2022-01-18 11:48:18 +08:00
radare
8eb793afec Some performance improvement 2021-12-31 22:20:51 +01:00
Wu ChenXu
85759d8722 Merge pull request #1804 from bSr43/next
Fixes a few issues
2021-12-10 21:26:41 +08:00
pancake
a5259aab30 Dont format sstreams when there's nothing to format 2021-12-10 10:59:16 +01:00
Vincent Bénony
77606769ff Wrong register mapping 2021-12-09 15:06:53 +01:00
Vincent Bénony
fa9310e63f Missing writeback information on ldraa / ldrab 2021-12-09 15:06:26 +01:00
Vincent Bénony
593c2c5c86 Missing vector arrangement specifiers 2021-12-09 15:05:11 +01:00
kabeor
ff652fe877 Merge branch 'x86-access' of git://github.com/mxz297/capstone into mxz297-x86-access 2021-12-01 11:52:30 +08:00
oosris
e2cc7fe2a2 fixed eflags effects for adc/sbb 2021-11-22 13:13:20 +08:00
oosris
4914b43cef fix eflags effects for adc/sbb 2021-11-22 09:09:53 +08:00
Wu ChenXu
da759a6071 Revert "Correcting X86 Imm Size" 2021-11-14 08:50:56 +08:00
Wu ChenXu
79d897ee87 Merge pull request #1655 from cyanpencil/aarch64_cmp_reg_access_fix2
Fix cmp register access on aarch64
2021-11-13 20:41:30 +08:00
Wu ChenXu
9963db3952 Merge pull request #1657 from NicolasDerumigny/next
Correcting X86 Imm Size
2021-11-11 08:16:22 +08:00
Joe Ranieri
4e151e66d4 Fix the displacement offset for moffset-encoded operands
This was initially introduced in dce7da9 but lost in the LLVM 7 sync
in 5a99624.
2021-05-19 17:08:46 -04:00
StalkR
7826376884 ppc: fix registers overflow (#1688)
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=22236

Same as https://github.com/aquynh/capstone/pull/1687 for next branch
2021-03-20 07:34:34 +08:00
Jesús A. Álvarez
06662e0d52 mos65xx: use address on mem operands for relative addressing (#1702)
* mos65xx: use imm field for immediate operand value

using the wrong field works on little-endian hosts, but on big-endian the wrong value would be read

* mos65xx: set operand mem field to address also in relative modes

previously the last operand would have an offset, which doesn't match the printed operand

* mos65xx: add bpl instruction to test

this demonstrates an address operand with relative addressing
2021-03-10 08:21:31 +08:00
Antonio Flores Montoya
2e06b6db75 x86 Fix AVX-512 k registers (#1689)
* fix bug in displacement offset

* fix k0-k7 registers in X86 table.
2021-03-07 21:57:14 +08:00
keenk
548dabc989 Fix registry access for several versions of pop such as POPDS, POPSS, etc. (#1725)
* Fix a few registry access mode mappings

* Fix rollback of operand access changes

Re-fix operand access of three mov instructions

* Remove binding breaking #if 0

The python script for generating constants in the bindings does not know how to handle the #if 0 statements included in these files.

* Add files via upload

Update registry access mode for several versions of pop such as POPDS, POPSS, etc
2021-03-07 21:51:22 +08:00
keenk
29ad509528 Fix registry access on cmov instructions (#1727)
* Fix a few registry access mode mappings

* Fix rollback of operand access changes

Re-fix operand access of three mov instructions

* Remove binding breaking #if 0

The python script for generating constants in the bindings does not know how to handle the #if 0 statements included in these files.

* Updated registry access on cmov instructions

Registry access for the destination operand of the conditional move (cmov) opcodes were incorrectly listed as READ | WRITE. Although you would expect the two operands to be compared in this opcode, it instead relies on the associated flag in EFLAGS regardless of the value in the destination operand.
2021-03-07 21:50:39 +08:00
Richard Henderson
9a29b6afa7 RISC-V CSR output (#1690)
* riscv: Fix printAliasInstr

We do not want to append the entire string, only the
single non-argument character.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

* riscv: Implement printCSRSystemRegister

While upstream LLVM probably has a tablegen thing for these
somewhere, the current import doesn't include them.  Take the
list from riscv-privileged-v1.10.pdf.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2021-03-07 21:28:43 +08:00
Nguyen Anh Quynh
b059ba4ed0 code style fix 2020-12-03 16:13:00 +08:00
Michal Schulz
8751115a2e Honour direction bit in fmove instruction (#1709)
Co-authored-by: Michal Schulz <michal@Michals-iMac-Pro.local>
2020-12-03 16:12:56 +08:00
Anton Kochkov
6a8406aff6 M680X - remove unused s_cpu_type (#1695) 2020-10-29 12:29:49 +08:00
Richard Henderson
e34cd5475b Two RISC-V fixes (#1682)
* RISCV: Check CS_MODE_RISCVC in getFeatureBits

Enable compressed instruction extension with RISCVC.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

* RISCV: Fix skipdata_size for CS_MODE_RISCVC

RISC-V compressed instructions are 2 bytes, not 1.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2020-09-16 17:04:18 +08:00
Maxim Poliakovski
46e4a405da M68K: fix MOVEC operand transfer direction. (#1663) 2020-07-19 17:06:08 +08:00
Nicolas Derumigny
e46d8c49c7 Correcting X86 Imm Size 2020-07-02 16:39:15 +02:00
cyanpencil
b99a991a9b Fix cmp register access on aarch64 2020-07-01 16:04:06 +02:00
Daniel Collin
83d817339e Fixed incorrect read of 32-bit imm for bsr (#1644) 2020-06-12 23:00:47 +08:00
Antonio Flores Montoya
78a897ee12 fix bug in displacement offset (#1600) 2020-05-11 02:20:13 +08:00
Eric Kilmer
c0d5f4e280 Add more cases for LD1 instruction immediate fixups (#1632) 2020-05-10 10:03:52 +08:00
el poto rico
b818c6bdd0 ARM64: Populate implicitly used/modified registers and map ARM64_GRP_CALL to BL* (#1610)
This commit adds some registers to the list of implicit used registers and
implicit modified registers for several AArch64 instructions.

This commit also maps the `ARM64_GRP_CALL` group to the BL* instruction family.
It should fix issue #1606.
2020-05-10 01:46:55 +08:00
Nguyen Anh Quynh
73bbf84432 arm64: some POST instructions miss IMM operand. this fixes issue #1627 2020-05-10 01:39:57 +08:00
elp0t0r1c0
0e759ed68e Add ARM64_GRP_PAC group for Pointer Authentication (#1607)
* Add ARM64_GRP_PAC group for Pointer Authentication

* Lowercase the group's name
2020-03-30 08:37:11 +08:00
Xiaozhu Meng
088163d897 Update x86 operand access information 2020-03-18 10:32:51 -05:00
Nicolas Derumigny
d9b9900250 Bug solved: SSE variant of MOVSD incorrectly decoded as REPNE MOVSD (#1540) 2020-02-21 09:58:32 +08:00
DarkaMaul
0e90045ddc fix: Remove wrong write in ARM_t2STMDB_UPD instruction (#1588) 2020-02-21 09:56:35 +08:00
Richard Henderson
936dca0e2d Constify backends (#1549)
* Constify registerinfo.py output

Remove two conditionals separating identical bits of code.
Add "const" markup to MCRegisterDesc and MCRegisterClass.

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify instrinfo-arch.py output

In this case, do not actively strip const.

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the AArch64 backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the EVM backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify M680X backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify M68K backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the Mips backend

The Mips backend has not been regenerated from LLVM recently,
and there are more fixups required than I'd like.  Just apply
the fixes to the tables by hand for now.

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the Sparc backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the TMS320C64x backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the X86 backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the XCore backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify systemregister.py output

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the ARM backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the PowerPC backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the MOS65XX backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the SystemZ backend

The mapping of system register to indexes is easy to
generate read-only.  Since we know the indexes are
between 0 and 31, use uint8_t instead of unsigned.

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the WASM backend

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify cs.c

Signed-off-by: Richard Henderson <rth@twiddle.net>

* Constify the BPF backend

Signed-off-by: Richard Henderson <rth@twiddle.net>
2019-12-23 20:30:57 +08:00
Nguyen Anh Quynh
d3c521e0a5 MOS65XX: C90 compatibility 2019-12-16 00:41:34 +08:00
Jiayi Zhao
b29dca2cf7 systemz: fix base/index printing (#1561)
- In cases where base is 0 but index is not, Capstone doesn't print anything
2019-11-05 11:48:06 +08:00
naq
43040603d7 systemz: fix truncated 64bit imm operand in issue #1515 2019-07-10 17:32:46 +08:00
keenk
c609731e38 Undo rollback of 3 movbe instruction's operand access fixes (#1512)
* Fix a few registry access mode mappings

* Fix rollback of operand access changes

Re-fix operand access of three mov instructions
2019-07-01 10:36:51 +08:00
Nguyen Anh Quynh
29c7012025 fix some compilation issues when DIET mode is on 2019-06-24 12:52:38 +08:00
naq
30bffad2d4 x86: fix a race condition made by a static variable initialization. bug reported by Xiaozhu Meng 2019-06-19 10:44:13 +08:00
naq
2c015c75b3 x86: printf64m should print qword ptr by default. TODO: fix related cases in tablegen instead 2019-06-09 01:58:03 +08:00
naq
b1038743c1 x86: checkPrefix() does not set prefix0 in repne case 2019-06-09 01:13:22 +08:00
naq
dcd3e99022 x86: fix missing opcode byte in #1505 2019-06-08 12:21:50 +08:00
Catena cyber
834359fdbf Fixes MOS groups count (#1503) 2019-06-05 10:32:19 +08:00
ksherlock
41e5f629ce updated 6502 support. (#1498)
* updated 6502 support. some improvements to the base 6502 support but also adds support for 65c02, w65c02, and 65816.

* add CS_OPT_SYNTAX_MOTOROLA.

This will use "$" as a hex prefix instead of "0x"

* remove excess blank lines
2019-06-03 23:20:51 +08:00
Travis Finkenauer
750ba01466 [RISCV] Use CS_ASSERT (#1493)
* makefile: set CAPSTONE_DEBUG for debug build

Also fix long longs

* riscv: replace assert with CS_ASSERT

* cmake: add CAPSTONE_DEBUG option
2019-05-23 08:25:36 +07:00
Wolfgang Schwotzer
37b8ecbb41 [M680X] Fix #1483: errors logged to stderr, using abort (2) (#1489)
- This is not suitable for an application framework
  especially for kernel code.
- All these error conditions do not occur under normal conditions.
  They only can occur if a maintainer (in the future) would make
  inappropriate changes to the M680X code base.
- Added CS_ASSERT macro which allows to use assertions when debugging
  by defining CAPSTONE_DEBUG.
- Updated compiler documenation
2019-05-20 10:22:27 +07:00
Nguyen Anh Quynh
d169f3fff5 ppc: mnemonic with dot postfix should update CR0. issue #1478 2019-05-17 11:50:11 +08:00
Nguyen Anh Quynh
afc8550d2a ppc: add missing condition registers of BDNZT. fixes issue #970 2019-05-17 11:36:55 +08:00
Nguyen Anh Quynh
cf6d808274 ppc: fix bdnzflr operand 2 missing. issue #969 2019-05-17 09:56:03 +08:00
Nguyen Anh Quynh
ea1b4537b8 arm: printAliasInstr() properly handle memory operands (similar to the last commit for ARM64 2019-05-16 21:34:39 +08:00
Nguyen Anh Quynh
94aa224272 arm64: LDR operands[1] is memory operand. fix issue #1481 2019-05-16 21:29:51 +08:00
Nguyen Anh Quynh
baf70c9755 ppc: BDZLA is absolute branch. fix issue #968 2019-05-16 11:06:24 +08:00
Nguyen Anh Quynh
41fdced346 ppc: fix TBEGIN decoder. issue #1478 2019-05-16 10:42:43 +08:00
Nguyen Anh Quynh
fe2e7eb00f arm64: fix a segfault. issue #1480 2019-05-15 21:04:13 +08:00
Ammar
9382c9ad54 x86: fix call/jmp access mode of mem operand (#1479)
sets CS_AC_READ for memory operand of call and jmp instructions
2019-05-14 23:11:32 +08:00