fix stack offset calculation for multianewarray on x86

This commit is contained in:
Joel Dice 2009-03-01 15:39:52 -07:00
parent 7a2bf9b855
commit 1192ef939e

View File

@ -3427,9 +3427,11 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
if (UNLIKELY(t->exception)) return;
PROTECT(t, class_);
unsigned offset = localOffset
(t, localSize(t, context->method) + c->index(c->top()),
context->method) / BytesPerWord;
unsigned offset
= (localOffset
(t, localSize(t, context->method) + c->index(c->top()),
context->method) / BytesPerWord)
+ t->arch->frameReturnAddressSize();
Compiler::Operand* result = c->call
(c->constant(getThunk(t, makeMultidimensionalArrayThunk)),