[llvm-commits] [llvm] r124694 - /llvm/trunk/lib/Target/ARM/ARMJITInfo.cpp

Renato Golin Renato.Golin at arm.com
Wed Feb 2 03:14:39 PST 2011


Hi Bob,

Two things...

First, silly comment but, would be good to update the comment just above (all in one pop) to reflect the change.

Second, I'm not a JIT expert (nor I know the full context), but does that mix with the requirement of using BX LR (for ARM/Thumb switch)? Or the JOT never mix them up anyway?

cheers,
--renato

________________________________________
From: llvm-commits-bounces at cs.uiuc.edu [llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Bob Wilson [bob.wilson at apple.com]
Sent: 01 February 2011 22:30
To: llvm-commits at cs.uiuc.edu
Subject: [llvm-commits] [llvm] r124694 -        /llvm/trunk/lib/Target/ARM/ARMJITInfo.cpp

Author: bwilson
Date: Tue Feb  1 16:30:51 2011
New Revision: 124694

URL: http://llvm.org/viewvc/llvm-project?rev=124694&view=rev
Log:
PR9081: Split up LDM instruction with deprecated use of both LR and PC.
This is completely untested but pretty straightforward, so hopefully I
got it right.

Modified:
    llvm/trunk/lib/Target/ARM/ARMJITInfo.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMJITInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMJITInfo.cpp?rev=124694&r1=124693&r2=124694&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMJITInfo.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMJITInfo.cpp Tue Feb  1 16:30:51 2011
@@ -43,7 +43,7 @@
 #define ASMPREFIX GETASMPREFIX(__USER_LABEL_PREFIX__)

 // CompilationCallback stub - We can't use a C function with inline assembly in
-// it, because we the prolog/epilog inserted by GCC won't work for us (we need
+// it, because the prolog/epilog inserted by GCC won't work for us. (We need
 // to preserve more context and manipulate the stack directly).  Instead,
 // write our own wrapper, which does things our way, so we have complete
 // control over register saving and restoring.
@@ -99,7 +99,8 @@
     // The above twiddling of the saved return addresses allows us to
     // deallocate everything, including the LR the stub saved, all in one
     // pop instruction.
-    "ldmia  sp!, {r0, r1, r2, r3, lr, pc}\n"
+    "ldmia  sp!, {r0, r1, r2, r3, lr}\n"
+    "ldr    pc, [sp], #4\n"
       );
 #else  // Not an ARM host
   void ARMCompilationCallback() {


_______________________________________________
llvm-commits mailing list
llvm-commits at cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium.  Thank you.





More information about the llvm-commits mailing list