summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/disassembler/ARM64
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2015-05-20 09:56:07 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2015-05-20 09:56:07 +0000
commit41386e9cb918eed93b3f13648cbef387e371e451 (patch)
treea97f9d7bd1d9d091833286085f72da9d83fd0606 /Source/JavaScriptCore/disassembler/ARM64
parente15dd966d523731101f70ccf768bba12435a0208 (diff)
downloadWebKitGtk-tarball-41386e9cb918eed93b3f13648cbef387e371e451.tar.gz
webkitgtk-2.4.9webkitgtk-2.4.9
Diffstat (limited to 'Source/JavaScriptCore/disassembler/ARM64')
-rw-r--r--Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp70
-rw-r--r--Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h20
2 files changed, 2 insertions, 88 deletions
diff --git a/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp b/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp
index 52a92c669..0ea817a46 100644
--- a/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp
+++ b/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.cpp
@@ -23,11 +23,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#define __STDC_FORMAT_MACROS
#include "config.h"
-
-#if USE(ARM64_DISASSEMBLER)
-
#include "A64DOpcode.h"
#include <stdarg.h>
@@ -66,8 +62,6 @@ struct OpcodeGroupInitializer {
{ groupIndex, groupClass::mask, groupClass::pattern, groupClass::format }
static OpcodeGroupInitializer opcodeGroupList[] = {
- OPCODE_GROUP_ENTRY(0x08, A64DOpcodeLoadStoreRegisterPair),
- OPCODE_GROUP_ENTRY(0x09, A64DOpcodeLoadStoreRegisterPair),
OPCODE_GROUP_ENTRY(0x0a, A64DOpcodeLogicalShiftedRegister),
OPCODE_GROUP_ENTRY(0x0b, A64DOpcodeAddSubtractExtendedRegister),
OPCODE_GROUP_ENTRY(0x0b, A64DOpcodeAddSubtractShiftedRegister),
@@ -178,11 +172,6 @@ const char* A64DOpcode::format()
void A64DOpcode::appendRegisterName(unsigned registerNumber, bool is64Bit)
{
- if (registerNumber == 29) {
- bufferPrintf(is64Bit ? "fp" : "wfp");
- return;
- }
-
if (registerNumber == 30) {
bufferPrintf(is64Bit ? "lr" : "wlr");
return;
@@ -950,63 +939,6 @@ const char* A64DOpcodeLoadStoreRegisterOffset::format()
return m_formatBuffer;
}
-const char* A64DOpcodeLoadStoreRegisterPair::opName()
-{
- if (!vBit() && lBit() && size() == 0x1)
- return "ldpsw";
- if (lBit())
- return "ldp";
- return "stp";
-}
-
-const char* A64DOpcodeLoadStoreRegisterPair::format()
-{
- const char* thisOpName = opName();
-
- if (size() == 0x3)
- return A64DOpcode::format();
-
- if ((offsetMode() < 0x1) || (offsetMode() > 0x3))
- return A64DOpcode::format();
-
- if ((offsetMode() == 0x1) && !vBit() && !lBit())
- return A64DOpcode::format();
-
- appendInstructionName(thisOpName);
- unsigned offsetShift;
- if (vBit()) {
- appendFPRegisterName(rt(), size());
- appendSeparator();
- appendFPRegisterName(rt2(), size());
- offsetShift = size() + 2;
- } else {
- appendRegisterName(rt(), is64Bit());
- appendSeparator();
- appendRegisterName(rt2(), is64Bit());
- offsetShift = (size() >> 1) + 2;
- }
-
- appendSeparator();
- appendCharacter('[');
- appendSPOrRegisterName(rn());
-
- int offset = immediate7() << offsetShift;
-
- if (offsetMode() == 1) {
- appendCharacter(']');
- appendSeparator();
- appendSignedImmediate(offset);
- } else {
- appendSeparator();
- appendSignedImmediate(offset);
- appendCharacter(']');
- if (offsetMode() == 0x3)
- appendCharacter('!');
- }
-
- return m_formatBuffer;
-}
-
const char* A64DOpcodeLoadStoreUnsignedImmediate::format()
{
const char* thisOpName = opName();
@@ -1198,5 +1130,3 @@ const char* A64DOpcodeUnconditionalBranchRegister::format()
}
} } // namespace JSC::ARM64Disassembler
-
-#endif // USE(ARM64_DISASSEMBLER)
diff --git a/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h b/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h
index 5bb7db9f1..ed18d30df 100644
--- a/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h
+++ b/Source/JavaScriptCore/disassembler/ARM64/A64DOpcode.h
@@ -172,12 +172,12 @@ protected:
void appendUnsignedImmediate64(uint64_t immediate)
{
- bufferPrintf("#0x%" PRIx64, immediate);
+ bufferPrintf("#0x%llx", immediate);
}
void appendPCRelativeOffset(uint32_t* pc, int32_t immediate)
{
- bufferPrintf("0x%" PRIx64, reinterpret_cast<uint64_t>(pc + immediate));
+ bufferPrintf("0x%llx", reinterpret_cast<uint64_t>(pc + immediate));
}
void appendShiftAmount(unsigned amount)
@@ -565,22 +565,6 @@ public:
int sBit() { return (m_opcode >> 12) & 0x1; }
};
-class A64DOpcodeLoadStoreRegisterPair : public A64DOpcodeLoadStore {
-public:
- static const uint32_t mask = 0x3a000000;
- static const uint32_t pattern = 0x28000000;
-
- DEFINE_STATIC_FORMAT(A64DOpcodeLoadStoreRegisterPair, thisObj);
-
- const char* format();
- const char* opName();
-
- unsigned rt2() { return (m_opcode >> 10) & 0x1f; }
- int immediate7() { return (static_cast<int>((m_opcode >> 15) & 0x7f) << 25) >> 25; }
- unsigned offsetMode() { return (m_opcode >> 23) & 0x7; }
- int lBit() { return (m_opcode >> 22) & 0x1; }
-};
-
class A64DOpcodeLoadStoreUnsignedImmediate : public A64DOpcodeLoadStore {
public:
static const uint32_t mask = 0x3b000000;