Richard Henderson
cb7b19ad26
tcg: Change ts->mem_reg to ts->mem_base
...
Chain the temporaries together via pointers intstead of indices.
The mem_reg value is now mem_base->reg. This will be important later.
This does require that the frame pointer have a global temporary
allocated for it. This is simple bar the existing reserved_regs check.
Backports commit b3a62939561e07bc34493444fa926b6137cba4e8 from qemu
2018-02-08 13:04:48 -05:00
Richard Henderson
6b4b493dae
tcg: Change tcg_global_mem_new_* to take a TCGv_ptr
...
Thus, use cpu_env as the parameter, not TCG_AREG0 directly.
Update all uses in the translators.
Backports commit e1ccc05444676b92c63708096e36582be27fbee1 from qemu
2018-02-08 12:33:33 -05:00
Richard Henderson
afb67fc002
target/arm: Fix aa64 ldp register writeback
...
Backports commit 3e4d91b94ce400326fae0850578d9e9f30a71adb from qemu
2018-02-08 08:29:51 -05:00
Eric Blake
37cdcbf771
maint: Fix macros with broken 'do/while(0); ' usage
2018-02-07 20:27:37 -05:00
Lioncash
0f453b0595
target/arm: Add aa{32, 64}_vfp_{dreg, qreg} helpers
...
Backports commit 9a2b5256ea1f68c89d5da4b54f180f576c2c82d6 from qemu
2018-02-07 10:09:26 -05:00
Lioncash
dd577f5ea5
target/arm: Change the type of vfp.regs
...
Backports commit 3f68b8a5a6862f856524bb347bf348ae364dd43c from qemu
2018-02-07 09:57:43 -05:00
Lioncash
ef07c136b6
target/arm: Add fp16 support to vfp_expand_imm
...
Backports commit 8081796a75414f9ed5ec3d97158e543ed45908ec from qemu.
2018-02-07 09:47:04 -05:00
Lioncash
b55f35ba92
target/arm: Split out vfp_expand_imm
...
Backports commit e90a99fe6bde9b85bff8c052ade51520f20d9bce from qemu.
2018-02-07 09:44:52 -05:00
Lioncash
4c165ed788
translate-a64: Silence unused variable warning
2018-02-06 08:38:01 -05:00
Merry
29d38d7c22
Merge pull request #10 from lioncash/el-busto-ldst-exclusive
...
translate-a64: Backport fix for incorrect load/store exclusive unallocated checks
2018-02-05 20:59:25 +00:00
Merry
b7bb608197
Merge pull request #9 from lioncash/ia64
...
tcg: Drop ia64 host support
2018-02-05 20:59:18 +00:00
Merry
82c4212ce3
Merge pull request #8 from lioncash/optimize
...
Backport REV16 optimizations from qemu
2018-02-05 20:58:58 +00:00
Lioncash
1e451b386a
translate-a64: Backport fix for incorrect load/store exclusive unallocated checks
...
Backports commit e14f0eb12f920fd96b9f79d15cedd437648e8667 from qemu
2018-02-04 23:17:45 -05:00
Lioncash
7f665d8c1e
tcg: Drop ia64 host support
...
Backports commit a46c1244a0d65d5f37fc12e4d42f2479eac87b52 from qemu
2018-02-04 18:33:02 -05:00
Lioncash
5a37b8c28e
Backport optimizations to AArch32's REV16 handling
...
Backports commit 68cedf733ae32363ccf54f0b52c8a424d5ec98ed from qemu
2018-02-04 14:53:28 -05:00
Lioncash
4a8a92bad2
Backport optimizations to AArch64's REV16 handling
...
Backports commits abb1066df313602ef0ca631126bd342d399d5359 and e4256c3cbf7eefebc0bc6e1f472c47c6dd20b996 from qemu.
2018-02-04 14:45:39 -05:00
Lioncash
122d54e23e
Backport the SVE feature flag
...
Backports commit 0d0a16c647650d476219a5e1313dec434f9fbebb in qemu to unicorn
2018-02-02 08:52:15 -05:00
Lioncash
4fb2fbfacf
Backport the JAZELLE feature flag
...
Backports commit c99a55d38dd5b5131f3fcbbaf41828a09ee62544 in qemu to unicorn
2018-02-02 08:50:18 -05:00
Lioncash
84319130cd
Backport the M_SECURITY feature flag
...
Backports relevant parts from commit 1e577cc7cffd3de14dbd321de5c3ef191c6ab07f in qemu to unicorn
2018-02-02 08:44:46 -05:00
Lioncash
20038fb801
Backport the PMU feature flag
...
Backports the applicable code from commit 929e754d5a621cd53f30e69b766ccf381b58d124 to unicorn
2018-02-02 08:28:27 -05:00
Lioncash
35100ce4e0
Backport the VBAR feature flag
...
Backports commit 91db4642f868cf2e591b62d31a19d35b02ea791e from qemu to unicorn
2018-02-02 08:24:12 -05:00
Lioncash
291b5753eb
Backport the THUMB_DSP feature flag
...
Backports commit 62b44f059a84d1ac580a653fc4110dfabaef6b83 in qemu to unicorn.
2018-02-02 07:59:26 -05:00
Lioncash
438e2836e0
helper_a64: Fix CRC32's implementation
2018-01-29 09:24:36 -05:00
Lioncash
d41b200fd4
A64: Add EOR3 and BCAX support
...
Backported to unicorn from: https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg05003.html
2018-01-25 21:18:36 -05:00
MerryMage
4128f3b259
aarch64: Add FPCR and FPSR registers
2018-01-16 17:37:47 +00:00
MerryMage
f90c819a33
aarch64: Add pstate pseudoregister
2018-01-16 17:37:17 +00:00
bunnei
73f4573535
aarch64: Add exception syndrome pseudo register.
2018-01-03 19:41:12 -05: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
Chris Eagle
e53c295f61
please the gods of brace
2016-12-19 12:02:01 -08:00
Chris Eagle
71bda8e012
stick to gint/guint rather than int32_t/uint32_t
2016-12-19 09:43:35 -08:00
Nguyen Anh Quynh
bd1632e60c
fix an warning 'control may reach end of non-void function'
2016-12-20 00:21:02 +08:00
Nguyen Anh Quynh
16bbe4fb88
do not redefine GHashTable
2016-12-20 00:19:13 +08:00
Nguyen Anh Quynh
04e2e7e845
glib_compat.c: code style
2016-12-19 22:18:33 +08:00
Nguyen Anh Quynh
b19f1607c6
Revert "remove qemu/util/qemu-timer-common.c"
...
This reverts commit 934fa2c90f
.
2016-12-19 20:31:38 +08:00
Nguyen Anh Quynh
b680ee11f8
Revert "remove qemu/util/qemu-timer-common.c"
...
This reverts commit 934fa2c90f
.
2016-12-19 20:30:46 +08:00
Nguyen Anh Quynh
5f81c00559
Merge branch 'noglib' of https://github.com/cseagle/unicorn into cseagle-noglib
2016-12-19 17:32:27 +08:00
Nguyen Anh Quynh
934fa2c90f
remove qemu/util/qemu-timer-common.c
2016-12-19 17:29:25 +08:00
Chris Eagle
5690b7b68f
annotate the hash functions
2016-12-18 19:45:09 -08:00
Chris Eagle
c7bd120650
imlpement key destroy and value destroy callbacks in hash tables
2016-12-18 15:28:11 -08:00
Chris Eagle
e46545f722
remove glib dependency by provide compatible replacements
2016-12-18 14:56:58 -08:00
Nguyen Anh Quynh
e1b65a6edb
cleanup unused code
2016-11-19 23:48:23 +08:00
Nguyen Anh Quynh
1f65b76fbd
fix some compilation warnings regarding typcase of (CPUState *)
2016-10-26 17:05:26 +08:00
Nguyen Anh Quynh
c59e06d798
mips: fix some compilation warnings
2016-10-22 13:36:37 +08:00
Nguyen Anh Quynh
4083b87032
add new hook type UC_HOOK_MEM_READ_AFTER, adapted from PR #399 by @farmdve. updated all bindings, except Ruby & Haskell
2016-10-22 11:19:55 +08:00
Nguyen Anh Quynh
2a608c778e
sparc: fix an compilation warning
2016-10-21 22:32:02 +08:00
Fish
ad7ae63e92
Remove unmapped/freed memory regions from the object property list.
...
This commit fixes the following issues:
- Any unmapped/free'd memory regions (MemoryRegion instances) are not
removed from the object property linked list of its owner (which is
always qdev_get_machine(uc)). This issue makes adding new memory
mapping by calling mem_map() or mem_map_ptr() slower as more and more
memory pages are mapped and unmapped - yes, even if those memory pages
are unmapped, they still impact the speed of future memory page
mappings due to this issue.
- FlatView is not reconstructed after a memory region is freed during
unmapping, which leads to a use-after-free the next time a new memory
region is mapped in address_space_update_topology().
2016-10-20 03:48:58 -07:00
Nguyen Anh Quynh
b7cdbe7a88
Merge branch 'feat/reg_save_restore' of https://github.com/rhelmot/unicorn into rhelmot-feat/reg_save_restore
2016-10-07 09:57:07 +08:00
danghvu
fb9cd97504
memleak: Fix m68k memleak
2016-10-03 14:47:03 -05:00
danghvu
84d99412bc
memleak: Fix Sparc memory leak
2016-10-03 14:23:27 -05:00
Nguyen Anh Quynh
7d15a60b25
arm64: disable deadcode introduced by PR #643
2016-09-29 12:34:44 +08:00
Nguyen Anh Quynh
507d557aa5
arm: disable deadcode introduced by PR #643
2016-09-29 12:33:16 +08:00
Ryan Hileman
cb615fdba7
remove uc->cpus
2016-09-23 07:38:21 -07:00
Nguyen Anh Quynh
69d976375e
Merge branch 'fix/self_modifying' of https://github.com/rhelmot/unicorn into rhelmot-fix/self_modifying
2016-08-30 21:20:22 +08:00
Nguyen Anh Quynh
8b030ae51a
fix for issue #523
2016-08-27 21:49:11 +08:00
Nguyen Anh Quynh
89c9ea5f8f
Merge branch 'fix/eflags' of https://github.com/rhelmot/unicorn into rhelmot-fix/eflags
2016-08-24 16:13:31 +08:00
Nguyen Anh Quynh
40ea64af19
Merge branch 'feat/xmm_regs' of https://github.com/rhelmot/unicorn into rhelmot-feat/xmm_regs
2016-08-23 06:52:45 +08:00
Nguyen Anh Quynh
8e1102f741
Merge pull request #620 from rhelmot/feat/invalid_floatx80_check
...
Port patch from upstream to check for invalid long double encodings
2016-08-21 09:48:26 +08:00
Andrew Dutcher
1f5d14df4d
Port patch from upstream to check for invalid long double encodings
2016-08-20 11:31:46 -07:00
Andrew Dutcher
0ef2b5fd71
New feature: registers can be bulk saved/restored in an opaque blob
2016-08-20 04:14:07 -07:00
Ryan Hileman
f99030179c
fix free() -> g_free()
2016-08-11 07:49:19 -07:00
Andrew Dutcher
3a1f231e8f
eflags patch
2016-08-09 19:38:44 -07:00
Andrew Dutcher
97b10da133
Undo the disaster that was the patch to unicorn github issue #266 and fix it correctly. makes normal self-modifying code work.
2016-08-09 19:35:20 -07:00
Andrew Dutcher
4a8f52ae7f
support xmm registers
2016-08-09 19:34:34 -07:00
Nguyen Anh Quynh
fd39ec465b
arm: sync env.uc->thumb with env.thumb in arm_reg_write()
2016-07-30 13:21:44 +08:00
Nguyen Anh Quynh
a59f54ca72
Merge branch 'master' of https://github.com/esanfelix/unicorn into esanfelix-master
2016-07-30 13:18:37 +08:00
Nguyen Anh Quynh
c61aff1dbe
mips: remove an unused variable
2016-07-15 15:12:15 +08:00
danghvu
bb8f894872
windows: Remove unnecessary mman inclusion (issue #587 )
2016-07-11 13:35:49 -05:00
Hoang-Vu Dang
b9a10152f1
memleak: code_gen_buffer using g_free for non-linux
2016-07-11 10:13:13 -05:00
danghvu
27e0699ef5
mips: Fix memleak
2016-07-09 20:16:00 -05:00
danghvu
117a318188
memleak: missing from refactoring
2016-07-08 12:49:43 -05:00
danghvu
6b9f17f2f7
memleak: refactor unicorn_common.h, move stuff to uc_close
2016-07-08 11:16:23 -05:00
danghvu
ada1c13662
Fix memleak: do not re-initialize halt_cond
2016-07-06 01:49:10 -05:00
Hoang-Vu Dang
de5786f98d
Fix memleak: code_gen_buffer
2016-07-05 23:48:02 -05:00
Hoang-Vu Dang
9a2a5b15d8
Rename unhandled CPU exception
2016-07-05 11:10:39 -05:00
Hoang-Vu Dang
9cdca5a32b
Unhandled interrupt will halt execution
2016-07-04 17:07:57 -05:00
Eloi Sanfelix
3a1c13fda9
Set thumb mode based on PC value in ARM. Mask off last bit of PC.
2016-06-17 13:46:34 +02:00
Nguyen Anh Quynh
40ac55cf74
Merge branch 'drop-zlib' of https://github.com/radare/unicorn into radare-drop-zlib
2016-06-15 16:41:13 +07:00
pancake
fe96e8325b
Remove unused zlib dependency
2016-06-15 09:24:16 +02:00
mkravchik
4b45869437
Reading and writing NEON registers
2016-05-04 11:23:32 +03:00
Nguyen Anh Quynh
f4723916df
remove qemu_cond_destroy from qemu/header_gen.py
2016-04-23 10:23:09 +08:00
Nguyen Anh Quynh
72ba554738
qemu_thread_join() takes only 1 arg
2016-04-23 10:17:04 +08:00
Nguyen Anh Quynh
3a742fb6f6
fix conflicts when merging no-thread to master
2016-04-23 10:06:57 +08:00
Nguyen Anh Quynh
8932463f9d
arm: qutie emulation on EXCP_YIELD exception. this fixes testcase 004-segmentation_fault_1 in #520
2016-04-20 12:04:15 +08:00
Nguyen Anh Quynh
cc6cbc5cf7
Merge branch 'memleak' into m2
2016-04-18 12:48:13 +08:00
Nguyen Anh Quynh
ba31be79f4
update qemu/powerpc.h
2016-04-17 23:37:25 +08:00
Nguyen Anh Quynh
47a7bb3c9f
Merge branch 'smaller_nothreads' of https://github.com/cseagle/unicorn into cseagle-smaller_nothreads
2016-04-17 23:37:06 +08:00
Nguyen Anh Quynh
721f17eb74
Merge branch 'batch_reg' of https://github.com/lunixbochs/unicorn into lunixbochs-batch_reg
2016-04-06 09:39:22 +08:00
Nguyen Anh Quynh
70da2485fc
x86: comment out restore_eflags() because it breaks some executions. see #505
2016-04-06 09:36:06 +08:00
Ryan Hileman
acd88856e1
add batched reg access
2016-04-04 20:51:38 -07:00
Ryan Hileman
66619fc6cd
remove call to restore_eflags ( #496 )
2016-04-03 23:08:17 -07:00
Chris Eagle
3add48feb5
Merge branch 'master' into smaller_nothreads
2016-03-25 19:47:52 -07:00
Chris Eagle
6991d69dad
merge from upstream
2016-03-25 19:46:44 -07:00
Ryan Hileman
977863401e
static -> dynamic code buffer, and shrink 32M->8M
2016-03-25 18:28:03 -07:00
Chris Eagle
9467254fc0
strip out per cpu thread code
2016-03-25 17:24:28 -07:00
Ryan Hileman
f0af8f8282
execute cpus in same thread as uc_emu_start()
...
note: I'm sure this makes some dead code
2016-03-23 22:50:56 -07:00
Chris Eagle
4c4203cec8
fix x86 segment setup by updating cached segment registers on reg_write
2016-03-22 23:54:30 -07:00
Nguyen Anh Quynh
859111f8f5
x86: return immediately after handling FPSW/FPCW/FPTAG registers
2016-03-20 18:15:41 +08:00
Nguyen Anh Quynh
fb1ebac000
Merge branch 'master' into m1
2016-03-09 15:13:42 +08:00
Hiroyuki UEKAWA
c5888e5670
move macros in qemu/target-*/unicorn*.c
to uc_priv.h
2016-03-02 12:43:02 +09:00
Hiroyuki UEKAWA
1cd3c3093b
fix WRITE_BYTE_H
2016-03-02 10:51:50 +09:00
Jonas Zaddach
5fa6705d7a
Fixed restoring of eflags after helper call
2016-02-29 22:57:41 +01:00
Nguyen Anh Quynh
b69feb8d0b
Merge branch 'master' into memleak2
2016-02-15 15:52:10 +08:00
Nguyen Anh Quynh
8962adc9c5
sparc: use power_down to terminate emulation, rather than using trap. this fix hangup issue of tests/regress/sparc_reg.py
2016-02-15 15:51:14 +08:00
Nguyen Anh Quynh
3bd7fa4bfe
chmod -x qemu/target-i386/unicorn.c
2016-02-12 13:48:58 +08:00
coco
95beec805c
fixed memcpy that should be memmove
2016-02-11 16:38:50 +01:00
Nguyen Anh Quynh
b6897e2015
fix a compilation warning
2016-02-11 09:19:08 +08:00
Nguyen Anh Quynh
6478a24404
Merge branch 'gdt_idt' of https://github.com/cseagle/unicorn into cseagle-gdt_idt
2016-02-06 17:31:42 +08:00
Nguyen Anh Quynh
e73cbf1c88
arm: UC_QUERY_MODE return hardware mode (see issue #397 )
2016-02-06 09:47:57 +08:00
Chris Eagle
dec3615d12
ldtr and tr limit is 20 bits, not 16 bits
2016-02-04 19:26:47 -08:00
Chris Eagle
b49358524f
fix reg_read casting for x86 segment registers
2016-02-04 19:22:39 -08:00
Chris Eagle
4cb43be5bf
fix reg_read casting for x86 segment registers
2016-02-04 19:20:59 -08:00
Chris Eagle
49b9f4f8da
uc_x86_mmr type available in qemu/target-i386/unicorn.c
2016-02-04 19:09:41 -08:00
Chris Eagle
c339ced218
file perms
2016-02-04 17:18:24 -08:00
Chris Eagle
f3dc2522a0
read/write of x86 segment registers should modify selector field not base field
2016-02-04 17:17:40 -08:00
Chris Eagle
59f7bf3be7
file perms
2016-02-04 16:48:27 -08:00
Chris Eagle
e59382e030
updated gdtr/idtr/ldtr/tr read/write code
2016-02-04 16:44:52 -08:00
Chris Eagle
9977054a15
add support for setting gdtr, idtr, ldtr, and tr programatically
2016-02-03 09:22:29 -08:00
Nguyen Anh Quynh
20b01a6933
fix merge conflict
2016-02-01 12:08:38 +08:00
Nguyen Anh Quynh
cfaac6921b
c89
2016-02-01 12:05:46 +08:00
danghvu
36e53ad8a1
Fix arm & arm64 memleaks
2016-01-31 16:22:20 -06:00
Nguyen Anh Quynh
c8569d8128
arm: fix change PC feature. now tests/regress/callback-pc.py passes
2016-01-28 16:03:19 +08:00
Nguyen Anh Quynh
5a04bcb115
allow to change PC during callback. this solves issue #210
2016-01-28 14:06:17 +08:00
Nguyen Anh Quynh
e750a4e97c
when uc_mem_exec() remove EXE permission, quit current TB & continue emulating with TB flushed. this fixes issue in PR #378
2016-01-28 00:56:55 +08:00
Nguyen Anh Quynh
48ab148d1c
Merge branch 'hook'
2016-01-26 22:52:29 +08:00
Nguyen Anh Quynh
2341f5dd1a
code style
2016-01-26 17:37:48 +08:00
Willi Ballenthin
a640b76b94
qemu-thread-posix: bail on mutex errors
...
partially addresses #400
2016-01-24 22:46:13 -05:00
Nguyen Anh Quynh
6f3d48077e
rename UC_QUERY_ARM_MODE to a more generic name UC_QUERY_MODE. make all bindings support this new constant
2016-01-24 01:08:23 +08:00
Nguyen Anh Quynh
4dbad9aa9b
add new API uc_query() to query internal status of emulator at runtime
2016-01-23 17:14:44 +08:00
Nguyen Anh Quynh
38d1443504
Merge branch 'hook-refactor' of https://github.com/lunixbochs/unicorn into lunixbochs-hook-refactor
2016-01-23 13:24:12 +08:00
Ryan Hileman
2ac1281f82
rework code/block tracing
2016-01-22 19:07:50 -08:00
Nguyen Anh Quynh
249e2ac0a0
Merge branch 'hook-refactor' of https://github.com/lunixbochs/unicorn into lunixbochs-hook-refactor
2016-01-23 10:58:37 +08:00
Ryan Hileman
0886ae8ede
rework code/block tracing
2016-01-22 18:42:27 -08:00
Ryan Hileman
93052f6566
refactor to allow multiple hooks for one type
2016-01-22 18:41:43 -08:00
xorstream
b4b83ff207
moar fixes
2016-01-23 12:56:47 +11:00
xorstream
d8aaa2f44c
Fixes to runtime arm mask checks
2016-01-23 12:44:12 +11:00
xorstream
678d645b80
Fix uc_mode usage in source code
2016-01-23 12:29:22 +11:00
xorstream
8763d426c2
Fix uc_mode usage in source code
2016-01-23 12:08:49 +11:00
Nguyen Anh Quynh
6490b4f2a9
arm64: fix the issue of multiple definition of aarch64_tb_set_jmp_target (issue #387 )
2016-01-22 22:44:18 +08:00
Nguyen Anh Quynh
309abbe453
remove qemu/config-all-disas.mak
2016-01-22 17:11:57 +08:00
Nguyen Anh Quynh
3eb51116b9
arm64: fix the access to tcg_op_defs[] in arm64 backend (issue #387 )
2016-01-22 11:35:01 +08:00
Nguyen Anh Quynh
840eb54f05
Revert "arm64: fix the access to tcg_op_defs[] in arm64 backend (issue #387 )"
...
This reverts commit 3000ca6abf
.
2016-01-22 11:33:36 +08:00
Nguyen Anh Quynh
3000ca6abf
arm64: fix the access to tcg_op_defs[] in arm64 backend (issue #387 )
2016-01-22 11:33:28 +08:00
Nguyen Anh Quynh
07bd81bda6
do not redefine tb_set_jmp_target1. this partly fixes issue #387
2016-01-22 11:29:22 +08:00
Nguyen Anh Quynh
839ef672b0
only declare use_idiv_instructions_rt when __ARM_ARCH_EXT_IDIV__ is not defined
2016-01-19 00:19:28 +08:00
Nguyen Anh Quynh
3b52af4fbd
avoid confusion between macro & variable use_idiv_instructions (ARM backend)
2016-01-18 23:53:50 +08:00
Nguyen Anh Quynh
d9249b91c2
add some missing symbols for ARM backend
2016-01-18 20:42:45 +08:00
petevine
8db7f79daf
Finish adding getauxval
2016-01-18 12:48:49 +01:00
petevine
1bf85461c2
Add getauxval.c back
2016-01-18 12:47:32 +01:00
Nguyen Anh Quynh
7695fb1578
x86: no need to reset env->invalid_error in x86_reg_reset() as we always do that in cpu_exec()
2016-01-12 01:01:11 +08:00
farmdve
c9f4bd27cc
Reset env->invalid_error before executing a translation block.
2016-01-11 18:12:57 +02:00
Nguyen Anh Quynh
a0aa26d6ee
c89
2016-01-10 23:34:36 +08:00
Nguyen Anh Quynh
580bc7b56a
cleanup
2016-01-10 23:10:00 +08:00
farmdve
036763d6ae
Fix memory leaks as reported by DrMemory and Valgrind.
...
ARM and probably the rest of the arches have significant memory leaks as
they have no release interface.
Additionally, DrMemory does not have 64-bit support and thus I can't
test the 64-bit version under Windows. Under Linux valgrind supports
both 32-bit and 64-bit but there are different macros and code for Linux
and Windows.
2016-01-08 01:42:56 +02:00
Nguyen Anh Quynh
13726b3d40
Merge branch 'master' into cygwin
2016-01-07 23:17:32 +07:00
farmdve
2304bbfc96
Remove more instances of tcg_register_jit
2016-01-07 16:39:41 +02:00
Nguyen Anh Quynh
bfeb08d1ba
fix some compilation warning
2016-01-06 14:11:21 +08:00
Nguyen Anh Quynh
e8a295991f
update qemu/header_gen.py
2016-01-06 00:44:29 +07:00
Nguyen Anh Quynh
e0cb02569e
remove unused tcg_register_jit() and related code
2016-01-05 16:02:34 +07:00
Nguyen Anh Quynh
075ccadbe9
x86: set s->pc in disas_insn() early to fix uninitialized read issue. bug reported by @farmdve
2016-01-03 08:25:51 +07:00
Nguyen Anh Quynh
19930b0514
spaces
2016-01-01 14:15:01 +08:00
Nguyen Anh Quynh
b3ebd1b7cb
Merge branch 'master' of https://github.com/iroiro123/unicorn into iroiro123-master
2016-01-01 14:01:39 +08:00
Nguyen Anh Quynh
f935469658
mips: handle memory redirect for all APIs. this fixes issue #347
2015-12-28 15:19:30 +08:00
Nguyen Anh Quynh
f10d79e95f
x86: fix a compilation warning on unused variable
2015-12-28 13:06:25 +08:00