aboutsummaryrefslogtreecommitdiff
path: root/py/bc0.h
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-03-31 11:59:23 +0100
committerDamien George <damien.p.george@gmail.com>2014-03-31 11:59:23 +0100
commit523b575039d96d63669ad8c1fa318ba4db046aca (patch)
treebc191c86845b3c5714d11f24e8848f22020308e5 /py/bc0.h
parent3056509e00c02e4faef44d90bf3953dcf0b0d4a0 (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.h21
1 files changed, 9 insertions, 12 deletions
diff --git a/py/bc0.h b/py/bc0.h
index 3d4b106d3..80a8248de 100644
--- a/py/bc0.h
+++ b/py/bc0.h
@@ -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