Commit Graph

214 Commits

Author SHA1 Message Date
Wolfgang Schwotzer e8d1f1d4d2 M680X: Target ready for pull request (#1034)
* Added new M680X target. Supports M6800/1/2/3/9, HD6301

* M680X: Reformat for coding guide lines. Set alphabetical order in HACK.TXT

* M680X: Prepare for python binding. Move cs_m680x, m680x_insn to m680x_info. Chec
> k cpu type, no default.

* M680X: Add python bindings. Added python tests.

* M680X: Added cpu types to usage message.

* cstool: Avoid segfault for invalid <arch+mode>.

* Make test_m680x.c/test_m680x.py output comparable (diff params: -bu). Keep xprint.py untouched.

* M680X: Update CMake/make for m680x support. Update .gitignore.

* M680X: Reduce compiler warnings.

* M680X: Reduce compiler warnings.

* M680X: Reduce compiler warnings.

* M680X: Make test_m680x.c/test_m680x.py output comparable (diff params: -bu).

* M680X: Add ocaml bindings and tests.

* M680X: Add java bindings and tests.

* M680X: Added tests for all indexed addressing modes. C/Python/Ocaml

* M680X: Naming, use page1 for PAGE1 instructions (without prefix).

* M680X: Naming, use page1 for PAGE1 instructions (without prefix).

* M680X: Used M680X_FIRST_OP_IN_MNEM in tests C/python/java/ocaml.

* M680X: Added access property to cs_m680x_op.

* M680X: Added operand size.

* M680X: Remove compiler warnings.

* M680X: Added READ/WRITE access property per operator.

* M680X: Make reg_inherent_hdlr independent of CPU type.

* M680X: Add HD6309 support + bug fixes

* M680X: Remove errors and warning.

* M680X: Add Bcc/LBcc to group BRAREL (relative branch).

* M680X: Add group JUMP to BVS/BVC/LBVS/LBVC. Remove BRAREL from BRN/LBRN.

* M680X: Remove LBRN from group BRAREL.

* M680X: Refactored cpu_type initialization for better readability.

* M680X: Add two operands for insn having two reg. in mnemonic. e.g. ABX.

* M680X: Remove typo in cstool.c

* M680X: Some format improvements in changed_regs.

* M680X: Remove insn id string list from tests (C/python/java/ocaml).

* M680X: SEXW, set access of reg. D to WRITE.

* M680X: Sort changed_regs in increasing m680x_insn order.

* M680X: Add M68HC11 support + Reduced from two to one INDEXED operand.

* M680X: cstool, also write '(in mnemonic)' for second reg. operand.

* M680X: Add BRN/LBRN to group JUMP and BRAREL.

* M680X: For Bcc/LBcc/BRSET/BRCLR set reg. CC to read access.

* M680X: Correctly print negative immediate values with option CS_OPT_UNSIGNED.

* M680X: Rename some instruction handlers.

* M680X: Add M68HC05 support.

* M680X: Dont print prefix '<' for direct addr. mode.

* M680X: Add M68HC08 support + resorted tables + bug fixes.

* M680X: Add Freescale HCS08 support.

* M680X: Changed group names, avoid spaces.

* M680X: Refactoring, rename addessing mode handlers.

* M680X: indexed addr. mode, changed pre/post inc-/decrement representation.

* M680X: Rename some M6809/HD6309 specific functions.

* M680X: Add CPU12 (68HC12/HCS12) support.

* M680X: Correctly display illegal instruction as FCB .

* M680X: bugfix: BRA/BRN/BSR/LBRA/LBRN/LBSR does not read CC reg.

* M680X: bugfix: Correctly check for sufficient code size for M6809 indexed addressing.

* M680X: Better support for changing insn id within handler for addessing mode.

* M680X: Remove warnings.

* M680X: In set_changed_regs_read_write_counts use own access_mode.

* M680X: Split cpu specific tables into separate *.inc files.

* M680X: Remove warnings.

* M680X: Removed address_mode. Addressing mode is available in operand.type

* M680X: Bugfix: BSET/BCLR/BRSET/BRCLR correct read/modify CC reg.

* M680X: Remove register TMP1. It is first visible in CPU12X.

* M680X: Performance improvement + bug fixes.

* M680X: Performance improvement, make cpu_tables const static.

* M680X: Simplify operand decoding by using two handlers.

* M680X: Replace M680X_OP_INDEX by M680X_OP_CONSTANT + bugfix in java/python/ocaml bindings.

* M680X: Format with astyle.

* M680X: Update documentation.

* M680X: Corrected author for m680x specific files.

* M680X: Make max. number of architectures single source.
2017-10-21 21:44:36 +08:00
vit9696 1c0f3d887c Merge #929 with some changes to get things compile (#930) 2017-05-25 16:01:48 +08:00
Fotis Loukos 3247c00622 Minor fixes for the M68K port. 2017-04-14 17:00:40 +03:00
Fotis Loukos ae6f2d1411 Added support for the TMS320C64x architecture. 2017-04-14 17:00:40 +03:00
Nguyen Anh Quynh c17b1539c5 Update cs.c
remove a dead code, suggested by @vit9696 on #867
2017-03-08 20:59:16 +08:00
Satoshi Tanda c7b00b3756 suppress MSVC code analysis (PREfast) warnings
Signed-off-by: Satoshi Tanda <tanda.sat@gmail.com>
2016-09-28 07:33:39 -07:00
Nguyen Anh Quynh fae35cedac x86: properly handle SSE/AVX instructions 2016-07-15 20:37:19 +08:00
tandasat 7b2f93068d port #684 to the next branch 2016-05-16 20:32:36 -07:00
tandasat e36384e224 Merge remote-tracking branch 'upstream/next' into next 2016-05-11 22:52:34 -07:00
tandasat d4ef430b33 port Windows driver support 2016-05-11 21:48:32 -07:00
tandasat f29ee89489 fix #673 2016-05-07 08:44:04 +08:00
Nguyen Anh Quynh 5e8948bef6 arm: only reset IT block for ARM 2016-04-27 14:47:28 +08:00
Nguyen Anh Quynh c1d2f1eeda arm: reset IT block before cs_disasm(). this fixes issue #643 2016-04-27 14:43:10 +08:00
Koutheir Attouchi 77cc684bc0 "vsnprintf()" is unsupported on Windows CE. The closest match is "_vsnprintf()". 2016-04-12 09:25:37 +02:00
Nguyen Anh Quynh a23f9d37ed add CS_OPT_UNSIGNED option to print immediate in unsigned form. only ARM is supported for now (issue #585) 2016-03-14 13:52:23 +08:00
Pb a21cc8c919 Fix instruction cache size define 2015-11-10 22:43:51 +01:00
Nguyen Anh Quynh 197e457a0b code style 2015-11-10 22:56:53 +08:00
Pb 2769c772ce Correct build settings for xnu kext. Changed calloc name to avoid potential conflicts 2015-11-06 14:44:55 +01:00
Pb 86ad3d6a67 Support of xnu memory allocator 2015-11-05 18:08:25 +01:00
Tyler J. Stachecki d07a21b255 Kill a shadowed declaration of a local variable.
The variable tmp was already defined in the frame.
Redefining it makes some code linters grumpy.

Signed-off-by: Tyler J. Stachecki <tstache1@binghamton.edu>
2015-10-24 18:51:33 +08:00
Daniel Collin 2ee675c10a This adds M68K support to Capstone 2015-10-02 20:47:00 +02:00
Nguyen Anh Quynh 8aba4cd913 add error code CS_ERR_X86_MASM 2015-08-09 10:52:18 -07:00
Nguyen Anh Quynh 0b96545f66 new option CS_OPT_MNEMONIC to customize instruction mnemonic 2015-04-26 22:54:41 +08:00
reverser 160e198584 Add support to embed Capstone 3.x branch into OS X kernel extensions. 2015-04-09 18:28:19 +01:00
Nguyen Anh Quynh 58eb07355e x86: avoid duplicating registers returned by cs_regs_access(). also add *CX registers to regs_read[], regs_write[] for REP* instructions 2015-04-02 15:18:33 +08:00
Nguyen Anh Quynh efffe787d1 Add new API and start to provide access information for instruction operands
- New API cs_regs_access() that provide registers being read & modified by instruction

- New field cs_x86_op.access provides access info (READ, WRITE) for each operand

- New field cs_x86.eflags provides EFLAGS affected by instruction

- Extend cs_detail.{regs_read, regs_write} from uint8_t to uint16_t type
2015-03-25 15:02:13 +08:00
Nguyen Anh Quynh bfcaba5851 2015 2015-03-04 17:45:23 +08:00
Félix Cloutier 3973d8b11e Silencing Clang warning bys casting values
Warnings were: "Implicit conversion loses integer precision: 'size_t' to 'cs_mode'/'cs_opt_value'"
2015-03-04 11:26:27 +08:00
pancake 9c10ace558 Make pkg-config and source consistent with installation 2015-02-24 05:03:04 +01:00
Nguyen Anh Quynh 611b0c5c22 code style 2014-12-15 11:22:46 +08:00
Edward Williamson f1e497502c check malloc return value 2014-12-14 20:45:19 -05:00
Nguyen Anh Quynh ff7bba3d6d x86: print out immediate as positive number for logic arithmetic operations: AND, OR, XOR. only works for x86 Intel syntax so far. issue reported by Pancake 2014-11-03 16:32:06 +08:00
Nguyen Anh Quynh 6c0dd63fe7 fix an overflow bug in fill_insn() 2014-10-30 20:34:22 +08:00
flyingsymbols d91f964d40 * Fixed bug in Thumb2 pop caused by me incorrectly assuming that
ARM_SP == 13, ARM_LR == 14, and ARM_PC == 15, which is not the case
* updated CMakeLists to include building arm regression test
* added explicit casts for 64 bit visual studio 2012 build to get around
  truncation warnings from size_t conversion
2014-10-23 12:04:23 -04:00
Nguyen Anh Quynh 9090672e97 clean cs_disasm_iter() 2014-10-12 20:24:33 +08:00
Nguyen Anh Quynh 29ce6c3517 cs_disasm_iter: return false when handle is invalid and do not zero out detail pointer when handling skipdata mode. suggested by @hlide 2014-10-12 15:28:34 +08:00
Nguyen Anh Quynh 0a2eca7c6c modify API cs_disasm_iter() and add new API cs_malloc(). also adds sample code test_iter.c 2014-10-11 00:36:16 +08:00
hlide 993f362ad8 New API: cs_disasm_iter 2014-10-05 18:14:40 +02:00
Nguyen Anh Quynh 4d3ccf46fd simplify the way to calculate insn_cache in cs_disasm(). suggested by @hlide 2014-10-03 00:39:56 +08:00
danghvu 2fb7c8e46a Fix a bug with previous patch 2014-10-02 07:38:53 -05:00
Nguyen Anh Quynh f9d8a89c24 correct some comments in cs_disasm() 2014-10-02 12:37:32 +08:00
danghvu 0d1aad1e9f Increase cache size by golden ratio 2014-10-01 23:17:52 -05:00
Nguyen Anh Quynh 27a4a08bb2 fix a double-free bug introduced by the last change in cs_disasm() 2014-10-02 10:31:37 +08:00
Nguyen Anh Quynh ea3c089591 some simple optimizations for speed. this improves performance about 5% 2014-10-02 10:17:55 +08:00
Nguyen Anh Quynh 16f330c37a cs_disasm(): properly resize the cache when count in range [2, INSN_CACHE_SIZE] 2014-10-02 10:09:59 +08:00
Nguyen Anh Quynh 523ca99087 cs_disasm(): make sure cache_size is smaller than INSN_CACHE_SIZE to avoid integer overflow in malloc() 2014-10-01 10:46:37 +08:00
Nguyen Anh Quynh 50eeba2a86 avoid setting instruction cache size to @count when Capstone uses user-customized memory management, which might fail in resource scarce env such as kernel 2014-09-30 13:28:02 +08:00
Nguyen Anh Quynh ac98ca0129 set buffer size for instruction cache in cs_disasm() to @count if @count > 0. this avoids realloc() in cases where @count is pre-determined. thanks Dang Hoang Vu for the idea 2014-09-30 13:17:36 +08:00
Nguyen Anh Quynh 0beb0d494b api: get back the old API cs_disasm() & mark cs_disasm_ex() deprecated. cs_disasm_ex() will be removed in the future 2014-08-27 22:55:29 +08:00
Nguyen Anh Quynh 0c07cc9b06 zero-out instruction details, mnemonic & op_str so cs_insn doesnt have garbage in Diet mode 2014-08-27 22:31:54 +08:00