This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Some Blackfin updates
- From: Bernd Schmidt <bernds_cb1 at t-online dot de>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 09 Aug 2005 12:57:36 +0200
- Subject: Re: Some Blackfin updates
- References: <42F87C06.9040601@t-online.de>
This is the 4.0 version. I noticed that bfin-uclinux wasn't a separate
configuration yet on that branch, and the FSF address hasn't been
updated, so I fixed that as well.
Bernd
Mostly from Jie Zhang (jie.zhang@analog.com)
* config.gcc: Add bfin-uclinux.
* config/bfin/uclinux.h: New file.
* config/bfin/bfin-modes.def: Update FSF address.
* config/bfin/bfin-protos.h: Likewise.
* config/bfin/bfin.md: Likewise.
* config/bfin/bfin.opt: Likewise.
* config/bfin/crti.s: Likewise.
* config/bfin/crtn.s: Likewise.
* config/bfin/lib1funcs.asm: Likewise.
* config/bfin/predicates.md: Likewise.
* config/bfin/bfin.c: Likewise.
(bfin_return_in_memory): Update to match Visual DSP compiler.
* config/bfin/bfin.h: Update FSF address.
(ASM_OUTPUT_ALIGN): Write alignment in bytes, not log thereof.
* config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
Index: config.gcc
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config.gcc,v
retrieving revision 1.516.2.11
diff -c -p -r1.516.2.11 config.gcc
*** config.gcc 20 Jul 2005 11:12:48 -0000 1.516.2.11
--- config.gcc 9 Aug 2005 10:32:32 -0000
*************** bfin*-elf*)
*** 739,750 ****
tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
tmake_file=bfin/t-bfin-elf
use_collect2=no
! ;;
bfin*-*)
tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
tmake_file=bfin/t-bfin
use_collect2=no
! ;;
c4x-*-rtems* | tic4x-*-rtems*)
tmake_file="c4x/t-c4x t-rtems c4x/t-rtems"
tm_file="c4x/c4x.h c4x/rtems.h rtems.h"
--- 739,755 ----
tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
tmake_file=bfin/t-bfin-elf
use_collect2=no
! ;;
! bfin*-uclinux*)
! tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/uclinux.h"
! tmake_file=bfin/t-bfin-elf
! use_collect2=no
! ;;
bfin*-*)
tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
tmake_file=bfin/t-bfin
use_collect2=no
! ;;
c4x-*-rtems* | tic4x-*-rtems*)
tmake_file="c4x/t-c4x t-rtems c4x/t-rtems"
tm_file="c4x/c4x.h c4x/rtems.h rtems.h"
Index: config/bfin/bfin-modes.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/bfin-modes.def,v
retrieving revision 1.1.8.1
diff -c -p -r1.1.8.1 bfin-modes.def
*** config/bfin/bfin-modes.def 25 Apr 2005 10:40:25 -0000 1.1.8.1
--- config/bfin/bfin-modes.def 9 Aug 2005 10:32:32 -0000
***************
*** 16,23 ****
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the
! Free Software Foundation, 59 Temple Place - Suite 330, Boston,
! MA 02111-1307, USA. */
/* PDImode for the 40 bit accumulators. */
PARTIAL_INT_MODE (DI);
--- 16,23 ----
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the
! Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
! MA 02110-1301, USA. */
/* PDImode for the 40 bit accumulators. */
PARTIAL_INT_MODE (DI);
Index: config/bfin/bfin-protos.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/bfin-protos.h,v
retrieving revision 1.1.8.2
diff -c -p -r1.1.8.2 bfin-protos.h
*** config/bfin/bfin-protos.h 20 Jul 2005 10:36:31 -0000 1.1.8.2
--- config/bfin/bfin-protos.h 9 Aug 2005 10:32:32 -0000
***************
*** 15,22 ****
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
! the Free Software Foundation, 59 Temple Place - Suite 330,
! Boston, MA 02111-1307, USA. */
/* Function prototypes that cannot exist in bfin.h due to dependency
complications. */
--- 15,22 ----
You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING. If not, write to
! the Free Software Foundation, 51 Franklin Street, Fifth Floor,
! Boston, MA 02110-1301, USA. */
/* Function prototypes that cannot exist in bfin.h due to dependency
complications. */
Index: config/bfin/bfin.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/bfin.c,v
retrieving revision 1.5.2.6
diff -c -p -r1.5.2.6 bfin.c
*** config/bfin/bfin.c 20 Jul 2005 10:43:32 -0000 1.5.2.6
--- config/bfin/bfin.c 9 Aug 2005 10:32:32 -0000
***************
*** 1,4 ****
! /* The Blackfin code generation auxilary output file.
Copyright (C) 2005 Free Software Foundation, Inc.
Contributed by Analog Devices.
--- 1,4 ----
! /* The Blackfin code generation auxiliary output file.
Copyright (C) 2005 Free Software Foundation, Inc.
Contributed by Analog Devices.
***************
*** 16,23 ****
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 59 Temple Place - Suite 330,
! Boston, MA 02111-1307, USA. */
#include "config.h"
#include "system.h"
--- 16,23 ----
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 51 Franklin Street, Fifth Floor,
! Boston, MA 02110-1301, USA. */
#include "config.h"
#include "system.h"
*************** bfin_pass_by_reference (CUMULATIVE_ARGS
*** 1273,1296 ****
int
bfin_return_in_memory (tree type)
{
! int size;
! enum machine_mode mode = TYPE_MODE (type);
!
! if (mode == BLKmode)
! return 1;
! size = int_size_in_bytes (type);
! if (VECTOR_MODE_P (mode) || mode == TImode)
! {
! /* User-created vectors small enough to fit in REG. */
! if (size < 8)
! return 0;
! if (size == 8 || size == 16)
! return 1;
! }
!
! if (size > 12)
! return 1;
! return 0;
}
/* Register in which address to store a structure value
--- 1273,1280 ----
int
bfin_return_in_memory (tree type)
{
! int size = int_size_in_bytes (type);
! return size > 2 * UNITS_PER_WORD || size == -1;
}
/* Register in which address to store a structure value
Index: config/bfin/bfin.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/bfin.h,v
retrieving revision 1.3.4.3
diff -c -p -r1.3.4.3 bfin.h
*** config/bfin/bfin.h 20 Jul 2005 10:36:32 -0000 1.3.4.3
--- config/bfin/bfin.h 9 Aug 2005 10:32:32 -0000
***************
*** 16,23 ****
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 59 Temple Place - Suite 330,
! Boston, MA 02111-1307, USA. */
#ifndef _BFIN_CONFIG
#define _BFIN_CONFIG
--- 16,23 ----
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 51 Franklin Street, Fifth Floor,
! Boston, MA 02110-1301, USA. */
#ifndef _BFIN_CONFIG
#define _BFIN_CONFIG
*************** do { char __buf[256]; \
*** 1167,1174 ****
} while (0)
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
! do { \
! fprintf (FILE, ".align %d\n", LOG); \
} while (0)
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
--- 1167,1175 ----
} while (0)
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
! do { \
! if ((LOG) != 0) \
! fprintf (FILE, "\t.align %d\n", 1 << (LOG)); \
} while (0)
#define ASM_OUTPUT_SKIP(FILE,SIZE) \
Index: config/bfin/bfin.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/bfin.md,v
retrieving revision 1.1.8.5
diff -c -p -r1.1.8.5 bfin.md
*** config/bfin/bfin.md 20 Jul 2005 10:36:32 -0000 1.1.8.5
--- config/bfin/bfin.md 9 Aug 2005 10:32:33 -0000
***************
*** 16,23 ****
;; You should have received a copy of the GNU General Public License
;; along with GCC; see the file COPYING. If not, write to
! ;; the Free Software Foundation, 59 Temple Place - Suite 330,
! ;; Boston, MA 02111-1307, USA.
; operand punctuation marks:
;
--- 16,23 ----
;; You should have received a copy of the GNU General Public License
;; along with GCC; see the file COPYING. If not, write to
! ;; the Free Software Foundation, 51 Franklin Street, Fifth Floor,
! ;; Boston, MA 02110-1301, USA.
; operand punctuation marks:
;
Index: config/bfin/bfin.opt
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/bfin.opt,v
retrieving revision 1.3.4.1
diff -c -p -r1.3.4.1 bfin.opt
*** config/bfin/bfin.opt 25 Apr 2005 10:40:25 -0000 1.3.4.1
--- config/bfin/bfin.opt 9 Aug 2005 10:32:34 -0000
***************
*** 16,23 ****
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
! ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
! ; 02111-1307, USA.
momit-leaf-frame-pointer
Target Report Mask(OMIT_LEAF_FRAME_POINTER)
--- 16,23 ----
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
! ; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
! ; 02110-1301, USA.
momit-leaf-frame-pointer
Target Report Mask(OMIT_LEAF_FRAME_POINTER)
Index: config/bfin/crti.s
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/crti.s,v
retrieving revision 1.1.8.1
diff -c -p -r1.1.8.1 crti.s
*** config/bfin/crti.s 25 Apr 2005 10:40:25 -0000 1.1.8.1
--- config/bfin/crti.s 9 Aug 2005 10:32:34 -0000
*************** GNU General Public License for more deta
*** 17,24 ****
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 59 Temple Place - Suite 330,
! Boston, MA 02111-1307, USA. */
/* As a special exception, if you link this library with files
compiled with GCC to produce an executable, this does not cause
--- 17,24 ----
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 51 Franklin Street, Fifth Floor,
! Boston, MA 02110-1301, USA. */
/* As a special exception, if you link this library with files
compiled with GCC to produce an executable, this does not cause
Index: config/bfin/crtn.s
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/crtn.s,v
retrieving revision 1.1.8.1
diff -c -p -r1.1.8.1 crtn.s
*** config/bfin/crtn.s 25 Apr 2005 10:40:25 -0000 1.1.8.1
--- config/bfin/crtn.s 9 Aug 2005 10:32:34 -0000
*************** GNU General Public License for more deta
*** 17,24 ****
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 59 Temple Place - Suite 330,
! Boston, MA 02111-1307, USA. */
/* As a special exception, if you link this library with files
compiled with GCC to produce an executable, this does not cause
--- 17,24 ----
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 51 Franklin Street, Fifth Floor,
! Boston, MA 02110-1301, USA. */
/* As a special exception, if you link this library with files
compiled with GCC to produce an executable, this does not cause
Index: config/bfin/elf.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/elf.h,v
retrieving revision 1.1.8.1
diff -c -p -r1.1.8.1 elf.h
*** config/bfin/elf.h 25 Apr 2005 10:40:25 -0000 1.1.8.1
--- config/bfin/elf.h 9 Aug 2005 10:32:34 -0000
***************
*** 14,16 ****
--- 14,18 ----
#undef USER_LABEL_PREFIX
#define USER_LABEL_PREFIX "_"
+
+ #define NO_IMPLICIT_EXTERN_C
Index: config/bfin/lib1funcs.asm
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/lib1funcs.asm,v
retrieving revision 1.1.8.1
diff -c -p -r1.1.8.1 lib1funcs.asm
*** config/bfin/lib1funcs.asm 25 Apr 2005 10:40:25 -0000 1.1.8.1
--- config/bfin/lib1funcs.asm 9 Aug 2005 10:32:34 -0000
*************** GNU General Public License for more deta
*** 16,23 ****
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 59 Temple Place - Suite 330,
! Boston, MA 02111-1307, USA. */
/* As a special exception, if you link this library with files
compiled with GCC to produce an executable, this does not cause
--- 16,23 ----
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to
! the Free Software Foundation, 51 Franklin Street, Fifth Floor,
! Boston, MA 02110-1301, USA. */
/* As a special exception, if you link this library with files
compiled with GCC to produce an executable, this does not cause
Index: config/bfin/predicates.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/bfin/predicates.md,v
retrieving revision 1.1.8.2
diff -c -p -r1.1.8.2 predicates.md
*** config/bfin/predicates.md 20 Jul 2005 10:36:32 -0000 1.1.8.2
--- config/bfin/predicates.md 9 Aug 2005 10:32:34 -0000
***************
*** 14,21 ****
;;
;; You should have received a copy of the GNU General Public License
;; along with GCC; see the file COPYING. If not, write to
! ;; the Free Software Foundation, 59 Temple Place - Suite 330,
! ;; Boston, MA 02111-1307, USA.
;; Return nonzero iff OP is one of the integer constants 1 or 2.
(define_predicate "pos_scale_operand"
--- 14,21 ----
;;
;; You should have received a copy of the GNU General Public License
;; along with GCC; see the file COPYING. If not, write to
! ;; the Free Software Foundation, 51 Franklin Street, Fifth Floor,
! ;; Boston, MA 02110-1301, USA.
;; Return nonzero iff OP is one of the integer constants 1 or 2.
(define_predicate "pos_scale_operand"
Index: config/bfin/uclinux.h
===================================================================
RCS file: config/bfin/uclinux.h
diff -N config/bfin/uclinux.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- config/bfin/uclinux.h 9 Aug 2005 10:32:34 -0000
***************
*** 0 ****
--- 1,12 ----
+ #undef STARTFILE_SPEC
+ #define STARTFILE_SPEC \
+ "crt1%O%s crti%O%s crtbegin%O%s"
+
+ #undef ENDFILE_SPEC
+ #define ENDFILE_SPEC \
+ "crtend%O%s crtn%O%s"
+
+ #undef LIB_SPEC
+ #define LIB_SPEC "%{pthread:-lpthread} -lc"
+
+ #define NO_IMPLICIT_EXTERN_C