mirror of
https://github.com/corda/corda.git
synced 2025-01-08 14:03:06 +00:00
fix argument marshalling for floating point helper functions on 32-bit systems
This commit is contained in:
parent
d50e3aaee0
commit
377e2864d9
@ -2147,7 +2147,7 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
|
|||||||
frame->pushLong
|
frame->pushLong
|
||||||
(c->call
|
(c->call
|
||||||
(c->constant(reinterpret_cast<intptr_t>(addDouble)),
|
(c->constant(reinterpret_cast<intptr_t>(addDouble)),
|
||||||
context->indirection, 0, 0, 8, 2, a, b));
|
context->indirection, 0, 0, 8, 4, 0, a, 0, b));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case dcmpg: {
|
case dcmpg: {
|
||||||
@ -2157,7 +2157,7 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
|
|||||||
frame->pushInt
|
frame->pushInt
|
||||||
(c->call
|
(c->call
|
||||||
(c->constant(reinterpret_cast<intptr_t>(compareDoublesG)),
|
(c->constant(reinterpret_cast<intptr_t>(compareDoublesG)),
|
||||||
context->indirection, 0, 0, 4, 2, a, b));
|
context->indirection, 0, 0, 4, 4, 0, a, 0, b));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case dcmpl: {
|
case dcmpl: {
|
||||||
@ -2167,7 +2167,7 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
|
|||||||
frame->pushInt
|
frame->pushInt
|
||||||
(c->call
|
(c->call
|
||||||
(c->constant(reinterpret_cast<intptr_t>(compareDoublesL)),
|
(c->constant(reinterpret_cast<intptr_t>(compareDoublesL)),
|
||||||
context->indirection, 0, 0, 4, 2, a, b));
|
context->indirection, 0, 0, 4, 4, 0, a, 0, b));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case dconst_0:
|
case dconst_0:
|
||||||
@ -2185,7 +2185,7 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
|
|||||||
frame->pushLong
|
frame->pushLong
|
||||||
(c->call
|
(c->call
|
||||||
(c->constant(reinterpret_cast<intptr_t>(divideDouble)),
|
(c->constant(reinterpret_cast<intptr_t>(divideDouble)),
|
||||||
context->indirection, 0, 0, 8, 2, a, b));
|
context->indirection, 0, 0, 8, 4, 0, a, 0, b));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case dmul: {
|
case dmul: {
|
||||||
@ -2195,14 +2195,14 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
|
|||||||
frame->pushLong
|
frame->pushLong
|
||||||
(c->call
|
(c->call
|
||||||
(c->constant(reinterpret_cast<intptr_t>(multiplyDouble)),
|
(c->constant(reinterpret_cast<intptr_t>(multiplyDouble)),
|
||||||
context->indirection, 0, 0, 8, 2, a, b));
|
context->indirection, 0, 0, 8, 4, 0, a, 0, b));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case dneg: {
|
case dneg: {
|
||||||
frame->pushLong
|
frame->pushLong
|
||||||
(c->call
|
(c->call
|
||||||
(c->constant(reinterpret_cast<intptr_t>(negateDouble)),
|
(c->constant(reinterpret_cast<intptr_t>(negateDouble)),
|
||||||
context->indirection, 0, 0, 8, 1, frame->popLong()));
|
context->indirection, 0, 0, 8, 2, 0, frame->popLong()));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case vm::drem: {
|
case vm::drem: {
|
||||||
@ -2212,7 +2212,7 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
|
|||||||
frame->pushLong
|
frame->pushLong
|
||||||
(c->call
|
(c->call
|
||||||
(c->constant(reinterpret_cast<intptr_t>(moduloDouble)),
|
(c->constant(reinterpret_cast<intptr_t>(moduloDouble)),
|
||||||
context->indirection, 0, 0, 8, 2, a, b));
|
context->indirection, 0, 0, 8, 4, 0, a, 0, b));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case dsub: {
|
case dsub: {
|
||||||
@ -2222,7 +2222,7 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
|
|||||||
frame->pushLong
|
frame->pushLong
|
||||||
(c->call
|
(c->call
|
||||||
(c->constant(reinterpret_cast<intptr_t>(subtractDouble)),
|
(c->constant(reinterpret_cast<intptr_t>(subtractDouble)),
|
||||||
context->indirection, 0, 0, 8, 2, a, b));
|
context->indirection, 0, 0, 8, 4, 0, a, 0, b));
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case dup:
|
case dup:
|
||||||
@ -3875,11 +3875,11 @@ finish(MyThread* t, 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)),
|
||||||
"java/nio/ByteBuffer") == 0 and
|
"Floats") == 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)),
|
||||||
"get") == 0)
|
"multiply") == 0)
|
||||||
{
|
{
|
||||||
asm("int3");
|
asm("int3");
|
||||||
}
|
}
|
||||||
|
@ -2255,7 +2255,7 @@ class MyCompiler: public Compiler {
|
|||||||
|
|
||||||
Stack* oldStack = c.state->stack;
|
Stack* oldStack = c.state->stack;
|
||||||
|
|
||||||
for (int i = argumentCount - 1; i >= 0; --i) {
|
for (int i = index - 1; i >= 0; --i) {
|
||||||
::push(&c, argumentSizes[i], arguments[i]);
|
::push(&c, argumentSizes[i], arguments[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user