Statistics
| Branch: | Revision:

root / tcg @ 2c17449b

Name Size
  aarch64
  arm
  i386
  ia64
  mips
  ppc
  ppc64
  s390
  sparc
  tci
LICENSE 146 Bytes
README 15.9 kB
TODO 394 Bytes
optimize.c 35.4 kB
tcg-be-ldst.h 3 kB
tcg-be-null.h 1.4 kB
tcg-op.h 92.3 kB
tcg-opc.h 10.1 kB
tcg-runtime.h 825 Bytes
tcg.c 89.5 kB
tcg.h 27.9 kB

Latest revisions

# Date Author Comment
c1de788a 02/08/2014 04:46 pm Peter Maydell

tcg: Add TCGV_UNUSED_PTR, TCGV_IS_UNUSED_PTR, TCGV_EQUAL_PTR

We have macros for marking TCGv values as unused, checking if they
are unused and comparing them to each other. However these only exist
for TCGv_i32 and TCGv_i64; add them for TCGv_ptr as well....

c6830cdb 02/01/2014 11:45 am Richard Henderson

tcg/s390: Remove sigill_handler

Commit c9baa30f42a87f61627391698f63fa4d1566d9d8 failed to
delete all of the relevant code, leading to Werrors about
unused symbols.

Signed-off-by: Richard Henderson <>
Signed-off-by: Michael Tokarev <>

dc08f851 01/30/2014 09:02 pm Peter Maydell

Merge remote-tracking branch 'rth/tcg-movbe' into staging

  • rth/tcg-movbe:
    tcg/i386: cleanup useless #ifdef
    tcg/i386: use movbe instruction in qemu_ldst routines
    tcg/i386: add support for three-byte opcodes
    tcg/i386: remove hardcoded P_REXW value...
18d13fa2 01/30/2014 03:25 pm Alexander Graf

TCG: Fix I64-on-32bit-host temporaries

We have cache pools of temporaries that we can reuse later when they've
already been allocated before.

These cache pools differenciate between the target TCG variable type they
contain. So we have one pool for I32 and one pool for I64 variables....

2d23d5ed 01/26/2014 01:21 am Aurelien Jarno

tcg/i386: cleanup useless #ifdef

TCG_TARGET_HAS_movcond_i32 is always defined to 1 in tcg-target.h, so
remove the corresponding #ifdef #endif sequence, left from a previous
refactoring.

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

085bb5bb 01/26/2014 01:19 am Aurelien Jarno

tcg/i386: use movbe instruction in qemu_ldst routines

The movbe instruction has been added on some Intel Atom CPUs and on
recent Intel Haswell CPUs. It allows to load/store a value and at the
same time bswap it.

This patch detects the avaibility of this instruction and when available...

2a113775 01/26/2014 12:12 am Aurelien Jarno

tcg/i386: add support for three-byte opcodes

Add support for three-byte opcodes, starting with the 0x0f 0x38 prefix.
Use P_EXT38 as the new constant, and shift all other constants so that
P_EXT and P_EXT38 have neighbouring values.

Signed-off-by: Aurelien Jarno <>...

c9d78213 01/26/2014 12:12 am Aurelien Jarno

tcg/i386: remove hardcoded P_REXW value

P_REXW is defined has a constant at the beginning of i386/tcg-target.c,
but the corresponding bit is later used in a harcoded way, which defeat
the purpose of a constant.

Fix that by using a conditional expression operator instead of a shift....

8589467f 12/21/2013 05:41 pm Aurelien Jarno

tcg/i386: fix a comment

The comments apply to 8-bit stores, not 8-byte stores.

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

0ec9eabc 12/10/2013 07:23 pm Richard Henderson

tcg: Use bitmaps for free temporaries

We previously allocated 32-bits per temp for the next_free_temp entry.
We now allocate 4 bits per temp across the 4 bitmaps.

Using a linked list meant that if a translator is tweeked, resulting in
temps being freed in a different order, that would have follow-on effects...

View revisions

Also available in: Atom