mirror of
https://github.com/corda/corda.git
synced 2025-01-07 13:38:47 +00:00
fix stack offset calulation for multianewarray
This commit is contained in:
parent
117c89b9ee
commit
412348d938
@ -3427,13 +3427,9 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
|
|||||||
if (UNLIKELY(t->exception)) return;
|
if (UNLIKELY(t->exception)) return;
|
||||||
PROTECT(t, class_);
|
PROTECT(t, class_);
|
||||||
|
|
||||||
unsigned offset = alignedFrameSize(t, context->method)
|
unsigned offset = localOffset
|
||||||
- t->arch->frameHeaderSize()
|
(t, localSize(t, context->method) + c->index(c->top()),
|
||||||
- (localSize(t, context->method)
|
context->method) / BytesPerWord;
|
||||||
- methodParameterFootprint(t, context->method)
|
|
||||||
- 1)
|
|
||||||
+ t->arch->frameReturnAddressSize()
|
|
||||||
- c->index(c->top());
|
|
||||||
|
|
||||||
Compiler::Operand* result = c->call
|
Compiler::Operand* result = c->call
|
||||||
(c->constant(getThunk(t, makeMultidimensionalArrayThunk)),
|
(c->constant(getThunk(t, makeMultidimensionalArrayThunk)),
|
||||||
@ -4185,11 +4181,11 @@ finish(MyThread* t, Allocator* allocator, Context* context)
|
|||||||
strcmp
|
strcmp
|
||||||
(reinterpret_cast<const char*>
|
(reinterpret_cast<const char*>
|
||||||
(&byteArrayBody(t, className(t, methodClass(t, context->method)), 0)),
|
(&byteArrayBody(t, className(t, methodClass(t, context->method)), 0)),
|
||||||
"Arrays") == 0 and
|
"java/lang/Throwable") == 0 and
|
||||||
strcmp
|
strcmp
|
||||||
(reinterpret_cast<const char*>
|
(reinterpret_cast<const char*>
|
||||||
(&byteArrayBody(t, methodName(t, context->method), 0)),
|
(&byteArrayBody(t, methodName(t, context->method), 0)),
|
||||||
"main") == 0)
|
"printStackTrace") == 0)
|
||||||
{
|
{
|
||||||
#ifdef __POWERPC__
|
#ifdef __POWERPC__
|
||||||
asm("trap");
|
asm("trap");
|
||||||
|
Loading…
Reference in New Issue
Block a user