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
This commit is contained in:
parent
955a7dd5e8
commit
86e840eef7
9
Makefile
9
Makefile
@ -36,7 +36,7 @@ all: $(TOOLS) $(DOCS) recurse-all
|
|||||||
|
|
||||||
SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS))
|
SUBDIR_RULES=$(patsubst %,subdir-%, $(TARGET_DIRS))
|
||||||
|
|
||||||
subdir-%: dyngen$(EXESUF)
|
subdir-%:
|
||||||
$(MAKE) -C $(subst subdir-,,$@) all
|
$(MAKE) -C $(subst subdir-,,$@) all
|
||||||
|
|
||||||
$(filter %-softmmu,$(SUBDIR_RULES)): libqemu_common.a
|
$(filter %-softmmu,$(SUBDIR_RULES)): libqemu_common.a
|
||||||
@ -195,15 +195,10 @@ qemu-img$(EXESUF): qemu-img.o qemu-tool.o osdep.o $(BLOCK_OBJS)
|
|||||||
qemu-nbd$(EXESUF): qemu-nbd.o qemu-tool.o osdep.o $(BLOCK_OBJS)
|
qemu-nbd$(EXESUF): qemu-nbd.o qemu-tool.o osdep.o $(BLOCK_OBJS)
|
||||||
$(CC) $(LDFLAGS) -o $@ $^ -lz $(LIBS)
|
$(CC) $(LDFLAGS) -o $@ $^ -lz $(LIBS)
|
||||||
|
|
||||||
# dyngen host tool
|
|
||||||
dyngen$(EXESUF): dyngen.c
|
|
||||||
$(HOST_CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
# avoid old build problems by removing potentially incorrect old files
|
# avoid old build problems by removing potentially incorrect old files
|
||||||
rm -f config.mak config.h op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
|
rm -f config.mak config.h op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
|
||||||
rm -f *.o *.d *.a $(TOOLS) dyngen$(EXESUF) TAGS cscope.* *.pod *~ */*~
|
rm -f *.o *.d *.a $(TOOLS) TAGS cscope.* *.pod *~ */*~
|
||||||
rm -rf dyngen.dSYM
|
|
||||||
rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d
|
rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d
|
||||||
$(MAKE) -C tests clean
|
$(MAKE) -C tests clean
|
||||||
for d in $(TARGET_DIRS); do \
|
for d in $(TARGET_DIRS); do \
|
||||||
|
@ -27,7 +27,6 @@ VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw
|
|||||||
CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH) -MMD -MT $@ -MP -DNEED_CPU_H
|
CPPFLAGS=-I. -I.. -I$(TARGET_PATH) -I$(SRC_PATH) -MMD -MT $@ -MP -DNEED_CPU_H
|
||||||
#CFLAGS+=-Werror
|
#CFLAGS+=-Werror
|
||||||
LIBS=
|
LIBS=
|
||||||
DYNGEN=../dyngen$(EXESUF)
|
|
||||||
# user emulator name
|
# user emulator name
|
||||||
ifndef TARGET_ARCH2
|
ifndef TARGET_ARCH2
|
||||||
TARGET_ARCH2=$(TARGET_ARCH)
|
TARGET_ARCH2=$(TARGET_ARCH)
|
||||||
@ -186,10 +185,6 @@ all: $(PROGS)
|
|||||||
# cpu emulator library
|
# cpu emulator library
|
||||||
LIBOBJS=exec.o kqemu.o translate-all.o cpu-exec.o\
|
LIBOBJS=exec.o kqemu.o translate-all.o cpu-exec.o\
|
||||||
translate.o host-utils.o
|
translate.o host-utils.o
|
||||||
ifdef CONFIG_DYNGEN_OP
|
|
||||||
exec.o: dyngen-opc.h
|
|
||||||
LIBOBJS+=op.o
|
|
||||||
endif
|
|
||||||
# TCG code generator
|
# TCG code generator
|
||||||
LIBOBJS+= tcg/tcg.o tcg/tcg-dyngen.o tcg/tcg-runtime.o
|
LIBOBJS+= tcg/tcg.o tcg/tcg-dyngen.o tcg/tcg-runtime.o
|
||||||
CPPFLAGS+=-I$(SRC_PATH)/tcg -I$(SRC_PATH)/tcg/$(ARCH)
|
CPPFLAGS+=-I$(SRC_PATH)/tcg -I$(SRC_PATH)/tcg/$(ARCH)
|
||||||
@ -261,35 +256,15 @@ endif
|
|||||||
|
|
||||||
# libqemu
|
# libqemu
|
||||||
|
|
||||||
ifdef CONFIG_DYNGEN_OP
|
|
||||||
OPC_H = gen-op.h dyngen-opc.h op.h
|
|
||||||
endif
|
|
||||||
|
|
||||||
libqemu.a: $(LIBOBJS)
|
libqemu.a: $(LIBOBJS)
|
||||||
rm -f $@
|
rm -f $@
|
||||||
$(AR) rcs $@ $(LIBOBJS)
|
$(AR) rcs $@ $(LIBOBJS)
|
||||||
|
|
||||||
translate.o: translate.c cpu.h $(OPC_H)
|
translate.o: translate.c cpu.h
|
||||||
|
|
||||||
translate-all.o: translate-all.c cpu.h $(OPC_H)
|
translate-all.o: translate-all.c cpu.h
|
||||||
|
|
||||||
tcg/tcg.o: cpu.h $(OPC_H)
|
tcg/tcg.o: cpu.h
|
||||||
|
|
||||||
tcg/tcg-dyngen.o: $(OPC_H)
|
|
||||||
|
|
||||||
tcg/tcg-runtime.o: $(OPC_H)
|
|
||||||
|
|
||||||
op.h: op.o $(DYNGEN)
|
|
||||||
$(DYNGEN) -o $@ $<
|
|
||||||
|
|
||||||
dyngen-opc.h: op.o $(DYNGEN)
|
|
||||||
$(DYNGEN) -c -o $@ $<
|
|
||||||
|
|
||||||
gen-op.h: op.o $(DYNGEN)
|
|
||||||
$(DYNGEN) -g -o $@ $<
|
|
||||||
|
|
||||||
op.o: op.c
|
|
||||||
$(CC) $(OP_CFLAGS) $(CPPFLAGS) $(I386_CFLAGS) -c -o $@ $<
|
|
||||||
|
|
||||||
machine.o: machine.c
|
machine.o: machine.c
|
||||||
$(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
$(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||||
@ -299,7 +274,7 @@ machine.o: machine.c
|
|||||||
op_helper.o: op_helper.c
|
op_helper.o: op_helper.c
|
||||||
$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(I386_CFLAGS) -c -o $@ $<
|
$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(I386_CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
cpu-exec.o: cpu-exec.c $(OPC_H)
|
cpu-exec.o: cpu-exec.c
|
||||||
$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
|
$(CC) $(HELPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
@ -807,7 +782,7 @@ endif
|
|||||||
$(CC) $(CPPFLAGS) -c -o $@ $<
|
$(CC) $(CPPFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *.a *~ $(PROGS) gen-op.h dyngen-opc.h op.h nwfpe/*.o fpu/*.o
|
rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o
|
||||||
rm -f *.d */*.d tcg/*.o
|
rm -f *.d */*.d tcg/*.o
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
|
21
tcg/README
21
tcg/README
@ -60,9 +60,8 @@ add_i32 t0, t1, t2 (t0 <- t1 + t2)
|
|||||||
|
|
||||||
- Basic blocks end after branches (e.g. brcond_i32 instruction),
|
- Basic blocks end after branches (e.g. brcond_i32 instruction),
|
||||||
goto_tb and exit_tb instructions.
|
goto_tb and exit_tb instructions.
|
||||||
- Basic blocks end before legacy dyngen operations.
|
- Basic blocks start after the end of a previous basic block, or at a
|
||||||
- Basic blocks start after the end of a previous basic block, at a
|
set_label instruction.
|
||||||
set_label instruction or after a legacy dyngen operation.
|
|
||||||
|
|
||||||
After the end of a basic block, the content of temporaries is
|
After the end of a basic block, the content of temporaries is
|
||||||
destroyed, but local temporaries and globals are preserved.
|
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
|
target, functions must be able to return 2 values in registers for
|
||||||
64 bit return type.
|
64 bit return type.
|
||||||
|
|
||||||
5) Migration from dyngen to TCG
|
5) Recommended coding rules for best performance
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
- Use globals to represent the parts of the QEMU CPU state which are
|
- Use globals to represent the parts of the QEMU CPU state which are
|
||||||
often modified, e.g. the integer registers and the condition
|
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
|
- 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
|
store the pointer to the CPU state and possibly to store a pointer
|
||||||
to a register window. The other uses are to ensure backward
|
to a register window.
|
||||||
compatibility with dyngen during the porting a new target to TCG.
|
|
||||||
|
|
||||||
- Use temporaries. Use local temporaries only when really needed,
|
- Use temporaries. Use local temporaries only when really needed,
|
||||||
e.g. when you need to use a value after a jump. Local temporaries
|
e.g. when you need to use a value after a jump. Local temporaries
|
||||||
|
Loading…
Reference in New Issue
Block a user