Statistics
| Branch: | Revision:

root / tcg @ b3a1be87

Name Size
  arm
  hppa
  i386
  ia64
  mips
  ppc
  ppc64
  s390
  sparc
  tci
LICENSE 146 Bytes
README 15.6 kB
TODO 394 Bytes
optimize.c 29.5 kB
tcg-op.h 84.7 kB
tcg-opc.h 9.3 kB
tcg-runtime.h 706 Bytes
tcg.c 81.5 kB
tcg.h 19.2 kB

Latest revisions

# Date Author Comment
b3a1be87 10/31/2012 11:20 pm Aurelien Jarno

tcg: don't remove op if output needs to be synced to memory

Commit 9c43b68de628a1e2cba556adfb71c17028eb802e do not correctly check
for dead outputs when they need to be synced to memory in case of
half-dead operations.

Fix that by applying the same pattern than for the default case....

3585317f 10/30/2012 01:34 am Aurelien Jarno

tcg/mips: use MUL instead of MULT on MIPS32 and above

MIPS32 and later instruction sets have a multiplication instruction
directly operating on GPRs. It only produces a 32-bit result but
it is exactly what is needed by QEMU.

Reviewed-by: Richard Henderson <>...

44b37ace 10/28/2012 03:54 pm Richard Henderson

tcg-i386: Use %gs prefixes for x86_64 GUEST_BASE

When we allocate a reserved_va for the guest, the kernel will likely
choose an address well above 4G. At which point we must use a pair
of movabsq+addq to form the host address. If we have OS support,
set up a segment register to point to guest_base instead....

b393ab42 10/28/2012 03:54 pm Aurelien Jarno

tcg: remove compatiblity call flags

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

78505279 10/28/2012 03:54 pm Aurelien Jarno

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,...

7dfd8c6a 10/28/2012 03:54 pm Aurelien Jarno

tcg: start with local temps in TEMP_VAL_MEM state

Start with local temps in TEMP_VAL_MEM state, to make possible a later
check that all the temps are correctly saved back to memory.

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

2c0366f0 10/28/2012 03:54 pm Aurelien Jarno

tcg: don't explicitly save globals and temps

The liveness analysis ensures that globals and temps are at the correct
state at a basic block end or with an op with side effects. Avoid
looping on all temps, this can be time consuming on targets with a lot
of globals. Keep an assert in debug mode....

344028ba 10/28/2012 03:54 pm Aurelien Jarno

tcg: fix some op flags

Some branch related ops are marked with TCG_OPF_SIDE_EFFECTS, some other
not. In practice they don't need to, as they are all marked with
TCG_OPF_BB_END, which is handled specifically in all the code.

The call op is marked as TCG_OPF_SIDE_EFFECTS, which might be not true...

b202d41e 10/28/2012 03:54 pm Aurelien Jarno

tcg: forbid ld/st function to modify globals

Mapping a memory address using a global and accessing it through
ld/st operations is currently broken. As it doesn't make any sense
to do that performance wise, let's forbid that.

Update the TCG documentation, and remove partial support for that....

3d5c5f87 10/28/2012 03:54 pm Aurelien Jarno

tcg: synchronize globals for ops with side effects

Operations with side effects (in practice qemu_ld/st ops), only need to
synchronize globals to make sure the CPU state is consistent in case of
exception.

Reviewed-by: Richard Henderson <>...

View revisions

Also available in: Atom