Revision 9804c8e2 tcg/README
b/tcg/README | ||
---|---|---|
17 | 17 |
A TCG "function" corresponds to a QEMU Translated Block (TB). |
18 | 18 |
|
19 | 19 |
A TCG "temporary" is a variable only live in a given |
20 |
function. Temporaries are allocated explicitely in each function.
|
|
20 |
function. Temporaries are allocated explicitly in each function. |
|
21 | 21 |
|
22 | 22 |
A TCG "global" is a variable which is live in all the functions. They |
23 | 23 |
are defined before the functions defined. A TCG global can be a memory |
... | ... | |
103 | 103 |
information is used to suppress moves from a dead temporary to |
104 | 104 |
another one. It is also used to remove instructions which compute |
105 | 105 |
dead results. The later is especially useful for condition code |
106 |
optimisation in QEMU.
|
|
106 |
optimization in QEMU.
|
|
107 | 107 |
|
108 | 108 |
In the following example: |
109 | 109 |
|
... | ... | |
118 | 118 |
that some results of a computation are indeed not useful. With the |
119 | 119 |
macro system, the user can provide several alternative |
120 | 120 |
implementations which are used depending on the used results. It is |
121 |
especially useful for condition code optimisation in QEMU.
|
|
121 |
especially useful for condition code optimization in QEMU.
|
|
122 | 122 |
|
123 | 123 |
Here is an example: |
124 | 124 |
|
... | ... | |
413 | 413 |
TCG is backward compatible with QEMU "dyngen" operations. It means |
414 | 414 |
that TCG instructions can be freely mixed with dyngen operations. It |
415 | 415 |
is expected that QEMU targets will be progressively fully converted to |
416 |
TCG. Once a target is fully converted to dyngen, it will be possible
|
|
416 |
TCG. Once a target is fully converted to TCG, it will be possible
|
|
417 | 417 |
to apply more optimizations because more registers will be free for |
418 | 418 |
the generated code. |
419 | 419 |
|
Also available in: Unified diff