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:
aurel32 2008-12-07 15:21:23 +00:00
parent 955a7dd5e8
commit 86e840eef7
4 changed files with 11 additions and 2848 deletions

View File

@ -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 \

View File

@ -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

2794
dyngen.c

File diff suppressed because it is too large Load Diff

View File

@ -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