URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/gnu-src
- from Rev 400 to Rev 402
- ↔ Reverse comparison
Rev 400 → Rev 402
/gcc-4.5.1/libgcc/config.host
1,6 → 1,7
# libgcc host-specific configuration file. |
# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, |
# 2008, 2009, 2010 Free Software Foundation, Inc. |
# Copyright (C) 2010 Embecosm Limited |
|
#This file is part of GCC. |
|
447,6 → 448,8
or32-*-elf) |
;; |
or32-*linux*) |
tmake_file="${cpu_type}/t-${cpu_type} or32/t-or32" |
extra_parts="$extra_parts crti.o crtn.o" |
;; |
pdp11-*-*) |
;; |
/gcc-4.5.1/libgcc/config/or32/crti.S
0,0 → 1,33
# Start .init and .fini sections. |
# Copyright (C) 2010 Embecosm Limited |
# |
# This file is free software; you can redistribute it and/or modify it |
# under the terms of the GNU General Public License as published by |
# the Free Software Foundation; either version 3, or (at your option) |
# any later version. |
# |
# GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
# WARRANTY; without even the implied warranty of MERCHANTABILITY or |
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
# for more details. |
# |
# Under Section 7 of GPL version 3, you are granted additional |
# permissions described in the GCC Runtime Library Exception, version |
# 3.1, as published by the Free Software Foundation. |
# |
# You should have received a copy of the GNU General Public License and |
# a copy of the GCC Runtime Library Exception along with this program; |
# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
# <http://www.gnu.org/licenses/>. |
|
.section .init |
.global __init |
__init: |
l.addi r1,r1,-4 |
l.sw 0(r1),r9 |
|
.section .fini |
.global __fini |
__fini: |
l.addi r1,r1,-4 |
l.sw 0(r1),r9 |
gcc-4.5.1/libgcc/config/or32/crti.S
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: gcc-4.5.1/libgcc/config/or32/t-or32
===================================================================
--- gcc-4.5.1/libgcc/config/or32/t-or32 (nonexistent)
+++ gcc-4.5.1/libgcc/config/or32/t-or32 (revision 402)
@@ -0,0 +1,32 @@
+# t-or32 is a Makefile fragment to be included when
+# building gcc for the or32 target
+
+# Copyright (C) 2010 Embecosm Limited
+
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# .
+
+# .init/.fini section routines
+
+$(T)crti.o: $(srcdir)/config/or32/crti.S $(GCC_PASSES) $(CONFIG_H)
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \
+ $(MULTILIB_CFLAGS) -finhibit-size-directive -fno-inline-functions \
+ -g0 -c $< -o $@
+
+$(T)crtn.o: $(srcdir)/config/or32/crtn.S $(GCC_PASSES) $(CONFIG_H)
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \
+ $(MULTILIB_CFLAGS) -finhibit-size-directive -fno-inline-functions \
+ -g0 -c $< -o $@
Index: gcc-4.5.1/libgcc/config/or32/crtn.S
===================================================================
--- gcc-4.5.1/libgcc/config/or32/crtn.S (nonexistent)
+++ gcc-4.5.1/libgcc/config/or32/crtn.S (revision 402)
@@ -0,0 +1,33 @@
+# End .init and .fini sections.
+# Copyright (C) 2010 Embecosm Limited
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# Under Section 7 of GPL version 3, you are granted additional
+# permissions described in the GCC Runtime Library Exception, version
+# 3.1, as published by the Free Software Foundation.
+#
+# You should have received a copy of the GNU General Public License and
+# a copy of the GCC Runtime Library Exception along with this program;
+# see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+# .
+
+ .section .init
+__init:
+ l.lwz r9,0(r1)
+ l.jr r9
+ l.addi r1,r1,4
+
+ .section .fini
+__fini:
+ l.lwz r9,0(r1)
+ l.jr r9
+ l.addi r1,r1,4
gcc-4.5.1/libgcc/config/or32/crtn.S
Property changes :
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
Index: gcc-4.5.1/libgcc/ChangeLog.or32
===================================================================
--- gcc-4.5.1/libgcc/ChangeLog.or32 (revision 400)
+++ gcc-4.5.1/libgcc/ChangeLog.or32 (revision 402)
@@ -1,3 +1,4 @@
2010-10-30 Joern Rennecke
* config.host (or32-*linux*): Handle new config.
+ * config/or32: New directory.
/gcc-4.5.1/gcc/ChangeLog.or32
1,3 → 1,14
2010-11-01 Joern Rennecke <joern.rennecke@embecosm.com> |
|
* config/or32/or32.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. |
|
2010-10-31 Joern Rennecke <joern.rennecke@embecosm.com> |
|
* config/or32/or32.c (or32_struct_alignment): Refine rules to |
avoid overriding user settings. |
|
* Don't increase alignment of struct with sole packed field. |
|
2010-10-29 Joern Rennecke <joern.rennecke@embecosm.com> |
|
* config/or32/or32.c (or32_output_mi_thunk): New function. |
73,7 → 84,6
Use PROLOGUE_TMP and EPILOGUE_TMP. |
(or32_function_ok_for_sibcall): Retrun true. |
(TARGET_DEFAULT_TARGET_FLAGS): Include MASK_SCHED_LOGUE. |
(STATIC_CHAIN_REGNUM): Change to GP_ARG_RETURNH. |
(PROLOGUE_TMP, EPILOGUE_TMP): Define. |
* config/or32/or32.md (CC_REG): New constant. Use it to denote |
register number of flags register. |
128,7 → 138,7
* config/or32/or32.c (or32_struct_alignment): New function. |
(or32_data_alignment): Likewise. |
* config/or32/or32.h (STRUCTURE_SIZE_BOUNDARY): Default to 8. |
(ROUND_TYPE_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMEN): Define. |
(ROUND_TYPE_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define. |
|
* config/or32/or32.c (or32_struct_alignment): Take |
maximum_field_alignment into account. |
/gcc-4.5.1/gcc/config/or32/elf.h
1,4 → 1,5
/* Definitions for rtems targeting an OpenRisc OR32 using COFF |
??? this is for OR32, but the rest of the above seems bogus. |
Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc. |
Contributed by Joel Sherrill (joel@OARcorp.com). |
|
/gcc-4.5.1/gcc/config/or32/or32.c
2052,7 → 2052,7
} |
|
/* Output a tailcall to FUNCTION. The caller will fill in the delay slot. */ |
void |
static void |
or32_output_tailcall (FILE *file, tree function) |
{ |
/* We'll need to add more code if we want to fully support PIC. */ |
2189,6 → 2189,8
or32_struct_alignment (tree t) |
{ |
unsigned HOST_WIDE_INT total = 0; |
int default_align_fields = 0; |
int special_align_fields = 0; |
tree field; |
unsigned max_align |
= maximum_field_alignment ? maximum_field_alignment : BIGGEST_ALIGNMENT; |
2209,11 → 2211,34
|
if (TREE_CODE (field) != FIELD_DECL) |
continue; |
/* If this is a field in a non-qualified union, or the sole field in |
a struct, and the alignment was set by the user, don't change the |
alignment. |
If the field is a struct/union in a non-qualified union, we already |
had sufficient opportunity to pad it - if we didn't, that'd be |
because the alignment was set as above. |
Likewise if the field is a struct/union and the sole field in a |
struct. */ |
if (DECL_USER_ALIGN (field) |
|| TYPE_USER_ALIGN (TREE_TYPE (field)) |
|| TREE_CODE (TREE_TYPE (field)) == UNION_TYPE |
|| TREE_CODE (TREE_TYPE (field)) == QUAL_UNION_TYPE |
|| TREE_CODE (TREE_TYPE (field)) == RECORD_TYPE) |
{ |
if (TREE_CODE (t) == UNION_TYPE) |
return 0; |
special_align_fields++; |
} |
else if (DECL_PACKED (field)) |
special_align_fields++; |
else |
default_align_fields++; |
if (!host_integerp (DECL_SIZE (field), 1)) |
return max_align; |
field_size = tree_low_cst (DECL_SIZE (field), 1); |
field_size = max_align; |
else |
field_size = tree_low_cst (DECL_SIZE (field), 1); |
if (field_size >= BIGGEST_ALIGNMENT) |
return max_align; |
total = max_align; |
if (struct_p) |
total += field_size; |
else |
2220,6 → 2245,9
total = MAX (total, field_size); |
} |
|
if (!default_align_fields |
&& (TREE_CODE (t) != RECORD_TYPE || special_align_fields <= 1)) |
return 0; |
return total < max_align ? (1U << ceil_log2 (total)) : max_align; |
} |
|
/gcc-4.5.1/gcc/config/or32/or32.h
47,7 → 47,7
#undef CPP_SPEC |
#define CPP_SPEC "%{mor32-newlib*:-idirafter %(target_prefix)/newlib-include}" |
|
/* Make sure we pick up the or32-crtbegin.o and or32-crtend.o files. */ |
/* Make sure we pick up the crti.o, crtbegin.o, crtend.o and crtn.o files. */ |
#undef STARTFILE_SPEC |
#define STARTFILE_SPEC "%{!shared:%{mor32-newlib*:%(target_prefix)/newlib/crt0.o} \ |
%{!mor32-newlib*:crt0.o%s} crti.o%s crtbegin.o%s}" |
247,7 → 247,8
0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1} |
|
/* stack pointer: must be FIXED and CALL_USED */ |
/* hard frame pointer: must be FIXED and CALL_USED */ |
/* hard frame pointer: must be call saved. */ |
/* soft frame pointer / arg pointer: must be FIXED and CALL_USED */ |
|
/* Return number of consecutive hard regs needed starting at reg REGNO |
to hold something of mode MODE. |
1350,5 → 1351,8
extern GTY(()) rtx or32_compare_op0; |
extern GTY(()) rtx or32_compare_op1; |
|
/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop). */ |
#define HANDLE_PRAGMA_PACK_PUSH_POP |
|
|
#endif /* _OR32_H_ */ |