Nguyen Anh Quynh
b2e566ac88
xcore: use strcpy() rather than strncpy()
2014-05-28 11:35:19 +08:00
Nguyen Anh Quynh
2a33afe6e8
msvc: make MSVC shutup on strncpy()
2014-05-28 00:24:33 +08:00
Nguyen Anh Quynh
dc1af545c0
msvc: fix warnings
2014-05-28 00:14:22 +08:00
Nguyen Anh Quynh
be2b788dc1
xcore: handle details for some special tricky instructions
2014-05-27 23:34:03 +08:00
Nguyen Anh Quynh
f721e3124d
Disassembler -> Disassembly
2014-05-27 10:45:58 +08:00
Nguyen Anh Quynh
8f50ba894c
Merge branch 'next' into xcore
2014-05-27 10:39:11 +08:00
Nguyen Anh Quynh
04f2ec6d0f
cleanup redundant headers included
2014-05-27 10:39:04 +08:00
Nguyen Anh Quynh
2cf9c524da
x86: MOV64rr belongs to GRP_MODE64 group. bug reported by Jason Oster
2014-05-27 07:23:53 +08:00
Nguyen Anh Quynh
553bb488d7
python: support XCore
2014-05-26 23:47:45 +08:00
Nguyen Anh Quynh
c80d840ffc
add XCore architecture
2014-05-26 23:02:48 +08:00
Nguyen Anh Quynh
3dc080c2b6
systemz: cleanup SystemZGenDisassemblerTables.inc
2014-05-26 15:54:16 +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
Jason Oster
6380446222
Add r0l
register to SystemZMapping.c
2014-05-24 21:26:12 -07:00
Nguyen Anh Quynh
4ebd062ee3
x86: cleanup unused code
2014-05-22 12:11:35 +08:00
Nguyen Anh Quynh
fed098f9a7
x86: eliminate irrelevant prefixes in x86.prefix[] - such as f2/f3 prefixed irrelevant instructions
2014-05-22 12:10:21 +08:00
Nguyen Anh Quynh
1e93adf5c3
x86: add CL operand into details for 'SHL *, CL' instruction
2014-05-21 17:10:10 +08:00
Nguyen Anh Quynh
7a65ad7e4b
x86: detail operands for 'fstpnce st(0), st(0)' & 'fstpst(7), st(0)'
2014-05-21 16:18:56 +08:00
Nguyen Anh Quynh
b6e3f01bb8
x86: handle REP MOVSD/CMPSD/SCASD/LODSD/STOSD properly (due to confused 128bit media instructions having the same mnemonics)
2014-05-21 15:11:58 +08:00
Nguyen Anh Quynh
3a86d92e7c
x86: correct instructions related to REP prefix
2014-05-21 14:12:24 +08:00
Nguyen Anh Quynh
1d6f7ee50e
x86: prefix REP/REPNE are only relevant for MOVS/CMPS/SCAS/LDOS/STOS/INS/OUTS instructions
2014-05-21 12:38:10 +08:00
Jason Oster
984ed7e9e8
MIPS: Add HI, LO, and PC registers to MipsMapping.c
...
- Using MIPS_REG_HI, MIPS_REG_LO, and MIPS_REG_PC with cs_reg_name() caused out-of-bounds reads
2014-05-19 22:56:19 -07: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
f338657f17
x86: set syntax variable when changing syntax with cs_option()
2014-05-19 16:34:54 +08:00
Nguyen Anh Quynh
1922b2f74b
arm64: clean reg_name_maps[]
2014-05-18 10:30:09 +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
1d2e69b869
msvc: remove headers/ directory & replace it with include/platform.h
2014-05-15 13:56:54 +08:00
Nguyen Anh Quynh
7bab8dc12e
x86: AT&T syntax is irrelevant in Diet mode, so setting this syntax should return CS_ERR_DIET error
2014-05-14 23:48:17 +08:00
Nguyen Anh Quynh
f7850266d5
x86: enable AT&T code only when DIET mode is off
2014-05-14 22:03:06 +08:00
Nguyen Anh Quynh
0ffd811d67
merge next branch
2014-05-14 14:33:03 +08:00
Nguyen Anh Quynh
b2a88df20f
MSVC added some code picked up by MingW, so cross-win32/74 compile is broken. this fixes the issue
2014-05-14 14:28:40 +08:00
Nguyen Anh Quynh
506890863c
x86: assembly syntax is irrelevant in Diet mode. this optimization reduces library size to only 180KB on OSX
2014-05-14 12:26:53 +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
eb2e840887
x86: fix C89 issues for X86GenAsmWriter1_reduce.inc & X86GenAsmWriter_reduce.inc
2014-05-12 21:53:53 +08:00
Nguyen Anh Quynh
cfcace3f43
arm: make checkDecoderPredicate() handle boolean casting for MSVC (redone in more systematic way for autogen code)
2014-05-12 21:38:05 +08:00
Nguyen Anh Quynh
805fed5162
make checkDecoderPredicate() handle boolean casting for MSVC
2014-05-12 21:29:04 +08:00
Nguyen Anh Quynh
ef3e450f1a
arm: checkDecoderPredicate() needs to handle Bool data type in the way that MSVC can understand
2014-05-12 18:15:18 +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
638835a1d5
fix some warnings reported by MSVC
2014-05-12 15:15:32 +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
Nguyen Anh Quynh
2d34251889
x86: handle 16bit segment bound for JMP. bug reported by Pancake & Anton Kochkov
2014-05-11 15:33:11 +08:00
Nguyen Anh Quynh
0596e11bd5
arm64: fix a wrong int type of a local var in printLabelOperand. this bug was introduced when we fixed C89 issue for MSVC
2014-05-10 09:17:48 +08:00
Axel 0vercl0k Souchet
35c8467275
still want that to compile on other systems
2014-05-09 20:51:02 +01:00
Axel 0vercl0k Souchet
605faf1db9
moved the hardcoded macros in the vcproj & just disable the warning for the crt
2014-05-09 20:40:00 +01:00
Nguyen Anh Quynh
b5e7db57ee
Merge branch 'next' into msvc2
2014-05-09 17:38:31 +08:00
Nguyen Anh Quynh
d27b0155ef
arm: add BLX_pred into the list of relative branch instructions
2014-05-09 17:34:54 +08:00
Nguyen Anh Quynh
bc80b3dc24
arm: fix some more Thumb relative branch instructions. bug reported by Giovanni Nanomad Condello
2014-05-09 17:31:41 +08:00
Nguyen Anh Quynh
42706a39e2
indentation with tab
2014-05-09 07:33:35 +08:00
Nguyen Anh Quynh
336bf29230
Merge branch 'next' of https://github.com/0vercl0k/capstone into msvc2
2014-05-09 07:10:47 +08:00
Nguyen Anh Quynh
d43187d4f9
arm: BLXi is another relative branch instruction to be fixed. bug reported by Giovanni Nanomad Condello
2014-05-09 07:02:51 +08:00
Axel 0vercl0k Souchet
779d4c75d9
first changes to get a successfully compiled version of capstone on VS2012
2014-05-08 23:44:49 +01:00
Nguyen Anh Quynh
49a1cb374c
arm: fix another relative jump issue. bug reported by Giovanni Nanomad Condello
2014-05-08 23:42:06 +08:00
Nguyen Anh Quynh
958927eb56
clean up after the last removal of SubtargetFeature.h
2014-05-08 22:59:28 +08:00
Nguyen Anh Quynh
79e1dcb5f1
arm: update target branch having relative offset. issue reported by Giovanni Condello
2014-05-07 14:12:50 +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
16837f8431
x86: MULPD instruction is unavailable in X86_REDUCE mode
2014-05-07 12:34:27 +08:00
Nguyen Anh Quynh
288d6b3c8a
x86: properly handle lock/rep prefixes when DIET option is enable
2014-05-07 12:26:55 +08:00
Nguyen Anh Quynh
9bcca47a98
x86: avoid duplicating code when handling prefixes in X86_getInstruction()
2014-05-07 11:45:02 +08:00
Nguyen Anh Quynh
45c77aeadd
x86: handle tricky instructions related to MULPD at http://habrahabr.ru/company/intel/blog/200658/
2014-05-07 11:39:41 +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
57e784b865
x86: cleanup unused opcode tables for X86_REDUCE
2014-05-06 12:22:42 +08:00
Giovanni Condello
7c78778cfc
Make capstone library compile with arm-none-eabi-gcc 4.8
2014-05-02 20:15:53 +02:00
Nguyen Anh Quynh
ca057fa8f6
x86: identation
2014-04-30 14:26:10 +08:00
Nguyen Anh Quynh
17874d084e
x86: handle NOP instruction 0f18*
2014-04-29 11:16:21 +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
2cff6f61fc
x86: handle instructions with LOCK/REP/REPNE prefix after other prefixes. bear with this until we have a better approach
2014-04-28 11:19:44 +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
e93179b851
x86: BOUND instruction uses dword & qword for boundary array, but not memory reference
2014-04-25 11:18:40 +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
2a9c0e0396
x86: fix a bug when sign-extend immediate for Ev. backport from upstream LLVM
2014-04-23 16:19:15 +08:00
Nguyen Anh Quynh
fa697076b1
x86: handle more tricky instructions.
...
- support undocumented instructions FSTP & FSTPNCE. see http://blogs.technet.com/b/mmpc/archive/2013/06/24/investigation-of-a-new-undocumented-instruction-trick.aspx
- TEST instructions with opcode 0xF6, 0xF7 (MRM1r)
2014-04-23 12:41:16 +08:00
Nguyen Anh Quynh
2ce77133f5
x86: support some tricky instructions
...
- NOP instructions with encoding 0f {19-1f}. see http://code.google.com/p/corkami/wiki/x86oddities?show=content
- TEST instructions with opcode 0xF6, 0xF7 (MRM1m)
- Fix arithmetic instructions with opcode 0x82: only available in Non64bit mode
2014-04-22 17:49:54 +08:00
Nguyen Anh Quynh
33e16362d6
x86: support 0x82 opcode for Arithmetic instructions
2014-04-20 11:32:00 +08:00
Nguyen Anh Quynh
6f56ff5663
x86: handle SAL instructions. bug reported by Attila Suszter & Ange Albertini
2014-04-16 17:29:34 +08:00
Nguyen Anh Quynh
a247dc187d
arm: print address Imm without prefix 0x for Imm >= -9
2014-04-12 00:19:42 +08:00
Nguyen Anh Quynh
9df79afc77
systemz: cleanup
2014-04-10 22:17:07 +08:00
Nguyen Anh Quynh
2579a3fae9
systemz: add a missing operand for instructions involving PCRel
2014-04-10 18:14:08 +08:00
Nguyen Anh Quynh
81a6df4d00
x86: temporarily revert a part of commit 2be9b8791a
due to some broken output
2014-04-01 07:24:33 +08:00
Nguyen Anh Quynh
40f72fde6f
arm: do not update target branch with relative offset
2014-03-31 22:07:40 +08:00
Nguyen Anh Quynh
7626808de6
Merge branch 'x86imm' into next
2014-03-29 21:38:31 +08:00
Nguyen Anh Quynh
6d3d8005aa
x86: do not print memory offset in negative form. bug reported by Le Dinh Long
2014-03-29 17:26:51 +08:00
Nguyen Anh Quynh
125f504174
x86: print offset value in memory reference instruction properly when offset is negative. bug reported by Le Dinh Long
2014-03-29 12:02:21 +08:00
Nguyen Anh Quynh
2eb37ee02a
ppc: disable some redundant functions when Diet option is enable
2014-03-28 10:38:55 +08:00
Nguyen Anh Quynh
d325b1a94b
x86: reduce mode support VMX/SVM instructions now
2014-03-27 14:44:38 +08:00
Nguyen Anh Quynh
e51cf36636
x86: do not print negative immediate. request of Le Dinh Long
2014-03-27 12:36:46 +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
a3c9bd678f
sparc: more fix to print negative numbers in more friendly way
2014-03-26 16:22:16 +08:00
Nguyen Anh Quynh
ffff756d21
arm: more fix to print negative numbers in more friendly way
2014-03-26 16:21:31 +08:00
Nguyen Anh Quynh
6211ab8e5e
arm64: fix the rest code printing out negative numbers like big decimal positive numbers
2014-03-26 11:53:00 +08:00
Nguyen Anh Quynh
6f4840270a
arm64: properly print immediate in friendly format in printSImm7ScaledOperand(). bug reported by Amanieu
2014-03-25 23:41:10 +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
6db860a246
systemz: indentation
2014-03-25 06:35:51 +08:00
pancake
d889290a02
Remove C++ dependency and fix SystemZ initialization
2014-02-04 08:11:07 +01:00
Nguyen Anh Quynh
7e92884f41
systemz: fix for details
2014-03-24 17:27:32 +08:00
Nguyen Anh Quynh
d04aad77f6
systemz: support Diet option
2014-03-24 17:26:14 +08:00
Nguyen Anh Quynh
f0ff96138e
systemz: print immediates in range [-9, 9] without 0x prefix
2014-03-24 13:41:28 +08:00
Nguyen Anh Quynh
da1e833c8c
systemz: support accesss register operand
2014-03-23 11:12:07 +08:00
Nguyen Anh Quynh
b3d000a841
fix SystemZ on Op
2014-03-23 09:15:50 +08:00
Nguyen Anh Quynh
48a14ca4ce
add SystemZ arch
2014-03-23 08:35:45 +08:00
Nguyen Anh Quynh
88b2833760
sparc: cleanup
2014-03-22 13:41:04 +08:00
Nguyen Anh Quynh
017df604dc
arm64, mips, x86: print -9, not -0x9
2014-03-20 15:38:51 +08:00
Nguyen Anh Quynh
beda293c06
arm64: print label & offset in hex format for negative numbers
2014-03-20 15:30:54 +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
f6c7cbc972
core: fix some warnings
2014-03-12 12:50:54 +08:00
Nguyen Anh Quynh
65c7a01d4f
sparc: fix warning on unused variable
2014-03-11 10:31:53 +08:00
Nguyen Anh Quynh
2ff665ad4a
arm: support asm syntax CS_OPT_SYNTAX_NOREGNAME to print out registers with numbers (ex: 'r11' rather than 'fp')
2014-03-11 00:18:50 +08:00
Nguyen Anh Quynh
641be49c2f
sparc: fix mnemnonic for some alias instructions
2014-03-10 17:57:04 +08:00
Nguyen Anh Quynh
78153f59bb
sparc: add SWAP instruction
2014-03-10 15:29:33 +08:00
Nguyen Anh Quynh
1055a2e22a
python: support Sparc
2014-03-10 14:37:08 +08:00
Nguyen Anh Quynh
05e27138ae
core: add Sparc arch
2014-03-10 11:58:57 +08:00
Nguyen Anh Quynh
cbaf913d68
arm: fix a bug in getting data from input buffer of Thumb: bail out if not enough data
2014-03-06 21:50:45 +08:00
Nguyen Anh Quynh
1514d5ca0c
ppc: cleaning up
2014-03-06 14:04:45 +08:00
Nguyen Anh Quynh
1c68ab9293
cleaning up unused code
2014-03-06 12:41:28 +08:00
Nguyen Anh Quynh
ce2ad202d2
x86: clean up X86ATTInstPrinter.c
2014-03-04 15:00:33 +08:00
Nguyen Anh Quynh
ca9a7ab30c
ppc: fix a segfault in Diet mode
2014-03-04 14:59:54 +08:00
Nguyen Anh Quynh
6b95e5ef74
arm64: fix a segfault bug in Diet engine
2014-03-04 14:23:00 +08:00
Nguyen Anh Quynh
bc22b5be83
x86: handle rep/repne mulpd case
2014-03-03 05:25:37 +08:00
Nguyen Anh Quynh
4ef1668834
arm64: remove dead code
2014-02-25 17:30:08 +08:00
Nguyen Anh Quynh
43befa06a3
arm: no longer rely on information from @groups to verify relative instructions
2014-02-25 16:26:56 +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
fc83a439e5
add diet compile option (CAPSTONE_DIET option in config.mk). This reduces binary size by around 40%
2014-02-22 23:26:27 +08:00
Nguyen Anh Quynh
1181a851b9
x86: fix a double-free bug for ATT syntax
2014-02-22 11:58:56 +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
8b915ed765
ppc: update core
2014-02-19 17:01:44 +08:00
Nguyen Anh Quynh
bc0b3b92fd
mips: update core
2014-02-19 15:13:20 +08:00
Nguyen Anh Quynh
6b804dacb1
arm: update core
2014-02-19 12:52:50 +08:00
Nguyen Anh Quynh
27b9a96fd0
x86: make printAliasInstr() return string, not id
2014-02-19 10:13:47 +08:00
Nguyen Anh Quynh
74c41ebb1d
mips: simplify handling alias insn
2014-02-18 17:57:06 +08:00
Nguyen Anh Quynh
4f93d9c9dc
arm64: simplify handling alias instruction (printAliasInstr)
2014-02-18 17:00:18 +08:00
Nguyen Anh Quynh
85cddef303
x86: optimize handling special instructions with accumulate registers
2014-02-18 11:59:36 +08:00
Nguyen Anh Quynh
005c5148a6
x86: eliminate X86_get_insn_id2()
2014-02-18 11:11:46 +08:00
Nguyen Anh Quynh
585018f831
ppc & arm: remove functions *_get_insn_id2()
2014-02-18 00:13:34 +08:00
Nguyen Anh Quynh
a86a1279ff
Merge branch 'msvc0' into next1
2014-02-17 23:11:58 +08:00
kaka22
603f7ac953
x86: fix a warning on unused variable
2014-02-12 18:11:35 +08:00
Nguyen Anh Quynh
d7c00fe5ed
x86: REP should have *CX registers as implicit registers read/written
2014-02-08 18:06:07 +08:00
Nguyen Anh Quynh
13f40d26a2
x86: upgrade core
2014-02-07 22:06:33 +08:00
Nguyen Anh Quynh
9389947d0d
x86: fix a mem leaking issue in X86_insn_combine()
2014-01-25 13:58:58 +08:00
Nguyen Anh Quynh
a82a0890a6
more more fixes on C coding style
2014-01-23 23:42:40 +08:00
Nguyen Anh Quynh
aa078a1c4a
more fixes on C coding style
2014-01-23 22:29:04 +08:00
Nguyen Anh Quynh
2e79ba8996
fix C coding style
2014-01-23 22:22:45 +08:00
Nguyen Anh Quynh
eaeee31f64
Merge branch 'msvc' into test
2014-01-23 22:10:41 +08:00
Nguyen Anh Quynh
b57c90dd23
fix some issues introduced by MSVC port
2014-01-23 21:43:08 +08:00
Alex Ionescu
b8a57fe285
Additional MSVC fixes, including to fixed tables (temporary so Quynh can see what to do).
2014-01-22 18:12:01 -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
c34959b588
x86: proper calculation for the trailing instruction in total cache. issue reported by Pancake
2014-01-22 09:47:46 +08:00
Nguyen Anh Quynh
c36ce95d4a
x86: proper calculation for the trailing instruction in total cache. issue reported by Pancake
2014-01-22 09:46:42 +08:00
Nguyen Anh Quynh
06b3c05e20
cs_open() should return error on invalid mode
2014-01-21 15:27:19 +08:00
Nguyen Anh Quynh
53fc5c103a
cs_open() should return error on invalid mode
2014-01-21 15:26:02 +08:00
Nguyen Anh Quynh
9a291bda75
x86: do not use non-standard strlcat & strlcpy
2014-01-21 14:01:23 +08:00
Nguyen Anh Quynh
b9ff3aaf19
x86: do not use non-standard strlcat & strlcpy
2014-01-21 14:00:34 +08:00
Nguyen Anh Quynh
dc8c346cf0
Merge branch 'prefix' into next
2014-01-21 11:59:51 +08:00
Nguyen Anh Quynh
7772d859af
x86: fix known issue with prefix by combining with previous prefix instruction. this is not perfect, but good enough for now
2014-01-21 11:49:25 +08:00
Nguyen Anh Quynh
3732725342
rename mapping.c, mapping.h, module.c to have arch prefix. suggested by Alex Ionescu
2014-01-20 09:52:05 +08:00
Nguyen Anh Quynh
f328f30fd9
rename mapping.c, mapping.h, module.c to have arch prefix. suggested by Alex Ionescu
2014-01-20 09:47:21 +08:00
Nguyen Anh Quynh
d68a30f4c3
x86: remove 'opaque' in the output of some instructions
2014-01-19 22:40:58 +08:00
Nguyen Anh Quynh
9dfdae6421
x86: add new instructions: FSETPM, SALC, GETSEC & INT1. bug reported by Pancake
2014-01-19 22:40:31 +08:00
Nguyen Anh Quynh
38c1322bde
x86: remove 'opaque' in the output of some instructions
2014-01-19 17:23:08 +08:00
Nguyen Anh Quynh
c272e9d000
do not use constructor to enable archs, so code is more portable. suggested by Alex Ionescu
2014-01-19 12:03:22 +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
a9ffb440f8
replace strdup() with our cs_strdup(), which call cs_mem_malloc() internally
2014-01-15 18:27:01 +08:00
Nguyen Anh Quynh
57c50d4845
ppc: replace constant subtarget numbers with macros
2014-01-15 16:48:48 +08:00
Nguyen Anh Quynh
136e2df38c
x86: some arithmetic instructions should not update accumulate registers
2014-01-15 16:35:19 +08:00
Nguyen Anh Quynh
9cc56a3322
arm: update core
2014-01-15 16:01:55 +08:00
Nguyen Anh Quynh
cbb10ba0b6
arm64: update core
2014-01-15 12:38:38 +08:00
Nguyen Anh Quynh
75ef2426ea
mips: update core
2014-01-14 23:08:20 +08:00
Nguyen Anh Quynh
9c2d02908a
x86: few more SUB insn should not affect accumulate register
2014-01-14 07:30:31 +08:00
Nguyen Anh Quynh
3d56b823ed
extend @op_str of cs_insn_flat following the core change
2014-01-14 07:22:06 +08:00
Nguyen Anh Quynh
22800aac13
x86: some ADD & SUB insn should not affect accumulate registers. bug reported by Bleh
2014-01-14 07:21:17 +08:00
Nguyen Anh Quynh
e51e227409
ppc & x86: add third dummy MRI argument to printInstruction() to make it consistent with other archs
2014-01-12 20:27:54 +08:00
Nguyen Anh Quynh
56774a158c
mips: printInstruction() is static function. add dummy third argument MRI to be consistent with other archs
2014-01-12 18:13:53 +08:00
Nguyen Anh Quynh
dcbe0f8322
arm64: find alias insn after the main isnn name mapping.
2014-01-12 10:11:36 +08:00
Nguyen Anh Quynh
dc6b9574ff
arm64: more changes to make code closer to llvm
2014-01-12 00:52:51 +08:00
Nguyen Anh Quynh
126507741c
arm64: make the code closer to llvm code
2014-01-11 23:52:11 +08:00
Nguyen Anh Quynh
a8eb7a5ca5
rename memory function pointer types to have cs_ prefix. also rename internal function pointers my_* to have cs_mem_ prefix - suggested by Pancake
2014-01-11 12:55:31 +08:00
danghvu
701b850af9
Fix: bug that static link does not know constructor
2014-01-09 11:14:40 +07:00
Nguyen Anh Quynh
77944e0dab
arm64: add big-endian support
2014-01-09 09:13:48 +08:00
Nguyen Anh Quynh
a768c9eb2c
arm: support big-endian. issue reported by Pancake
2014-01-09 09:05:27 +08:00
Nguyen Anh Quynh
f1b05083a7
x86: cleanup unused stuff
2014-01-08 14:53:09 +08:00
Nguyen Anh Quynh
9fac512efc
no longer need to free insn_cache for each arch: simply do it from cs_close()
2014-01-07 10:56:04 +08:00
Nguyen Anh Quynh
1acfd0b883
move insn_cache into cs_struct to gurantee thread-safe
2014-01-06 10:56:59 +08:00
Nguyen Anh Quynh
c7404075ff
move internal memory management declarations from utils.h to cs_priv.h
2014-01-05 11:35:47 +08:00
Nguyen Anh Quynh
24bf0d9079
add new option CS_OPT_MEM for cs_option(): this enable user-defined dynamic memory management. idea proposed by Pancake
2014-01-05 11:19:04 +08:00
Nguyen Anh Quynh
2b14fcdf9b
ppc: update ppc.bh in post-printer
2014-01-05 10:37:50 +08:00
Nguyen Anh Quynh
f1d489b949
ppc: support details information
2014-01-05 00:00:05 +08:00
Nguyen Anh Quynh
5802e5e9a0
correct the last fix
2014-01-04 10:43:31 +08:00
Nguyen Anh Quynh
5ef633ce91
arm64 & arm: do not update details when detail option is off. bug reported by Pancake.
2014-01-04 10:41:17 +08:00
Nguyen Anh Quynh
ee143c8c6c
fix a crashed bug in cs_close(): call destroy function before freeing handle's memory
2014-01-03 21:51:59 +08:00
Nguyen Anh Quynh
b265406960
cache insns for fast lookup in mapping.c. based on the idea of Dang Hoang Vu
2014-01-03 17:08:58 +08:00
Nguyen Anh Quynh
57ab21b558
rename some old header guards from SB to CS
2014-01-02 12:44:20 +08:00
Nguyen Anh Quynh
5f1f90c559
fix for the last commit, and make the test code no longer specify ppc code as 64bit
2014-01-01 23:28:05 +08:00
Nguyen Anh Quynh
5742b1b814
ppc: support for PPC32 was already in
2014-01-01 23:24:07 +08:00
Nguyen Anh Quynh
cef6b27e95
remove -x from PPC files
2013-12-31 23:36:12 +08:00
Nguyen Anh Quynh
19b0de3c8d
moving static doing_mem variable into cs_struct to guarantee thread-safe when handling memory operands
2013-12-31 22:40:04 +08:00
Nguyen Anh Quynh
4d22779f1c
add the missing include/ppc.h
2013-12-31 21:01:01 +08:00
Nguyen Anh Quynh
04ac9c3725
arm,arm64,mips,x86: rename PPC_getFeatureBits() to getFeatureBits()
2013-12-31 18:15:12 +08:00
Nguyen Anh Quynh
ec79f401b1
ppc: rename PPC_getFeatureBits() to getFeatureBits()
2013-12-31 18:00:20 +08:00
Nguyen Anh Quynh
9c5b328cdc
ppc: rename ppc_cc to ppc_bc
2013-12-30 00:52:55 +08:00
Nguyen Anh Quynh
bacf4c8156
add the missing arch/PowerPC directory
2013-12-30 00:29:32 +08:00
Nguyen Anh Quynh
42c6b1acc7
initial support for PPC
2013-12-30 00:15:25 +08:00
Nguyen Anh Quynh
ec4ead2c02
function pointers in arch_init[] should be able to report errors
2013-12-28 14:34:21 +08:00
Nguyen Anh Quynh
4fe224b1ed
change API cs_disasm_dyn(): break cs_insn into 2 structures, and put all details into new structure cs_detail. this break API compatibility
2013-12-24 16:49:36 +08:00
Nguyen Anh Quynh
2b53b20272
x86: patch in acc registers for xchg. bug reported by felixwilhelm
2013-12-24 09:09:20 +08:00
Nguyen Anh Quynh
f954f871e8
initialize all_arch in constructors
2013-12-22 18:49:22 +08:00
Nguyen Anh Quynh
d345839bce
support cs_option() for arm64 module
2013-12-22 11:10:56 +08:00
Nguyen Anh Quynh
39a42eddfb
Change the way of supporting arch modularization
...
- Always use libapstone.so as library name, no matter which archs are compiled in.
- Add new API cs_support() to check if a particular arch is supported.
- Change cs_version(): return hexical version which encodes both major & minor version.
the return value can be comparable.
- Bump API version to 1.1
2013-12-22 10:40:58 +08:00
Nguyen Anh Quynh
13a7d95763
add missing arch/*/module.c
2013-12-21 12:19:44 +08:00
Nguyen Anh Quynh
f185180436
cleaner implementation for arch modularization
2013-12-21 12:16:47 +08:00
Nguyen Anh Quynh
abc02059e3
make all module code static
2013-12-21 10:06:59 +08:00
danghvu
7711858da6
Minor fix credit
2013-12-20 01:23:17 -06:00
danghvu
29e01a6895
arch/*/include.h -> arch/*/module.h
2013-12-20 00:20:57 -06:00
danghvu
a2e7ef1b73
Fix coding style
2013-12-19 23:12:30 -06:00
danghvu
0b6ea044ff
Move cs_option dispatch into arch specific
2013-12-19 23:07:26 -06:00
danghvu
34d49d935b
Support compilation of individual arch
2013-12-19 12:10:24 -06:00
Nguyen Anh Quynh
e832bd8996
arm: support alias registers SB, SL, FP & IP
2013-12-19 16:43:32 +08:00
Nguyen Anh Quynh
2578d3b9e6
mips: use alias registers
2013-12-19 12:26:05 +08:00
Nguyen Anh Quynh
4626224a33
mips: update doing_mem status, regardless of detail option, since that is also used to avoid printing zero offset in mem reference
2013-12-15 22:05:01 +08:00
Nguyen Anh Quynh
3d5930f39e
arm: fix some int types and string specifiers
2013-12-15 21:12:19 +08:00
Nguyen Anh Quynh
d14d3973f4
coding style for C code
2013-12-15 21:11:17 +08:00
Nguyen Anh Quynh
7013f4c53d
mips: print negative immediate when it is negative
2013-12-15 18:53:32 +08:00
Nguyen Anh Quynh
1f44928d97
mips: fix for micromips
2013-12-15 14:04:59 +08:00
Nguyen Anh Quynh
ea8c5af48e
arm64: the left-over fix of the last commit
2013-12-15 00:40:29 +08:00
Nguyen Anh Quynh
748a70a50b
mips: turn off MicroMips by default
2013-12-15 00:16:32 +08:00
Nguyen Anh Quynh
4d3e852fbb
detail option: provide instruction id even when detail option is OFF
2013-12-14 10:45:09 +08:00
Nguyen Anh Quynh
a209e67f8a
support to turn on/off building instruction details
2013-12-14 00:23:41 +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
94990c9ef5
x86: print '0' rather than '-0'
2013-12-13 15:56:08 +08:00
Nguyen Anh Quynh
be90639c00
x86: properly translate immediate numbers based on their encoding. INT is the exception
2013-12-13 15:37:57 +08:00
Nguyen Anh Quynh
4fe4281f0d
x86: take care negative immediate (no prefix 0x) when print number greater than -10
2013-12-13 12:26:26 +08:00
Nguyen Anh Quynh
a4c16a6fd5
mips: print immediate under 10 without prefix 0x
2013-12-13 12:05:40 +08:00
Nguyen Anh Quynh
f22557ba88
x86: print immediate without prefix 0x if the number is under 10
2013-12-13 09:37:52 +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
1f24586535
arm64: turn off debug output
2013-12-12 16:00:58 +08:00
Nguyen Anh Quynh
a01d1546d6
x86: handle outs instruction in 16bit mode
2013-12-12 15:54:30 +08:00
Nguyen Anh Quynh
4d85f29e08
x86: properly output insb/insd instruction with the right mode. bug reported by Pancake
2013-12-12 14:56:15 +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
c961464af3
Merge branch 'const-strings' of https://github.com/radare/capstone into const
2013-12-12 06:11:06 +08:00
Nguyen Anh Quynh
b385284a8f
arm64: friendly display immediates under 10 without prefix 0x
2013-12-12 05:47:06 +08:00
pancake
f0e4eed89d
Use const on all read-only buffers
2013-12-11 22:14:42 +01:00
Nguyen Anh Quynh
fff0abb629
arm64: clean up
2013-12-11 23:24:08 +08:00
Nguyen Anh Quynh
ad89d25d05
mips: optimize Mips_map_register() to O(1). suggested by Pancake
2013-12-11 23:20:34 +08:00
Nguyen Anh Quynh
2b4258997f
arm64: avoiding duplicate call on AArch64_map_insn() in AArch64_printInst()
2013-12-11 21:57:54 +08:00
Nguyen Anh Quynh
66f6c2283e
mips: fix NEGU alias instruction. bug reported by Pancake
2013-12-11 21:37:24 +08:00
Nguyen Anh Quynh
d051328a20
mips: no need to map BNEZ for alias insn name. bug reported by Pancake
2013-12-11 20:45:52 +08:00
Nguyen Anh Quynh
10fd59eacf
cleanup & remove dead code in arm, arm64 & mips. dead code was reported by Pancake
2013-12-11 20:37:42 +08:00
Nguyen Anh Quynh
778ec163e5
mips: support N64 mode and simplify handling micro-mips
2013-12-11 18:25:56 +08:00
Nguyen Anh Quynh
2215895ebc
mips: no need cs_struct.micro_mips, as we can get that from cs_struct.mode
2013-12-11 18:11:49 +08:00
Nguyen Anh Quynh
9d946516c3
arm64: fix AArch64_getFeatureBits()
2013-12-11 18:00:19 +08:00
Nguyen Anh Quynh
a1fbd4aada
mips: fix Mips_getFeatureBits()
2013-12-11 17:48:48 +08:00
Nguyen Anh Quynh
462f291b9f
ARM: Fix bunch of issues
...
- Bugs
- start switching to more friendly asm: for number under 10, print without hex in front
2013-12-11 17:35:27 +08:00
Nguyen Anh Quynh
ff771f6c84
arm: fix a typo in calling DecodeT2CPSInstruction()
2013-12-11 16:39:37 +08:00
Nguyen Anh Quynh
723fa80890
arm: some hardware features must be mutually exclusive
2013-12-10 12:13:05 +08:00
Nguyen Anh Quynh
37c7d77e76
x86: print mem pointer reference in lowercase
2013-12-10 00:33:37 +08:00
Nguyen Anh Quynh
a253c7a8e8
x86: map EFLAGS to string of 'flags', 'eflags' or 'rflags' depending on current CS_MODE
2013-12-09 10:26:18 +08:00
Nguyen Anh Quynh
f5d9892f41
x86: return lowercase string for instrution name
2013-12-08 23:36:06 +08:00
Nguyen Anh Quynh
87bb421d3b
arm: return lowercase string for instrution name
2013-12-08 23:05:03 +08:00
Nguyen Anh Quynh
6677b994e7
arm: fix a wrong calculation on sign of .disp value in mem reference
2013-12-08 22:20:35 +08:00
Nguyen Anh Quynh
162409e730
mips: upgrade core engine
2013-12-08 20:17:28 +08:00
Nguyen Anh Quynh
731bf2a714
arm64: update core engine
2013-12-08 15:13:47 +08:00
Nguyen Anh Quynh
9f523d1699
mips: properly map alias instruction back to public id. this fixes the crash reported by Pancake
2013-12-06 13:49:23 +08:00
Nguyen Anh Quynh
b4ce38355a
x86: map xstorerng alias instruction back to xstore. bug reported by Nicolas Ruff
2013-12-06 08:06:21 +08:00
Nguyen Anh Quynh
f9e3216568
x86: on mem reference, put scale after index register to be consistent with Intel style
2013-12-05 21:58:31 +08:00
Nguyen Anh Quynh
641b78375f
x86: fix relative call. bug reported by Joxean Koret
2013-12-04 16:56:40 +08:00
Nguyen Anh Quynh
a5f0b1c3c3
mips: map register 9 to 'sp' rather than '29'
2013-12-03 20:13:48 +08:00
Nguyen Anh Quynh
6d552e5540
x86: fix bug in relative jump. reported by Joxean
2013-12-03 18:23:53 +08:00
Nguyen Anh Quynh
9cf170bcaa
mips: correct the forgotten size_t address in the last API change
2013-12-03 15:17:41 +08:00
Nguyen Anh Quynh
7d5f96d3a7
merge Radare's pull request on API change on @address of cs_disasm*()
2013-12-03 11:53:42 +08:00
Nguyen Anh Quynh
f35e2ad35c
add @regs_read_count, @regs_write_count, @groups_count to @cs_insn. bump API to 1.4
2013-12-03 11:10:26 +08:00
pancake
c04f873791
Use uint64_t instead of size_t for addresses
2013-12-03 02:51:46 +01:00
Nguyen Anh Quynh
9c950c15d6
x86: fix all the shift rotate insns with 1 as immediate: shl, shr, sar, ror, rol. thus, removed the hack on this insns.
2013-12-02 23:20:07 +08:00
Nguyen Anh Quynh
8fcec67893
x86: do not sign-extend immediate. this fixes the issues reported by LongLD
2013-12-02 22:03:30 +08:00
Nguyen Anh Quynh
23bc1f356a
fix some potential format string bugs in arm64, arm & mips
2013-12-02 16:24:56 +08:00
Nguyen Anh Quynh
b9b3d29ff5
x86: print segment register in some insns with memory references. This fixes the bug reported by Edgar & Attila
2013-12-02 16:21:55 +08:00
Nguyen Anh Quynh
ec0ed8ee94
semantics: add insn group JUMP, so now we can check if this insn is branching
2013-12-02 13:55:38 +08:00
Nguyen Anh Quynh
7c7a8bc523
arm: move static variable ITBlock to cs_struct, so make arm code truly thread-safe
2013-12-02 13:16:44 +08:00
Nguyen Anh Quynh
f1c2eee091
x86: clang still complains on unused enum type. this shuts it up
2013-12-02 12:29:07 +08:00
Nguyen Anh Quynh
0e3defb6f8
arm64: remove asprintf.c and use static buffer instead for SysRegMapper_toString(). this fixes the bug on MSR insn reported by Patroklos Argyroudis
2013-12-02 10:30:01 +08:00
Nguyen Anh Quynh
5ef8b2a7de
arm: fix param of MCRegisterInfo_InitMCRegisterInfo() in ARM_init()
2013-12-01 23:13:30 +08:00
Nguyen Anh Quynh
257dfb6571
arm: fix wrong calculation on update_flags due to dropped support for cs_reg_write() with 0 as handle
2013-12-01 23:12:34 +08:00
Nguyen Anh Quynh
173ed2b1cb
arm: upgrade core engine
2013-12-01 22:19:27 +08:00
Nguyen Anh Quynh
36d143b6d0
x86: update core engine
2013-12-01 00:05:22 +08:00
Nguyen Anh Quynh
ad61c49288
arm64: handle decomposer properly for alias insn
2013-11-30 16:23:31 +08:00
Nguyen Anh Quynh
e1611f0189
arm64: fix wrong calculation of arm64.update_flags with a tricky way of using cs_reg_write()
2013-11-30 12:37:26 +08:00
Nguyen Anh Quynh
6b9b6647c1
arm64: support more alias insn
2013-11-30 12:28:56 +08:00
Nguyen Anh Quynh
6b7abe3c81
arm64: handle alias insn in a better way, and add support for MNEG. bug reported by Patroklos Argyroudis
2013-11-30 00:54:24 +08:00
Nguyen Anh Quynh
b42a657873
change cs_disasm() and cs_disasm_dyn() to be portable API. fix related code using these API
2013-11-29 17:40:07 +08:00
Nguyen Anh Quynh
0b6f1bd544
x86: fix SHR, SHL, SAR insn when second op is 1 (Intel syntax). reported by Edgar Barbosa
2013-11-29 11:06:46 +08:00
Nguyen Anh Quynh
d7dbccd05e
Removed a couple of inoffensive compiler warnings. By Daniel Godas-Lopez
2013-11-28 23:15:34 +08:00
Nguyen Anh Quynh
741a9de722
arm: print immediate as 32bit rather than 64bit number. fix the bug reported by LongLD
2013-11-28 16:02:35 +08:00
Nguyen Anh Quynh
f10be9bb9d
x86: fix an overflow bug reported by Pancake
2013-11-28 15:04:43 +08:00
Nguyen Anh Quynh
26ee41aa67
initial import
2013-11-27 12:11:31 +08:00