Modified: trunk/Source/_javascript_Core/ChangeLog (231339 => 231340)
--- trunk/Source/_javascript_Core/ChangeLog 2018-05-04 00:49:04 UTC (rev 231339)
+++ trunk/Source/_javascript_Core/ChangeLog 2018-05-04 00:54:24 UTC (rev 231340)
@@ -1,5 +1,24 @@
2018-05-03 Dominik Infuehr <dinfu...@igalia.com>
+ ARM: Support vstr in disassembler
+ https://bugs.webkit.org/show_bug.cgi?id=184084
+
+ Reviewed by Yusuke Suzuki.
+
+ * disassembler/ARMv7/ARMv7DOpcode.cpp:
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDRSTR::format):
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::format): Deleted.
+ * disassembler/ARMv7/ARMv7DOpcode.h:
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDRSTR::opName):
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::condition): Deleted.
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::uBit): Deleted.
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::rn): Deleted.
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::vd): Deleted.
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::doubleReg): Deleted.
+ (JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::immediate8): Deleted.
+
+2018-05-03 Dominik Infuehr <dinfu...@igalia.com>
+
Invoke ensureArrayStorage for all arguments
https://bugs.webkit.org/show_bug.cgi?id=185247
Modified: trunk/Source/_javascript_Core/disassembler/ARMv7/ARMv7DOpcode.cpp (231339 => 231340)
--- trunk/Source/_javascript_Core/disassembler/ARMv7/ARMv7DOpcode.cpp 2018-05-04 00:49:04 UTC (rev 231339)
+++ trunk/Source/_javascript_Core/disassembler/ARMv7/ARMv7DOpcode.cpp 2018-05-04 00:54:24 UTC (rev 231340)
@@ -116,7 +116,7 @@
OPCODE_GROUP_ENTRY(0x4, ARMv7DOpcodeDataPopMultiple),
OPCODE_GROUP_ENTRY(0x4, ARMv7DOpcodeDataPushMultiple),
OPCODE_GROUP_ENTRY(0x5, ARMv7DOpcodeDataProcessingShiftedReg),
- OPCODE_GROUP_ENTRY(0x6, ARMv7DOpcodeVLDR),
+ OPCODE_GROUP_ENTRY(0x6, ARMv7DOpcodeVLDRSTR),
OPCODE_GROUP_ENTRY(0x6, ARMv7DOpcodeVMOVSinglePrecision),
OPCODE_GROUP_ENTRY(0x6, ARMv7DOpcodeVMOVDoublePrecision),
OPCODE_GROUP_ENTRY(0x7, ARMv7DOpcodeFPTransfer),
@@ -150,7 +150,7 @@
OPCODE_GROUP_ENTRY(0xd, ARMv7DOpcodeDataProcessingRegExtend),
OPCODE_GROUP_ENTRY(0xd, ARMv7DOpcodeDataProcessingRegParallel),
OPCODE_GROUP_ENTRY(0xd, ARMv7DOpcodeDataProcessingRegMisc),
- OPCODE_GROUP_ENTRY(0xe, ARMv7DOpcodeVLDR),
+ OPCODE_GROUP_ENTRY(0xe, ARMv7DOpcodeVLDRSTR),
OPCODE_GROUP_ENTRY(0xf, ARMv7DOpcodeVCMP),
OPCODE_GROUP_ENTRY(0xf, ARMv7DOpcodeVCVTBetweenFPAndInt),
};
@@ -1628,12 +1628,12 @@
return m_formatBuffer;
}
-const char* ARMv7DOpcodeVLDR::format()
+const char* ARMv7DOpcodeVLDRSTR::format()
{
if (condition() != 0xe)
- bufferPrintf(" vldr%-3.3s", conditionName(condition()));
+ bufferPrintf(" %s%-3.3s", opName(), conditionName(condition()));
else
- appendInstructionName("vldr");
+ appendInstructionName(opName());
appendFPRegisterName(doubleReg() ? 'd' : 's', vd());
appendSeparator();
Modified: trunk/Source/_javascript_Core/disassembler/ARMv7/ARMv7DOpcode.h (231339 => 231340)
--- trunk/Source/_javascript_Core/disassembler/ARMv7/ARMv7DOpcode.h 2018-05-04 00:49:04 UTC (rev 231339)
+++ trunk/Source/_javascript_Core/disassembler/ARMv7/ARMv7DOpcode.h 2018-05-04 00:54:24 UTC (rev 231340)
@@ -1162,16 +1162,17 @@
unsigned vm() { return m_opcode & 0xf; }
};
-class ARMv7DOpcodeVLDR : public ARMv7D32BitOpcode {
+class ARMv7DOpcodeVLDRSTR : public ARMv7D32BitOpcode {
public:
- static const uint32_t s_mask = 0x0f300e00;
- static const uint32_t s_pattern = 0x0d100a00;
+ static const uint32_t s_mask = 0x0f200e00;
+ static const uint32_t s_pattern = 0x0d000a00;
- DEFINE_STATIC_FORMAT32(ARMv7DOpcodeVLDR, thisObj);
+ DEFINE_STATIC_FORMAT32(ARMv7DOpcodeVLDRSTR, thisObj);
protected:
const char* format();
+ const char *opName() { return (m_opcode >> 20) & 0x1 ? "vldr" : "vstr"; }
unsigned condition() { return m_opcode >> 28; }
unsigned uBit() { return (m_opcode >> 23) & 0x1; }
unsigned rn() { return (m_opcode >> 16) & 0xf; }