Richard Henderson
4fcaabf38c
tcg: Remove opcodes instead of noping them out
...
With the linked list scheme we need not leave nops in the stream
that we need to process later.
Backports commit 0c627cdca20155753a536c51385abb73941a59a0 from qemu
2018-02-09 13:03:58 -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
4d46959c3b
tcg: Reduce ifdefs in tcg-op.c
...
Almost completely eliminates the ifdefs in this file, improving
confidence in the lesser used 32-bit builds.
Backports commit 3a13c3f34ce2058e0c2decc3b0f9f56be24c9400 from qemu
2018-02-09 08:35:52 -05:00
Richard Henderson
500c546444
tcg: Move some opcode generation functions out of line
...
Some of these functions are really quite large. We have a number of
things that ought to be circularly dependent, but we duplicated code
to break that chain for the inlines.
This saved 25% of the code size of one of the translators I examined.
2018-02-09 08:10:00 -05:00
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
Lioncash
7f665d8c1e
tcg: Drop ia64 host support
...
Backports commit a46c1244a0d65d5f37fc12e4d42f2479eac87b52 from qemu
2018-02-04 18:33:02 -05:00
darkf
42d0632108
Fix typo in ARM tcg-target.c ( #859 )
2017-07-22 23:36:38 +08:00
Nguyen Anh Quynh
c01dcf0a14
fix merge conflicts
2017-03-10 21:04:33 +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
xorstream
770c5616e2
Automated leading tab to spaces conversion.
2017-01-21 12:28:22 +11:00
xorstream
002151874a
Unicorn interface working with test app in 32bit and 64bit builds.
2017-01-20 17:27:22 +11:00
xorstream
1aeaf5c40d
This code should now build the x86_x64-softmmu part 2.
2017-01-19 22:50:28 +11: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
Chris Eagle
e46545f722
remove glib dependency by provide compatible replacements
2016-12-18 14:56:58 -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
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
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
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
e0cb02569e
remove unused tcg_register_jit() and related code
2016-01-05 16:02:34 +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
b5feddbf1e
indentation
2015-12-28 13:04:59 +08:00
JC Yang
8ef018a2cb
Fix possible wrong conditional branch in generated host code by fixing
...
the tcg_liveness_analysis().
Refer to https://github.com/unicorn-engine/unicorn/issues/287 for further info.
2015-12-21 18:01:01 +08:00
Hiroyuki Uekawa
6445c80b29
Build for Cygwin
2015-12-20 22:00:35 +09: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
Ryan Hileman
ad5cd37551
improve multiarch support
2015-11-11 22:48:21 -08:00
Nguyen Anh Quynh
2b0b4169bc
mips: advance PC for SYSCALL instruction. this fixes issue #157
2015-09-28 10:58:43 +08:00
danghvu
0c67f41ed9
Fix issue #118
2015-09-21 20:30:05 -05:00
Nguyen Anh Quynh
344d016104
import
2015-08-21 15:04:50 +08:00