536c4e77c4
i386: set MSR IA32_EFER to correct value at init for IA32e Mode ( #1047 )
2018-11-30 11:42:19 +08:00
a2493a0d41
[Fix] Fix a problem that use uc_reg_write to write fs, gs has no effets in x86 64-bit mode. ( #984 )
2018-11-10 21:24:11 +08:00
400a0ab309
Uses latest qemu arm thumb load store stuff ( #1021 )
2018-09-27 10:32:48 +08:00
333bfdf65e
Removes accessible assert ( #1022 )
2018-09-24 20:21:30 +08:00
46999575fb
Mips undefined shift fix ( #1011 )
2018-09-16 21:51:03 +08:00
910999d396
Prevents abort with m68K ( #1012 )
...
* Prevents abort with m68K
Raises exception instead
* M68K remove one uses of abort
* Less aborts and logs instead for M68K
2018-09-16 21:50:35 +08:00
4a86318cf4
Initializes i386 prefix value ( #1013 )
2018-09-16 21:50:00 +08:00
b8df067514
Sparc increase ttl number ( #1016 )
2018-09-16 21:49:34 +08:00
12bcf3bea0
Fuzz builds ok ( #1007 )
...
* Fuzzing M68K without abort
* UC_MODE_32 is not ok with sparc
use UC_MODE_SPARC32|UC_MODE_BIG_ENDIAN instead
* Temporary removing leaking on start targets
* Do not abort for m68K undef instructions
2018-09-11 12:49:32 +08:00
0f14c47344
Makes SYSENTER hookable again on x86 ( #996 )
...
Adds SYSENTER to the whitelist of supported hookable instructions in unicorn
as well as fixes up the existing sysenter_hook_x86 regression test which was
previously failing
Fixes unicorn-engine/unicorn#995
2018-08-09 23:32:31 +08:00
c7be4a2160
Haiku support patches ( #989 )
...
* Haiku: fix broken gcc strong stack protector
* qemu: Backport minor Haiku fix
We need to push this fix upstream to qemu. If we don't
get it upstreamed, i'll circle back and patch it if
Unicorn updates its qemu version.
2018-08-03 11:15:14 +08:00
4d0157eb4a
x86: fix #968 . also fix potential bug of not clearing high bytes when updateing EIP
2018-07-26 15:19:23 +08:00
86313650f9
fix some gcc warnings
2018-07-25 12:38:15 +08:00
2a240079d8
[Fix] Add feature support for CMPXCHG16B instruction. ( #983 )
2018-07-25 15:00:41 +08:00
d5f83a9c2e
arm: cleanup for ARM_CPU
2017-12-21 09:43:33 +08:00
e67be36c88
arm: remove unused variable in arm_cpu_get_phys_page_debug()
2017-12-20 22:12:35 +08:00
3e0d0cfab7
i386: fix signed int overflow in #923 & #924
2017-12-16 10:28:45 +08:00
d7735487f7
Use the qemu helpers to get/set the x86 eflags ( #878 )
2017-09-15 22:18:38 +07:00
363cbacee4
Only set eip to the instruction pointer after an interrupt if the interrupt was user-generated ( #875 )
2017-08-29 17:14:36 +07:00
42d0632108
Fix typo in ARM tcg-target.c ( #859 )
2017-07-22 23:36:38 +08:00
ad767abda8
x86::trans: handle illegal case for opc c6/c7
...
Reference Intel software developer manual vol2 Appendix A Table A-6 for
detailed decoding information.
Signed-off-by: vardyh <vardyh.dev@gmail.com >
2017-05-25 15:22:45 +08:00
014ccfb94a
Aarch64 add thread registers ( #834 )
...
* add thread registers to AArch64
* update bindings to add AArch64 thread registers
* fix indentation for register read/write switch-case in unicorn_aarch64.c
2017-05-14 14:42:49 +07:00
4b9efdc986
Adding INSN hook checks for x86 ( #833 )
...
* adding INSN hook checking for x86
* tabs to spaces
* need to return bool not uc_err
* fixed conditional after switching to bool
2017-05-14 00:16:17 +07:00
ae6ea3b91d
fix arm64 hang ( fix #827 ) ( #828 )
2017-05-09 20:19:32 +08:00
5385baba39
Implemented read and write access to the YMM registers ( #819 )
2017-05-05 09:02:58 +08:00
4a62409949
arm64eb: arm64 big endian also using little endian instructions. ( #816 )
...
* arm64eb: arm64 big endian also using little endian instructions.
* arm64: using another example that depends on endians.
example:
1. store a word: 0x12345678
2. load a byte:
* little endian : 0x78
* big endian : 0x12
2017-05-04 20:00:48 +08:00
1b00d3f89a
remove slow cpu QOM casts ( #815 )
2017-05-02 14:56:39 +08:00
187b470245
add arm64 CPACR_EL1 register support ( #814 )
2017-05-02 14:51:19 +08:00
2e973a13f0
arm64eb: add support for ARM64 big endian.
2017-04-24 23:30:01 +08:00
513075e061
arm: fix an warning reported by GCC
2017-04-21 21:12:57 +08:00
e917c9de10
Merge branch 'master' into msvc2
2017-04-21 01:17:00 +08:00
605400e10e
determine correct Thumb/Thumb2 instruction size (16/32-bit) for code … ( #796 )
...
* determine correct Thumb/Thumb2 instruction size (16/32-bit) for code hook
* determine correct Thumb/Thumb2 instruction size (16/32-bit) for code hook
* determine correct Thumb/Thumb2 instruction size (16/32-bit) for code hook
2017-04-15 00:39:56 +08:00
f915f14e74
Merge branch 'master' of https://github.com/unicorn-engine/unicorn
2017-04-12 22:06:40 +08:00
cb44f77ac3
mips: fix uc_reg_read() for MIPS64
2017-04-12 22:06:26 +08:00
3315f288d3
fix an warning in glib_compat.c
2017-04-12 14:01:58 +08:00
4eca426fb6
unicorn_aarch64: Expose UC_ARM64_REG_NZCV register. ( #791 )
2017-03-31 10:21:45 +08:00
094ca80092
fix conflicts
2017-03-30 12:23:24 +08:00
ccdb0ff523
armeb: rename arm's and mips's *REGS_STORAGE_SIZE to avoid big-endian and little-endian's duplicated definition.
2017-03-15 22:25:35 +08:00
a267af7d95
add arm_release to qemu/header_gen.py, and regenerate qemu/armeb.h
2017-03-14 23:41:31 +08:00
d8fe34a2e8
armeb: Add support for ARM big endian.
2017-03-13 22:32:44 +08:00
c01dcf0a14
fix merge conflicts
2017-03-10 21:04:33 +08:00
0150ca24b1
Add support for ARM application flags - APSR register ( #776 )
2017-03-09 22:28:03 +08:00
2749b8412e
fix register widths for MIPS64 reg_read/write ( #775 )
...
* fix register widths for MIPS64 reg_read/write
* fix preprocessor typedef error for qemu/target-mips
2017-03-08 08:40:30 +08:00
b3a5eae81c
uc_reg_read & uc_reg_write now support ARM64 Neon registers ( #774 )
...
* uc_reg_read & uc_reg_write now support ARM64 Neon registers
* Do not reuse uc_x86_xmm for uc_arm64_neon128. TODO: refactor both classes to use the same parent.
2017-03-07 21:29:34 +08:00
c3808179e1
another attempt to fix #766
2017-02-26 15:22:24 +08:00
e65fef70dc
add missing TCG context arg to few functions in tcg.c. see #766
2017-02-26 09:47:40 +08:00
d52f85d16e
add back missing ELF symbols reported in #766
2017-02-26 09:39:11 +08:00
02e6c14e12
x86: add MSR API via reg API ( #755 )
...
Writing / reading to model specific registers should be as easy as
calling a function, it's a bit stupid to write shell code and run them
just to write/read to a MSR, and even worse, you need more than just a
shellcode to read...
So, add a special register ID called UC_X86_REG_MSR, which should be
passed to uc_reg_write()/uc_reg_read() as the register ID, and then a
data structure which is uc_x86_msr (12 bytes), as the value (always), where:
Byte Value Size
0 MSR ID 4
4 MSR val 8
2017-02-24 21:37:19 +08:00
f3ada41b99
fix the last fix that crashes samples
2017-02-24 20:34:52 +08:00
7c29558a95
msvc: fix a warning in qemu/exec.c when merging master to msvc
2017-02-24 19:29:55 +08:00