@@ -385,7 +385,7 @@ ops (see @code{target-i386/translate.c}). Some optimizations can be
performed at this stage, including liveness analysis and trivial
constant expression evaluation. TCG ops are then implemented in the
host CPU back end, also known as TCG target (see
-@code{tcg/i386/tcg-target.c}). For more information, please take a
+@code{tcg/i386/tcg-target.inc.c}). For more information, please take a
look at @code{tcg/README}.
@node Condition code optimisations
@@ -460,8 +460,9 @@ function tcg_gen_xxx(args).
4) Backend
-tcg-target.h contains the target specific definitions. tcg-target.c
-contains the target specific code.
+tcg-target.h contains the target specific definitions. tcg-target.inc.c
+contains the target specific code; it is #included by tcg/tcg.c, rather
+than being a standalone C file.
4.1) Assumptions
similarity index 100%
rename from tcg/aarch64/tcg-target.c
rename to tcg/aarch64/tcg-target.inc.c
similarity index 100%
rename from tcg/arm/tcg-target.c
rename to tcg/arm/tcg-target.inc.c
similarity index 100%
rename from tcg/i386/tcg-target.c
rename to tcg/i386/tcg-target.inc.c
similarity index 100%
rename from tcg/ia64/tcg-target.c
rename to tcg/ia64/tcg-target.inc.c
similarity index 100%
rename from tcg/mips/tcg-target.c
rename to tcg/mips/tcg-target.inc.c
similarity index 100%
rename from tcg/ppc/tcg-target.c
rename to tcg/ppc/tcg-target.inc.c
similarity index 100%
rename from tcg/s390/tcg-target.c
rename to tcg/s390/tcg-target.inc.c
similarity index 100%
rename from tcg/sparc/tcg-target.c
rename to tcg/sparc/tcg-target.inc.c
@@ -62,7 +62,8 @@
#include "elf.h"
#include "exec/log.h"
-/* Forward declarations for functions declared in tcg-target.c and used here. */
+/* Forward declarations for functions declared in tcg-target.inc.c and
+ used here. */
static void tcg_target_init(TCGContext *s);
static void tcg_target_qemu_prologue(TCGContext *s);
static void patch_reloc(tcg_insn_unit *code_ptr, int type,
@@ -96,7 +97,7 @@ static void tcg_register_jit_int(void *buf, size_t size,
size_t debug_frame_size)
__attribute__((unused));
-/* Forward declarations for functions declared and used in tcg-target.c. */
+/* Forward declarations for functions declared and used in tcg-target.inc.c. */
static int target_parse_constraint(TCGArgConstraint *ct, const char **pct_str);
static void tcg_out_ld(TCGContext *s, TCGType type, TCGReg ret, TCGReg arg1,
intptr_t arg2);
@@ -250,7 +251,7 @@ TCGLabel *gen_new_label(void)
return l;
}
-#include "tcg-target.c"
+#include "tcg-target.inc.c"
/* pool based memory allocation */
void *tcg_malloc_internal(TCGContext *s, int size)
@@ -566,7 +566,7 @@ struct TCGContext {
TBContext tb_ctx;
- /* The TCGBackendData structure is private to tcg-target.c. */
+ /* The TCGBackendData structure is private to tcg-target.inc.c. */
struct TCGBackendData *be;
TCGTempSet free_temps[TCG_TYPE_COUNT * 2];
@@ -21,7 +21,7 @@ This is what TCI (Tiny Code Interpreter) does.
2) Implementation
Like each TCG host frontend, TCI implements the code generator in
-tcg-target.c, tcg-target.h. Both files are in directory tcg/tci.
+tcg-target.inc.c, tcg-target.h. Both files are in directory tcg/tci.
The additional file tcg/tci.c adds the interpreter.
@@ -123,7 +123,7 @@ u1 = linux-user-test works
would also improve speed for hosts which support byte alignment).
* A better disassembler for the pseudo code would be nice (a very primitive
- disassembler is included in tcg-target.c).
+ disassembler is included in tcg-target.inc.c).
* It might be useful to have a runtime option which selects the native TCG
or TCI, so QEMU would have to include two TCGs. Today, selecting TCI
Rename the per-architecture tcg-target.c files to tcg-target.inc.c. This makes it clearer that they are not intended to be standalone C files, but are instead #included into another source file. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- qemu-tech.texi | 2 +- tcg/README | 5 +++-- tcg/aarch64/{tcg-target.c => tcg-target.inc.c} | 0 tcg/arm/{tcg-target.c => tcg-target.inc.c} | 0 tcg/i386/{tcg-target.c => tcg-target.inc.c} | 0 tcg/ia64/{tcg-target.c => tcg-target.inc.c} | 0 tcg/mips/{tcg-target.c => tcg-target.inc.c} | 0 tcg/ppc/{tcg-target.c => tcg-target.inc.c} | 0 tcg/s390/{tcg-target.c => tcg-target.inc.c} | 0 tcg/sparc/{tcg-target.c => tcg-target.inc.c} | 0 tcg/tcg.c | 7 ++++--- tcg/tcg.h | 2 +- tcg/tci/README | 4 ++-- tcg/tci/{tcg-target.c => tcg-target.inc.c} | 0 14 files changed, 11 insertions(+), 9 deletions(-) rename tcg/aarch64/{tcg-target.c => tcg-target.inc.c} (100%) rename tcg/arm/{tcg-target.c => tcg-target.inc.c} (100%) rename tcg/i386/{tcg-target.c => tcg-target.inc.c} (100%) rename tcg/ia64/{tcg-target.c => tcg-target.inc.c} (100%) rename tcg/mips/{tcg-target.c => tcg-target.inc.c} (100%) rename tcg/ppc/{tcg-target.c => tcg-target.inc.c} (100%) rename tcg/s390/{tcg-target.c => tcg-target.inc.c} (100%) rename tcg/sparc/{tcg-target.c => tcg-target.inc.c} (100%) rename tcg/tci/{tcg-target.c => tcg-target.inc.c} (100%) diff --git a/tcg/tci/tcg-target.c b/tcg/tci/tcg-target.inc.c similarity index 100% rename from tcg/tci/tcg-target.c rename to tcg/tci/tcg-target.inc.c