Commit cf2be98437dc65eb1608b3dc0ec3aeefd88661ed
1 parent
06b3e1b3
Prepare for op.c removal and zero legacy ops
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4095 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
5 changed files
with
15 additions
and
1 deletions
Makefile.target
| ... | ... | @@ -173,7 +173,10 @@ all: $(PROGS) |
| 173 | 173 | ######################################################### |
| 174 | 174 | # cpu emulator library |
| 175 | 175 | LIBOBJS=exec.o kqemu.o translate-all.o cpu-exec.o\ |
| 176 | - translate.o op.o host-utils.o | |
| 176 | + translate.o host-utils.o | |
| 177 | +ifndef CONFIG_NO_DYNGEN_OP | |
| 178 | +LIBOBJS+=op.o | |
| 179 | +endif | |
| 177 | 180 | # TCG code generator |
| 178 | 181 | LIBOBJS+= tcg/tcg.o tcg/tcg-dyngen.o tcg/tcg-runtime.o |
| 179 | 182 | CPPFLAGS+=-I$(SRC_PATH)/tcg -I$(SRC_PATH)/tcg/$(ARCH) |
| ... | ... | @@ -270,7 +273,9 @@ endif |
| 270 | 273 | |
| 271 | 274 | # libqemu |
| 272 | 275 | |
| 276 | +ifndef CONFIG_NO_DYNGEN_OP | |
| 273 | 277 | OPC_H = gen-op.h dyngen-opc.h op.h |
| 278 | +endif | |
| 274 | 279 | |
| 275 | 280 | libqemu.a: $(LIBOBJS) |
| 276 | 281 | rm -f $@ | ... | ... |
tcg/tcg-dyngen.c
| ... | ... | @@ -464,6 +464,7 @@ static inline void ia64_apply_fixes (uint8_t **gen_code_pp, |
| 464 | 464 | #endif |
| 465 | 465 | #endif |
| 466 | 466 | |
| 467 | +#ifndef CONFIG_NO_DYNGEN_OP | |
| 467 | 468 | const TCGArg *dyngen_op(TCGContext *s, int opc, const TCGArg *opparam_ptr) |
| 468 | 469 | { |
| 469 | 470 | uint8_t *gen_code_ptr; |
| ... | ... | @@ -480,3 +481,4 @@ const TCGArg *dyngen_op(TCGContext *s, int opc, const TCGArg *opparam_ptr) |
| 480 | 481 | s->code_ptr = gen_code_ptr; |
| 481 | 482 | return opparam_ptr; |
| 482 | 483 | } |
| 484 | +#endif | ... | ... |
tcg/tcg-op.h
tcg/tcg-opc.h
| ... | ... | @@ -21,7 +21,9 @@ |
| 21 | 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
| 22 | 22 | * THE SOFTWARE. |
| 23 | 23 | */ |
| 24 | +#ifndef CONFIG_NO_DYNGEN_OP | |
| 24 | 25 | #include "dyngen-opc.h" |
| 26 | +#endif | |
| 25 | 27 | |
| 26 | 28 | #ifndef DEF2 |
| 27 | 29 | #define DEF2(name, oargs, iargs, cargs, flags) DEF(name, oargs + iargs + cargs, 0) | ... | ... |
tcg/tcg.c
| ... | ... | @@ -1752,6 +1752,8 @@ static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf, |
| 1752 | 1752 | goto next; |
| 1753 | 1753 | case INDEX_op_end: |
| 1754 | 1754 | goto the_end; |
| 1755 | + | |
| 1756 | +#ifndef CONFIG_NO_DYNGEN_OP | |
| 1755 | 1757 | case 0 ... INDEX_op_end - 1: |
| 1756 | 1758 | /* legacy dyngen ops */ |
| 1757 | 1759 | #ifdef CONFIG_PROFILER |
| ... | ... | @@ -1768,6 +1770,7 @@ static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf, |
| 1768 | 1770 | args = dyngen_op(s, opc, args); |
| 1769 | 1771 | } |
| 1770 | 1772 | goto next; |
| 1773 | +#endif | |
| 1771 | 1774 | default: |
| 1772 | 1775 | /* Note: in order to speed up the code, it would be much |
| 1773 | 1776 | faster to have specialized register allocator functions for | ... | ... |