micropython/py
Damien George 4112590a60 py, compiler: When just bytecode, make explicit calls instead of table.
When just the bytecode emitter is needed there is no need to have a
dynamic method table for the emitter back-end, and we can instead
directly call the mp_emit_bc_XXX functions.  This gives a significant
reduction in code size and a very slight performance boost for the
compiler.

This patch saves 1160 bytes code on Thumb2 and 972 bytes on x86, when
native emitters are disabled.

Overall savings in code over the last 3 commits are:

bare-arm: 1664 bytes.
minimal:  2136 bytes.
stmhal:    584 bytes (it has native emitter enabled).
cc3200:   1736 bytes.
2015-03-26 16:52:45 +00:00
..
argcheck.c
asmarm.c
asmarm.h
asmthumb.c
asmthumb.h
asmx64.c
asmx64.h
asmx86.c
asmx86.h
bc.c
bc.h
bc0.h
binary.c
binary.h
builtin.h
builtinevex.c
builtinimport.c
compile.c py, compiler: When just bytecode, make explicit calls instead of table. 2015-03-26 16:52:45 +00:00
compile.h
emit.h py, compiler: When just bytecode, make explicit calls instead of table. 2015-03-26 16:52:45 +00:00
emitbc.c py, compiler: When just bytecode, make explicit calls instead of table. 2015-03-26 16:52:45 +00:00
emitcommon.c
emitcpy.c
emitglue.c
emitglue.h
emitinlinethumb.c
emitnative.c
formatfloat.c
formatfloat.h
frozenmod.c
frozenmod.h
gc.c
gc.h
grammar.h
lexer.c
lexer.h
lexerstr.c
lexerunix.c
makeqstrdata.py
malloc.c
map.c
misc.h
mkenv.mk
mkrules.mk
modarray.c
modbuiltins.c
modcmath.c
modcollections.c
modgc.c
modio.c
modmath.c
modmicropython.c
modstruct.c
modsys.c
mpconfig.h
mpstate.c
mpstate.h
mpz.c
mpz.h
nativeglue.c
nlr.h
nlrsetjmp.c
nlrthumb.S
nlrx64.S
nlrx86.S
nlrxtensa.S
obj.c
obj.h
objarray.c
objbool.c
objboundmeth.c
objcell.c
objclosure.c
objcomplex.c
objdict.c
objenumerate.c
objexcept.c
objexcept.h
objfilter.c
objfloat.c
objfun.c
objfun.h
objgenerator.c
objgenerator.h
objgetitemiter.c
objint.c
objint.h
objint_longlong.c
objint_mpz.c
objlist.c
objlist.h
objmap.c
objmodule.c
objmodule.h
objnamedtuple.c
objnone.c
objobject.c
objproperty.c
objrange.c
objreversed.c
objset.c
objslice.c
objstr.c
objstr.h
objstringio.c
objstrunicode.c
objtuple.c
objtuple.h
objtype.c
objtype.h
objzip.c
opmethods.c
parse.c
parse.h
parsenum.c
parsenum.h
parsenumbase.c
parsenumbase.h
pfenv.c
pfenv.h
pfenv_printf.c
py-version.sh
py.mk
qstr.c
qstr.h
qstrdefs.h
repl.c
repl.h
runtime.c
runtime.h
runtime0.h
scope.c
scope.h
sequence.c
showbc.c
smallint.c
smallint.h
stackctrl.c
stackctrl.h
stream.c
stream.h
unicode.c
unicode.h
vm.c
vmentrytable.h
vstr.c
warning.c