mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 06:13:46 +08:00
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-%: dyngen$(EXESUF)
|
||||
subdir-%:
|
||||
$(MAKE) -C $(subst subdir-,,$@) all
|
||||
|
||||
$(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)
|
||||
$(CC) $(LDFLAGS) -o $@ $^ -lz $(LIBS)
|
||||
|
||||
# dyngen host tool
|
||||
dyngen$(EXESUF): dyngen.c
|
||||
$(HOST_CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
# 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 *.o *.d *.a $(TOOLS) dyngen$(EXESUF) TAGS cscope.* *.pod *~ */*~
|
||||
rm -rf dyngen.dSYM
|
||||
rm -f *.o *.d *.a $(TOOLS) TAGS cscope.* *.pod *~ */*~
|
||||
rm -f slirp/*.o slirp/*.d audio/*.o audio/*.d
|
||||
$(MAKE) -C tests clean
|
||||
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
|
||||
#CFLAGS+=-Werror
|
||||
LIBS=
|
||||
DYNGEN=../dyngen$(EXESUF)
|
||||
# user emulator name
|
||||
ifndef TARGET_ARCH2
|
||||
TARGET_ARCH2=$(TARGET_ARCH)
|
||||
@ -186,10 +185,6 @@ all: $(PROGS)
|
||||
# cpu emulator library
|
||||
LIBOBJS=exec.o kqemu.o translate-all.o cpu-exec.o\
|
||||
translate.o host-utils.o
|
||||
ifdef CONFIG_DYNGEN_OP
|
||||
exec.o: dyngen-opc.h
|
||||
LIBOBJS+=op.o
|
||||
endif
|
||||
# TCG code generator
|
||||
LIBOBJS+= tcg/tcg.o tcg/tcg-dyngen.o tcg/tcg-runtime.o
|
||||
CPPFLAGS+=-I$(SRC_PATH)/tcg -I$(SRC_PATH)/tcg/$(ARCH)
|
||||
@ -261,35 +256,15 @@ endif
|
||||
|
||||
# libqemu
|
||||
|
||||
ifdef CONFIG_DYNGEN_OP
|
||||
OPC_H = gen-op.h dyngen-opc.h op.h
|
||||
endif
|
||||
|
||||
libqemu.a: $(LIBOBJS)
|
||||
rm -f $@
|
||||
$(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-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 $@ $<
|
||||
tcg/tcg.o: cpu.h
|
||||
|
||||
machine.o: machine.c
|
||||
$(CC) $(OP_CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||
@ -299,7 +274,7 @@ machine.o: machine.c
|
||||
op_helper.o: op_helper.c
|
||||
$(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 $@ $<
|
||||
|
||||
#########################################################
|
||||
@ -807,7 +782,7 @@ endif
|
||||
$(CC) $(CPPFLAGS) -c -o $@ $<
|
||||
|
||||
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
|
||||
|
||||
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),
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user