diff options
author | Damien George <damien.p.george@gmail.com> | 2014-03-31 11:59:23 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-03-31 11:59:23 +0100 |
commit | 523b575039d96d63669ad8c1fa318ba4db046aca (patch) | |
tree | bc191c86845b3c5714d11f24e8848f22020308e5 /py/bc0.h | |
parent | 3056509e00c02e4faef44d90bf3953dcf0b0d4a0 (diff) |
py: Add LOAD_NULL bytecode and use it to simplify function calls.
Adding this bytecode allows to remove 4 others related to
function/method calls with * and ** support. Will also help with
bytecodes that make functions/closures with default positional and
keyword args.
Diffstat (limited to 'py/bc0.h')
-rw-r--r-- | py/bc0.h | 21 |
1 files changed, 9 insertions, 12 deletions
@@ -11,6 +11,7 @@ #define MP_BC_LOAD_CONST_ID (0x17) // qstr #define MP_BC_LOAD_CONST_BYTES (0x18) // qstr #define MP_BC_LOAD_CONST_STRING (0x19) // qstr +#define MP_BC_LOAD_NULL (0x1a) #define MP_BC_LOAD_FAST_0 (0x20) #define MP_BC_LOAD_FAST_1 (0x21) @@ -84,18 +85,14 @@ #define MP_BC_YIELD_VALUE (0x82) #define MP_BC_YIELD_FROM (0x83) -#define MP_BC_MAKE_FUNCTION (0x90) // uint -#define MP_BC_MAKE_CLOSURE (0x91) // uint -#define MP_BC_CALL_FUNCTION (0x92) // uint -#define MP_BC_CALL_FUNCTION_VAR (0x93) // uint -#define MP_BC_CALL_FUNCTION_KW (0x94) // uint -#define MP_BC_CALL_FUNCTION_VAR_KW (0x95) // uint -#define MP_BC_CALL_METHOD (0x96) // uint -#define MP_BC_CALL_METHOD_VAR (0x97) // uint -#define MP_BC_CALL_METHOD_KW (0x98) // uint -#define MP_BC_CALL_METHOD_VAR_KW (0x99) // uint -#define MP_BC_MAKE_FUNCTION_DEFARGS (0x9a) // uint -#define MP_BC_MAKE_CLOSURE_DEFARGS (0x9b) // uint +#define MP_BC_MAKE_FUNCTION (0x90) // uint +#define MP_BC_MAKE_FUNCTION_DEFARGS (0x91) // uint +#define MP_BC_MAKE_CLOSURE (0x92) // uint +#define MP_BC_MAKE_CLOSURE_DEFARGS (0x93) // uint +#define MP_BC_CALL_FUNCTION (0x94) // uint +#define MP_BC_CALL_FUNCTION_VAR_KW (0x95) // uint +#define MP_BC_CALL_METHOD (0x96) // uint +#define MP_BC_CALL_METHOD_VAR_KW (0x97) // uint #define MP_BC_IMPORT_NAME (0xe0) // qstr #define MP_BC_IMPORT_FROM (0xe1) // qstr |