| Branch: | Revision:

root / tci.c @ feature-archipelago

History | View | Annotate | Download (35.6 kB)

# Date Author Comment
3df2b8fd 09/25/2013 10:23 pm Stefan Weil

misc: Use new rotate functions

Signed-off-by: Stefan Weil <>

d285bf78 09/25/2013 10:22 pm Stefan Weil

tci: Add implementation of rotl_i64, rotr_i64

It is used by qemu-ppc64 when running Debian's busybox-static.

Cc: qemu-stable <>
Signed-off-by: Stefan Weil <>
Reviewed-by: Richard Henderson <>

07ac4dc5 09/20/2013 07:09 pm Stefan Weil

tci: Fix qemu-alpha on 32 bit hosts (wrong assertions)

Debian busybox-static for alpha has a load address of 0x0000000120000000
which is mapped to 0x0000000020000000 for 32 bit hosts.

qemu-alpha uses the TCG opcodes qemu_ld32, qemu_ld64, qemu_st32 and
qemu_st64 which all raise the assertion (taddr == host_addr)....

04d5a1da 09/02/2013 07:08 pm Richard Henderson

tcg: Change tcg_qemu_tb_exec return to uintptr_t

Reviewed-by: Aurelien Jarno <>
Signed-off-by: Richard Henderson <>

03fc0548 04/11/2013 08:58 pm Richard Henderson

tci: Use 32-bit signed offsets to loads/stores

Since the change to tcg_exit_req, the first insn of every TB is
a load with a negative offset from env.

Signed-off-by: Richard Henderson <>
Signed-off by: Stefan Weil <>

76487468 04/11/2013 08:58 pm Richard Henderson

tci: Use a local variable for env

Since we have total conversion away from global AREG0, we do not
need a global variable named "env". Retain that name as the
function parameter inside the interpreter.

Signed-off-by: Richard Henderson <>...

dea8fde8 04/11/2013 08:58 pm Richard Henderson

tci: Avoid code before declarations

This only valid with c99 extensions enabled, and easy to avoid.

Signed-off-by: Richard Henderson <>
Signed-off by: Stefan Weil <>

ee79c356 04/11/2013 08:58 pm Richard Henderson

tci: Make tcg temporaries local to tcg_qemu_tb_exec

We're moving away from the temporaries stored in env. Make sure we can
differentiate between temp stores and possibly bogus stores for extra
call arguments. Move TCG_AREG0 and TCG_REG_CALL_STACK out of the way...

022c62cb 12/19/2012 09:31 am Paolo Bonzini

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

c6c5063c 11/24/2012 09:52 pm Richard Henderson

tci: Fix type of tci_read_label

Fixes the pointer truncation that was occurring for branches.

Cc: Stefan Weil <>
Cc: Blue Swirl <>
Signed-off-by: Richard Henderson <>
Reviewed-by: Stefan Weil <>...

e24dc9fe 11/18/2012 10:40 pm Stefan Weil

tci: Support deposit operations

The operations for INDEX_op_deposit_i32 and INDEX_op_deposit_i64
are now supported and enabled by default.

Signed-off-by: Stefan Weil <>
Signed-off-by: Blue Swirl <>

626cd050 10/06/2012 07:47 pm Aurelien Jarno

tcg: remove obsolete jmp op

The TCG jmp operation doesn't really make sense in the QEMU context, it
is unused, it is not implemented by some targets, and it is wrongly
implemented by some others.

This patch simply removes it.

Reviewed-by: Richard Henderson <>...

6673f47d 09/27/2012 10:28 pm Stefan Weil

tci: Fix for AREG0 free mode

Support for helper functions with 5 arguments was missing
in the code generator and in the interpreter.

There is no need to pass the constant TCG_AREG0 from the
code generator to the interpreter. Remove that code for
the INDEX_op_qemu_st* opcodes....

89c33337 09/15/2012 08:51 pm Blue Swirl

Remove unused CONFIG_TCG_PASS_AREG0 and dead code

Now that CONFIG_TCG_PASS_AREG0 is enabled for all targets,
remove dead code and support for !CONFIG_TCG_PASS_AREG0 case.

Remove dyngen-exec.h and all references to it. Although included by
hw/spapr_hcall.c, it does not seem to use it....

6a69226f 06/22/2012 12:34 pm Stefan Weil

tci: Support INDEX_op_bswap64_i64

Running the Windows 7 (64 bit) boot process needs INDEX_op_bswap64_i64.
It was already implemented, but untested. Remove the TODO statement.

Signed-off-by: Stefan Weil <>
Signed-off-by: Stefan Hajnoczi <>

17904bcf 05/08/2012 07:15 pm Stefan Weil

tci: Fix wrong macro name for debug code

Code which is compiled with CONFIG_TCG_DEBUG (set by configure option
--enable-debug-tcg) should not disable the assert macro by
defining NDEBUG.

With the wrong macro name CONFIG_TCG_DEBUG, all assertions in tci.c...

c3ca0467 04/21/2012 04:28 pm Stefan Weil

tci: GETPC macro must return an uintptr_t

Change the data type of tci_tb_ptr, so GETPC returns an
uintptr_t now (like for all other TCG targets).

This completes commit 2050396801ca0c8359364d61eaadece951006057
and fixes builds with TCI.

Signed-off-by: Stefan Weil <>...

3b2aba2f 04/07/2012 04:44 pm Stefan Weil

tci: Support targets with CONFIG_TCG_PASS_AREG0 (fix broken build)

Builds with --enable-tcg-interpreter failed because more and more
targets (currently alpha and sparc) replaced the global env in AREG0
by function parameters.

Convert the TCG interpreter to use the new helper functions and add...

69784eae 03/17/2012 03:02 pm Stefan Weil

w64: Fix data type of next_tb and tcg_qemu_tb_exec

next_tb is the numeric value of a tcg target (= QEMU host) address.

Using tcg_target_ulong instead of unsigned long shows this and makes
the code portable for hosts with an unusual size of long (w64).

The type cast '(long)(next_tb & ~3)' was not needed (casting...

9349b4f9 03/14/2012 11:20 pm Andreas Färber

Rename CPUState -> CPUArchState

Scripted conversion:
for file in .[hc] hw/.[hc] hw/kvm/*.[hc] linux-user/*.[hc] linux-user/m68k/*.[hc] bsd-user/*.[hc] darwin-user/*.[hc] tcg/*/*.[hc] target-*/cpu.h; do
sed -i "s/CPUState/CPUArchState/g" $file

771142c2 11/14/2011 06:47 pm Richard Henderson

tcg: Standardize on TCGReg as the enum for hard registers

Most targets did not name the enum; tci used TCGRegister.

Signed-off-by: Richard Henderson <>
Reviewed-by: Andreas Färber <>
Reviewed-by: Stefan Weil <>...

7657f4bf 10/31/2011 10:52 pm Stefan Weil

tcg: Add interpreter for bytecode

Signed-off-by: Stefan Weil <>