From 86e840eef78d5c6882cfd2befd8571e6cd98782f Mon Sep 17 00:00:00 2001 From: aurel32 Date: Sun, 7 Dec 2008 15:21:23 +0000 Subject: Remove a few dyngen and dyngen related code Signed-off-by: Aurelien Jarno git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5914 c046a42c-6fe2-441c-8c8c-71466251a162 --- tcg/README | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) (limited to 'tcg/README') 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 -- cgit v1.2.1