summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-27 08:21:21 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-27 08:21:21 +0000
commitc44e2cdd58efbe13ed3b57cd56f98fc81ea64c2e (patch)
treeabdc14d507681448910f39bd422f65296ed9b8ce /insns.def
parent35ecb83d413f5d7143dd269b2d591cb742526a90 (diff)
* vm_evalbody.ci: support OPT_CALL_THREADED_CODE.
* insns.def, vm.c, vm.h: ditto. * vm.h: add VM_CFP_CNT() and VM_SP_CNT(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def12
1 files changed, 8 insertions, 4 deletions
diff --git a/insns.def b/insns.def
index 8bd52fa496..a8bec163e1 100644
--- a/insns.def
+++ b/insns.def
@@ -1325,8 +1325,8 @@ leave
{
if (OPT_CHECKED_RUN) {
if (reg_cfp->sp != reg_cfp->bp) {
- rb_bug("Stack consistency error (sp: %p, bp: %p)",
- reg_cfp->sp, reg_cfp->bp);
+ rb_bug("Stack consistency error (sp: %d, bp: %d)",
+ VM_SP_CNT(th, reg_cfp->sp), VM_SP_CNT(th, reg_cfp->bp));
}
}
@@ -1346,8 +1346,12 @@ finish
(VALUE val)
(VALUE val)
{
+#if OPT_CALL_THREADED_CODE
+ rb_bug("unused instruction on OPT_CALL_THREADED_CODE");
+#else
th->cfp++;
return val;
+#endif
}
/**********************************************************/
@@ -1422,7 +1426,7 @@ throw
}
}
th->state = state;
- return (VALUE) NEW_THROW_OBJECT(throwobj, (VALUE) pt, state);
+ THROW_EXCEPTION(NEW_THROW_OBJECT(throwobj, (VALUE) pt, state));
}
else {
/* continue throw */
@@ -1440,7 +1444,7 @@ throw
else {
th->state = FIX2INT(rb_ivar_get(err, idThrowState));
}
- return err;
+ THROW_EXCEPTION(err);
}
/* unreachable */
}