- May 24, 2011
-
-
Akira Hatanaka authored
llvm-svn: 131927
-
- May 23, 2011
-
-
Akira Hatanaka authored
llvm-svn: 131922
-
Akira Hatanaka authored
in MipsFunctionInfo that are no longer used. llvm-svn: 131917
-
Chris Lattner authored
llvm-svn: 131916
-
Akira Hatanaka authored
The following improvements are accomplished as a result of applying this patch: - Fixed frame objects' offsets (relative to either the virtual frame pointer or the stack pointer) are set before instruction selection is completed. There is no need to wait until Prologue/Epilogue Insertion is run to set them. - Calculation of final offsets of fixed frame objects is straightforward. It is no longer necessary to assign negative offsets to fixed objects for incoming arguments in order to distinguish them from the others. - Since a fixed object has its relative offset set during instruction selection, there is no need to conservatively set its alignment to 4. - It is no longer necessary to reorder non-fixed frame objects in MipsFrameLowering::adjustMipsStackFrame. llvm-svn: 131915
-
rdar://problem/9476260Cameron Zwarich authored
in Darwin Thumb2 code. Tail calls are already disabled on Thumb1. llvm-svn: 131894
-
Chris Lattner authored
llvm-svn: 131874
-
- May 22, 2011
-
-
Renato Golin authored
RTABI chapter 4.3.4 specifies __eabi_mem* calls. Specifically, __eabi_memset accepts parameters (ptr, size, value) in a different order than GNU's memset (ptr, value, size), therefore the special lowering in AAPCS mode. Implementation by Evzen Muller. llvm-svn: 131868
-
Chris Lattner authored
llvm-svn: 131863
-
Johnny Chen authored
Modified the patch to .td file supplied by Jyun-Yan You. Add a test case and modified ARMDisassemblerCore.cpp a little bit. llvm-svn: 131859
-
Chris Lattner authored
llvm-svn: 131841
-
- May 21, 2011
-
-
Chris Lattner authored
llvm-svn: 131806
-
Benjamin Kramer authored
llvm-svn: 131801
-
Cameron Zwarich authored
is already in GR64 for the same reasons. Since it isn't allocatable it can't cause any problems. llvm-svn: 131787
-
Akira Hatanaka authored
llvm-svn: 131785
-
Akira Hatanaka authored
llvm-svn: 131784
-
Akira Hatanaka authored
preparation for reversing StackDirection. Fixed objects are created in the following order: 1. Incoming arguments passed on stack. 2. va_arg objects (include both arguments that are passed in registers and pointer to the location of the first va_arg argument). 3. $gp restore slot. 4. Outgoing arguments passed on stack. 5. Pointer to alloca'd space. llvm-svn: 131767
-
Eli Friedman authored
llvm-svn: 131764
-
- May 20, 2011
-
-
Akira Hatanaka authored
passed in register or on the stack. llvm-svn: 131758
-
Akira Hatanaka authored
llvm-svn: 131752
-
Rafael Espindola authored
(this is what used in Android NDK, when architecture is ARMv5) patch by Koan-Sin Tan llvm-svn: 131751
-
Rafael Espindola authored
of tBL/tBLX to R_ARM_THM_CALL (ARM ELF 4.7.1.6) Patch by koan-sin tan. llvm-svn: 131748
-
Stuart Hastings authored
rdar://problem/8614450 llvm-svn: 131746
-
Akira Hatanaka authored
saving and restoring them. llvm-svn: 131745
-
Evan Cheng authored
llvm-svn: 131739
-
Benjamin Kramer authored
llvm-svn: 131730
-
Benjamin Kramer authored
llvm-svn: 131724
-
Akira Hatanaka authored
Fix bug in which nodes that write to argument registers do not get glued with the JALR node. Patch by Sasa Stankovic llvm-svn: 131714
-
Akira Hatanaka authored
llvm-svn: 131711
-
Akira Hatanaka authored
This is the first of a series of patches that attempt to simplify handling of stack frame objects. llvm-svn: 131710
-
Chad Rosier authored
llvm-svn: 131709
-
-
Eli Friedman authored
llvm-svn: 131689
-
- May 19, 2011
-
-
Eric Christopher authored
Fixes rdar://9218925 Fixes PR9601 llvm-svn: 131682
-
Jason W Kim authored
text section. Assume the following bit of annotated assembly: .section .data.rel.ro,"aw",%progbits .align 2 .LAlpha: .long startval(GOTOFF) .text .align 2 .type main,%function .align 4 main: ;;; assume "main" starts at offset 0x20 0x0 push {r11, lr} 0x4 movw r0, :lower16:(.LAlpha-(.LBeta+8)) ;;; ==> (.AddrOf(.LAlpha) - ((.AddrOf(.LBeta) - .AddrOf(".")) + 8) ;;; ==> (??? - ((16-4) + 8) = -20 0x8 movt r0, :upper16:(.LAlpha-(.LBeta+8)) ;;; ==> (.AddrOf(.LAlpha) - ((.AddrOf(.LBeta) - .AddrOf(".")) + 8) ;;; ==> (??? - ((16-8) + 8) = -16 0xc ... blah .LBeta: 0x10 add r0, pc, r0 0x14 ... blah .LGamma: 0x18 add r1, pc, r1 Above snippet results in the following relocs in the .o file for the first pair of movw/movt instructions 00000024 R_ARM_MOVW_PREL_NC .LAlpha 00000028 R_ARM_MOVT_PREL .LAlpha And the encoded instructions in the .o file for main: must be 00000020 <main>: 20: e92d4800 push {fp, lr} 24: e30f0fec movw r0, #65516 ; 0xffec i.e. -20 28: e34f0ff0 movt r0, #65520 ; 0xfff0 i.e. -16 However, llc (prior to this commit) generates the following sequence 00000020 <main>: 20: e92d4800 push {fp, lr} 24: e30f0fec movw r0, #65516 ; 0xffec - i.e. -20 28: e34f0fff movt r0, #65535 ; 0xffff - i.e. -1 What has to happen in the ArmAsmBackend is that if the relocation is PC relative, the 16 bits encoded as part of movw and movt must be both addends, not addresses. It makes sense to encode addresses by right shifting the value by 16, but the result is incorrect for PIC. i.e., the right shift by 16 for movt is ONLY valid for the NON-PCRel case. This change agrees with what GNU as does, and makes the PIC code run. MC/ARM/elf-movt.s covers this case. llvm-svn: 131674
-
Rafael Espindola authored
Fixes PR9934. We really need to start tblgening the relocation info :-( llvm-svn: 131669
-
Akira Hatanaka authored
llvm-svn: 131668
-
-
Akira Hatanaka authored
llvm-svn: 131660
-
Akira Hatanaka authored
llvm-svn: 131657
-