mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 03:30:05 +02:00
gcc6809: re-add part of patchset that wnet lost in previous update
and further cleanup.
This commit is contained in:
@@ -4,13 +4,13 @@ uses the lwtools as a backend. Note that there is no C library provided."
|
||||
HOMEPAGE="http://lwtools.projects.l-w.ca"
|
||||
SOURCE_URI="ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-$portVersion/gcc-$portVersion.tar.bz2"
|
||||
CHECKSUM_SHA256="35af16afa0b67af9b8eb15cafb76d2bc5f568540552522f5dc2c88dd45d977e8"
|
||||
REVISION="3"
|
||||
REVISION="4"
|
||||
COPYRIGHT="1988-2013 Free Software Foundation, Inc."
|
||||
LICENSE="
|
||||
GNU GPL v2
|
||||
GNU LGPL v2
|
||||
"
|
||||
PATCHES="gcc6809lw-$portVersion-9.patchset"
|
||||
PATCHES="gcc6809-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="!x86_gcc2"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
@@ -44,6 +44,7 @@ BUILD_PREREQUIRES="
|
||||
cmd:find
|
||||
cmd:flex
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:gperf
|
||||
cmd:ld$secondaryArchSuffix
|
||||
cmd:make
|
||||
cmd:makeinfo
|
||||
|
||||
@@ -1,7 +1,34 @@
|
||||
diff -urN gcc-4.6.4-clean/config.sub gcc-4.6.4/config.sub
|
||||
--- gcc-4.6.4-clean/config.sub 2010-05-25 07:22:07.000000000 -0600
|
||||
+++ gcc-4.6.4/config.sub 2017-11-28 21:12:11.136911706 -0700
|
||||
@@ -313,7 +313,7 @@
|
||||
From cd2a97f9a8501086afdc3167fb4c8a810c7a71ae Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Tue, 19 Mar 2019 08:08:06 +0100
|
||||
Subject: applying patch gcc6809lw-4.6.4-9.patch
|
||||
|
||||
|
||||
diff --git a/README.LW b/README.LW
|
||||
new file mode 100644
|
||||
index 0000000..6ddd8ef
|
||||
--- /dev/null
|
||||
+++ b/README.LW
|
||||
@@ -0,0 +1,14 @@
|
||||
+This is a port of gcc6809 which is designed to work with the lwtools
|
||||
+cross-assembler and linker package. You will need several scripts from that
|
||||
+package, available at http://lost.l-w.ca/coco/lwtools/, in order to use
|
||||
+this. Instructions for building are present in the lwtools package.
|
||||
+
|
||||
+This work is based extensively on the gcc6809 4.3.4-3 release by Brian
|
||||
+Dominy (brian@oddchange.com) with some significant renovations to make it
|
||||
+work with gcc 4.6.4.
|
||||
+
|
||||
+There is no guarantee that it will work for any particular purpose you
|
||||
+choose to put it to.
|
||||
+
|
||||
+If you run into any problems, contact William Astle (lost@l-w.ca). DO NOT
|
||||
+contact the main GCC developers!
|
||||
diff --git a/config.sub b/config.sub
|
||||
index 204218c..75da021 100755
|
||||
--- a/config.sub
|
||||
+++ b/config.sub
|
||||
@@ -313,7 +313,7 @@ case $basic_machine in
|
||||
c6x)
|
||||
basic_machine=tic6x-unknown
|
||||
;;
|
||||
@@ -10,7 +37,7 @@ diff -urN gcc-4.6.4-clean/config.sub gcc-4.6.4/config.sub
|
||||
# Motorola 68HC11/12.
|
||||
basic_machine=$basic_machine-unknown
|
||||
os=-none
|
||||
@@ -354,7 +354,7 @@
|
||||
@@ -354,7 +354,7 @@ case $basic_machine in
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| ip2k-* | iq2000-* \
|
||||
| lm32-* \
|
||||
@@ -19,7 +46,7 @@ diff -urN gcc-4.6.4-clean/config.sub gcc-4.6.4/config.sub
|
||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
|
||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||
@@ -509,6 +509,10 @@
|
||||
@@ -509,6 +509,10 @@ case $basic_machine in
|
||||
basic_machine=arm-unknown
|
||||
os=-cegcc
|
||||
;;
|
||||
@@ -30,10 +57,11 @@ diff -urN gcc-4.6.4-clean/config.sub gcc-4.6.4/config.sub
|
||||
convex-c1)
|
||||
basic_machine=c1-convex
|
||||
os=-bsd
|
||||
diff -urN gcc-4.6.4-clean/configure gcc-4.6.4/configure
|
||||
--- gcc-4.6.4-clean/configure 2011-12-18 03:03:44.000000000 -0700
|
||||
+++ gcc-4.6.4/configure 2017-11-28 21:12:11.136911706 -0700
|
||||
@@ -3439,6 +3439,9 @@
|
||||
diff --git a/configure b/configure
|
||||
index 6be5e9d..33ed6f6 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -3439,6 +3439,9 @@ case "${target}" in
|
||||
m32r-*-*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||||
;;
|
||||
@@ -43,10 +71,11 @@ diff -urN gcc-4.6.4-clean/configure gcc-4.6.4/configure
|
||||
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
|
||||
noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
|
||||
libgloss_dir=m68hc11
|
||||
diff -urN gcc-4.6.4-clean/configure.ac gcc-4.6.4/configure.ac
|
||||
--- gcc-4.6.4-clean/configure.ac 2011-11-18 04:45:44.000000000 -0700
|
||||
+++ gcc-4.6.4/configure.ac 2017-11-28 21:12:11.140911685 -0700
|
||||
@@ -885,6 +885,9 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index ba6d84d..ae8e733 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -885,6 +885,9 @@ case "${target}" in
|
||||
m32r-*-*)
|
||||
noconfigdirs="$noconfigdirs ${libgcj}"
|
||||
;;
|
||||
@@ -56,10 +85,34 @@ diff -urN gcc-4.6.4-clean/configure.ac gcc-4.6.4/configure.ac
|
||||
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
|
||||
noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
|
||||
libgloss_dir=m68hc11
|
||||
diff -urN gcc-4.6.4-clean/gcc/calls.c gcc-4.6.4/gcc/calls.c
|
||||
--- gcc-4.6.4-clean/gcc/calls.c 2012-02-09 10:27:25.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/calls.c 2017-11-28 21:12:11.140911685 -0700
|
||||
@@ -2561,7 +2561,7 @@
|
||||
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
|
||||
index e0b952f..c2f5318 100644
|
||||
--- a/gcc/Makefile.in
|
||||
+++ b/gcc/Makefile.in
|
||||
@@ -2003,14 +2003,14 @@ $(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
|
||||
|
||||
# Compile the start modules crt0.o and mcrt0.o that are linked with
|
||||
# every program
|
||||
-$(T)crt0.o: s-crt0 ; @true
|
||||
-$(T)mcrt0.o: s-crt0; @true
|
||||
+crt0.o: s-crt0 ; @true
|
||||
+mcrt0.o: s-crt0; @true
|
||||
|
||||
s-crt0: $(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H)
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
|
||||
- -o $(T)crt0.o -c $(CRT0_S)
|
||||
+ -o crt0.o -c $(CRT0_S)
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
|
||||
- -o $(T)mcrt0.o -c $(MCRT0_S)
|
||||
+ -o mcrt0.o -c $(MCRT0_S)
|
||||
$(STAMP) s-crt0
|
||||
#
|
||||
# Compiling object files from source files.
|
||||
diff --git a/gcc/calls.c b/gcc/calls.c
|
||||
index 4ad6c3f..f3af562 100644
|
||||
--- a/gcc/calls.c
|
||||
+++ b/gcc/calls.c
|
||||
@@ -2561,7 +2561,7 @@ expand_call (tree exp, rtx target, int ignore)
|
||||
call sequence.
|
||||
Also do the adjustments before a throwing call, otherwise
|
||||
exception handling can fail; PR 19225. */
|
||||
@@ -68,9 +121,41 @@ diff -urN gcc-4.6.4-clean/gcc/calls.c gcc-4.6.4/gcc/calls.c
|
||||
|| (pending_stack_adjust > 0
|
||||
&& (flags & ECF_MAY_BE_ALLOCA))
|
||||
|| (pending_stack_adjust > 0
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/crt0.S gcc-4.6.4/gcc/config/m6809/crt0.S
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/crt0.S 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/crt0.S 2017-11-29 17:11:09.221248469 -0700
|
||||
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
||||
index 6dc2427..ea5d286 100644
|
||||
--- a/gcc/config.gcc
|
||||
+++ b/gcc/config.gcc
|
||||
@@ -375,6 +375,9 @@ m32r*-*-*)
|
||||
cpu_type=m32r
|
||||
extra_options="${extra_options} g.opt"
|
||||
;;
|
||||
+m6809-*-*)
|
||||
+ cpu_type=m6809
|
||||
+ ;;
|
||||
m68k-*-*)
|
||||
extra_headers=math-68881.h
|
||||
;;
|
||||
@@ -1706,6 +1709,15 @@ m32rle-*-linux*)
|
||||
thread_file='posix'
|
||||
fi
|
||||
;;
|
||||
+m6809-coco-*)
|
||||
+ tmake_file="${tmake_file} m6809/t-m6809 m6809/t-coco"
|
||||
+ ;;
|
||||
+m6809-proto-*)
|
||||
+ tmake_file="${tmake_file} m6809/t-m6809 m6809/t-proto"
|
||||
+ ;;
|
||||
+m6809-*-*)
|
||||
+ tmake_file="${tmake_file} m6809/t-m6809 m6809/t-sim"
|
||||
+ ;;
|
||||
# m68hc11 and m68hc12 share the same machine description.
|
||||
m68hc11-*-*|m6811-*-*)
|
||||
tm_file="dbxelf.h elfos.h usegas.h newlib-stdint.h m68hc11/m68hc11.h"
|
||||
diff --git a/gcc/config/m6809/crt0.S b/gcc/config/m6809/crt0.S
|
||||
new file mode 100644
|
||||
index 0000000..4985f92
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/crt0.S
|
||||
@@ -0,0 +1,182 @@
|
||||
+;;;
|
||||
+;;; Copyright 2006, 2007, 2008, 2009 by Brian Dominy <brian@oddchange.com>
|
||||
@@ -254,9 +339,11 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/crt0.S gcc-4.6.4/gcc/config/m6809/crt
|
||||
+ .word ___crt0_vector
|
||||
+ .word ___crt0_vector
|
||||
+ .word __start
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/libgcc1.s gcc-4.6.4/gcc/config/m6809/libgcc1.s
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/libgcc1.s 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/libgcc1.s 2017-11-28 21:12:11.152911619 -0700
|
||||
diff --git a/gcc/config/m6809/libgcc1.s b/gcc/config/m6809/libgcc1.s
|
||||
new file mode 100644
|
||||
index 0000000..4a1e1c7
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/libgcc1.s
|
||||
@@ -0,0 +1,511 @@
|
||||
+/* libgcc routines for m6809
|
||||
+ Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
@@ -769,9 +856,111 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/libgcc1.s gcc-4.6.4/gcc/config/m6809/
|
||||
+
|
||||
+
|
||||
+
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809.c gcc-4.6.4/gcc/config/m6809/m6809.c
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/m6809.c 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/m6809.c 2017-11-29 17:11:09.221248469 -0700
|
||||
diff --git a/gcc/config/m6809/m6809-protos.h b/gcc/config/m6809/m6809-protos.h
|
||||
new file mode 100644
|
||||
index 0000000..ba00de5
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/m6809-protos.h
|
||||
@@ -0,0 +1,94 @@
|
||||
+/* GCC for 6809 : machine-specific function prototypes
|
||||
+
|
||||
+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
|
||||
+<http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#ifndef __M6809_PROTOS_H__
|
||||
+#define __M6809_PROTOS_H__
|
||||
+
|
||||
+void print_options (FILE *file);
|
||||
+void m6809_cpu_cpp_builtins (void);
|
||||
+void m6809_override_options (void);
|
||||
+void m6809_init_builtins (void);
|
||||
+unsigned int m6809_get_live_regs (void);
|
||||
+const char * m6809_get_regs_printable (unsigned int regs);
|
||||
+unsigned int m6809_get_regs_size (unsigned int regs);
|
||||
+int m6809_function_has_type_attr_p (tree decl, const char *);
|
||||
+int m6809_current_function_has_type_attr_p (const char *);
|
||||
+int prologue_epilogue_required (void);
|
||||
+int noreturn_functionp (rtx x);
|
||||
+void output_function_prologue (FILE *file, int size);
|
||||
+void output_function_epilogue (FILE *file, int size);
|
||||
+int check_float_value (enum machine_mode mode, double *d, int overflow);
|
||||
+void m6809_asm_named_section (const char *name, unsigned int flags, tree decl);
|
||||
+void m6809_asm_file_start (void);
|
||||
+void m6809_output_ascii (FILE *fp, const char *str, unsigned long size);
|
||||
+void m6809_declare_function_name (FILE *asm_out_file, const char *name, tree decl);
|
||||
+void m6809_reorg (void);
|
||||
+int m6809_current_function_is_void (void);
|
||||
+int m6809_can_merge_pushpop_p (int op, int regs1, int regs2);
|
||||
+int m6809_function_value_regno_p (unsigned int regno);
|
||||
+void emit_prologue_insns (void);
|
||||
+void emit_epilogue_insns (bool);
|
||||
+void m6809_conditional_register_usage (void);
|
||||
+void m6809_output_quoted_string (FILE *asm_file, const char *string);
|
||||
+int m6809_match_peephole2 (unsigned int peephole_id, unsigned int stage);
|
||||
+int m6809_hard_regno_mode_ok (unsigned int regno, enum machine_mode mode);
|
||||
+int power_of_two_p (unsigned int n);
|
||||
+void m6809_do_casesi (rtx index, rtx lower_bound, rtx range, rtx table_label, rtx default_label);
|
||||
+void m6809_output_addsi3 (int rtx_code, rtx *operands);
|
||||
+rtx m6809_function_arg_on_stack (CUMULATIVE_ARGS *cump);
|
||||
+void expand_constant_shift (int code, rtx dst, rtx src, rtx count);
|
||||
+int m6809_single_operand_operator (rtx exp);
|
||||
+
|
||||
+#ifdef TREE_CODE
|
||||
+int m6809_init_cumulative_args (CUMULATIVE_ARGS cum, tree fntype, rtx libname);
|
||||
+#endif /* TREE_CODE */
|
||||
+
|
||||
+#ifdef RTX_CODE
|
||||
+void print_direct_prefix (FILE *file, rtx addr);
|
||||
+void print_operand (FILE *file, rtx x, int code);
|
||||
+void print_operand_address (FILE *file, rtx addr);
|
||||
+void notice_update_cc (rtx exp, rtx insn);
|
||||
+enum reg_class m6809_preferred_reload_class (rtx x, enum reg_class regclass);
|
||||
+rtx gen_rtx_const_high (rtx r);
|
||||
+rtx gen_rtx_const_low (rtx r);
|
||||
+rtx gen_rtx_register_pushpop (int pop_flag, int regs);
|
||||
+void emit_libcall_insns (enum machine_mode mode, const char *name, rtx *operands, int count);
|
||||
+const char * output_branch_insn (enum rtx_code code, rtx *operands, int length);
|
||||
+void output_far_call_insn (rtx *operands, int has_return);
|
||||
+void m6809_initialize_trampoline (rtx tramp, tree fndecl, rtx cxt);
|
||||
+rtx m6809_expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode, int ignore);
|
||||
+const char * far_functionp (rtx x);
|
||||
+rtx m6809_function_value (const tree valtype, const tree func);
|
||||
+void m6809_output_shift_insn (int rtx_code, rtx *operands);
|
||||
+
|
||||
+const char * m6809_get_decl_bank (tree decl);
|
||||
+void output_branch_insn1 (const char *opcode, rtx *operands, int long_p);
|
||||
+rtx m6809_builtin_operand (tree arglist, enum machine_mode mode, int opnum);
|
||||
+const char * far_function_type_p (tree type);
|
||||
+void m6809_asm_trampoline_template(FILE *f);
|
||||
+bool m6809_frame_pointer_required (void);
|
||||
+int m6809_can_eliminate (int from, int to);
|
||||
+int m6809_initial_elimination_offset (int from, int to);
|
||||
+void m6809_emit_move_insn (rtx dst, rtx src);
|
||||
+void m6809_split_shift (enum rtx_code code, rtx *operands);
|
||||
+bool m6809_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED);
|
||||
+
|
||||
+
|
||||
+#endif /* RTX_CODE */
|
||||
+
|
||||
+#endif /* __M6809_PROTOS_H__ */
|
||||
diff --git a/gcc/config/m6809/m6809.c b/gcc/config/m6809/m6809.c
|
||||
new file mode 100644
|
||||
index 0000000..3a66ae0
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/m6809.c
|
||||
@@ -0,0 +1,3027 @@
|
||||
+/*-------------------------------------------------------------------
|
||||
+ FILE: m6809.c
|
||||
@@ -3800,9 +3989,11 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809.c gcc-4.6.4/gcc/config/m6809/m6
|
||||
+
|
||||
+/* Defines the target-specific hooks structure. */
|
||||
+struct gcc_target targetm = TARGET_INITIALIZER;
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809.h gcc-4.6.4/gcc/config/m6809/m6809.h
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/m6809.h 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/m6809.h 2017-11-29 17:11:09.221248469 -0700
|
||||
diff --git a/gcc/config/m6809/m6809.h b/gcc/config/m6809/m6809.h
|
||||
new file mode 100644
|
||||
index 0000000..11eff6d
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/m6809.h
|
||||
@@ -0,0 +1,1336 @@
|
||||
+/* Definitions of target machine for GNU compiler. MC6809 version.
|
||||
+
|
||||
@@ -5140,9 +5331,11 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809.h gcc-4.6.4/gcc/config/m6809/m6
|
||||
+ M6809_BLOCKAGE
|
||||
+};
|
||||
+
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809.md gcc-4.6.4/gcc/config/m6809/m6809.md
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/m6809.md 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/m6809.md 2017-11-29 17:11:09.221248469 -0700
|
||||
diff --git a/gcc/config/m6809/m6809.md b/gcc/config/m6809/m6809.md
|
||||
new file mode 100644
|
||||
index 0000000..b86bdd1
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/m6809.md
|
||||
@@ -0,0 +1,2358 @@
|
||||
+;; GCC machine description for Motorola 6809
|
||||
+;; Copyright (C) 1989, 2005, 2006, 2007, 2008,
|
||||
@@ -7502,9 +7695,11 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809.md gcc-4.6.4/gcc/config/m6809/m
|
||||
+;-; vim: set expandtab:
|
||||
+;-; vim: set filetype=lisp:
|
||||
+;;- End:
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809.opt gcc-4.6.4/gcc/config/m6809/m6809.opt
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/m6809.opt 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/m6809.opt 2017-11-28 21:12:11.156911596 -0700
|
||||
diff --git a/gcc/config/m6809/m6809.opt b/gcc/config/m6809/m6809.opt
|
||||
new file mode 100644
|
||||
index 0000000..6270917
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/m6809.opt
|
||||
@@ -0,0 +1,98 @@
|
||||
+; Options for the M6809 port of the compiler
|
||||
+;
|
||||
@@ -7604,107 +7799,11 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809.opt gcc-4.6.4/gcc/config/m6809/
|
||||
+Enable stack parameters to a farcall
|
||||
+
|
||||
+
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/m6809-protos.h gcc-4.6.4/gcc/config/m6809/m6809-protos.h
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/m6809-protos.h 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/m6809-protos.h 2017-11-28 21:12:11.156911596 -0700
|
||||
@@ -0,0 +1,94 @@
|
||||
+/* GCC for 6809 : machine-specific function prototypes
|
||||
+
|
||||
+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
|
||||
+<http://www.gnu.org/licenses/>. */
|
||||
+
|
||||
+#ifndef __M6809_PROTOS_H__
|
||||
+#define __M6809_PROTOS_H__
|
||||
+
|
||||
+void print_options (FILE *file);
|
||||
+void m6809_cpu_cpp_builtins (void);
|
||||
+void m6809_override_options (void);
|
||||
+void m6809_init_builtins (void);
|
||||
+unsigned int m6809_get_live_regs (void);
|
||||
+const char * m6809_get_regs_printable (unsigned int regs);
|
||||
+unsigned int m6809_get_regs_size (unsigned int regs);
|
||||
+int m6809_function_has_type_attr_p (tree decl, const char *);
|
||||
+int m6809_current_function_has_type_attr_p (const char *);
|
||||
+int prologue_epilogue_required (void);
|
||||
+int noreturn_functionp (rtx x);
|
||||
+void output_function_prologue (FILE *file, int size);
|
||||
+void output_function_epilogue (FILE *file, int size);
|
||||
+int check_float_value (enum machine_mode mode, double *d, int overflow);
|
||||
+void m6809_asm_named_section (const char *name, unsigned int flags, tree decl);
|
||||
+void m6809_asm_file_start (void);
|
||||
+void m6809_output_ascii (FILE *fp, const char *str, unsigned long size);
|
||||
+void m6809_declare_function_name (FILE *asm_out_file, const char *name, tree decl);
|
||||
+void m6809_reorg (void);
|
||||
+int m6809_current_function_is_void (void);
|
||||
+int m6809_can_merge_pushpop_p (int op, int regs1, int regs2);
|
||||
+int m6809_function_value_regno_p (unsigned int regno);
|
||||
+void emit_prologue_insns (void);
|
||||
+void emit_epilogue_insns (bool);
|
||||
+void m6809_conditional_register_usage (void);
|
||||
+void m6809_output_quoted_string (FILE *asm_file, const char *string);
|
||||
+int m6809_match_peephole2 (unsigned int peephole_id, unsigned int stage);
|
||||
+int m6809_hard_regno_mode_ok (unsigned int regno, enum machine_mode mode);
|
||||
+int power_of_two_p (unsigned int n);
|
||||
+void m6809_do_casesi (rtx index, rtx lower_bound, rtx range, rtx table_label, rtx default_label);
|
||||
+void m6809_output_addsi3 (int rtx_code, rtx *operands);
|
||||
+rtx m6809_function_arg_on_stack (CUMULATIVE_ARGS *cump);
|
||||
+void expand_constant_shift (int code, rtx dst, rtx src, rtx count);
|
||||
+int m6809_single_operand_operator (rtx exp);
|
||||
+
|
||||
+#ifdef TREE_CODE
|
||||
+int m6809_init_cumulative_args (CUMULATIVE_ARGS cum, tree fntype, rtx libname);
|
||||
+#endif /* TREE_CODE */
|
||||
+
|
||||
+#ifdef RTX_CODE
|
||||
+void print_direct_prefix (FILE *file, rtx addr);
|
||||
+void print_operand (FILE *file, rtx x, int code);
|
||||
+void print_operand_address (FILE *file, rtx addr);
|
||||
+void notice_update_cc (rtx exp, rtx insn);
|
||||
+enum reg_class m6809_preferred_reload_class (rtx x, enum reg_class regclass);
|
||||
+rtx gen_rtx_const_high (rtx r);
|
||||
+rtx gen_rtx_const_low (rtx r);
|
||||
+rtx gen_rtx_register_pushpop (int pop_flag, int regs);
|
||||
+void emit_libcall_insns (enum machine_mode mode, const char *name, rtx *operands, int count);
|
||||
+const char * output_branch_insn (enum rtx_code code, rtx *operands, int length);
|
||||
+void output_far_call_insn (rtx *operands, int has_return);
|
||||
+void m6809_initialize_trampoline (rtx tramp, tree fndecl, rtx cxt);
|
||||
+rtx m6809_expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode, int ignore);
|
||||
+const char * far_functionp (rtx x);
|
||||
+rtx m6809_function_value (const tree valtype, const tree func);
|
||||
+void m6809_output_shift_insn (int rtx_code, rtx *operands);
|
||||
+
|
||||
+const char * m6809_get_decl_bank (tree decl);
|
||||
+void output_branch_insn1 (const char *opcode, rtx *operands, int long_p);
|
||||
+rtx m6809_builtin_operand (tree arglist, enum machine_mode mode, int opnum);
|
||||
+const char * far_function_type_p (tree type);
|
||||
+void m6809_asm_trampoline_template(FILE *f);
|
||||
+bool m6809_frame_pointer_required (void);
|
||||
+int m6809_can_eliminate (int from, int to);
|
||||
+int m6809_initial_elimination_offset (int from, int to);
|
||||
+void m6809_emit_move_insn (rtx dst, rtx src);
|
||||
+void m6809_split_shift (enum rtx_code code, rtx *operands);
|
||||
+bool m6809_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED);
|
||||
+
|
||||
+
|
||||
+#endif /* RTX_CODE */
|
||||
+
|
||||
+#endif /* __M6809_PROTOS_H__ */
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/predicates.md gcc-4.6.4/gcc/config/m6809/predicates.md
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/predicates.md 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/predicates.md 2017-11-28 21:12:11.156911596 -0700
|
||||
diff --git a/gcc/config/m6809/predicates.md b/gcc/config/m6809/predicates.md
|
||||
new file mode 100644
|
||||
index 0000000..0e257ec
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/predicates.md
|
||||
@@ -0,0 +1,78 @@
|
||||
+;; Predicate definitions for Motorola 6809
|
||||
+;; Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
@@ -7784,9 +7883,11 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/predicates.md gcc-4.6.4/gcc/config/m6
|
||||
+
|
||||
+(define_predicate "symbolic_operand" (match_code "symbol_ref"))
|
||||
+
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/t-coco gcc-4.6.4/gcc/config/m6809/t-coco
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/t-coco 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/t-coco 2017-11-29 17:11:09.221248469 -0700
|
||||
diff --git a/gcc/config/m6809/t-coco b/gcc/config/m6809/t-coco
|
||||
new file mode 100644
|
||||
index 0000000..db1d76f
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/t-coco
|
||||
@@ -0,0 +1,6 @@
|
||||
+# For a few minor differences in code generation on the CoCo...
|
||||
+T_CFLAGS = -DTARGET_COCO
|
||||
@@ -7794,9 +7895,11 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/t-coco gcc-4.6.4/gcc/config/m6809/t-c
|
||||
+# For doing the startup differently on the CoCo...
|
||||
+CRT0STUFF_T_CFLAGS += -DTARGET_COCO
|
||||
+# vim: set filetype=make:
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/t-m6809 gcc-4.6.4/gcc/config/m6809/t-m6809
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/t-m6809 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/t-m6809 2017-11-28 21:12:11.156911596 -0700
|
||||
diff --git a/gcc/config/m6809/t-m6809 b/gcc/config/m6809/t-m6809
|
||||
new file mode 100644
|
||||
index 0000000..2b38a8f
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/t-m6809
|
||||
@@ -0,0 +1,64 @@
|
||||
+
|
||||
+# ranlib doesn't exist, so define it to 'true' to make it a no-op
|
||||
@@ -7862,9 +7965,11 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/t-m6809 gcc-4.6.4/gcc/config/m6809/t-
|
||||
+
|
||||
+$(T)mcrt0.o: $(MCRT0_S) $(GCC_PASSES)
|
||||
+ $(GCC_FOR_TARGET) $(CRT0STUFF_T_CFLAGS) $(MULTILIB_CFLAGS) -c -o $(T)mcrt0.o -x assembler-with-cpp $(MCRT0_S)
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/t-proto gcc-4.6.4/gcc/config/m6809/t-proto
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/t-proto 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/t-proto 2017-11-29 17:11:09.221248469 -0700
|
||||
diff --git a/gcc/config/m6809/t-proto b/gcc/config/m6809/t-proto
|
||||
new file mode 100644
|
||||
index 0000000..f3f0fe3
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/t-proto
|
||||
@@ -0,0 +1,6 @@
|
||||
+# For a few minor differences in code generation on a custom prototype.
|
||||
+T_CFLAGS = -DTARGET_PROTO
|
||||
@@ -7872,44 +7977,18 @@ diff -urN gcc-4.6.4-clean/gcc/config/m6809/t-proto gcc-4.6.4/gcc/config/m6809/t-
|
||||
+# For doing the startup differently on a custom prototype.
|
||||
+CRT0STUFF_T_CFLAGS += -DTARGET_PROTO
|
||||
+# vim: set filetype=make:
|
||||
diff -urN gcc-4.6.4-clean/gcc/config/m6809/t-sim gcc-4.6.4/gcc/config/m6809/t-sim
|
||||
--- gcc-4.6.4-clean/gcc/config/m6809/t-sim 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config/m6809/t-sim 2017-11-28 21:12:11.156911596 -0700
|
||||
diff --git a/gcc/config/m6809/t-sim b/gcc/config/m6809/t-sim
|
||||
new file mode 100644
|
||||
index 0000000..cd3b094
|
||||
--- /dev/null
|
||||
+++ b/gcc/config/m6809/t-sim
|
||||
@@ -0,0 +1 @@
|
||||
+CRT0STUFF_T_CFLAGS += -DTARGET_SIM
|
||||
diff -urN gcc-4.6.4-clean/gcc/config.gcc gcc-4.6.4/gcc/config.gcc
|
||||
--- gcc-4.6.4-clean/gcc/config.gcc 2013-03-06 10:40:07.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/config.gcc 2017-11-29 17:11:09.229248437 -0700
|
||||
@@ -375,6 +375,9 @@
|
||||
cpu_type=m32r
|
||||
extra_options="${extra_options} g.opt"
|
||||
;;
|
||||
+m6809-*-*)
|
||||
+ cpu_type=m6809
|
||||
+ ;;
|
||||
m68k-*-*)
|
||||
extra_headers=math-68881.h
|
||||
;;
|
||||
@@ -1706,6 +1709,15 @@
|
||||
thread_file='posix'
|
||||
fi
|
||||
;;
|
||||
+m6809-coco-*)
|
||||
+ tmake_file="${tmake_file} m6809/t-m6809 m6809/t-coco"
|
||||
+ ;;
|
||||
+m6809-proto-*)
|
||||
+ tmake_file="${tmake_file} m6809/t-m6809 m6809/t-proto"
|
||||
+ ;;
|
||||
+m6809-*-*)
|
||||
+ tmake_file="${tmake_file} m6809/t-m6809 m6809/t-sim"
|
||||
+ ;;
|
||||
# m68hc11 and m68hc12 share the same machine description.
|
||||
m68hc11-*-*|m6811-*-*)
|
||||
tm_file="dbxelf.h elfos.h usegas.h newlib-stdint.h m68hc11/m68hc11.h"
|
||||
diff -urN gcc-4.6.4-clean/gcc/gcse.c gcc-4.6.4/gcc/gcse.c
|
||||
--- gcc-4.6.4-clean/gcc/gcse.c 2011-02-02 23:04:04.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/gcse.c 2017-11-28 21:12:11.156911596 -0700
|
||||
@@ -833,7 +833,6 @@
|
||||
diff --git a/gcc/gcse.c b/gcc/gcse.c
|
||||
index 27f7e8f..1079c6f 100644
|
||||
--- a/gcc/gcse.c
|
||||
+++ b/gcc/gcse.c
|
||||
@@ -833,7 +833,6 @@ want_to_gcse_p (rtx x, int *max_distance_ptr)
|
||||
max_distance = (GCSE_COST_DISTANCE_RATIO * cost) / 10;
|
||||
if (max_distance == 0)
|
||||
return 0;
|
||||
@@ -7917,10 +7996,11 @@ diff -urN gcc-4.6.4-clean/gcc/gcse.c gcc-4.6.4/gcc/gcse.c
|
||||
gcc_assert (max_distance > 0);
|
||||
}
|
||||
else
|
||||
diff -urN gcc-4.6.4-clean/gcc/libgcc2.c gcc-4.6.4/gcc/libgcc2.c
|
||||
--- gcc-4.6.4-clean/gcc/libgcc2.c 2011-01-03 13:52:22.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/libgcc2.c 2017-11-28 21:12:11.156911596 -0700
|
||||
@@ -485,6 +485,7 @@
|
||||
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
|
||||
index 78d53f0..b5b8c84 100644
|
||||
--- a/gcc/libgcc2.c
|
||||
+++ b/gcc/libgcc2.c
|
||||
@@ -485,6 +485,7 @@ __ashrdi3 (DWtype u, shift_count_type b)
|
||||
#endif
|
||||
|
||||
#ifdef L_bswapsi2
|
||||
@@ -7928,7 +8008,7 @@ diff -urN gcc-4.6.4-clean/gcc/libgcc2.c gcc-4.6.4/gcc/libgcc2.c
|
||||
SItype
|
||||
__bswapsi2 (SItype u)
|
||||
{
|
||||
@@ -494,7 +495,9 @@
|
||||
@@ -494,7 +495,9 @@ __bswapsi2 (SItype u)
|
||||
| (((u) & 0x000000ff) << 24));
|
||||
}
|
||||
#endif
|
||||
@@ -7938,7 +8018,7 @@ diff -urN gcc-4.6.4-clean/gcc/libgcc2.c gcc-4.6.4/gcc/libgcc2.c
|
||||
DItype
|
||||
__bswapdi2 (DItype u)
|
||||
{
|
||||
@@ -508,6 +511,7 @@
|
||||
@@ -508,6 +511,7 @@ __bswapdi2 (DItype u)
|
||||
| (((u) & 0x00000000000000ffull) << 56));
|
||||
}
|
||||
#endif
|
||||
@@ -7946,7 +8026,7 @@ diff -urN gcc-4.6.4-clean/gcc/libgcc2.c gcc-4.6.4/gcc/libgcc2.c
|
||||
#ifdef L_ffssi2
|
||||
#undef int
|
||||
int
|
||||
@@ -1280,7 +1284,7 @@
|
||||
@@ -1280,7 +1284,7 @@ __fixdfdi (DFtype a)
|
||||
UDWtype
|
||||
__fixunssfDI (SFtype a)
|
||||
{
|
||||
@@ -7955,7 +8035,7 @@ diff -urN gcc-4.6.4-clean/gcc/libgcc2.c gcc-4.6.4/gcc/libgcc2.c
|
||||
/* Convert the SFtype to a DFtype, because that is surely not going
|
||||
to lose any bits. Some day someone else can write a faster version
|
||||
that avoids converting to DFtype, and verify it really works right. */
|
||||
@@ -1298,7 +1302,7 @@
|
||||
@@ -1298,7 +1302,7 @@ __fixunssfDI (SFtype a)
|
||||
|
||||
/* Assemble result from the two parts. */
|
||||
return ((UDWtype) hi << W_TYPE_SIZE) | lo;
|
||||
@@ -7964,7 +8044,7 @@ diff -urN gcc-4.6.4-clean/gcc/libgcc2.c gcc-4.6.4/gcc/libgcc2.c
|
||||
if (a < 1)
|
||||
return 0;
|
||||
if (a < Wtype_MAXp1_F)
|
||||
@@ -1334,8 +1338,6 @@
|
||||
@@ -1334,8 +1338,6 @@ __fixunssfDI (SFtype a)
|
||||
return (DWtype)counter << shift;
|
||||
}
|
||||
return -1;
|
||||
@@ -7973,10 +8053,11 @@ diff -urN gcc-4.6.4-clean/gcc/libgcc2.c gcc-4.6.4/gcc/libgcc2.c
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
diff -urN gcc-4.6.4-clean/gcc/longlong.h gcc-4.6.4/gcc/longlong.h
|
||||
--- gcc-4.6.4-clean/gcc/longlong.h 2011-10-04 01:28:50.000000000 -0600
|
||||
+++ gcc-4.6.4/gcc/longlong.h 2017-11-28 21:12:11.160911575 -0700
|
||||
@@ -528,6 +528,11 @@
|
||||
diff --git a/gcc/longlong.h b/gcc/longlong.h
|
||||
index acb3185..20dd0ef 100644
|
||||
--- a/gcc/longlong.h
|
||||
+++ b/gcc/longlong.h
|
||||
@@ -528,6 +528,11 @@ UDItype __umulsidi3 (USItype, USItype);
|
||||
: "cbit")
|
||||
#endif /* __M32R__ */
|
||||
|
||||
@@ -7988,32 +8069,11 @@ diff -urN gcc-4.6.4-clean/gcc/longlong.h gcc-4.6.4/gcc/longlong.h
|
||||
#if defined (__mc68000__) && W_TYPE_SIZE == 32
|
||||
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||
__asm__ ("add%.l %5,%1\n\taddx%.l %3,%0" \
|
||||
diff -urN gcc-4.6.4-clean/gcc/Makefile.in gcc-4.6.4/gcc/Makefile.in
|
||||
--- gcc-4.6.4-clean/gcc/Makefile.in 2013-04-01 02:32:34.000000000 -0600
|
||||
+++ gcc-4.6.4/gcc/Makefile.in 2017-11-28 21:12:11.160911575 -0700
|
||||
@@ -2003,14 +2003,14 @@
|
||||
|
||||
# Compile the start modules crt0.o and mcrt0.o that are linked with
|
||||
# every program
|
||||
-$(T)crt0.o: s-crt0 ; @true
|
||||
-$(T)mcrt0.o: s-crt0; @true
|
||||
+crt0.o: s-crt0 ; @true
|
||||
+mcrt0.o: s-crt0; @true
|
||||
|
||||
s-crt0: $(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H)
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
|
||||
- -o $(T)crt0.o -c $(CRT0_S)
|
||||
+ -o crt0.o -c $(CRT0_S)
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \
|
||||
- -o $(T)mcrt0.o -c $(MCRT0_S)
|
||||
+ -o mcrt0.o -c $(MCRT0_S)
|
||||
$(STAMP) s-crt0
|
||||
#
|
||||
# Compiling object files from source files.
|
||||
diff -urN gcc-4.6.4-clean/gcc/opth-gen.awk gcc-4.6.4/gcc/opth-gen.awk
|
||||
--- gcc-4.6.4-clean/gcc/opth-gen.awk 2011-02-08 10:41:00.000000000 -0700
|
||||
+++ gcc-4.6.4/gcc/opth-gen.awk 2017-11-28 21:12:11.160911575 -0700
|
||||
@@ -121,7 +121,7 @@
|
||||
diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk
|
||||
index c3f6c04..63936c0 100644
|
||||
--- a/gcc/opth-gen.awk
|
||||
+++ b/gcc/opth-gen.awk
|
||||
@@ -121,7 +121,7 @@ BEGIN {
|
||||
END {
|
||||
print "/* This file is auto-generated by opth-gen.awk. */"
|
||||
print ""
|
||||
@@ -8022,7 +8082,7 @@ diff -urN gcc-4.6.4-clean/gcc/opth-gen.awk gcc-4.6.4/gcc/opth-gen.awk
|
||||
print "#define OPTIONS_H"
|
||||
print ""
|
||||
print "#include \"flag-types.h\""
|
||||
@@ -432,18 +432,9 @@
|
||||
@@ -432,18 +432,9 @@ print ""
|
||||
|
||||
for (i = 0; i < n_opts; i++) {
|
||||
opt = opt_args("InverseMask", flags[i])
|
||||
@@ -8044,10 +8104,11 @@ diff -urN gcc-4.6.4-clean/gcc/opth-gen.awk gcc-4.6.4/gcc/opth-gen.awk
|
||||
}
|
||||
print ""
|
||||
|
||||
diff -urN gcc-4.6.4-clean/gcc/tree.h gcc-4.6.4/gcc/tree.h
|
||||
--- gcc-4.6.4-clean/gcc/tree.h 2011-10-06 13:57:52.000000000 -0600
|
||||
+++ gcc-4.6.4/gcc/tree.h 2017-11-28 21:12:11.160911575 -0700
|
||||
@@ -3563,6 +3563,8 @@
|
||||
diff --git a/gcc/tree.h b/gcc/tree.h
|
||||
index ece68b4..d0ec9d6 100644
|
||||
--- a/gcc/tree.h
|
||||
+++ b/gcc/tree.h
|
||||
@@ -3563,6 +3563,8 @@ enum tree_index
|
||||
TI_UINTDI_TYPE,
|
||||
TI_UINTTI_TYPE,
|
||||
|
||||
@@ -8056,10 +8117,11 @@ diff -urN gcc-4.6.4-clean/gcc/tree.h gcc-4.6.4/gcc/tree.h
|
||||
TI_UINT32_TYPE,
|
||||
TI_UINT64_TYPE,
|
||||
|
||||
diff -urN gcc-4.6.4-clean/gcc/version.c gcc-4.6.4/gcc/version.c
|
||||
--- gcc-4.6.4-clean/gcc/version.c 2009-04-21 13:03:23.000000000 -0600
|
||||
+++ gcc-4.6.4/gcc/version.c 2017-11-29 17:11:34.133149157 -0700
|
||||
@@ -21,16 +21,16 @@
|
||||
diff --git a/gcc/version.c b/gcc/version.c
|
||||
index 9744449..347267d 100644
|
||||
--- a/gcc/version.c
|
||||
+++ b/gcc/version.c
|
||||
@@ -21,16 +21,16 @@ along with GCC; see the file COPYING3. If not see
|
||||
|
||||
/* This is the location of the online document giving instructions for
|
||||
reporting bugs. If you distribute a modified version of GCC,
|
||||
@@ -8082,34 +8144,11 @@ diff -urN gcc-4.6.4-clean/gcc/version.c gcc-4.6.4/gcc/version.c
|
||||
-const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION;
|
||||
+const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION " (gcc6809lw pl9)";
|
||||
const char pkgversion_string[] = PKGVERSION;
|
||||
diff -urN gcc-4.6.4-clean/libgcc/config.host gcc-4.6.4/libgcc/config.host
|
||||
--- gcc-4.6.4-clean/libgcc/config.host 2011-11-23 15:15:54.000000000 -0700
|
||||
+++ gcc-4.6.4/libgcc/config.host 2017-11-28 21:12:11.160911575 -0700
|
||||
@@ -371,6 +371,8 @@
|
||||
;;
|
||||
m32rle-*-linux*)
|
||||
;;
|
||||
+m6809*)
|
||||
+ ;;
|
||||
m68hc11-*-*|m6811-*-*)
|
||||
;;
|
||||
m68hc12-*-*|m6812-*-*)
|
||||
diff -urN gcc-4.6.4-clean/libgcc/fixed-obj.mk gcc-4.6.4/libgcc/fixed-obj.mk
|
||||
--- gcc-4.6.4-clean/libgcc/fixed-obj.mk 2007-09-17 16:18:13.000000000 -0600
|
||||
+++ gcc-4.6.4/libgcc/fixed-obj.mk 2017-11-28 21:12:11.160911575 -0700
|
||||
@@ -23,7 +23,7 @@
|
||||
#$(info $o$(objext): -DL$($o-label) $($o-opt))
|
||||
|
||||
$o$(objext): %$(objext): $(gcc_srcdir)/config/fixed-bit.c
|
||||
- $(gcc_compile) -DL$($*-label) $($*-opt) -c $(gcc_srcdir)/config/fixed-bit.c $(vis_hide)
|
||||
+ $(gcc_compile) -DL$($*-label) $($*-opt) -c $(gcc_srcdir)/config/fixed-bit.c $(vis_hide) -save-temps
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
$(o)_s$(objext): %_s$(objext): $(gcc_srcdir)/config/fixed-bit.c
|
||||
diff -urN gcc-4.6.4-clean/libgcc/Makefile.in gcc-4.6.4/libgcc/Makefile.in
|
||||
--- gcc-4.6.4-clean/libgcc/Makefile.in 2012-12-04 12:11:33.000000000 -0700
|
||||
+++ gcc-4.6.4/libgcc/Makefile.in 2017-11-28 21:12:11.160911575 -0700
|
||||
@@ -374,8 +374,8 @@
|
||||
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
|
||||
index b57aeb6..940c286 100644
|
||||
--- a/libgcc/Makefile.in
|
||||
+++ b/libgcc/Makefile.in
|
||||
@@ -374,8 +374,8 @@ endif
|
||||
# Build lib2funcs. For the static library also include LIB2FUNCS_ST.
|
||||
lib2funcs-o = $(patsubst %,%$(objext),$(lib2funcs) $(LIB2FUNCS_ST))
|
||||
$(lib2funcs-o): %$(objext): $(gcc_srcdir)/libgcc2.c
|
||||
@@ -8120,7 +8159,7 @@ diff -urN gcc-4.6.4-clean/libgcc/Makefile.in gcc-4.6.4/libgcc/Makefile.in
|
||||
libgcc-objects += $(lib2funcs-o)
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
@@ -410,8 +410,9 @@
|
||||
@@ -410,8 +410,9 @@ endif
|
||||
# Build LIB2_DIVMOD_FUNCS.
|
||||
lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS))
|
||||
$(lib2-divmod-o): %$(objext): $(gcc_srcdir)/libgcc2.c
|
||||
@@ -8132,7 +8171,7 @@ diff -urN gcc-4.6.4-clean/libgcc/Makefile.in gcc-4.6.4/libgcc/Makefile.in
|
||||
libgcc-objects += $(lib2-divmod-o)
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
@@ -443,7 +444,8 @@
|
||||
@@ -443,7 +444,8 @@ endif
|
||||
ifneq ($(FPBIT),)
|
||||
fpbit-o = $(patsubst %,%$(objext),$(FPBIT_FUNCS))
|
||||
$(fpbit-o): %$(objext): $(FPBIT)
|
||||
@@ -8142,7 +8181,7 @@ diff -urN gcc-4.6.4-clean/libgcc/Makefile.in gcc-4.6.4/libgcc/Makefile.in
|
||||
libgcc-objects += $(fpbit-o)
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
@@ -458,7 +460,8 @@
|
||||
@@ -458,7 +460,8 @@ endif
|
||||
ifneq ($(DPBIT),)
|
||||
dpbit-o = $(patsubst %,%$(objext),$(DPBIT_FUNCS))
|
||||
$(dpbit-o): %$(objext): $(DPBIT)
|
||||
@@ -8152,21 +8191,63 @@ diff -urN gcc-4.6.4-clean/libgcc/Makefile.in gcc-4.6.4/libgcc/Makefile.in
|
||||
libgcc-objects += $(dpbit-o)
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
diff -urN gcc-4.6.4-clean/README.LW gcc-4.6.4/README.LW
|
||||
--- gcc-4.6.4-clean/README.LW 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ gcc-4.6.4/README.LW 2017-11-29 17:11:09.189248596 -0700
|
||||
@@ -0,0 +1,14 @@
|
||||
+This is a port of gcc6809 which is designed to work with the lwtools
|
||||
+cross-assembler and linker package. You will need several scripts from that
|
||||
+package, available at http://lost.l-w.ca/coco/lwtools/, in order to use
|
||||
+this. Instructions for building are present in the lwtools package.
|
||||
+
|
||||
+This work is based extensively on the gcc6809 4.3.4-3 release by Brian
|
||||
+Dominy (brian@oddchange.com) with some significant renovations to make it
|
||||
+work with gcc 4.6.4.
|
||||
+
|
||||
+There is no guarantee that it will work for any particular purpose you
|
||||
+choose to put it to.
|
||||
+
|
||||
+If you run into any problems, contact William Astle (lost@l-w.ca). DO NOT
|
||||
+contact the main GCC developers!
|
||||
diff --git a/libgcc/config.host b/libgcc/config.host
|
||||
index 25e949e..7154892 100644
|
||||
--- a/libgcc/config.host
|
||||
+++ b/libgcc/config.host
|
||||
@@ -371,6 +371,8 @@ m32r-*-linux*)
|
||||
;;
|
||||
m32rle-*-linux*)
|
||||
;;
|
||||
+m6809*)
|
||||
+ ;;
|
||||
m68hc11-*-*|m6811-*-*)
|
||||
;;
|
||||
m68hc12-*-*|m6812-*-*)
|
||||
diff --git a/libgcc/fixed-obj.mk b/libgcc/fixed-obj.mk
|
||||
index 3c7c2f3..eb3aa3a 100644
|
||||
--- a/libgcc/fixed-obj.mk
|
||||
+++ b/libgcc/fixed-obj.mk
|
||||
@@ -23,7 +23,7 @@ endif
|
||||
#$(info $o$(objext): -DL$($o-label) $($o-opt))
|
||||
|
||||
$o$(objext): %$(objext): $(gcc_srcdir)/config/fixed-bit.c
|
||||
- $(gcc_compile) -DL$($*-label) $($*-opt) -c $(gcc_srcdir)/config/fixed-bit.c $(vis_hide)
|
||||
+ $(gcc_compile) -DL$($*-label) $($*-opt) -c $(gcc_srcdir)/config/fixed-bit.c $(vis_hide) -save-temps
|
||||
|
||||
ifeq ($(enable_shared),yes)
|
||||
$(o)_s$(objext): %_s$(objext): $(gcc_srcdir)/config/fixed-bit.c
|
||||
--
|
||||
2.19.1
|
||||
|
||||
|
||||
From 6fd8ea7b4c4e6a51f9da7c2e9f7bb626ffb1c475 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Thu, 21 Mar 2019 19:52:53 +0100
|
||||
Subject: Fix prototypes to match what our gperf generates
|
||||
|
||||
|
||||
diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
|
||||
index ef1ed08..12e7fc8 100644
|
||||
--- a/gcc/cp/cfns.gperf
|
||||
+++ b/gcc/cp/cfns.gperf
|
||||
@@ -16,14 +16,8 @@ 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
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
-#ifdef __GNUC__
|
||||
-__inline
|
||||
-#endif
|
||||
-static unsigned int hash (const char *, unsigned int);
|
||||
-#ifdef __GNUC__
|
||||
-__inline
|
||||
-#endif
|
||||
-const char * libc_name_p (const char *, unsigned int);
|
||||
+static unsigned int hash (register const char *, register size_t);
|
||||
+const char * libc_name_p (register const char *, register size_t);
|
||||
%}
|
||||
%%
|
||||
# The standard C library functions, for feeding to gperf; the result is used
|
||||
--
|
||||
2.19.1
|
||||
|
||||
Reference in New Issue
Block a user