summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-01 04:05:46 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-01 04:05:46 +0000
commit62872956b6fc70d43c39b0476962b509dbb96de8 (patch)
tree89a9e688e2dd1d0d63e527d2be71ff091f4f07a6 /insns.def
parentb8cb3679bbf1884b43271bc221df61aabe53a6ac (diff)
* insnhelper.h (INC_SP): shouldn't cast ``x'' to unsigned type because
it might be a negative value. * insnhelper.h, insns.def: shoudn't use unary minus operator in index operator. some compilers (such as VC++8 x64) cannot deal it with expected way. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def6
1 files changed, 3 insertions, 3 deletions
diff --git a/insns.def b/insns.def
index 8272f4aac1..ed147a773d 100644
--- a/insns.def
+++ b/insns.def
@@ -806,7 +806,7 @@ setn
(..., VALUE val)
(VALUE val) // inc += 0
{
- GET_SP()[-n] = val;
+ TOPN(n-1) = val;
}
/**
@@ -1183,8 +1183,8 @@ send
id = SYMBOL_P(sym) ? SYM2ID(sym) : rb_to_id(sym);
/* shift arguments */
- for (i=1; i<num; i++) {
- GET_SP()[-num+i-1] = GET_SP()[(-num+i-1)+1];
+ for (i=num-1; i>0; i--) {
+ TOPN(i) = TOPN(i-1);
}
mn = rb_method_node(klass, id);