[llvm-commits] [llvm-gcc-4.2] r40767 - in /llvm-gcc-4.2/trunk/gcc/config/arm: arm.c arm.h lib1funcs.asm t-bpabi t-symbian

Lauro Ramos Venancio lauro.venancio at gmail.com
Thu Aug 2 15:54:50 PDT 2007


Author: laurov
Date: Thu Aug  2 17:54:50 2007
New Revision: 40767

URL: http://llvm.org/viewvc/llvm-project?rev=40767&view=rev
Log:
Fix the build for ARM.


Modified:
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
    llvm-gcc-4.2/trunk/gcc/config/arm/arm.h
    llvm-gcc-4.2/trunk/gcc/config/arm/lib1funcs.asm
    llvm-gcc-4.2/trunk/gcc/config/arm/t-bpabi
    llvm-gcc-4.2/trunk/gcc/config/arm/t-symbian

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.c?rev=40767&r1=40766&r2=40767&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.c Thu Aug  2 17:54:50 2007
@@ -4903,19 +4903,6 @@
     }
 }
 
-/* LLVM LOCAL begin */
-/* Values which must be returned in the most-significant end of the return
-   register.  */
-
-static bool
-arm_return_in_msb (tree valtype)
-{
-  return (TARGET_AAPCS_BASED
-          && BYTES_BIG_ENDIAN
-          && (AGGREGATE_TYPE_P (valtype)
-              || TREE_CODE (valtype) == COMPLEX_TYPE));
-}
-/* LLVM LOCAL end */
 
 /* RTX cost for cores with a fast multiply unit (M variants).  */
 
@@ -6234,60 +6221,6 @@
   output_asm_insn (buf, operands);
   return "";
 }
-
-/* LLVM LOCAL begin */
-/* Return true if a type must be passed in memory. For AAPCS, small aggregates
-   (padded to the size of a word) should be passed in a register.  */
-
-static bool
-arm_must_pass_in_stack (enum machine_mode mode, tree type)
-{
-  if (TARGET_AAPCS_BASED)
-    return must_pass_in_stack_var_size (mode, type);
-  else
-    return must_pass_in_stack_var_size_or_pad (mode, type);
-}
-
-
-/* For use by FUNCTION_ARG_PADDING (MODE, TYPE).
-   Return true if an argument passed on the stack should be padded upwards,
-   i.e. if the least-significant byte has useful data.  */
-
-bool
-arm_pad_arg_upward (enum machine_mode mode, tree type)
-{
-  if (!TARGET_AAPCS_BASED)
-    return DEFAULT_FUNCTION_ARG_PADDING(mode, type);
-
-  if (type && BYTES_BIG_ENDIAN && INTEGRAL_TYPE_P (type))
-    return false;
-
-  return true;
-}
-
-
-/* Similarly, for use by BLOCK_REG_PADDING (MODE, TYPE, FIRST).
-   For non-AAPCS, return !BYTES_BIG_ENDIAN if the least significant
-   byte of the register has useful data, and return the opposite if the
-   most significant byte does.
-   For AAPCS, small aggregates and small complex types are always padded
-   upwards.  */
-
-bool
-arm_pad_reg_upward (enum machine_mode mode ATTRIBUTE_UNUSED,
-                    tree type, int first ATTRIBUTE_UNUSED)
-{
-  if (TARGET_AAPCS_BASED
-      && BYTES_BIG_ENDIAN
-      && (AGGREGATE_TYPE_P (type) || TREE_CODE (type) == COMPLEX_TYPE)
-      && int_size_in_bytes (type) <= 4)
-    return true;
-
-  /* Otherwise, use default padding.  */
-  return !BYTES_BIG_ENDIAN;
-}
-/* LLVM LOCAL end */
-
 
 /* Routines for use in generating RTL.  */
 
@@ -13042,23 +12975,6 @@
       fprintf (f, "}\n");
     }
 
-  /* LLVM LOCAL begin */
-  if (ARM_EABI_UNWIND_TABLES && push)
-    {
-      fprintf (f, "\t.save\t{");
-      for (regno = 0; regno < 15; regno++)
-	{
-	  if (real_regs & (1 << regno))
-	    {
-	      if (real_regs & ((1 << regno) -1))
-		fprintf (f, ", ");
-	      asm_fprintf (f, "%r", regno);
-	    }
-	}
-      fprintf (f, "}\n");
-    }
-  /* LLVM LOCAL end */
-
   fprintf (f, "\t%s\t{", push ? "push" : "pop");
 
   /* Look at the low registers first.  */
@@ -14111,11 +14027,6 @@
       if (ARM_EABI_UNWIND_TABLES)
 	asm_fprintf (f, "\t.pad #16\n");
 
-      /* LLVM LOCAL begin */
-      if (ARM_EABI_UNWIND_TABLES)
-	asm_fprintf (f, "\t.pad #16\n");
-      /* LLVM LOCAL end */
-
       asm_fprintf
 	(f, "\tsub\t%r, %r, #16\t%@ Create stack backtrace structure\n",
 	 SP_REGNUM, SP_REGNUM);
@@ -15145,9 +15056,7 @@
 static bool
 arm_align_anon_bitfield (void)
 {
-  /* LLVM LOCAL begin */
-  return TARGET_AAPCS_BASED && arm_abi != ARM_ABI_AAPCS_LINUX;
-  /* LLVM LOCAL end */
+  return TARGET_AAPCS_BASED;
 }
 
 
@@ -15246,14 +15155,6 @@
 }
 
 
-/* LLVM LOCAL begin */
-static bool
-arm_cxx_use_aeabi_atexit (void)
-{
-  return TARGET_AAPCS_BASED;
-}
-/* LLVM LOCAL end */
-
 void
 arm_set_return_address (rtx source, rtx scratch)
 {

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.h?rev=40767&r1=40766&r2=40767&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.h Thu Aug  2 17:54:50 2007
@@ -519,12 +519,6 @@
 #define PTRDIFF_TYPE (TARGET_AAPCS_BASED ? "int" : "long int")
 #endif
 
-/* LLVM LOCAL begin */
-#ifndef PTRDIFF_TYPE
-#define PTRDIFF_TYPE (TARGET_AAPCS_BASED ? "int" : "long int")
-#endif
-/* LLVM LOCAL end */
-
 /* AAPCS requires that structure alignment is affected by bitfields.  */
 #ifndef PCC_BITFIELD_TYPE_MATTERS
 #define PCC_BITFIELD_TYPE_MATTERS TARGET_AAPCS_BASED
@@ -882,10 +876,6 @@
 
 #define DBX_REGISTER_NUMBER(REGNO) arm_dbx_register_number (REGNO)
 
-/* LLVM LOCAL begin */
-#define DBX_REGISTER_NUMBER(REGNO) arm_dbx_register_number (REGNO)
-/* LLVM LOCAL end */
-
 /* Value should be nonzero if functions must have frame pointers.
    Zero means the frame pointer need not be set up (and parms may be accessed
    via the stack pointer) in functions that seem suitable.
@@ -1482,19 +1472,6 @@
 #define PAD_VARARGS_DOWN \
   ((TARGET_AAPCS_BASED) ? 0 : BYTES_BIG_ENDIAN)
 
-/* LLVM LOCAL begin */
-#define FUNCTION_ARG_PADDING(MODE, TYPE) \
-  (arm_pad_arg_upward (MODE, TYPE) ? upward : downward)
-
-#define BLOCK_REG_PADDING(MODE, TYPE, FIRST) \
-  (arm_pad_reg_upward (MODE, TYPE, FIRST) ? upward : downward)
-
-/* For AAPCS, padding should never be below the argument. For other ABIs,
- * mimic the default.  */
-#define PAD_VARARGS_DOWN \
-  ((TARGET_AAPCS_BASED) ? 0 : BYTES_BIG_ENDIAN)
-/* LLVM LOCAL end */
-
 /* Initialize a variable CUM of type CUMULATIVE_ARGS
    for a call to a function whose data type is FNTYPE.
    For a library call, FNTYPE is 0.
@@ -1918,17 +1895,6 @@
 #define ARM_EABI_UNWIND_TABLES 0
 #endif
 
-/* LLVM LOCAL begin */
-#define ARM_OUTPUT_FN_UNWIND(F, PROLOGUE) arm_output_fn_unwind (F, PROLOGUE)
-
-#ifdef TARGET_UNWIND_INFO
-#define ARM_EABI_UNWIND_TABLES \
-  ((!USING_SJLJ_EXCEPTIONS && flag_exceptions) || flag_unwind_tables)
-#else
-#define ARM_EABI_UNWIND_TABLES 0
-#endif
-/* LLVM LOCAL end */
-
 /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx
    and check its validity for a certain class.
    We have two alternate definitions for each of them.

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/lib1funcs.asm
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/lib1funcs.asm?rev=40767&r1=40766&r2=40767&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/lib1funcs.asm (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/lib1funcs.asm Thu Aug  2 17:54:50 2007
@@ -1306,7 +1306,4 @@
 #include "ieee754-df.S"
 #include "ieee754-sf.S"
 #include "bpabi.S"
-/* LLVM LOCAL begin */
-#include "libunwind.S"
-/* LLVM LOCAL end */
 #endif /* __symbian__ */

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/t-bpabi
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/t-bpabi?rev=40767&r1=40766&r2=40767&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/t-bpabi (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/t-bpabi Thu Aug  2 17:54:50 2007
@@ -1,8 +1,5 @@
 # Add the bpabi.S functions.
-#LLVM LOCAL begin
-LIB1ASMFUNCS += _aeabi_lcmp _aeabi_ulcmp _aeabi_ldivmod _aeabi_uldivmod \
-  _unwind
-#LLVM LOCAL end
+LIB1ASMFUNCS += _aeabi_lcmp _aeabi_ulcmp _aeabi_ldivmod _aeabi_uldivmod
 
 # Add the BPABI C functions.
 LIB2FUNCS_EXTRA = $(srcdir)/config/arm/bpabi.c \

Modified: llvm-gcc-4.2/trunk/gcc/config/arm/t-symbian
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/t-symbian?rev=40767&r1=40766&r2=40767&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/t-symbian (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/t-symbian Thu Aug  2 17:54:50 2007
@@ -17,13 +17,6 @@
 LIB2ADDEH = $(srcdir)/unwind-c.c $(srcdir)/config/arm/pr-support.c
 LIB2ADDEHDEP = $(UNWIND_H)
 
-#LLVM LOCAL begin
-# Include the gcc personality routine
-UNWIND_H = $(srcdir)/config/arm/unwind-arm.h
-LIB2ADDEH = $(srcdir)/unwind-c.c
-LIB2ADDEHDEP = $(UNWIND_H)
-#LLVM LOCAL end
-
 # Create a multilib for processors with VFP floating-point, and a
 # multilib for those without -- using the soft-float ABI in both
 # cases.  Symbian OS object should be compiled with interworking





More information about the llvm-commits mailing list