ex_table_loop:
ald t2,ExStartPC(t1) /* t2 = exception start pc */
- slt t2,t2,xpc /* t2 = (xpc < startpc) */
- beqz t2,ex_table_cont /* if (true) continue */
+ slt t2,xpc,t2 /* t2 = (xpc < startpc) */
+ bnez t2,ex_table_cont /* if (true) continue */
ald t2,ExEndPC(t1) /* t2 = exception end pc */
- slt t2,t2,xpc /* t2 = (xpc < endpc) */
- bnez t2,ex_table_cont /* if (false) continue */
+ slt t2,xpc,t2 /* t2 = (xpc < endpc) */
+ beqz t2,ex_table_cont /* if (false) continue */
ald a1,ExCatchType(t1) /* arg1 = exception catch type */
beqz a1,ex_handle_it /* NULL catches everything */
Authors: Andreas Krall EMAIL: cacao@complang.tuwien.ac.at
- Last Change: $Id: ngen.c 280 2003-05-09 20:55:46Z stefan $
+ Last Change: $Id: ngen.c 304 2003-05-14 14:04:09Z stefan $
*******************************************************************************/
/* call trace function */
+#if 0
if (runverbose && !isleafmethod) {
M_LDA (REG_SP, REG_SP, -8);
p = dseg_addaddress (method);
M_NOP;
M_LDA(REG_SP, REG_SP, 8);
}
+#endif
/* call monitorenter function */
M_ALD(REG_ITMP2, REG_PV, a);
M_JSR(REG_ITMP2_XPC, REG_ITMP2);
M_NOP;
+ M_NOP; /* nop ensures that XPC is less than the end */
+ /* of basic block */
ALIGNCODENOP;
break;