Richard Henderson
dd1ec408e5
target-*: Increment num_insns immediately after tcg_gen_insn_start
...
This does tidy the icount test common to all targets.
Backports commit 959082fc4a93a016a6b697e1e0c2b373d8a3a373 from qemu
2018-02-11 12:46:30 -05:00
Richard Henderson
a64d0ff657
target-*: Unconditionally emit tcg_gen_insn_start
...
While we're at it, emit the opcode adjacent to where we currently
record data for search_pc. This puts gen_io_start et al on the
"correct" side of the marker.
Backports commit 667b8e29c5b1d8c5b4e6ad5f780ca60914eb6e96 from qemu
2018-02-11 12:41:20 -05:00
Lioncash
b3f9ff667b
tcg: Rename debug_insn_start to insn_start
...
With an eye toward making it mandatory.
Backports commit 765b842adec4c5a359e69ca08785553599f71496 from qemu
2018-02-11 12:34:01 -05:00
Richard Henderson
232632e76c
tcg: Change translator-side labels to a pointer
...
This is improved type checking for the translators -- it's no longer
possible to accidentally swap arguments to the branch functions.
Note that the code generating backends still manipulate labels as int.
With notable exceptions, the scope of the change is just a few lines
for each target, so it's not worth building extra machinery to do this
change in per-target increments.
Backports commit 42a268c241183877192c376d03bd9b6d527407c7 from qemu
2018-02-09 14:17:56 -05:00
Lioncash
0273e6ae18
tcg: Put opcodes in a linked list
...
The previous setup required ops and args to be completely sequential,
and was error prone when it came to both iteration and optimization.
2018-02-09 12:54:05 -05:00
Richard Henderson
a41b9acc0c
tcg: Introduce tcg_op_buf_count and tcg_op_buf_full
...
The method by which we count the number of ops emitted
is going to change. Abstract that away into some inlines.
Backports commit fe700adb3db5b028b504423b946d4ee5200a8f2f from qemu.
2018-02-09 09:31:17 -05:00
Richard Henderson
78378289e3
tcg: Move emit of INDEX_op_end into gen_tb_end
...
Backports commit 0a7df5da986bd7ee0789f2d7b8611f2e8eee5046 from qemu
2018-02-09 08:51:01 -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
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
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
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
fac6a66860
platform.h move #3
2017-01-21 00:13:21 +11:00
xorstream
1aeaf5c40d
This code should now build the x86_x64-softmmu part 2.
2017-01-19 22:50:28 +11: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
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
66619fc6cd
remove call to restore_eflags ( #496 )
2016-04-03 23:08:17 -07:00
Jonas Zaddach
5fa6705d7a
Fixed restoring of eflags after helper call
2016-02-29 22:57:41 +01: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
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
Spl3en
9ca993d8aa
Restore the protected mode check.
2015-12-24 18:39:19 +01:00
Spl3en
4c3ad139ea
( Fix #341 ) SYSENTER instruction is not properly hooked with uc_hook_add in x86 emulation.
...
helper_sysenter in qemu/target-i386/seg_helper.c didn't check properly if a call interrupt callback was registred.
It has been fixed by copying the helper_syscall behavior.
2015-12-24 16:00:22 +01:00
farmdve
65a649dec0
Fix issue #269
...
Patch from here
http://lists.nongnu.org/archive/html/qemu-devel/2015-11/msg03848.html
Also fix another potential issue with constants from
bbeb82395e (diff-9e0011b4d4a5890b309421630e6d86c3)
2015-11-17 18:34:38 +02:00
Nguyen Anh Quynh
edaea7020b
x86: on self-modifying code, generate JIT code until end of block. this fixes issue #266
2015-11-16 21:55:42 +08:00
farmdve
1ba39a582c
change tabs to whitespaces...
2015-11-13 16:53:01 +02:00
farmdve
661714d0c2
Potential fix for issue #262/#263
2015-11-13 16:51:59 +02:00
Nguyen Anh Quynh
938d0b89eb
x86: check for exit request after every hooked instruction. this should fix issue #232
2015-11-07 01:02:45 +08:00
Nguyen Anh Quynh
886946dcf4
do not use syscall to quit emulation. this can fix issues #147 & #148
2015-09-26 16:49:00 +08:00
Nguyen Anh Quynh
a166c24f8e
x86: correct EIP of INT instruction by updating it only after calling interrupt handler
2015-09-06 14:58:11 +08:00
Jonathon Reinhart
bd0a6921cc
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-09-02 21:04:43 -04:00
Nguyen Anh Quynh
a94e31165d
x86: fix issue #95
2015-09-02 12:00:43 +08:00
Ryan Hileman
db8f499fe9
fix crash on some SSE instructions
2015-09-01 19:12:51 -07:00
Jonathon Reinhart
2c802a3e4b
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
...
# Conflicts:
# qemu/target-i386/unicorn.c
2015-09-01 13:17:03 -04:00
Jonathon Reinhart
3bd705a060
Merge remote-tracking branch 'upstream/master' into change-handle-based-api
2015-08-30 00:23:51 -04:00
mothran
79184ff23d
Merge branch 'master' of github.com:unicorn-engine/unicorn into fpip_update
2015-08-28 23:40:25 -07:00
mothran
feb8ced027
fixed the FPIP updates to correctly only work with non-control instructions and make sure the pc addr is correct
2015-08-28 10:39:11 -07:00
mothran
933ef379b4
restricted fpip updates to only non-control instructions
2015-08-28 03:19:10 -07:00
Nguyen Anh Quynh
4a1c5ff071
x86: verify until address early when translating block in frontend. this should fix issue #63
2015-08-28 16:06:06 +08:00
mothran
59b09a71bf
first shot at getting FPIP working, need to remove all FP control instructions from being updated
2015-08-27 21:54:23 -07:00
Jonathon Reinhart
b57662e43d
change uch to uc_struct (target-i386)
2015-08-26 09:02:16 -04:00
Nguyen Anh Quynh
c3e95ec34e
x86: do not generate basic-block callback when translation is broken in the middle due to full cache
2015-08-25 14:50:55 +08:00
Nguyen Anh Quynh
344d016104
import
2015-08-21 15:04:50 +08:00