Mailing List Archive

python/dist/src/Python newcompile.c,1.1.2.11,1.1.2.12
Update of /cvsroot/python/python/dist/src/Python
In directory usw-pr-cvs1:/tmp/cvs-serv28371

Modified Files:
Tag: ast-branch
newcompile.c
Log Message:
Emit BUILD_LIST, BUILD_TUPLE, and CALL_FUNCTION;
CALL_FUNCTION only handles simple positional arguments.

Also extend the debugging output to print the name of the opcode along
with the number.


Index: newcompile.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/Attic/newcompile.c,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -C2 -d -r1.1.2.11 -r1.1.2.12
*** newcompile.c 30 Sep 2002 22:12:05 -0000 1.1.2.11
--- newcompile.c 1 Oct 2002 19:35:36 -0000 1.1.2.12
***************
*** 82,85 ****
--- 82,87 ----
static PyCodeObject *assemble(struct compiler *);

+ static char *opnames[];
+
#define IS_JUMP(I) ((I)->i_jrel || (I)->i_jabs)

***************
*** 1022,1025 ****
--- 1024,1032 ----
break;
case Call_kind:
+ VISIT(c, expr, e->v.Call.func);
+ n = asdl_seq_LEN(e->v.Call.args);
+ /* XXX other args */
+ VISIT_SEQ(c, expr, e->v.Call.args);
+ ADDOP_I(c, CALL_FUNCTION, n);
break;
case Repr_kind:
***************
*** 1060,1066 ****
--- 1067,1075 ----
case List_kind:
VISIT_SEQ(c, expr, e->v.List.elts);
+ ADDOP_I(c, BUILD_LIST, asdl_seq_LEN(e->v.List.elts));
break;
case Tuple_kind:
VISIT_SEQ(c, expr, e->v.Tuple.elts);
+ ADDOP_I(c, BUILD_TUPLE, asdl_seq_LEN(e->v.Tuple.elts));
break;
}
***************
*** 1226,1231 ****
code = PyString_AS_STRING(a->a_bytecode) + a->a_offset;
fprintf(stderr,
! "emit %3d %5d\toffset = %2d\tsize = %d\text = %d\n",
! i->i_opcode, i->i_oparg, a->a_offset, size, ext);
a->a_offset += size;
if (ext > 0) {
--- 1235,1241 ----
code = PyString_AS_STRING(a->a_bytecode) + a->a_offset;
fprintf(stderr,
! "emit %3d %-10s %5d\toffset = %2d\tsize = %d\text = %d\n",
! i->i_opcode, opnames[i->i_opcode],
! i->i_oparg, a->a_offset, size, ext);
a->a_offset += size;
if (ext > 0) {
***************
*** 1386,1387 ****
--- 1396,1544 ----
return co;
}
+
+ static char *opnames[] = {
+ "STOP_CODE",
+ "POP_TOP",
+ "ROT_TWO",
+ "ROT_THREE",
+ "DUP_TOP",
+ "ROT_FOUR",
+ "<6>",
+ "<7>",
+ "<8>",
+ "<9>",
+ "UNARY_POSITIVE",
+ "UNARY_NEGATIVE",
+ "UNARY_NOT",
+ "UNARY_CONVERT",
+ "<14>",
+ "UNARY_INVERT",
+ "<16>",
+ "<17>",
+ "<18>",
+ "BINARY_POWER",
+ "BINARY_MULTIPLY",
+ "BINARY_DIVIDE",
+ "BINARY_MODULO",
+ "BINARY_ADD",
+ "BINARY_SUBTRACT",
+ "BINARY_SUBSCR",
+ "BINARY_FLOOR_DIVIDE",
+ "BINARY_TRUE_DIVIDE",
+ "INPLACE_FLOOR_DIVIDE",
+ "INPLACE_TRUE_DIVIDE",
+ "SLICE+0",
+ "SLICE+1",
+ "SLICE+2",
+ "SLICE+3",
+ "<34>",
+ "<35>",
+ "<36>",
+ "<37>",
+ "<38>",
+ "<39>",
+ "STORE_SLICE+0",
+ "STORE_SLICE+1",
+ "STORE_SLICE+2",
+ "STORE_SLICE+3",
+ "<44>",
+ "<45>",
+ "<46>",
+ "<47>",
+ "<48>",
+ "<49>",
+ "DELETE_SLICE+0",
+ "DELETE_SLICE+1",
+ "DELETE_SLICE+2",
+ "DELETE_SLICE+3",
+ "<54>",
+ "INPLACE_ADD",
+ "INPLACE_SUBTRACT",
+ "INPLACE_MULTIPLY",
+ "INPLACE_DIVIDE",
+ "INPLACE_MODULO",
+ "STORE_SUBSCR",
+ "DELETE_SUBSCR",
+ "BINARY_LSHIFT",
+ "BINARY_RSHIFT",
+ "BINARY_AND",
+ "BINARY_XOR",
+ "BINARY_OR",
+ "INPLACE_POWER",
+ "GET_ITER",
+ "<69>",
+ "PRINT_EXPR",
+ "PRINT_ITEM",
+ "PRINT_NEWLINE",
+ "PRINT_ITEM_TO",
+ "PRINT_NEWLINE_TO",
+ "INPLACE_LSHIFT",
+ "INPLACE_RSHIFT",
+ "INPLACE_AND",
+ "INPLACE_XOR",
+ "INPLACE_OR",
+ "BREAK_LOOP",
+ "<81>",
+ "LOAD_LOCALS",
+ "RETURN_VALUE",
+ "IMPORT_STAR",
+ "EXEC_STMT",
+ "YIELD_VALUE",
+ "POP_BLOCK",
+ "END_FINALLY",
+ "BUILD_CLASS",
+ "STORE_NAME",
+ "DELETE_NAME",
+ "UNPACK_SEQUENCE",
+ "FOR_ITER",
+ "<94>",
+ "STORE_ATTR",
+ "DELETE_ATTR",
+ "STORE_GLOBAL",
+ "DELETE_GLOBAL",
+ "DUP_TOPX",
+ "LOAD_CONST",
+ "LOAD_NAME",
+ "BUILD_TUPLE",
+ "BUILD_LIST",
+ "BUILD_MAP",
+ "LOAD_ATTR",
+ "COMPARE_OP",
+ "IMPORT_NAME",
+ "IMPORT_FROM",
+ "<109>",
+ "JUMP_FORWARD",
+ "JUMP_IF_FALSE",
+ "JUMP_IF_TRUE",
+ "JUMP_ABSOLUTE",
+ "<114>",
+ "<115>",
+ "LOAD_GLOBAL",
+ "<117>",
+ "<118>",
+ "CONTINUE_LOOP",
+ "SETUP_LOOP",
+ "SETUP_EXCEPT",
+ "SETUP_FINALLY",
+ "<123>",
+ "LOAD_FAST",
+ "STORE_FAST",
+ "DELETE_FAST",
+ "<127>",
+ "<128>",
+ "<129>",
+ "RAISE_VARARGS",
+ "CALL_FUNCTION",
+ "MAKE_FUNCTION",
+ "BUILD_SLICE",
+ "MAKE_CLOSURE",
+ "LOAD_CLOSURE",
+ "LOAD_DEREF",
+ "STORE_DEREF",
+ "<138>",
+ "<139>",
+ "CALL_FUNCTION_VAR",
+ "CALL_FUNCTION_KW",
+ "CALL_FUNCTION_VAR_KW",
+ "EXTENDED_ARG",
+ };