mirror of
https://github.com/corda/corda.git
synced 2025-06-19 15:43:52 +00:00
All tests passing (again).
This commit is contained in:
26
src/arm.cpp
26
src/arm.cpp
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (c) 2010-2011, Avian Contributors
|
/* Copyright (c) 2010-2012, Avian Contributors
|
||||||
|
|
||||||
Permission to use, copy, modify, and/or distribute this software
|
Permission to use, copy, modify, and/or distribute this software
|
||||||
for any purpose with or without fee is hereby granted, provided
|
for any purpose with or without fee is hereby granted, provided
|
||||||
@ -232,7 +232,7 @@ inline int blo(int offset) { return SETCOND(b(offset), CC); }
|
|||||||
inline int bhs(int offset) { return SETCOND(b(offset), CS); }
|
inline int bhs(int offset) { return SETCOND(b(offset), CS); }
|
||||||
// HARDWARE FLAGS
|
// HARDWARE FLAGS
|
||||||
bool vfpSupported() {
|
bool vfpSupported() {
|
||||||
return true;
|
return false; // TODO
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2183,37 +2183,38 @@ class MyArchitecture: public Assembler::Architecture {
|
|||||||
unsigned aSize, uint8_t* aTypeMask, uint64_t* aRegisterMask,
|
unsigned aSize, uint8_t* aTypeMask, uint64_t* aRegisterMask,
|
||||||
unsigned bSize, bool* thunk)
|
unsigned bSize, bool* thunk)
|
||||||
{
|
{
|
||||||
*aTypeMask = (1 << RegisterOperand);
|
*thunk = false;
|
||||||
|
*aTypeMask = ~0;
|
||||||
|
*aRegisterMask = ~static_cast<uint64_t>(0);
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
|
case Negate:
|
||||||
|
*aTypeMask = (1 << RegisterOperand);
|
||||||
|
break;
|
||||||
|
|
||||||
case Absolute:
|
case Absolute:
|
||||||
case FloatAbsolute:
|
case FloatAbsolute:
|
||||||
case FloatSquareRoot:
|
case FloatSquareRoot:
|
||||||
case FloatNegate:
|
case FloatNegate:
|
||||||
case Float2Float:
|
case Float2Float:
|
||||||
if (vfpSupported()) {
|
if (!vfpSupported()) {
|
||||||
} else {
|
|
||||||
*thunk = true;
|
*thunk = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Float2Int:
|
case Float2Int:
|
||||||
if (vfpSupported() && bSize == 4) {
|
if (!vfpSupported() || bSize != 4) {
|
||||||
} else {
|
|
||||||
*thunk = true;
|
*thunk = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Int2Float:
|
case Int2Float:
|
||||||
if (vfpSupported() && aSize == 4) {
|
if (!vfpSupported() || aSize != 4) {
|
||||||
} else {
|
|
||||||
*thunk = true;
|
*thunk = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
*aRegisterMask = ~static_cast<uint64_t>(0);
|
|
||||||
*thunk = false;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2301,8 +2302,7 @@ class MyArchitecture: public Assembler::Architecture {
|
|||||||
case JumpIfFloatGreaterOrUnordered:
|
case JumpIfFloatGreaterOrUnordered:
|
||||||
case JumpIfFloatLessOrEqualOrUnordered:
|
case JumpIfFloatLessOrEqualOrUnordered:
|
||||||
case JumpIfFloatGreaterOrEqualOrUnordered:
|
case JumpIfFloatGreaterOrEqualOrUnordered:
|
||||||
if (vfpSupported()) {
|
if (!vfpSupported()) {
|
||||||
} else {
|
|
||||||
*thunk = true;
|
*thunk = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user