Title: [135610] trunk/Source/_javascript_Core
Revision
135610
Author
[email protected]
Date
2012-11-23 07:32:46 -0800 (Fri, 23 Nov 2012)

Log Message

Fix the ARM traditional build after r135330
https://bugs.webkit.org/show_bug.cgi?id=102871

Patch by Gabor Ballabas <[email protected]> on 2012-11-23
Reviewed by Zoltan Herczeg.

Added missing functionality to traditional ARM architecture.

* assembler/ARMAssembler.h:
(JSC::ARMAssembler::revertJump):
(ARMAssembler):
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::startOfPatchableBranchPtrWithPatchOnAddress):
(JSC::MacroAssemblerARM::startOfBranchPtrWithPatchOnRegister):
(MacroAssemblerARM):
(JSC::MacroAssemblerARM::revertJumpReplacementToBranchPtrWithPatch):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (135609 => 135610)


--- trunk/Source/_javascript_Core/ChangeLog	2012-11-23 15:15:58 UTC (rev 135609)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-11-23 15:32:46 UTC (rev 135610)
@@ -1,3 +1,21 @@
+2012-11-23  Gabor Ballabas  <[email protected]>
+
+        Fix the ARM traditional build after r135330
+        https://bugs.webkit.org/show_bug.cgi?id=102871
+
+        Reviewed by Zoltan Herczeg.
+
+        Added missing functionality to traditional ARM architecture.
+
+        * assembler/ARMAssembler.h:
+        (JSC::ARMAssembler::revertJump):
+        (ARMAssembler):
+        * assembler/MacroAssemblerARM.h:
+        (JSC::MacroAssemblerARM::startOfPatchableBranchPtrWithPatchOnAddress):
+        (JSC::MacroAssemblerARM::startOfBranchPtrWithPatchOnRegister):
+        (MacroAssemblerARM):
+        (JSC::MacroAssemblerARM::revertJumpReplacementToBranchPtrWithPatch):
+
 2012-11-16  Yury Semikhatsky  <[email protected]>
 
         Memory instrumentation: extract MemoryObjectInfo declaration into a separate file

Modified: trunk/Source/_javascript_Core/assembler/ARMAssembler.h (135609 => 135610)


--- trunk/Source/_javascript_Core/assembler/ARMAssembler.h	2012-11-23 15:15:58 UTC (rev 135609)
+++ trunk/Source/_javascript_Core/assembler/ARMAssembler.h	2012-11-23 15:32:46 UTC (rev 135610)
@@ -402,6 +402,13 @@
             emitInstruction(toARMWord(cc) | MOV | SetConditionalCodes, rd, ARMRegisters::r0, op2);
         }
 
+        static void revertJump(void* instructionStart, RegisterID rd, ARMWord imm)
+        {
+            ARMWord* insn = reinterpret_cast<ARMWord*>(instructionStart);
+            ARMWord* address = getLdrImmAddress(insn);
+            *address = imm;
+        }
+
         void bic(int rd, int rn, ARMWord op2, Condition cc = AL)
         {
             emitInstruction(toARMWord(cc) | BIC, rd, rn, op2);

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h (135609 => 135610)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2012-11-23 15:15:58 UTC (rev 135609)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2012-11-23 15:32:46 UTC (rev 135610)
@@ -1268,12 +1268,22 @@
 
     static bool canJumpReplacePatchableBranchPtrWithPatch() { return false; }
 
-    static CodeLocationLabel startOfPatchableBranchPtrWithPatch(CodeLocationDataLabelPtr label)
+    static CodeLocationLabel startOfPatchableBranchPtrWithPatchOnAddress(CodeLocationDataLabelPtr)
     {
         UNREACHABLE_FOR_PLATFORM();
         return CodeLocationLabel();
     }
 
+    static CodeLocationLabel startOfBranchPtrWithPatchOnRegister(CodeLocationDataLabelPtr label)
+    {
+        return label.labelAtOffset(0);
+    }
+
+    static void revertJumpReplacementToBranchPtrWithPatch(CodeLocationLabel instructionStart, RegisterID reg, void* initialValue)
+    {
+        ARMAssembler::revertJump(instructionStart.dataLocation(), reg, reinterpret_cast<uintptr_t>(initialValue) & 0xffff);
+    }
+
     static void revertJumpReplacementToPatchableBranchPtrWithPatch(CodeLocationLabel instructionStart, Address, void* initialValue)
     {
         UNREACHABLE_FOR_PLATFORM();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to