#
02eb19d0 |
| 31-Mar-2014 |
Richard Henderson <rth@twiddle.net> |
tcg: Use HOST_WORDS_BIGENDIAN
Instead of rolling a local TCG_TARGET_WORDS_BIGENDIAN.
Signed-off-by: Richard Henderson <rth@twiddle.net>
|
#
662deb90 |
| 26-Mar-2014 |
Richard Henderson <rth@twiddle.net> |
tcg: Fix fallback from muls2_i64 to mulu2_i64
Brown Bag sez, don't put the fallback code into the wrong function. Also, check for muluh_i64 and use tcg_gen_mulu2_i64 instead of raw ops.
Signed-off-
tcg: Fix fallback from muls2_i64 to mulu2_i64
Brown Bag sez, don't put the fallback code into the wrong function. Also, check for muluh_i64 and use tcg_gen_mulu2_i64 instead of raw ops.
Signed-off-by: Richard Henderson <rth@twiddle.net>
show more ...
|
#
f46fc4e6 |
| 26-Mar-2014 |
Richard Henderson <rth@twiddle.net> |
tcg: Use tcg_gen_mulu2_i32 in tcg_gen_muls2_i32
Rather than hard-coding use of mulu2_i32, allow muluh_i32.
Signed-off-by: Richard Henderson <rth@twiddle.net>
|
#
f713d6ad |
| 04-Sep-2013 |
Richard Henderson <rth@twiddle.net> |
tcg: Add qemu_ld_st_i32/64
Step two in the transition, adding the new ldst opcodes. Keep the old opcodes around until all backends support the new opcodes.
Signed-off-by: Richard Henderson <rth@tw
tcg: Add qemu_ld_st_i32/64
Step two in the transition, adding the new ldst opcodes. Keep the old opcodes around until all backends support the new opcodes.
Signed-off-by: Richard Henderson <rth@twiddle.net>
show more ...
|
#
8cfd0495 |
| 20-Aug-2013 |
Richard Henderson <rth@twiddle.net> |
tcg: Change tcg_gen_exit_tb argument to uintptr_t
And update all users.
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Richard Henderson <rth@twiddle.net>
|
#
03271524 |
| 14-Aug-2013 |
Richard Henderson <rth@twiddle.net> |
tcg: Add muluh and mulsh opcodes
Use them in places where mulu2 and muls2 are used. Optimize mulx2 with dead low part to mulxh.
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Ric
tcg: Add muluh and mulsh opcodes
Use them in places where mulu2 and muls2 are used. Optimize mulx2 with dead low part to mulxh.
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Richard Henderson <rth@twiddle.net>
show more ...
|
#
ca675f46 |
| 12-Mar-2013 |
Richard Henderson <rth@twiddle.net> |
tcg: Split rem requirement from div requirement
There are several hosts with only a "div" insn. Remainder is computed manually from the quotient and inputs. We can do this generically.
Reviewed-b
tcg: Split rem requirement from div requirement
There are several hosts with only a "div" insn. Remainder is computed manually from the quotient and inputs. We can do this generically.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
show more ...
|
#
ed605126 |
| 20-Apr-2013 |
Aurelien Jarno <aurelien@aurel32.net> |
tcg: fix deposit_i64 op on 32-bit targets
On 32-bit TCG targets, when emulating deposit_i64 with a mov_i32 + deposit_i32, care should be taken to not overwrite the low part of the second argument be
tcg: fix deposit_i64 op on 32-bit targets
On 32-bit TCG targets, when emulating deposit_i64 with a mov_i32 + deposit_i32, care should be taken to not overwrite the low part of the second argument before the deposit when it is the same the destination.
This fixes the shld instruction in qemu-system-x86_64, which in turns fixes booting "system rescue CD version 2.8.0" on this target.
Reported-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
f402f38f |
| 20-Feb-2013 |
Richard Henderson <rth@twiddle.net> |
tcg: Implement muls2 with mulu2
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
|
#
f6953a73 |
| 20-Feb-2013 |
Richard Henderson <rth@twiddle.net> |
tcg: Implement multiword addition helpers
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
|
#
696a8be6 |
| 20-Feb-2013 |
Richard Henderson <rth@twiddle.net> |
tcg: Implement multiword multiply helpers
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
|
#
3c51a985 |
| 20-Feb-2013 |
Richard Henderson <rth@twiddle.net> |
tcg: Implement a 64-bit to 32-bit extraction helper
We're going to have use for this shortly in implementing other helpers.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Sw
tcg: Implement a 64-bit to 32-bit extraction helper
We're going to have use for this shortly in implementing other helpers.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
show more ...
|
#
afcb92be |
| 07-Dec-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Add TCGV_IS_UNUSED_*
Cc: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Blue Swirl <blauw
tcg: Add TCGV_IS_UNUSED_*
Cc: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
show more ...
|
#
c4afe5c4 |
| 12-Nov-2012 |
Evgeny Voevodin <e.voevodin@samsung.com> |
TCG: Use gen_opparam_ptr from context instead of global variable.
Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <
TCG: Use gen_opparam_ptr from context instead of global variable.
Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
show more ...
|
#
efd7f486 |
| 12-Nov-2012 |
Evgeny Voevodin <e.voevodin@samsung.com> |
TCG: Use gen_opc_ptr from context instead of global variable.
Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blau
TCG: Use gen_opc_ptr from context instead of global variable.
Signed-off-by: Evgeny Voevodin <e.voevodin@samsung.com> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
show more ...
|
#
78505279 |
| 09-Oct-2012 |
Aurelien Jarno <aurelien@aurel32.net> |
tcg: rework TCG helper flags
The current helper flags, TCG_CALL_CONST and TCG_CALL_PURE might be confusing and doesn't provide enough granularity for some helpers (FP helpers for example).
This pat
tcg: rework TCG helper flags
The current helper flags, TCG_CALL_CONST and TCG_CALL_PURE might be confusing and doesn't provide enough granularity for some helpers (FP helpers for example).
This patch changes them into the following helpers flags: - TCG_CALL_NO_READ_GLOBALS means that the helper does not read globals, either directly or via an exception. They will not be saved to their canonical location before calling the helper. - TCG_CALL_NO_WRITE_GLOBALS means that the helper does not modify any globals. They will only be saved to their canonical locations before calling helpers, but they won't be reloaded afterwise. - TCG_CALL_NO_SIDE_EFFECTS means that the call to the function is removed if the return value is not used.
It provides convenience flags, to avoid helper definitions longer than 80 characters. It also provides compatibility flags, and updates the documentation.
Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
1414968a |
| 02-Oct-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Optimize mulu2
Like add2, do operand ordering, constant folding, and dead operand elimination. The latter happens about 15% of all mulu2 during an x86_64 bios boot.
Signed-off-by: Richard Hen
tcg: Optimize mulu2
Like add2, do operand ordering, constant folding, and dead operand elimination. The latter happens about 15% of all mulu2 during an x86_64 bios boot.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
212c328d |
| 02-Oct-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Constant fold add2 and sub2
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
#
0aed257f |
| 24-Sep-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Add TCG_COND_NEVER, TCG_COND_ALWAYS
There are several cases that can be handled easier inside both translators and code generators if we have out-of-band values for conditions. It's easy enoug
tcg: Add TCG_COND_NEVER, TCG_COND_ALWAYS
There are several cases that can be handled easier inside both translators and code generators if we have out-of-band values for conditions. It's easy enough to handle ALWAYS and NEVER in the natural way inside the tcg middle-end.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
a80a6b63 |
| 24-Sep-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Streamline movcond_i64 using movcond_i32
When movcond_i32 is available we can further reduce the generated op count from 12 to 6, and the generated code size on i686 from 88 to 74 bytes.
Signe
tcg: Streamline movcond_i64 using movcond_i32
When movcond_i32 is available we can further reduce the generated op count from 12 to 6, and the generated code size on i686 from 88 to 74 bytes.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
a463133e |
| 24-Sep-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Streamline movcond_i64 using 32-bit arithmetic
Avoiding 64-bit arithmetic (outside of the compare) reduces the generated op count from 15 to 12, and the generated code size on i686 from 105 to
tcg: Streamline movcond_i64 using 32-bit arithmetic
Avoiding 64-bit arithmetic (outside of the compare) reduces the generated op count from 15 to 12, and the generated code size on i686 from 105 to 88 bytes.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
0a209d4b |
| 22-Sep-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Sanity check goto_tb input
Checking that we don't try for idx != [01] is trivial. Checking that we don't issue more than one of any index requires a tad more data and some ifdefs protecting th
tcg: Sanity check goto_tb input
Checking that we don't try for idx != [01] is trivial. Checking that we don't issue more than one of any index requires a tad more data and some ifdefs protecting that new variable.
Signed-off-by: Richard Henderson <rth@twiddle.net> Cc: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
717e7036 |
| 22-Sep-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Sanity check deposit inputs
Given these are constants, checking once here means everything after can assume they're correct.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: A
tcg: Sanity check deposit inputs
Given these are constants, checking once here means everything after can assume they're correct.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
77276f65 |
| 22-Sep-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Implement concat*_i64 with deposit_i64
For tcg_gen_concat_i32_i64 we only use deposit if the host supports it. For tcg_gen_concat32_i64 even if the host does not, as we get identical code befor
tcg: Implement concat*_i64 with deposit_i64
For tcg_gen_concat_i32_i64 we only use deposit if the host supports it. For tcg_gen_concat32_i64 even if the host does not, as we get identical code before and after.
Note that this relies on the ANDI -> EXTU patch for the identity claim.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|
#
6f3bb33e |
| 22-Sep-2012 |
Richard Henderson <rth@twiddle.net> |
tcg: Emit XORI as NOT for appropriate constants
Note that xori_i64 failed to perform even the minimal optimizations promised by the README.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed
tcg: Emit XORI as NOT for appropriate constants
Note that xori_i64 failed to perform even the minimal optimizations promised by the README.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
show more ...
|