Catena cyber
400a0ab309
Uses latest qemu arm thumb load store stuff ( #1021 )
2018-09-27 10:32:48 +08:00
Catena cyber
333bfdf65e
Removes accessible assert ( #1022 )
2018-09-24 20:21:30 +08:00
Catena cyber
46999575fb
Mips undefined shift fix ( #1011 )
2018-09-16 21:51:03 +08:00
Catena cyber
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
Catena cyber
4a86318cf4
Initializes i386 prefix value ( #1013 )
2018-09-16 21:50:00 +08:00
Catena cyber
b8df067514
Sparc increase ttl number ( #1016 )
2018-09-16 21:49:34 +08:00
Catena cyber
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
toshiMSFT
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
Alex von Gluck IV
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
Nguyen Anh Quynh
4d0157eb4a
x86: fix #968 . also fix potential bug of not clearing high bytes when updateing EIP
2018-07-26 15:19:23 +08:00
Nguyen Anh Quynh
86313650f9
fix some gcc warnings
2018-07-25 12:38:15 +08:00
nanoric
2a240079d8
[Fix] Add feature support for CMPXCHG16B instruction. ( #983 )
2018-07-25 15:00:41 +08:00
Nguyen Anh Quynh
d5f83a9c2e
arm: cleanup for ARM_CPU
2017-12-21 09:43:33 +08:00
Nguyen Anh Quynh
e67be36c88
arm: remove unused variable in arm_cpu_get_phys_page_debug()
2017-12-20 22:12:35 +08:00
Nguyen Anh Quynh
3e0d0cfab7
i386: fix signed int overflow in #923 & #924
2017-12-16 10:28:45 +08:00
Andrew Dutcher
d7735487f7
Use the qemu helpers to get/set the x86 eflags ( #878 )
2017-09-15 22:18:38 +07:00
Andrew Dutcher
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
darkf
42d0632108
Fix typo in ARM tcg-target.c ( #859 )
2017-07-22 23:36:38 +08:00
vardyh
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
misson20000
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
bulaza
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
Ryan Hileman
ae6ea3b91d
fix arm64 hang ( fix #827 ) ( #828 )
2017-05-09 20:19:32 +08:00
Samuel Groß
5385baba39
Implemented read and write access to the YMM registers ( #819 )
2017-05-05 09:02:58 +08:00
zhangwm
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
Ryan Hileman
1b00d3f89a
remove slow cpu QOM casts ( #815 )
2017-05-02 14:56:39 +08:00
Ryan Hileman
187b470245
add arm64 CPACR_EL1 register support ( #814 )
2017-05-02 14:51:19 +08:00
zhangwm
2e973a13f0
arm64eb: add support for ARM64 big endian.
2017-04-24 23:30:01 +08:00
Nguyen Anh Quynh
513075e061
arm: fix an warning reported by GCC
2017-04-21 21:12:57 +08:00
Nguyen Anh Quynh
e917c9de10
Merge branch 'master' into msvc2
2017-04-21 01:17:00 +08:00
0xSeb
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
Nguyen Anh Quynh
f915f14e74
Merge branch 'master' of https://github.com/unicorn-engine/unicorn
2017-04-12 22:06:40 +08:00
Nguyen Anh Quynh
cb44f77ac3
mips: fix uc_reg_read() for MIPS64
2017-04-12 22:06:26 +08:00
Nguyen Anh Quynh
3315f288d3
fix an warning in glib_compat.c
2017-04-12 14:01:58 +08:00
bunnei
4eca426fb6
unicorn_aarch64: Expose UC_ARM64_REG_NZCV register. ( #791 )
2017-03-31 10:21:45 +08:00
Nguyen Anh Quynh
094ca80092
fix conflicts
2017-03-30 12:23:24 +08:00
zhangwm
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
Nguyen Anh Quynh
a267af7d95
add arm_release to qemu/header_gen.py, and regenerate qemu/armeb.h
2017-03-14 23:41:31 +08:00
zhangwm
d8fe34a2e8
armeb: Add support for ARM big endian.
2017-03-13 22:32:44 +08:00
Nguyen Anh Quynh
c01dcf0a14
fix merge conflicts
2017-03-10 21:04:33 +08:00
feliam
0150ca24b1
Add support for ARM application flags - APSR register ( #776 )
2017-03-09 22:28:03 +08:00
Matt Thomas
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
stevielavern
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
Nguyen Anh Quynh
c3808179e1
another attempt to fix #766
2017-02-26 15:22:24 +08:00
Nguyen Anh Quynh
e65fef70dc
add missing TCG context arg to few functions in tcg.c. see #766
2017-02-26 09:47:40 +08:00
Nguyen Anh Quynh
d52f85d16e
add back missing ELF symbols reported in #766
2017-02-26 09:39:11 +08:00
Ahmed Samy
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
Nguyen Anh Quynh
f3ada41b99
fix the last fix that crashes samples
2017-02-24 20:34:52 +08:00
Nguyen Anh Quynh
7c29558a95
msvc: fix a warning in qemu/exec.c when merging master to msvc
2017-02-24 19:29:55 +08:00
Nguyen Anh Quynh
6ea39f7d5a
merge msvc with master
2017-02-24 10:39:36 +08:00
Nguyen Anh Quynh
e7ecbf7889
m68k: fix a compilation warning
2017-02-23 20:34:17 +08:00
Nguyen Anh Quynh
714cf2c609
arm: fix a warning
2017-02-23 20:32:09 +08:00
Nguyen Anh Quynh
736d9857d2
recover some ELF symbols for building on Arm, PPC, Sparc & S390. issue #752
2017-02-20 15:16:50 +08:00
Chris Eagle
a03e908611
Fix initial state of segment registers ( #751 )
...
* Remove glib from samples makefile
* changes to 16 bit segment registers needs to update segment base as well as segment selector
* change how x86 segment registers are set in 16-bit mode
* more appropriate solution to initial state of x86 segment registers in 16-bit mode
* remove commented lines
2017-02-09 23:49:54 +08:00
Chris Eagle
f05984961b
Fix 16-bit address computations ( #747 )
...
* Remove glib from samples makefile
* changes to 16 bit segment registers needs to update segment base as well as segment selector
* change how x86 segment registers are set in 16-bit mode
2017-02-08 09:37:41 +08:00
vardyh
7f9251511e
MSVC port (vardyh) ( #746 )
...
* unicorn: use waitable timer to implement usleep() on Windows
Signed-off-by: vardyh <vardyh.dev@gmail.com>
* atomic: implement barrier() for msvc
Signed-off-by: vardyh <vardyh.dev@gmail.com>
2017-02-07 21:31:35 +08:00
Parker Thompson
053ecd7bf4
Added ARM coproc registers ( #684 )
...
* Added ARM coproc registers
* Added regression test for vfp
2017-01-25 11:56:19 +08:00
Nguyen Anh Quynh
ef52d9a9d1
cleanup qemu/include/qemu/module.h
2017-01-25 00:20:08 +08:00
xorstream
e08d1bf7c6
Arm issue fix. ( #738 )
...
* Fix for MIPS issue.
* Sparc support added.
* M68K support added.
* Arm support ported.
* Fix issue with VS2015 shlobj.h file
* Arm issue fix.
2017-01-24 17:45:01 +08:00
xorstream
8e45102b43
Arm support ported. ( #736 )
...
* Fix for MIPS issue.
* Sparc support added.
* M68K support added.
* Arm support ported.
* Fix issue with VS2015 shlobj.h file
2017-01-23 23:30:57 +08:00
xorstream
2695a0ffe8
M68K support added. ( #735 )
...
* Fix for MIPS issue.
* Sparc support added.
* M68K support added.
2017-01-23 14:40:02 +08:00
xorstream
a40921ce32
Sparc support added. ( #734 )
...
* Fix for MIPS issue.
* Sparc support added.
2017-01-23 13:29:41 +08:00
xorstream
69ae8f7987
Fix for MIPS issue. ( #733 )
2017-01-23 12:39:34 +08:00
Nguyen Anh Quynh
2ecbe89cc1
cleanup Sparc unused code
2017-01-23 12:34:00 +08:00
Nguyen Anh Quynh
e4c7c3dbe4
cleanup Sparc unused code
2017-01-23 12:33:39 +08:00
Nguyen Anh Quynh
0680b85920
cleanup Monitor related code
2017-01-23 10:07:01 +08:00
Nguyen Anh Quynh
81b8a685be
cleanup
2017-01-23 10:06:49 +08:00
Nguyen Anh Quynh
55d472c62c
cleanup Monitor related code
2017-01-23 00:53:31 +08:00
Nguyen Anh Quynh
b3faed1df9
cleanup
2017-01-23 00:30:13 +08:00
Nguyen Anh Quynh
a95fdbc5aa
cleanup qemu/include/exec/memory.h
2017-01-22 23:21:47 +08:00
Nguyen Anh Quynh
5de0785a1b
cleanup qemu/memory.c
2017-01-22 23:07:17 +08:00
xorstream
e46f86c80b
Merging with current msvc.
2017-01-23 01:07:06 +11:00
xorstream
72a497bc14
Added MIPS support and projects for all samples.
2017-01-23 01:05:08 +11:00
Nguyen Anh Quynh
206819bd98
cleanup after msvc port
2017-01-22 21:27:17 +08:00
xorstream
1a9ebbecde
isnan() fix for msvc2013 onwards ( #729 )
...
* Changed some MSVC compatibility defines based on MSVC version.
* Added prebuild_script.bat to remove leftover configure generated files before building.
Also added project files and MSVC copies of configure generated files for all supported CPUs.
* Moved ./bindings/msvc_native into ./msvc
* Remove old project dir.
* isnan() fix for msvc2013 onwards
2017-01-22 16:14:05 +08:00
xorstream
03dcce40b2
isnan() fix for msvc2013 onwards
2017-01-22 18:13:28 +11:00
Nguyen Anh Quynh
49c904a629
cleanup qemu/configure
2017-01-22 05:57:29 +08:00
Nguyen Anh Quynh
d04cc8671d
cleanup qemu/configure
2017-01-22 05:56:37 +08:00
Nguyen Anh Quynh
2a1b9d8e1b
cleanup qemu/Makefile.objs
2017-01-21 21:50:12 +08:00
xorstream
9fac29d154
Changed some MSVC compatibility defines based on MSVC version. ( #724 )
2017-01-21 20:21:27 +08:00
Nguyen Anh Quynh
0d51163abc
cleanup qemu/util/qemu-timer-common.c
2017-01-21 14:55:35 +08:00
Nguyen Anh Quynh
45717c61ba
cleanup qemu/util/qemu-timer-common.c
2017-01-21 14:53:33 +08:00
Nguyen Anh Quynh
647c97ddc3
ffs() is redundant
2017-01-21 11:11:22 +08:00
Nguyen Anh Quynh
5d0797afe7
ffs() is redundant
2017-01-21 11:10:48 +08:00
Nguyen Anh Quynh
c8550b86f0
fix conflicts
2017-01-21 11:06:05 +08:00
Nguyen Anh Quynh
fa12120d75
termios.h & strings.h are not needed
2017-01-21 11:02:17 +08:00
xorstream
770c5616e2
Automated leading tab to spaces conversion.
2017-01-21 12:28:22 +11:00
xorstream
df41c49e2d
Fixed warning about {} initialisers.
2017-01-21 11:41:11 +11:00
xorstream
429bfca48e
Fixes for MSVC native support to still work with GCC/GNU.
2017-01-21 01:07:10 +11:00
xorstream
8840d5b42b
Save copies of generated qapi files.
2017-01-21 00:30:50 +11:00
xorstream
fac6a66860
platform.h move #3
2017-01-21 00:13:21 +11:00
xorstream
1aaf57ca54
Some more little edits to prepare for pull request.
2017-01-20 22:46:32 +11:00
xorstream
b0ae2138fb
Merge remote-tracking branch 'unicorn-engine/master' into msvc_native
2017-01-20 22:37:51 +11:00
Nguyen Anh Quynh
ac68745a9c
we dont need to handle VGA & Migration memories
2017-01-20 17:03:39 +08:00
Nguyen Anh Quynh
fff532fc20
timer is redundant
2017-01-20 16:46:58 +08:00
Nguyen Anh Quynh
6daa8581cd
win32_start_routine() looks broken. TODO
2017-01-20 16:12:49 +08:00
xorstream
ee294eebb0
Fixed double free in win32 threads and changed free() to g_free(). ( #722 )
2017-01-20 16:03:35 +08:00
Nguyen Anh Quynh
c6de7930c9
remove mutex code
2017-01-20 15:44:03 +08:00
xorstream
92392e0f57
Merge with current master.
2017-01-20 18:22:28 +11:00
Nguyen Anh Quynh
42771848d6
no more spinlock
2017-01-20 14:57:33 +08:00
Nguyen Anh Quynh
a7fca49f7a
delete qemu/include/qemu/notify.h
2017-01-20 14:47:41 +08:00
xorstream
002151874a
Unicorn interface working with test app in 32bit and 64bit builds.
2017-01-20 17:27:22 +11:00
Nguyen Anh Quynh
b887c3bb25
delete qemu/include/exec/poison.h
2017-01-20 13:58:50 +08:00
Nguyen Anh Quynh
94e55f45c1
del qemu/target-m68k/m68k-semi.c
2017-01-20 11:52:31 +08:00
Nguyen Anh Quynh
b678512fc1
remove kvm stuffs
2017-01-20 01:03:59 +08:00
Nguyen Anh Quynh
7e2234237c
del qemu/scripts/dump-guest-memory.py
2017-01-19 20:56:07 +08:00
xorstream
1aeaf5c40d
This code should now build the x86_x64-softmmu part 2.
2017-01-19 22:50:28 +11:00
Nguyen Anh Quynh
b9b82591a1
cleanup
2017-01-19 18:07:30 +08:00
Nguyen Anh Quynh
8a5b12c6f9
more cleanup in qemu/include/hw/
2017-01-19 15:20:06 +08:00
Nguyen Anh Quynh
287e047fdb
delete sparc32_dma.h & arm-semi.c
2017-01-19 15:10:41 +08:00
Nguyen Anh Quynh
f4f756e6dd
cleanup qemu/include/qemu/module.h
2017-01-19 15:00:25 +08:00
Nguyen Anh Quynh
7789a06d2d
cleanup qemu/default-configs/
2017-01-19 14:52:30 +08:00
Nguyen Anh Quynh
86e5d29b74
more cleanup qemu/configure
2017-01-19 14:15:00 +08:00
Nguyen Anh Quynh
f2691b0107
more cleanup qemu/configure
2017-01-19 14:11:54 +08:00
Nguyen Anh Quynh
37410d02f1
cleanup qemu/configure
2017-01-19 14:02:50 +08:00
Nguyen Anh Quynh
9735c6e28e
cleanup qemu/include/elf.h
2017-01-19 13:46:17 +08:00
Nguyen Anh Quynh
a6fa35430a
del qemu/include/qapi/opts-visitor.h
2017-01-19 13:23:48 +08:00
Nguyen Anh Quynh
d836ec62fc
del qemu/include/hw/irq.h
2017-01-19 13:14:15 +08:00
Nguyen Anh Quynh
0640b35943
mips: remove qemu/hw/mips/mips_int.c
2017-01-19 13:07:28 +08:00
Nguyen Anh Quynh
a154b251e3
cleanup
2017-01-19 12:18:46 +08:00
Nguyen Anh Quynh
326a9a5fba
cleanup qemu docs
2017-01-18 15:23:40 +08:00
Elton G
47150b6df3
reg_read and reg_write now work with registers W0 through W30 in Aarch64 ( #716 )
...
* reg_read and reg_write now work with registers W0 through W30 in Aarch64 emulaton
* Added a regress test for the ARM64 reg_read and reg_write on 32-bit registers (W0-W30)
Added a new macro in uc_priv.h (WRITE_DWORD_TO_QWORD), in order to write to the lower 32 bits of a 64 bit value without overwriting the whole value when using reg_write
* Fixed WRITE_DWORD macro
reg_write would zero out the high order bits when writing to 32 bit registers
e.g. uc.reg_write(UC_X86_REG_EAX, 0) would also set register RAX to zero
2017-01-15 20:13:35 +08:00
Nguyen Anh Quynh
7512ff57de
more cleanup
2017-01-10 16:29:47 +08:00
Nguyen Anh Quynh
c1f39c3db2
cleanup qemu/util code
2017-01-10 12:57:12 +08:00
Nguyen Anh Quynh
af165d254c
clean all qobject json code
2017-01-09 16:09:53 +08:00
Nguyen Anh Quynh
16894fdb6c
cleanup some qemu/util code
2017-01-09 15:48:21 +08:00
Nguyen Anh Quynh
52cb0ba78e
cleanup more synchronization code
2017-01-09 14:05:39 +08:00
Nguyen Anh Quynh
d7ead1135d
cleanup
2017-01-09 13:28:28 +08:00
Nguyen Anh Quynh
ffa97dc2a1
cleanup qemu/configure
2017-01-08 01:35:19 +08:00
Agustin Gianni
a63a34bfbc
Allow the client to write to CPSR
2017-01-05 00:00:15 +01:00
Nguyen Anh Quynh
2e8fa1dbf6
glib_compat: add guint64 type
2017-01-02 01:24:54 +08:00
Nguyen Anh Quynh
3fa50fc06a
macro GPOINTER_TO_UINT
2017-01-02 01:00:11 +08:00
Nguyen Anh Quynh
d5f513cbfe
Merge branch 'master' into noglib2
2016-12-27 22:49:59 +08:00
cojocar
428cb83060
Support for MCLASS ARM cpu (Cortex-M3) ( #700 )
...
Support for Cortex-M ARM CPU already exists in Qemu. This patch just
exposes a "cortex-m3" CPU.
"uc_open(UC_ARCH_ARM, UC_MODE_THUMB | UC_MODE_MCLASS, &uc);"
Instantiates a CPU with this feature on.
Signed-off-by: Lucian Cojocar <lucian@cojocar.com>
2016-12-27 22:49:06 +08:00
Nguyen Anh Quynh
3fb078c555
glib_compat: add COPYING_GLIB
2016-12-27 10:15:08 +08:00
Nguyen Anh Quynh
9b809601ec
glib_compat: code style
2016-12-27 00:13:27 +08:00
Nguyen Anh Quynh
520f335a2a
glib_compat: lift string functions from glib. remove unused API g_win32_error_message()
2016-12-26 22:36:47 +08:00
Nguyen Anh Quynh
c5b8fbfbc6
glib_compat: FALSE = 0
2016-12-26 22:02:34 +08:00
Nguyen Anh Quynh
e4382c0467
glib_compat: lift hash functions from glib
2016-12-26 20:12:01 +08:00
Nguyen Anh Quynh
fba6046fd0
glib_compat: lift g_list_sort() & g_slist_sort() from glib code
2016-12-26 18:32:02 +08:00
Nguyen Anh Quynh
cb40e6a3f5
glib_compat: some minor fixes
2016-12-26 18:13:46 +08:00
Nguyen Anh Quynh
6b57da1fc2
glib_compat: make the API compatible with glib
2016-12-26 01:35:42 +08:00
Nguyen Anh Quynh
5777c4f3fd
Merge branch 'noglib' of https://github.com/unicorn-engine/unicorn into noglib
2016-12-22 12:13:53 +08:00
Nguyen Anh Quynh
9371ae7dd7
cleanup glib_compat
2016-12-22 12:13:31 +08:00
Chris Eagle
fccbcfd4c2
revert to use of g_free to make future qemu integrations easier ( #695 )
...
* revert to use of g_free to make future qemu integrations easier
* bracing
2016-12-21 22:28:36 +08:00
Nguyen Anh Quynh
6a2eb14ff3
Merge pull request #693 from cseagle/noglib
...
add g_free to make future integration easier
2016-12-21 08:50:52 +08:00
Chris Eagle
bfaf8f3441
add g_free to make future integration easier
2016-12-20 12:27:15 -08:00
Nguyen Anh Quynh
14d04493f1
Merge branch 'noglib' of https://github.com/cseagle/unicorn into noglib
2016-12-20 11:33:46 +08:00
Nguyen Anh Quynh
6d747d1a13
remove pkg-config dependency
2016-12-20 11:30:26 +08:00
Chris Eagle
f8f9e993a8
merge upstream/noglib and update some glib related types
2016-12-19 12:32:06 -08:00
Chris Eagle
e07e57a862
battling git
2016-12-19 12:10:02 -08:00