62 Commits

Author SHA1 Message Date
Nguyen Anh Quynh
0088d2a318 sparc: fix POPC instruction. issue reported by @zonkzonk & @pancake 2015-08-13 19:13:40 +08:00
Nguyen Anh Quynh
1182d25759 simplify ARCH_group_name() by using lookup table as suggested by @learn_more. also added the missing group name for GRP_PRIVILEGE 2015-04-27 12:13:34 +08:00
NighterMan
72ee3c9b15 sparc: Improved displacement decoding for banching instructions 2015-04-14 10:00:22 +08:00
Cr4sh
19ee2d10b3 inttypes.h fix 2015-03-29 21:16:38 +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
fcde1e190a Merge branch 'next' of https://github.com/aquynh/capstone into next 2015-03-11 10:28:49 +08:00
pancake
21b0bdd0e1 Fix indent issue 2015-03-11 00:40:14 +01:00
Nguyen Anh Quynh
a7837a4ae3 sparc, systemz, xcore: getInstruction() should return boolean instead of DecodeStatus 2015-03-10 15:20:20 +08:00
Nguyen Anh Quynh
037e01f942 core: remove unused Subregister indices for Sparc, PPC, SystemZ & Mips 2015-03-09 21:36:02 +08:00
Nguyen Anh Quynh
bb5dccedfa core: put insns[] into separate .inc files to make it easier to manage 2015-03-08 10:54:32 +08:00
Nguyen Anh Quynh
bfcaba5851 2015 2015-03-04 17:45:23 +08:00
Nguyen Anh Quynh
2f2e8e2f0b sparc: upgrade core 2015-03-04 12:13:25 +08:00
Nguyen Anh Quynh
c87ccd1b89 mips: fix bugs in the last update 2015-03-02 17:31:44 +08:00
pancake
9c10ace558 Make pkg-config and source consistent with installation 2015-02-24 05:03:04 +01:00
Nguyen Anh Quynh
273c6f4a9e arm64 & sparc: fix some warnings reported by MSVC 2015-01-13 14:33:09 +08:00
Nguyen Anh Quynh
b6f4c1da05 sparc: add missing ICC/XCC registers in operands[] for some alias instructions. bug reported by @pancake 2014-11-11 07:02:13 +08:00
Nguyen Anh Quynh
1caeee48aa sparc: absolute address for Bxx instructions. issue reported by @pancake 2014-11-10 23:38:48 +08:00
Nguyen Anh Quynh
e16813d8e8 sparc: get absolute address for CALL. issue reported by @pancake 2014-11-10 22:20:00 +08:00
Nguyen Anh Quynh
c2ea812ea7 fix cs_group_name() after the change on generic group ids 2014-10-31 15:36:19 +08:00
Nguyen Anh Quynh
d7e42b7d36 rename all the constants marking ending from _MAX to _ENDING. this also updates Java/Python/Ocaml bindings accordingly 2014-09-29 17:15:25 +08:00
Yegor Derevenets
ced9d24e35 Workaround missing <inttypes.h> on MSVC 2010 2014-09-21 17:27:11 +02:00
Nguyen Anh Quynh
1738a3e6bf sparc: handle some alias instructions & more details for some special instructions. update Python & Java bindings accordingly with new instructions & registers 2014-09-17 00:01:04 +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
Nguyen Anh Quynh
4c95022c74 fix warnings on unused variables when compiling in Diet mode 2014-08-27 18:33:38 +08:00
Mr. eXoDia
9be1f93f88 fixed warnings in MSVC x64 compilation 2014-08-26 23:51:12 +08:00
Nguyen Anh Quynh
4b6b15fcb1 fix more MSVC warnings 2014-08-26 15:57:04 +08:00
Nguyen Anh Quynh
14b684e07d last commit missed a check 2014-08-25 23:45:52 +08:00
Nguyen Anh Quynh
b1e87e3e31 arm, mips, ppc, spac, x86: printAliasInstr() should handle \t (besides space) as separate char between mnemonic & operands 2014-08-25 23:27:33 +08:00
Nguyen Anh Quynh
a726402513 sparc: update core. this added/removed some instructions & groups. updated Python & Java bindings accordingly 2014-08-15 18:29:17 +08:00
Nguyen Anh Quynh
159ddbd99f ppc: add new groups to group_name_maps[] 2014-08-15 16:35:12 +08:00
Nguyen Anh Quynh
5d8067822b Merge branch 'next' of https://github.com/flyingsymbols/capstone into arm 2014-07-31 15:36:13 +08:00
flyingsymbols
298d413bbc * added a test file to suite for testing invalid and valid instruction sequences
* fixed and added a test for a thumb-2 invalid sequence that was incorrectly allowed before these changes (pop.w with sp argument included)
* fixed and added a test for a blx from thumb to ARM that had its immediate argument incorrect (misaligned)

* eliminated some warnings by explicitly casting so I could turn on
  treat warnings as errors locally

General notes:
*  probably worth turning on treat all warnings as errors in the msvc project files, had a subtle bug that resulted from a missing declaration causing differences in dll and static compilation modes

( code was working incorrectly in dll form because of missing declaration in arch/ARM/ARMMapping.h for new function ARM_blx_to_arm_mode. Something about the linking was confusing ld when making the dll, and the resulting offsets were wonky (e.g. the added ble test would show up as #0x1fc instead of #0x1fe like it should have )

* the invalid pop was being treated as a soft fail which then gets coerced
  to a success because it is != MCDisassembler_Fail in Thumb_getInstruction
  what are the semantics of a soft fail? Maybe we should be able to set up
  whether or not we want a soft fail to be a real fail in the csh struct?
2014-07-15 04:33:40 -04:00
Nguyen Anh Quynh
55cd996add sparc: initialize detail->sparc in Sparc_getInstruction. bug reported by Ben Nagy 2014-07-09 13:08:17 +08:00
Nguyen Anh Quynh
e1fc8a83ba sparc: initialize detail->sparc in Sparc_getInstruction. bug reported by Ben Nagy 2014-07-09 13:07:45 +08:00
Nguyen Anh Quynh
650f96ce43 add new API cs_group_name() to return group name in string, given the group id 2014-07-08 08:59:27 +08:00
Nguyen Anh Quynh
cae09bf543 replace offset_of with offsetof from stddef.h 2014-06-17 14:58:39 +08:00
Nguyen Anh Quynh
3d3b6cec01 sparc: use CreateImm0() & CreateReg0() to create MCOperand* to avoid using malloc/free 2014-06-16 12:57:02 +08:00
Nguyen Anh Quynh
9b91de0ae3 sparc: use SStream_concat0() instead of SStream_concat() for simple string processing whenever possible 2014-06-16 12:51:07 +08:00
Nguyen Anh Quynh
69582d71ae initialize cs_insn.detail by properly zero-out right members for each arch 2014-06-09 17:50:01 +07:00
Nguyen Anh Quynh
29fd0f6405 fix all the code in other non-X86 archs after the change made by commit 5329a6ffd485ce4b06305c1b104df5a0adab57e6 2014-06-09 08:00:18 +07:00
Nguyen Anh Quynh
04f2ec6d0f cleanup redundant headers included 2014-05-27 10:39:04 +08:00
Nguyen Anh Quynh
5d6383e335 sparc: SPARC_CC_ICC_N should not have the same value as SPARC_CC_INVALID. bug reported by Jason Oster 2014-05-25 13:48:06 +08:00
Nguyen Anh Quynh
6456481508 x86: add immediate operand (1) for SHL/SHR/ROR/ROL/SAR/SAL in detail mode & Intel syntax 2014-05-19 16:46:31 +08:00
Nguyen Anh Quynh
c5cad6cab3 avoid using stdbool.h to support compilers without C99 support 2014-05-15 21:40:24 +08:00
Nguyen Anh Quynh
8598a219f3 enable arch code from source with CAPSTONE_HAS_* for MSVC to pick up 2014-05-14 11:26:41 +08:00
Nguyen Anh Quynh
805fed5162 make checkDecoderPredicate() handle boolean casting for MSVC 2014-05-12 21:29:04 +08:00
Nguyen Anh Quynh
043702e9ef more fixes for warnings reported by MSVC 2014-05-12 16:17:00 +08:00
Nguyen Anh Quynh
6893ec535e more warnings fixed reported by MSVC 2014-05-12 15:36:38 +08:00
Nguyen Anh Quynh
abffe02a46 sparc: recover autogen code in arch/Sparc/SparcGenDisassemblerTables.inc 2014-05-12 13:48:22 +08:00
Nguyen Anh Quynh
bb0744df5d do not initialize some local vars unnecessarily. this problem was introduced when we fixed C89 issues for MSVC 2014-05-12 13:41:49 +08:00