Statistics
| Branch: | Revision:

root / tcg @ 6fd2a026

Name Size
  arm
  hppa
  i386
  ia64
  mips
  ppc
  ppc64
  s390
  sparc
  tci
LICENSE 146 Bytes
README 15.2 kB
TODO 394 Bytes
optimize.c 25.1 kB
tcg-op.h 83 kB
tcg-opc.h 9.6 kB
tcg-runtime.h 706 Bytes
tcg.c 75.7 kB
tcg.h 17.8 kB

Latest revisions

# Date Author Comment
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....

f813cb83 09/26/2012 01:31 am Aurelien Jarno

tcg/i386: fix build with -march < i686

The movcond_i32 op has to be protected with TCG_TARGET_HAS_movcond_i32
to fix the build with -march < i686.

Thanks to Richard Henderson for the hint.

Reported-by: Alex Barcelo <>
Signed-off-by: Aurelien Jarno <>

0a209d4b 09/26/2012 01:31 am Richard Henderson

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

a463133e 09/26/2012 01:31 am Richard Henderson

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

a80a6b63 09/26/2012 01:31 am Richard Henderson

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 <>
Signed-off-by: Aurelien Jarno <>

d81ada7f 09/26/2012 01:31 am Richard Henderson

tcg: Optimize initial inputs for ori_i64

Copy the same optimizations from ori_i32.

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

6f3bb33e 09/26/2012 01:31 am Richard Henderson

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 <>
Signed-off-by: Aurelien Jarno <>

77276f65 09/26/2012 01:31 am Richard Henderson

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

c552d6c0 09/26/2012 01:31 am Richard Henderson

tcg: Add tcg_debug_assert

Like the C assert macro, except only enabled for CONFIG_DEBUG_TCG,
and without having to set _NDEBUG and disable all other asserts at
the same time.

The use of __builtin_unreachable (when available) gives the compiler
the same information, which may (or may not) help it optimize better....

717e7036 09/26/2012 01:31 am Richard Henderson

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 <>
Signed-off-by: Aurelien Jarno <>

View revisions

Also available in: Atom