8b99637f77
fix some oss-fuzz ( #1192 )
...
* fix oss-fuzz 10419.
* fix oss-fuzz 10427.
* fix oss-fuzz 10421.
* fix oss-fuzz 10422.
* fix oss-fuzz 10425.
* fix oss-fuzz 10426.
* fix oss-fuzz 10426.
* fix oss-fuzz 10422.
* fix oss-fuzz 10426.
* fix oss-fuzz 10456.
* fix oss-fuzz 10428.
* fix oss-fuzz 10429.
* fix oss-fuzz 10431.
* fix oss-fuzz 10435.
* fix oss-fuzz 10430.
* fix oss-fuzz 10436.
* remove unused var.
* fix oss-fuzz 10449.
* fix oss-fuzz 10452.
* fix oss-fuzz 11792.
* fix oss-fuzz 10457.
* fix oss-fuzz 11737.
* fix oss-fuzz 10458.
* fix oss-fuzz 10565.
* fix oss-fuzz 11651.
* fix oss-fuzz 10497.
* fix oss-fuzz 10515.
* fix oss-fuzz 10586.
* fix oss-fuzz 10597.
* fiz oss-fuzz 11721.
* fix oss-fuzz 10718.
* fix oss-fuzz 15610.
* fix oss-fuzz 10512.
* fix oss-fuzz 10545.
* fix oss-fuzz 10598.
* fix oss-fuzz 11112.
* fix oss-fuzz 11589.
* fix oss-fuzz 10674.
* git fix oss-fuzz 19610.
* fix oss-fuzz 19848.
* fix oss-fuzz 19851.
* fix oss-fuzz 19852.
* fix oss-fuzz 10878.
* fix oss-fuzz 11655.
* fix oss-fuzz 19849.
* fix oss-fuzz 11765.
* fix oss-fuzz 10337.
* fix oss-fuzz 10575.
* fix oss-fuzz 19877.
* fix oss-fuzz 19895.
* fix oss-fuzz 19896.
* fix oss-fuzz 19897.
* remove verbose fprintf output.
* fix oss-fuzz 19943.
* fix oss-fuzz 20026.
* fix oss-fuzz 20027.
* fix oss-fuzz 19967.
* fix oss-fuzz 19946.
* fix oss-fuzz 20069.
* fix oss-fuzz 20071.
* fix oss-fuzz 20073.
* fix oss-fuzz 20075.
* fix oss-fuzz 20076.
* fix a operation mistake.
* fix oss-fuzz 20101.
* fix oss-fuzz 20152.
* fix oss-fuzz 20101.
* fix oss-fuzz 20154.
* fix oss-fuzz 20166.
* fix oss-fuzz 14042.
2020-01-18 23:49:36 +08:00
6398248534
fix some oss-fuzz ( #1191 )
...
* fix oss-fuzz 10419.
* fix oss-fuzz 10427.
* fix oss-fuzz 10421.
* fix oss-fuzz 10422.
* fix oss-fuzz 10425.
* fix oss-fuzz 10426.
* fix oss-fuzz 10426.
* fix oss-fuzz 10422.
* fix oss-fuzz 10426.
* fix oss-fuzz 10456.
* fix oss-fuzz 10428.
* fix oss-fuzz 10429.
* fix oss-fuzz 10431.
* fix oss-fuzz 10435.
* fix oss-fuzz 10430.
* fix oss-fuzz 10436.
* remove unused var.
* fix oss-fuzz 10449.
* fix oss-fuzz 10452.
* fix oss-fuzz 11792.
* fix oss-fuzz 10457.
* fix oss-fuzz 11737.
* fix oss-fuzz 10458.
* fix oss-fuzz 10565.
* fix oss-fuzz 11651.
* fix oss-fuzz 10497.
* fix oss-fuzz 10515.
* fix oss-fuzz 10586.
* fix oss-fuzz 10597.
* fiz oss-fuzz 11721.
* fix oss-fuzz 10718.
* fix oss-fuzz 15610.
* fix oss-fuzz 10512.
* fix oss-fuzz 10545.
* fix oss-fuzz 10598.
* fix oss-fuzz 11112.
* fix oss-fuzz 11589.
* fix oss-fuzz 10674.
* git fix oss-fuzz 19610.
* fix oss-fuzz 19848.
* fix oss-fuzz 19851.
* fix oss-fuzz 19852.
* fix oss-fuzz 10878.
* fix oss-fuzz 11655.
* fix oss-fuzz 19849.
* fix oss-fuzz 11765.
* fix oss-fuzz 10337.
* fix oss-fuzz 10575.
* fix oss-fuzz 19877.
* fix oss-fuzz 19895.
* fix oss-fuzz 19896.
* fix oss-fuzz 19897.
* remove verbose fprintf output.
* fix oss-fuzz 19943.
* fix oss-fuzz 20026.
* fix oss-fuzz 20027.
* fix oss-fuzz 19967.
* fix oss-fuzz 19946.
* fix oss-fuzz 20069.
* fix oss-fuzz 20071.
* fix oss-fuzz 20073.
* fix oss-fuzz 20075.
* fix oss-fuzz 20076.
* fix a operation mistake.
* fix oss-fuzz 20101.
* fix oss-fuzz 20152.
* fix oss-fuzz 20101.
* fix oss-fuzz 20154.
2020-01-17 17:23:39 +08:00
2776bc1db7
fix some oss-fuzz ( #1189 )
...
* fix oss-fuzz 10419.
* fix oss-fuzz 10427.
* fix oss-fuzz 10421.
* fix oss-fuzz 10422.
* fix oss-fuzz 10425.
* fix oss-fuzz 10426.
* fix oss-fuzz 10426.
* fix oss-fuzz 10422.
* fix oss-fuzz 10426.
* fix oss-fuzz 10456.
* fix oss-fuzz 10428.
* fix oss-fuzz 10429.
* fix oss-fuzz 10431.
* fix oss-fuzz 10435.
* fix oss-fuzz 10430.
* fix oss-fuzz 10436.
* remove unused var.
* fix oss-fuzz 10449.
* fix oss-fuzz 10452.
* fix oss-fuzz 11792.
* fix oss-fuzz 10457.
* fix oss-fuzz 11737.
* fix oss-fuzz 10458.
* fix oss-fuzz 10565.
* fix oss-fuzz 11651.
* fix oss-fuzz 10497.
* fix oss-fuzz 10515.
* fix oss-fuzz 10586.
* fix oss-fuzz 10597.
* fiz oss-fuzz 11721.
* fix oss-fuzz 10718.
* fix oss-fuzz 15610.
* fix oss-fuzz 10512.
* fix oss-fuzz 10545.
* fix oss-fuzz 10598.
* fix oss-fuzz 11112.
* fix oss-fuzz 11589.
* fix oss-fuzz 10674.
* git fix oss-fuzz 19610.
* fix oss-fuzz 19848.
* fix oss-fuzz 19851.
* fix oss-fuzz 19852.
* fix oss-fuzz 10878.
* fix oss-fuzz 11655.
* fix oss-fuzz 19849.
* fix oss-fuzz 11765.
* fix oss-fuzz 10337.
* fix oss-fuzz 10575.
* fix oss-fuzz 19877.
* fix oss-fuzz 19895.
* fix oss-fuzz 19896.
* fix oss-fuzz 19897.
* remove verbose fprintf output.
* fix oss-fuzz 19943.
* fix oss-fuzz 20026.
* fix oss-fuzz 20027.
* fix oss-fuzz 19967.
* fix oss-fuzz 19946.
* fix oss-fuzz 20069.
* fix oss-fuzz 20071.
* fix oss-fuzz 20073.
* fix oss-fuzz 20075.
* fix oss-fuzz 20076.
2020-01-15 22:18:00 +08:00
ec2e454481
fix some oss-fuzz ( #1188 )
...
* fix oss-fuzz 10419.
* fix oss-fuzz 10427.
* fix oss-fuzz 10421.
* fix oss-fuzz 10422.
* fix oss-fuzz 10425.
* fix oss-fuzz 10426.
* fix oss-fuzz 10426.
* fix oss-fuzz 10422.
* fix oss-fuzz 10426.
* fix oss-fuzz 10456.
* fix oss-fuzz 10428.
* fix oss-fuzz 10429.
* fix oss-fuzz 10431.
* fix oss-fuzz 10435.
* fix oss-fuzz 10430.
* fix oss-fuzz 10436.
* remove unused var.
* fix oss-fuzz 10449.
* fix oss-fuzz 10452.
* fix oss-fuzz 11792.
* fix oss-fuzz 10457.
* fix oss-fuzz 11737.
* fix oss-fuzz 10458.
* fix oss-fuzz 10565.
* fix oss-fuzz 11651.
* fix oss-fuzz 10497.
* fix oss-fuzz 10515.
* fix oss-fuzz 10586.
* fix oss-fuzz 10597.
* fiz oss-fuzz 11721.
* fix oss-fuzz 10718.
* fix oss-fuzz 15610.
* fix oss-fuzz 10512.
* fix oss-fuzz 10545.
* fix oss-fuzz 10598.
* fix oss-fuzz 11112.
* fix oss-fuzz 11589.
* fix oss-fuzz 10674.
* git fix oss-fuzz 19610.
* fix oss-fuzz 19848.
* fix oss-fuzz 19851.
* fix oss-fuzz 19852.
* fix oss-fuzz 10878.
* fix oss-fuzz 11655.
* fix oss-fuzz 19849.
* fix oss-fuzz 11765.
* fix oss-fuzz 10337.
* fix oss-fuzz 10575.
* fix oss-fuzz 19877.
* fix oss-fuzz 19895.
* fix oss-fuzz 19896.
* fix oss-fuzz 19897.
* remove verbose fprintf output.
* fix oss-fuzz 19943.
* fix oss-fuzz 20026.
* fix oss-fuzz 20027.
* fix oss-fuzz 19967.
* fix oss-fuzz 19946.
2020-01-14 10:08:58 +08:00
7e4ac9e86e
fix some oss-fuzz ( #1184 )
...
* fix oss-fuzz 10419.
* fix oss-fuzz 10427.
* fix oss-fuzz 10421.
* fix oss-fuzz 10422.
* fix oss-fuzz 10425.
* fix oss-fuzz 10426.
* fix oss-fuzz 10426.
* fix oss-fuzz 10422.
* fix oss-fuzz 10426.
* fix oss-fuzz 10456.
* fix oss-fuzz 10428.
* fix oss-fuzz 10429.
* fix oss-fuzz 10431.
* fix oss-fuzz 10435.
* fix oss-fuzz 10430.
* fix oss-fuzz 10436.
* remove unused var.
* fix oss-fuzz 10449.
* fix oss-fuzz 10452.
* fix oss-fuzz 11792.
* fix oss-fuzz 10457.
* fix oss-fuzz 11737.
* fix oss-fuzz 10458.
* fix oss-fuzz 10565.
* fix oss-fuzz 11651.
* fix oss-fuzz 10497.
* fix oss-fuzz 10515.
* fix oss-fuzz 10586.
* fix oss-fuzz 10597.
* fiz oss-fuzz 11721.
* fix oss-fuzz 10718.
* fix oss-fuzz 15610.
* fix oss-fuzz 10512.
* fix oss-fuzz 10545.
* fix oss-fuzz 10598.
* fix oss-fuzz 11112.
* fix oss-fuzz 11589.
* fix oss-fuzz 10674.
* git fix oss-fuzz 19610.
* fix oss-fuzz 19848.
* fix oss-fuzz 19851.
* fix oss-fuzz 19852.
* fix oss-fuzz 10878.
* fix oss-fuzz 11655.
* fix oss-fuzz 19849.
* fix oss-fuzz 11765.
* fix oss-fuzz 10337.
* fix oss-fuzz 10575.
* fix oss-fuzz 19877.
* fix oss-fuzz 19895.
* fix oss-fuzz 19896.
* fix oss-fuzz 19897.
* remove verbose fprintf output.
2020-01-10 23:05:44 +08:00
8621bca537
fix some oss-fuzz bugs ( #1182 )
...
* fix oss-fuzz 10419.
* fix oss-fuzz 10427.
* fix oss-fuzz 10421.
* fix oss-fuzz 10422.
* fix oss-fuzz 10425.
* fix oss-fuzz 10426.
* fix oss-fuzz 10426.
* fix oss-fuzz 10422.
* fix oss-fuzz 10426.
* fix oss-fuzz 10456.
* fix oss-fuzz 10428.
* fix oss-fuzz 10429.
* fix oss-fuzz 10431.
* fix oss-fuzz 10435.
* fix oss-fuzz 10430.
* fix oss-fuzz 10436.
* remove unused var.
* fix oss-fuzz 10449.
* fix oss-fuzz 10452.
* fix oss-fuzz 11792.
* fix oss-fuzz 10457.
* fix oss-fuzz 11737.
* fix oss-fuzz 10458.
* fix oss-fuzz 10565.
* fix oss-fuzz 11651.
* fix oss-fuzz 10497.
* fix oss-fuzz 10515.
* fix oss-fuzz 10586.
* fix oss-fuzz 10597.
* fiz oss-fuzz 11721.
* fix oss-fuzz 10718.
* fix oss-fuzz 15610.
* fix oss-fuzz 10512.
* fix oss-fuzz 10545.
2020-01-05 19:20:29 +08:00
68eb357984
fix some oss-fuzz bugs ( #1180 )
...
* fix oss-fuzz 10419.
* fix oss-fuzz 10427.
* fix oss-fuzz 10421.
* fix oss-fuzz 10422.
* fix oss-fuzz 10425.
* fix oss-fuzz 10426.
* fix oss-fuzz 10426.
* fix oss-fuzz 10422.
* fix oss-fuzz 10426.
* fix oss-fuzz 10456.
* fix oss-fuzz 10428.
* fix oss-fuzz 10429.
* fix oss-fuzz 10431.
* fix oss-fuzz 10435.
* fix oss-fuzz 10430.
* fix oss-fuzz 10436.
* remove unused var.
2020-01-04 23:42:02 +08:00
99097cab4c
Add implementation of access to the ARM SPSR register. ( #1178 )
...
The SPSR register is named within the Unicorn headers, but the code
to access it is absent. This means that it will always read as 0 and
ignore writes. This makes it harder to work with changes in processor
mode, as the usual way to return from a CPU exception is a
`MOVS pc, lr` for undefined instructions or `SUBS pc, lr, #4`
for most other aborts - which implicitly restores the CPSR from SPSR.
This change adds the access to the SPSR so that it can be read and
written as the caller might expect.
2020-01-02 09:42:01 +08:00
fc8a42aeb8
spacing
2020-01-01 09:56:55 +08:00
b59632fb64
Ensure that PC is not fixed up when code tracing or timing. ( #1179 )
...
Under some circumstances, the PC is not fixed up properly when
returning from the execution of a block in cpu_tb_exec. This appears
to be caused by the resetting of the PC from the tb.
This change removes the additional fixup in the cases where there
is code tracing or timing active. Either of these cases would result
in the wrong PC being reported.
Closes unicorn-engine#1105.
2020-01-01 09:55:08 +08:00
95890d593f
fix oss-fuzz issue 10578. ( #1159 )
2019-12-29 00:14:05 +08:00
ba74552199
Expose different 32-bit ARM CPU models to users via UC_MODE flags ( #1165 )
2019-10-26 05:01:00 +08:00
83887b8193
Fix the error in the hook_code of the arm, calling emu_stop and causing the pc value to be incorrect after the end of the run. ( #1157 )
2019-10-25 14:47:29 +08:00
c03f929c75
fix oss-fuzz issue 10334. ( #1149 )
2019-10-08 10:44:50 +08:00
79d89e5d3b
fix a mem-leak ( #1147 )
...
* fix a mem-leak.
* check the uc and l1_map before using them.
* fix multi-level free bug.
* Add pointer check.
2019-10-05 15:11:46 +08:00
07f94ad1fc
Added an invalid instruction hook ( #1132 )
...
* first draft for an invalid instruction hook
* Fixed documentation on return value of invalid insn hook
2019-09-23 01:53:06 +08:00
f4cc35a24a
compatible with python2 and python3 ( #1145 )
...
* compatible with python2 and python3.
* fix python version check in configure of qemu.
* allow python-2.4.
* add credit.
2019-09-20 17:23:12 +08:00
ca6516ff79
Remove warnings ( #1140 )
...
* remove warnings on windows with vs2019.
* remove warnings.
2019-09-08 16:44:16 +08:00
60896de9f4
add CMakeList.txt. build windows binary by using vs2019. ( #1134 )
...
* add CMakeList.txt. build windows binary by using vs2019.
* remove macro redefinition warning.
* add nmake.bat.
* update CMakeLists.txt. build successfully on Ubuntu-1804-amd64.
* add CMakeList.txt. build windows binary by using vs2019.
* remove macro redefinition warning.
* add nmake.bat.
* update CMakeLists.txt. build successfully on Ubuntu-1804-amd64.
* Add build specific arch option.
* fix old MSVC inline and mipsel macro.
* add install target and option of embeded MSVCRT lib.
* add cmake.sh and document.
* add xwings and chenhuitao as programmer.
* fix COMPILE-CMAKE. rename txt to md.
2019-09-08 16:42:43 +08:00
626d72d6df
Two fixes to get unicorn build better with MSVC. ( #1136 )
...
* Change MSVC keywords.
typename, class, and class are all keywords for MSVC. Adding a suffix for
all of them allows a successful compilation under VC 2017 (15.9).
* Switch from /ZI to /Zi to avoid crashes at longjmp in debug builds.
2019-09-05 00:53:37 +08:00
23a426625f
check arguments, return error instead of raising exceptions. ( #1125 )
...
* check arguments, return error instaed of raising exceptions. close #1117 .
* remove empty lines. remove thr underscore prefix in function name.
2019-08-23 17:05:13 +08:00
bc572be472
Check for TLB invalidation after read callback(s). ( #1122 )
...
* Adding regression test for issue where writing memory into a read only segment during a access callback fails.
* Check for TLB invalidation when calling read callbacks; Writes to read-only memory by the callback cause a TLB flush which requires a re-read of the TLB.
2019-08-22 17:54:24 +08:00
9208a6f317
initialize ret=0 in cpu_exec(). issue #1115
2019-08-05 23:00:01 +08:00
540c893157
cleanup qemu/cpus.c
2019-07-31 15:43:06 +08:00
24f55a7973
Removed hardcoded CP0C3_ULRI ( #1098 )
...
* activate CP0C3_ULRI for CONFIG3, mips
* updated with mips patches
* updated with mips patches
* remove hardcoded config3
* git ignore vscode
* fix spacing issue and turn on floating point
2019-07-06 17:53:02 +08:00
5efc0afd49
activate CP0C3_ULRI for CONFIG3, mips ( #1097 )
2019-06-24 20:58:53 +08:00
ae6e3c193d
Fixes register reading and writing for XMM8-15 on x86-64 ( #1090 )
2019-06-03 19:04:41 +08:00
55d8d073bd
support for YMM registers ymm8-ymm15 ( #1079 )
2019-04-01 11:00:34 +08:00
3185128031
Add ARM MSP, PSP and CONTROL register access ( #1071 )
...
Necessary for NVIC exception emulation from user.
2019-03-07 08:37:27 +08:00
6c319941a5
Add support for the ARM IPSR register. ( #1067 )
...
1. Create an enum name for the IPSR register.
2. Implement read and write of the IPSR via the xpsr helper functions.
Fixes #1065
2019-02-28 09:55:27 +08:00
5bf6d77e4e
Fixed the decoding of opcodes after getting vex2 using 0xc5 ( #1064 )
...
* Fixed the decoding of opcodes after getting vex2 using 0xc5
* Added testcase for vex. Can and should be expanded
* Fixed warning of testcase for vex (parentheses for assignment)
2019-02-25 21:14:20 +08:00
256e7782ce
Added MXCSR register, fixed writing to FPUCW. ( #1059 )
...
* Added MXCSR register for reading and writing
* Changed writing for fpucw register, now the qemu rounding status is updated as well
2019-02-15 12:59:49 +08:00
360e9c60e1
changed cpu_compue_eflags to use the updated eflags variable. Otherwise, cli/sti and popfl may break, as we get the non-updated eflags ( #1057 )
2019-02-07 23:10:01 +08:00
3df5ef8ab1
Fixed conditional move tcg bug (tcg_gen_movcond), which generated an ALWAYS / NEVER condition despite QEMU no supporting those conditions in the tcg_out part ( #1054 )
2019-01-31 09:59:51 +08:00
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