Title: [203293] trunk/Source/_javascript_Core
- Revision
- 203293
- Author
- [email protected]
- Date
- 2016-07-15 13:03:39 -0700 (Fri, 15 Jul 2016)
Log Message
Add new functions to ARMAssembler after r202214
https://bugs.webkit.org/show_bug.cgi?id=159713
Reviewed by Saam Barati.
* assembler/ARMAssembler.h:
(JSC::ARMAssembler::fillNops):
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::patchableBranch32):
(JSC::MacroAssemblerARM::internalCompare32):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (203292 => 203293)
--- trunk/Source/_javascript_Core/ChangeLog 2016-07-15 19:38:24 UTC (rev 203292)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-07-15 20:03:39 UTC (rev 203293)
@@ -1,3 +1,16 @@
+2016-07-15 Csaba Osztrogonác <[email protected]>
+
+ Add new functions to ARMAssembler after r202214
+ https://bugs.webkit.org/show_bug.cgi?id=159713
+
+ Reviewed by Saam Barati.
+
+ * assembler/ARMAssembler.h:
+ (JSC::ARMAssembler::fillNops):
+ * assembler/MacroAssemblerARM.h:
+ (JSC::MacroAssemblerARM::patchableBranch32):
+ (JSC::MacroAssemblerARM::internalCompare32):
+
2016-07-15 Mark Lam <[email protected]>
Stack overflow error for deeply nested classes.
Modified: trunk/Source/_javascript_Core/assembler/ARMAssembler.h (203292 => 203293)
--- trunk/Source/_javascript_Core/assembler/ARMAssembler.h 2016-07-15 19:38:24 UTC (rev 203292)
+++ trunk/Source/_javascript_Core/assembler/ARMAssembler.h 2016-07-15 20:03:39 UTC (rev 203293)
@@ -706,6 +706,18 @@
m_buffer.putInt(NOP);
}
+ static void fillNops(void* base, size_t size, bool isCopyingToExecutableMemory)
+ {
+ UNUSED_PARAM(isCopyingToExecutableMemory);
+ RELEASE_ASSERT(!(size % sizeof(int32_t)));
+
+ int32_t* ptr = static_cast<int32_t*>(base);
+ const size_t num32s = size / sizeof(int32_t);
+ const int32_t insn = NOP;
+ for (size_t i = 0; i < num32s; i++)
+ *ptr++ = insn;
+ }
+
void dmbSY()
{
m_buffer.putInt(DMB_SY);
Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h (203292 => 203293)
--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h 2016-07-15 19:38:24 UTC (rev 203292)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h 2016-07-15 20:03:39 UTC (rev 203293)
@@ -910,6 +910,14 @@
return PatchableJump(jump);
}
+ PatchableJump patchableBranch32(RelationalCondition cond, Address address, TrustedImm32 imm)
+ {
+ internalCompare32(address, imm);
+ Jump jump(m_assembler.loadBranchTarget(ARMRegisters::S1, ARMCondition(cond), false));
+ m_assembler.bx(ARMRegisters::S1, ARMCondition(cond));
+ return PatchableJump(jump);
+ }
+
void breakpoint()
{
m_assembler.bkpt(0);
@@ -1532,6 +1540,16 @@
m_assembler.cmp(left, m_assembler.getImm(right.m_value, ARMRegisters::S0));
}
+ void internalCompare32(Address left, TrustedImm32 right)
+ {
+ ARMWord tmp = (static_cast<unsigned>(right.m_value) == 0x80000000) ? ARMAssembler::InvalidImmediate : m_assembler.getOp2(-right.m_value);
+ load32(left, ARMRegisters::S1);
+ if (tmp != ARMAssembler::InvalidImmediate)
+ m_assembler.cmn(ARMRegisters::S1, tmp);
+ else
+ m_assembler.cmp(ARMRegisters::S1, m_assembler.getImm(right.m_value, ARMRegisters::S0));
+ }
+
static void linkCall(void* code, Call call, FunctionPtr function)
{
if (call.isFlagSet(Call::Tail))
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes