Revision cf2be984
b/Makefile.target | ||
---|---|---|
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 | 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 $@ |
b/tcg/tcg-dyngen.c | ||
---|---|---|
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 | 481 |
s->code_ptr = gen_code_ptr; |
481 | 482 |
return opparam_ptr; |
482 | 483 |
} |
484 |
#endif |
b/tcg/tcg-op.h | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
#include "tcg.h" |
25 | 25 |
|
26 |
#ifndef CONFIG_NO_DYNGEN_OP |
|
26 | 27 |
/* legacy dyngen operations */ |
27 | 28 |
#include "gen-op.h" |
29 |
#endif |
|
28 | 30 |
|
29 | 31 |
int gen_new_label(void); |
30 | 32 |
|
b/tcg/tcg-opc.h | ||
---|---|---|
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) |
b/tcg/tcg.c | ||
---|---|---|
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 | 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 |
Also available in: Unified diff