diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-12-07 15:21:23 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-12-07 15:21:23 +0000 |
commit | 86e840eef78d5c6882cfd2befd8571e6cd98782f (patch) | |
tree | a621a817d8e00349959d65a526a6f0ff2b0c4ce7 /tcg/README | |
parent | 955a7dd5e857bdeb1d41893a5ac9c1e02c327382 (diff) |
Remove a few dyngen and dyngen related code
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5914 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'tcg/README')
-rw-r--r-- | tcg/README | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/tcg/README b/tcg/README index bdb44dfd3b..fcdb6014b3 100644 --- a/tcg/README +++ b/tcg/README @@ -60,9 +60,8 @@ add_i32 t0, t1, t2 (t0 <- t1 + t2) - Basic blocks end after branches (e.g. brcond_i32 instruction), goto_tb and exit_tb instructions. -- Basic blocks end before legacy dyngen operations. -- Basic blocks start after the end of a previous basic block, at a - set_label instruction or after a legacy dyngen operation. +- Basic blocks start after the end of a previous basic block, or at a + set_label instruction. After the end of a basic block, the content of temporaries is destroyed, but local temporaries and globals are preserved. @@ -423,18 +422,7 @@ register. target, functions must be able to return 2 values in registers for 64 bit return type. -5) Migration from dyngen to TCG - -TCG is backward compatible with QEMU "dyngen" operations. It means -that TCG instructions can be freely mixed with dyngen operations. It -is expected that QEMU targets will be progressively fully converted to -TCG. Once a target is fully converted to TCG, it will be possible -to apply more optimizations because more registers will be free for -the generated code. - -The exception model is the same as the dyngen one. - -6) Recommended coding rules for best performance +5) Recommended coding rules for best performance - Use globals to represent the parts of the QEMU CPU state which are often modified, e.g. the integer registers and the condition @@ -442,8 +430,7 @@ The exception model is the same as the dyngen one. - Avoid globals stored in fixed registers. They must be used only to store the pointer to the CPU state and possibly to store a pointer - to a register window. The other uses are to ensure backward - compatibility with dyngen during the porting a new target to TCG. + to a register window. - Use temporaries. Use local temporaries only when really needed, e.g. when you need to use a value after a jump. Local temporaries |