Commit Graph

101 Commits

Author SHA1 Message Date
Nguyen Anh Quynh 1016d3214d x86: only eliminate REX prefixes if next byte is not a legacy prefix 2014-12-13 10:27:56 +08:00
Nguyen Anh Quynh 1cbc222626 x86: eliminate redundant REX prefixes in front of x86_64 instruction. bug reported by Aurélien Wailly 2014-12-13 01:41:49 +08:00
Nguyen Anh Quynh c2925e9034 x86: accept more than one REX prefix for x86_64. bug reported by Aurélien Wailly. thanks Ange Albertini for help 2014-12-12 18:31:31 +08:00
Nguyen Anh Quynh 4e20e8e24d x86: 0x66 & 0x67 cannot be anywhere. this fixes CRC32 instruction 2014-11-10 07:43:49 +08:00
Nguyen Anh Quynh 19c63bcf1f x86: hacky temporarily fix for FEMMS instruction (3DNow). bug reported by Ben Nagy 2014-11-07 12:29:50 +08:00
Nguyen Anh Quynh c96f1b06b2 x86: fix Out-of-bounds read error in is16BitEquivalent(). issue reported by Coverity 2014-10-01 14:35:29 +08:00
Nguyen Anh Quynh 72bbcacb88 x86: temporarily solve conflicts caused by the last merge 2014-09-15 14:17:49 +08:00
Nguyen Anh Quynh c44acedc79 x86: properly zero-out x86.operands[] 2014-08-27 10:38:40 +08:00
obs 2725a3fea8 X86GenInstrInfo size reduction 2014-08-19 20:12:39 +02:00
Nguyen Anh Quynh 0b690387b3 x86: update core with upstream. this added bunch of new instructions & groups. also updated Python & Java bindings after the core change 2014-08-13 13:01:50 +08:00
Nguyen Anh Quynh af6db2afe8 x86: handle RIP relative addressing in 64bit mode properly. bug reported by @hlide 2014-06-30 02:01:04 +08:00
Nguyen Anh Quynh f1ec52628e x86: provide size for X86_OP_IMM operand. thank Gabriel Quadros for some suggestions 2014-06-25 22:03:18 +08:00
Nguyen Anh Quynh eb2f3fb85a x86: properly reset prefixPresent for prefix0/1 group 2014-06-20 11:15:58 +08:00
Nguyen Anh Quynh 9cf88119fb x86: InternalInstruction@xAcquireRelease should be initialized to 0 (FALSE) 2014-06-16 18:32:34 +08:00
Nguyen Anh Quynh 22a5a761d8 x86: simplify byteReader_t 2014-06-07 23:41:20 +08:00
Nguyen Anh Quynh 5474d877b0 x86: optimize struct InternalInstruction for memset(). this improve performance by around 4% 2014-06-07 12:56:44 +08:00
Nguyen Anh Quynh e70a043a04 x86: more simplification for better performance 2014-06-05 10:52:43 +08:00
Nguyen Anh Quynh 46b6693d36 x86: save prefixes to avoid expensive copying loop. based on idea of Dang Hoang Vu 2014-06-04 19:04:46 +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 638835a1d5 fix some warnings reported by MSVC 2014-05-12 15:15:32 +08:00
Nguyen Anh Quynh e68ee701c4 x86: simplify code handling LOCK/REP by remembering this prefix status when decoding it 2014-05-07 13:57:09 +08:00
Nguyen Anh Quynh 5c7f0c3e0d x86: REP & REPNE are mutually exclusive prefixes 2014-05-07 10:06:24 +08:00
Nguyen Anh Quynh a5ffdc3a80 x86: properly handle LOCK/REP in the core, so remove buch of hacks 2014-05-07 08:25:24 +08:00
Nguyen Anh Quynh e106f701ef x86: only handle 3DNow instructions when X86_REDUCE mode is disable 2014-05-06 17:09:21 +08:00
Nguyen Anh Quynh 13d8c6f205 x86: support 3DNow instructions 2014-05-06 15:02:21 +08:00
Nguyen Anh Quynh ca057fa8f6 x86: identation 2014-04-30 14:26:10 +08:00
Nguyen Anh Quynh 2c5e3e5833 x86: allow 0x66 & 0x67 prefixes to be put anywhere in front of an instruction 2014-04-28 15:46:52 +08:00
Nguyen Anh Quynh 1b4864ac46 x86: fix comments on MOVcr, MOVdr, MOVrc, MOVrd 2014-04-25 13:44:31 +08:00
Nguyen Anh Quynh 7437a41bfa x86: minor fixes for comments on MOV32cr etc: this is related to 64bit code as well 2014-04-25 10:51:37 +08:00
Nguyen Anh Quynh fe94c2b270 x86: BOUND opcode is reused by EVEX instruction set, so must be handled properly 2014-04-25 10:47:50 +08:00
Nguyen Anh Quynh 96bda4f8b4 x86: MOV32cr & co. work for x64, not only x86. thank Joxean Koret for the help to verify this. 2014-04-24 23:03:26 +08:00
Nguyen Anh Quynh 0902bf2a25 x86: handle MOV32cr, MOV32dr, MOV32rc, MOV32rd 2014-04-24 22:46:25 +08:00
Nguyen Anh Quynh 59b5489d8e x86: rename X86_COMPACT to X86_REDUCE. suggested by Pancake 2014-03-27 10:54:44 +08:00
Nguyen Anh Quynh 9518148e6f add X86_COMPACT option. also add CS_SUPPORT_X86_COMPACT. made Python support this change 2014-03-25 23:20:41 +08:00
Nguyen Anh Quynh fa814fe479 x86: flag short instruction with missing SIB byte as broken one. ported from upstream. bug reported by @longledinh 2014-03-20 14:14:27 +08:00
Nguyen Anh Quynh 079e0430b6 x86: bug fixes for some instructions, including AVX 2014-02-25 14:43:30 +08:00
Nguyen Anh Quynh 143759d9ab x86: update core 2014-02-24 23:30:45 +08:00
Nguyen Anh Quynh 0b6daad5ad x86: avoid duplicating slot 0 of Opcode tables with emptyTable 2014-02-22 09:31:52 +08:00
Nguyen Anh Quynh f6060b8f70 x86: compress Opcode tables to make data size 3 times smaller. this is without performance sacrifice by using some extra index tables 2014-02-22 04:57:38 +08:00
Nguyen Anh Quynh b24692cfcc x86: add some debug code to find out size of some Opcode tables 2014-02-20 23:41:17 +08:00
Nguyen Anh Quynh a86a1279ff Merge branch 'msvc0' into next1 2014-02-17 23:11:58 +08:00
Nguyen Anh Quynh 13f40d26a2 x86: upgrade core 2014-02-07 22:06:33 +08:00
Nguyen Anh Quynh a82a0890a6 more more fixes on C coding style 2014-01-23 23:42:40 +08:00
Alex Ionescu 46018db884 Initial set of changes to support building with MSVC 2013. Right now there's a bunch fo assumptions in the .vcxproj file and some things are not as clean as they should be, but it does build a full build and works (at least the x86 side). The point of this initial checkpoint is to make sure that nothing breaks on the GCC side, that everyone is ok with the changes to the source (or if better fixes/typing can be done). 2014-01-22 09:45:00 -08:00
Nguyen Anh Quynh edeeb04a1a make vsnprintf() user-defined function pointer, which is passed in via the same CS_OPT_MEM option like malloc/calloc etc 2014-01-15 20:44:03 +08:00
Nguyen Anh Quynh bed90914e2 x86: calculate op_size properly in special cases regarding rax, eax, ax, al registers 2013-12-13 18:28:38 +08:00
Nguyen Anh Quynh 70bab7e61d x86: cleaner fix for 16bit instruction with data override 'reverse' 2013-12-13 01:23:49 +08:00
Nguyen Anh Quynh 04da0090a7 x86: quick hack to fix 16bit issue with data override 'reverse'. this might fix bunch of bugs reported by Joxean & Pancake 2013-12-13 01:11:48 +08:00
Nguyen Anh Quynh 9fa7a6e326 x86: dirty fix for relative call for 16bit mode. need to be properly fixed in future. bug reported by Joxean and Pancake 2013-12-12 11:02:50 +08:00
Nguyen Anh Quynh 36d143b6d0 x86: update core engine 2013-12-01 00:05:22 +08:00
Nguyen Anh Quynh 26ee41aa67 initial import 2013-11-27 12:11:31 +08:00