Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
ca55abae
Commit
ca55abae
authored
Sep 15, 1997
by
Jason Merrill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dwarf2 EH support
From-SVN: r15464
parent
5168dcfc
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
244 additions
and
38 deletions
+244
-38
gcc/ChangeLog
+163
-0
gcc/Makefile.in
+31
-35
gcc/configure
+4
-1
gcc/configure.in
+3
-0
gcc/cp/ChangeLog
+8
-0
gcc/cp/decl.c
+5
-1
gcc/emit-rtl.c
+1
-0
gcc/except.c
+0
-0
gcc/expr.c
+29
-1
gcc/libgcc2.c
+0
-0
No files found.
gcc/ChangeLog
View file @
ca55abae
...
@@ -12,6 +12,47 @@ Mon Sep 15 15:39:26 1997 Jeffrey A Law (law@cygnus.com)
...
@@ -12,6 +12,47 @@ Mon Sep 15 15:39:26 1997 Jeffrey A Law (law@cygnus.com)
mode wider than HOST_WIDE_INT, then the high word of a CONST_INT
mode wider than HOST_WIDE_INT, then the high word of a CONST_INT
is derived from the sign bit of the low word.
is derived from the sign bit of the low word.
Mon Sep 15 11:43:38 1997 Jason Merrill <jason@yorick.cygnus.com>
Support dwarf2 unwinding on PUSH_ROUNDING targets like the x86.
* dwarf2.h: Add DW_CFA_GNU_args_size.
* frame.c (execute_cfa_insn): Likewise.
* dwarf2out.c (dwarf_cfi_name, output_cfi): Likewise.
(dwarf2out_args_size, dwarf2out_stack_adjust): New fns.
(dwarf2out_frame_debug): If this isn't a prologue or epilogue
insn, hand it off to dwarf2out_stack_adjust.
(dwarf2out_begin_prologue): Initialize args_size.
* frame.h (struct frame_state): Add args_size.
* libgcc2.c (__throw): Use args_size.
* final.c (final_scan_insn): If we push args, hand off all insns
to dwarf2out_frame_debug.
* defaults.h (DWARF2_UNWIND_INFO): OK for !ACCUMULATE_OUTGOING_ARGS.
* dwarf2out.c dwarf2out_frame_debug): Fix typo.
Handle epilogue restore of SP from FP.
* emit-rtl.c (gen_sequence): Still generate a sequence if the
lone insn has RTX_FRAME_RELATED_P set.
* frame.c (extract_cie_info): Handle "e" augmentation.
* dwarf2out.c (ASM_OUTPUT_DWARF_*): Provide definitions in the
absence of UNALIGNED_*_ASM_OP.
(UNALIGNED_*_ASM_OP): Only provide defaults if OBJECT_FORMAT_ELF.
(output_call_frame_info): Use "e" instead of "z" for augmentation.
Don't emit augmentation fields length.
(dwarf2out_do_frame): Move outside of #ifdefs.
* defaults.h (DWARF2_UNWIND_INFO): Don't require unaligned data
opcodes.
* sparc.h (UNALIGNED_INT_ASM_OP et al): Don't define here after all.
* sparc/sysv4.h (UNALIGNED_INT_ASM_OP): Define here.
* sparc/sunos4.h (DWARF2_UNWIND_INFO): Define to 0.
* sparc/sun4gas.h: New file.
* configure.in: Use sun4gas.h if SunOS 4 --with-gnu-as.
* collect2.c (write_c_file_stat, write_c_file_glob): Declare
__register_frame_table and __deregister_frame.
1997-09-15 Brendan Kehoe <brendan@cygnus.com>
1997-09-15 Brendan Kehoe <brendan@cygnus.com>
* except.c (find_exception_handler_labels): Use xmalloc instead of
* except.c (find_exception_handler_labels): Use xmalloc instead of
...
@@ -45,6 +86,11 @@ Sat Sep 13 12:57:26 1997 Jeffrey A Law (law@cygnus.com)
...
@@ -45,6 +86,11 @@ Sat Sep 13 12:57:26 1997 Jeffrey A Law (law@cygnus.com)
* haifa-sched.c (add_branch_dependences): Make each insn in
* haifa-sched.c (add_branch_dependences): Make each insn in
a SCHED_GROUP_P block explicitly depend on the previous insn.
a SCHED_GROUP_P block explicitly depend on the previous insn.
Fri Sep 12 13:49:58 1997 Jason Merrill <jason@yorick.cygnus.com>
* except.h: Prototype dwarf2 hooks.
* expr.c: Adjust.
Thu Sep 11 17:43:55 1997 Jim Wilson <wilson@cygnus.com>
Thu Sep 11 17:43:55 1997 Jim Wilson <wilson@cygnus.com>
* configure.in (native_prefix): Delete.
* configure.in (native_prefix): Delete.
...
@@ -112,6 +158,95 @@ Wed Sep 10 14:05:08 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
...
@@ -112,6 +158,95 @@ Wed Sep 10 14:05:08 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
(check-gcc, check-g++): Depend on testsuite/site.exp.
(check-gcc, check-g++): Depend on testsuite/site.exp.
Don't stop for failure.
Don't stop for failure.
Wed Sep 10 12:59:57 1997 Jason Merrill <jason@yorick.cygnus.com>
* expr.c (expand_builtin): Only support __builtin_dwarf_fp_regnum()
if DWARF2_UNWIND_INFO.
Wed Sep 10 11:49:20 1997 Jason Merrill <jason@yorick.cygnus.com>
Add support for exception handling using DWARF 2 frame unwind info.
Currently works on SPARC and MIPS, and almost on x86.
* libgcc2.c (get_reg, put_reg, get_return_addr, put_return_addr,
next_stack_level, in_reg_window): Helper fns.
(__throw): Implement for DWARF2_UNWIND_INFO.
* expr.c (expand_builtin): Handle builtins used by __throw.
* tree.h (enum built_in_function): Add builtins used by __throw.
* c-decl.c (init_decl_processing): Declare builtins used by __throw.
* dwarf2out.c (expand_builtin_dwarf_fp_regnum): Used by __throw.
* except.c (expand_builtin_unwind_init): Hook for dwarf2 __throw.
(expand_builtin_extract_return_addr): Likewise.
(expand_builtin_frob_return_addr): Likewise.
(expand_builtin_set_return_addr_reg): Likewise.
(expand_builtin_eh_stub): Likewise.
(expand_builtin_set_eh_regs): Likewise.
(eh_regs): Choose two call-clobbered registers for passing back values.
* frame.c, frame.h: New files for parsing dwarf 2 frame info.
* Makefile.in (LIB2ADD): New variable. Add $(srcdir)/frame.c.
(libgcc2.a): Use it instead of $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS)
(stmp-multilib): Likewise.
($(T)crtbegin.o, $(T)crtend.o): Add -fno-exceptions.
* except.c: #include "defaults.h".
(exceptions_via_longjmp): Default depends on DWARF2_UNWIND_INFO.
(emit_throw): Don't defeat assemble_external if DWARF2_UNWIND_INFO.
(register_exception_table_p): New fn.
(start_eh_unwinder): Don't do anything if DWARF2_UNWIND_INFO.
(end_eh_unwinder): Likewise.
* crtstuff.c: Wrap .eh_frame section, use EH_FRAME_SECTION_ASM_OP,
call __register_frame and __deregister_frame as needed.
* varasm.c (eh_frame_section): New fn if EH_FRAME_SECTION_ASM_OP.
* dwarf2out.c (EH_FRAME_SECTION): Now a function-like macro. Check
EH_FRAME_SECTION_ASM_OP.
* sparc/sysv4.h (EH_FRAME_SECTION_ASM_OP): Define.
* mips/iris6.h: (EH_FRAME_SECTION_ASM_OP): Define.
(LINK_SPEC): Add __EH_FRAME_BEGIN__ to hidden symbols.
* dwarf2out.c (output_call_frame_info): If no support for
EXCEPTION_SECTION, mark the start of the frame info with a
collectable tag.
* collect2.c (frame_tables): New list.
(is_ctor_dtor): Recognise frame entries.
(scan_prog_file): Likewise.
(main): Pass -fno-exceptions to sub-compile. Also do collection
if there are any frame entries.
(write_c_file_stat): Call __register_frame_table and
__deregister_frame as needed.
(write_c_file_glob): Likewise.
* defaults.h (DWARF2_UNWIND_INFO): Default to 1 if supported.
Also require unaligned reloc support.
* sparc.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
UNALIGNED_DOUBLE_INT_ASM_OP): Define here.
* sparc/sysv4.h: Not here.
* toplev.c (compile_file): Call dwarf2out_frame_{init,finish}.
* dwarf2out.c (dwarf2out_init): Don't call dwarf2out_frame_init.
(dwarf2out_finish): Don't call dwarf2out_frame_finish.
* libgcc2.c (L_eh): Reorganize, moving code shared by different
EH implementations to the top.
(find_exception_handler): Split out. Start from 0. Compare against
end with >=.
(__find_first_exception_table_match): Use it.
* except.c (output_exception_table): Don't do anything if there's
no table. Don't output a first entry of zeroes.
(eh_outer_context): Adjust properly.
(add_eh_table_entry): Use xrealloc.
* toplev.c (compile_file): Just call output_exception_table.
Wed Sep 10 11:30:36 1997 Jason Merrill <jason@cygnus.com>
* i386.c (ix86_prologue): Add dwarf2 support for !do_rtl case.
Wed Sep 10 08:17:10 1997 Torbjorn Granlund <tege@pdc.kth..se>
* except.c (eh_outer_context): Do masking using expand_and.
Wed Sep 10 01:38:30 1997 Doug Evans <dje@cygnus.com>
Wed Sep 10 01:38:30 1997 Doug Evans <dje@cygnus.com>
Add port done awhile ago for the ARC cpu.
Add port done awhile ago for the ARC cpu.
...
@@ -152,10 +287,38 @@ Tue Sep 9 17:07:36 1997 Stan Cox <coxs@dg-rtp.dg.com>
...
@@ -152,10 +287,38 @@ Tue Sep 9 17:07:36 1997 Stan Cox <coxs@dg-rtp.dg.com>
* m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list
* m88k.c (m88k_expand_prologue): Set MEM_IN_STRUCT_P of va_list
template.
template.
Tue Sep 9 09:50:02 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* dwarf2out.c (output_call_frame_info): Call named_section.
Tue Sep 9 09:12:17 1997 Jeffrey A Law (law@cygnus.com)
Tue Sep 9 09:12:17 1997 Jeffrey A Law (law@cygnus.com)
* haifa-sched.c (print_value): Fix last change.
* haifa-sched.c (print_value): Fix last change.
Tue Sep 9 01:30:37 1997 Jason Merrill <jason@yorick.cygnus.com>
* mips.h (DWARF_FRAME_REGNUM): Use the same numbering regardless of
write_symbols.
Mon Sep 8 16:32:43 1997 Jason Merrill <jason@yorick.cygnus.com>
* mips.c (function_prologue): Set up the CFA when ABI_32.
* sparc.c (save_regs): Check dwarf2out_do_frame instead of DWARF2_DEBUG
for dwarf2 unwind info.
(output_function_prologue, sparc_flat_output_function_prologue): Same.
* final.c (final_end_function): Check dwarf2out_do_frame instead
of DWARF2_DEBUG for dwarf2 unwind info.
(final_scan_insn): Likewise.
(final_start_function): Likewise. Initialize dwarf2 frame debug here.
(final): Not here.
* expr.c (expand_builtin_return_addr): Only SETUP_FRAME_ADDRESSES if
count > 0.
* varasm.c (exception_section): Check EXCEPTION_SECTION first.
Mon Sep 8 15:15:11 1997 Nick Clifton <nickc@cygnus.com>
Mon Sep 8 15:15:11 1997 Nick Clifton <nickc@cygnus.com>
* v850.h (ASM_SPEC): Pass on target processor.
* v850.h (ASM_SPEC): Pass on target processor.
...
...
gcc/Makefile.in
View file @
ca55abae
...
@@ -268,7 +268,7 @@ LIBGCC2 = libgcc2.a
...
@@ -268,7 +268,7 @@ LIBGCC2 = libgcc2.a
# -g1 causes output of debug info only for file-scope entities.
# -g1 causes output of debug info only for file-scope entities.
# we use this here because that should be enough, and also
# we use this here because that should be enough, and also
# so that -g1 will be tested.
# so that -g1 will be tested.
LIBGCC2_DEBUG_CFLAGS
=
-g
1
LIBGCC2_DEBUG_CFLAGS
=
-g
LIBGCC2_CFLAGS
=
-O2
$(LIBGCC2_INCLUDES)
$(GCC_CFLAGS)
$(TARGET_LIBGCC2_CFLAGS)
$(LIBGCC2_DEBUG_CFLAGS)
-DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED
LIBGCC2_CFLAGS
=
-O2
$(LIBGCC2_INCLUDES)
$(GCC_CFLAGS)
$(TARGET_LIBGCC2_CFLAGS)
$(LIBGCC2_DEBUG_CFLAGS)
-DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED
# Additional options to use when compiling libgcc2.a.
# Additional options to use when compiling libgcc2.a.
...
@@ -949,8 +949,9 @@ libgcc2.ready: $(GCC_PASSES) $(LIBGCC2_DEPS) stmp-int-hdrs
...
@@ -949,8 +949,9 @@ libgcc2.ready: $(GCC_PASSES) $(LIBGCC2_DEPS) stmp-int-hdrs
touch libgcc2.ready
;
\
touch libgcc2.ready
;
\
fi
fi
libgcc2.a
:
libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA)
\
LIB2ADD
=
$(srcdir)
/frame.c
$(LIB2FUNCS_EXTRA)
$(LANG_LIB2FUNCS)
$(LANG_LIB2FUNCS) machmode.h longlong.h gbl-ctors.h config.status
libgcc2.a
:
libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2ADD)
\
machmode.h longlong.h gbl-ctors.h config.status
# Actually build it in tmplibgcc2.a, then rename at end,
# Actually build it in tmplibgcc2.a, then rename at end,
# so that libgcc2.a itself remains nonexistent if compilation is aborted.
# so that libgcc2.a itself remains nonexistent if compilation is aborted.
-rm
-f
tmplibgcc2.a
-rm
-f
tmplibgcc2.a
...
@@ -975,35 +976,31 @@ libgcc2.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA) \
...
@@ -975,35 +976,31 @@ libgcc2.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA) \
# We don't use -e here because there are if statements
# We don't use -e here because there are if statements
# that should not make the command give up when the if condition is false.
# that should not make the command give up when the if condition is false.
# Instead, we test for failure after each command where it matters.
# Instead, we test for failure after each command where it matters.
for
file
in
..
$(LIB2FUNCS_EXTRA)
$(LANG_LIB2FUNCS);
\
for
file
in
$(LIB2ADD);
do
\
do
\
name
=
`
echo
$$
{
file
}
| sed
-e
's/[.][cSo]$$//'
-e
's/[.]asm$$//'
-e
's/[.]txt$$//'
`
;
\
if
[
x$${file}
!=
x..
]
;
then
\
oname
=
`
echo
$$
{
name
}
| sed
-e
's,.*/,,'
`
;
\
name
=
`
echo
$$
{
file
}
| sed
-e
's/[.][cSo]$$//'
-e
's/[.]asm$$//'
-e
's/[.]txt$$//'
`
;
\
if
[
$$
{
name
}
.txt
=
$$
{
file
}
]
;
then
\
oname
=
`
echo
$$
{
name
}
| sed
-e
's,.*/,,'
`
;
\
for
f
in
..
`
cat
$$
{
file
}
`
;
do if
[
x
$$
{
f
}
!=
x..
]
;
then
\
if
[
$$
{
name
}
.txt
=
$$
{
file
}
]
;
then
\
$(MAKE)
GCC_FOR_TARGET
=
"
$(GCC_FOR_TARGET)
"
\
for
f
in
..
`
cat
$$
{
file
}
`
;
do if
[
x
$$
{
f
}
!=
x..
]
;
then
\
AR
=
"
$(AR)
"
AR_FLAGS
=
"
$(AR_FLAGS)
"
CC
=
"
$(CC)
"
\
$(MAKE)
GCC_FOR_TARGET
=
"
$(GCC_FOR_TARGET)
"
\
CFLAGS
=
"
$(CFLAGS)
"
HOST_PREFIX
=
"
$(HOST_PREFIX)
"
\
AR
=
"
$(AR)
"
AR_FLAGS
=
"
$(AR_FLAGS)
"
CC
=
"
$(CC)
"
\
HOST_PREFIX_1
=
"
$(HOST_PREFIX_1)
"
\
CFLAGS
=
"
$(CFLAGS)
"
HOST_PREFIX
=
"
$(HOST_PREFIX)
"
\
LANGUAGES
=
"
$(LANGUAGES)
"
\
HOST_PREFIX_1
=
"
$(HOST_PREFIX_1)
"
\
LIBGCC2_CFLAGS
=
"
$(LIBGCC2_CFLAGS)
"
$$
{
f
}
;
\
LANGUAGES
=
"
$(LANGUAGES)
"
\
LIBGCC2_CFLAGS
=
"
$(LIBGCC2_CFLAGS)
"
$$
{
f
}
;
\
if
[
$$
?
-eq
0
]
;
then
true
;
else
exit
1
;
fi
;
\
$(AR)
$(AR_FLAGS)
tmplibgcc2.a
$$
{
f
}
;
\
rm
-f
$$
{
f
}
;
\
else
true
;
\
fi
;
done
;
\
else
\
echo
$$
{
name
}
;
\
if
[
$$
{
name
}
.asm
=
$$
{
file
}
]
;
then
\
cp
$$
{
file
}
$$
{
name
}
.s
||
exit
1
;
file
=
$$
{
name
}
.s
;
\
else
true
;
fi
;
\
$(GCC_FOR_TARGET)
$(LIBGCC2_CFLAGS)
$(INCLUDES)
-c
$$
{
file
}
;
\
if
[
$$
?
-eq
0
]
;
then
true
;
else
exit
1
;
fi
;
\
if
[
$$
?
-eq
0
]
;
then
true
;
else
exit
1
;
fi
;
\
$(AR)
$(AR_FLAGS)
tmplibgcc2.a
$$
{
oname
}
$(objext)
;
\
$(AR)
$(AR_FLAGS)
tmplibgcc2.a
$$
{
f
}
;
\
rm
-f
$$
{
name
}
.s
$$
{
oname
}
$(objext)
;
\
rm
-f
$$
{
f
}
;
\
fi
;
\
else
true
;
\
else
true
;
\
fi
;
done
;
\
else
\
echo
$$
{
name
}
;
\
if
[
$$
{
name
}
.asm
=
$$
{
file
}
]
;
then
\
cp
$$
{
file
}
$$
{
name
}
.s
||
exit
1
;
file
=
$$
{
name
}
.s
;
\
else
true
;
fi
;
\
$(GCC_FOR_TARGET)
$(LIBGCC2_CFLAGS)
$(INCLUDES)
-c
$$
{
file
}
;
\
if
[
$$
?
-eq
0
]
;
then
true
;
else
exit
1
;
fi
;
\
$(AR)
$(AR_FLAGS)
tmplibgcc2.a
$$
{
oname
}
$(objext)
;
\
rm
-f
$$
{
name
}
.s
$$
{
oname
}
$(objext)
;
\
fi
;
\
fi
;
\
done
done
mv
tmplibgcc2.a
libgcc2.a
mv
tmplibgcc2.a
libgcc2.a
...
@@ -1050,8 +1047,7 @@ stamp-mlib: $(srcdir)/genmultilib Makefile
...
@@ -1050,8 +1047,7 @@ stamp-mlib: $(srcdir)/genmultilib Makefile
# Build multiple copies of libgcc.a, one for each target switch.
# Build multiple copies of libgcc.a, one for each target switch.
stmp-multilib
:
$(LIBGCC1) libgcc2.c libgcc2.ready $(CONFIG_H)
\
stmp-multilib
:
$(LIBGCC1) libgcc2.c libgcc2.ready $(CONFIG_H)
\
$(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS) machmode.h longlong.h gbl-ctors.h
\
$(LIB2ADD) machmode.h longlong.h gbl-ctors.h config.status
config.status
for
i
in
`
$(GCC_FOR_TARGET)
--print-multi-lib
`
;
do
\
for
i
in
`
$(GCC_FOR_TARGET)
--print-multi-lib
`
;
do
\
dir
=
`
echo
$$
i | sed
-e
's/;.*$$//'
`
;
\
dir
=
`
echo
$$
i | sed
-e
's/;.*$$//'
`
;
\
flags
=
`
echo
$$
i | sed
-e
's/^[^;]*;//'
-e
's/@/ -/g'
`
;
\
flags
=
`
echo
$$
i | sed
-e
's/^[^;]*;//'
-e
's/@/ -/g'
`
;
\
...
@@ -1121,12 +1117,12 @@ stmp-multilib-sub:
...
@@ -1121,12 +1117,12 @@ stmp-multilib-sub:
# constructors.
# constructors.
$(T)crtbegin.o
:
crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h
$(T)crtbegin.o
:
crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h
$(GCC_FOR_TARGET)
$(GCC_CFLAGS)
$(INCLUDES)
$(MULTILIB_CFLAGS)
-g0
\
$(GCC_FOR_TARGET)
$(GCC_CFLAGS)
$(INCLUDES)
$(MULTILIB_CFLAGS)
-g0
\
-finhibit-size-directive
-fno-inline-functions
$(CRTSTUFF_T_CFLAGS)
\
-finhibit-size-directive
-fno-inline-functions
-fno-exceptions
$(CRTSTUFF_T_CFLAGS)
\
-c
$(srcdir)
/crtstuff.c
-DCRT_BEGIN
-o
$(T)
crtbegin
$(objext)
-c
$(srcdir)
/crtstuff.c
-DCRT_BEGIN
-o
$(T)
crtbegin
$(objext)
$(T)crtend.o
:
crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h
$(T)crtend.o
:
crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h
$(GCC_FOR_TARGET)
$(GCC_CFLAGS)
$(INCLUDES)
$(MULTILIB_CFLAGS)
-g0
\
$(GCC_FOR_TARGET)
$(GCC_CFLAGS)
$(INCLUDES)
$(MULTILIB_CFLAGS)
-g0
\
-finhibit-size-directive
-fno-inline-functions
$(CRTSTUFF_T_CFLAGS)
\
-finhibit-size-directive
-fno-inline-functions
-fno-exceptions
$(CRTSTUFF_T_CFLAGS)
\
-c
$(srcdir)
/crtstuff.c
-DCRT_END
-o
$(T)
crtend
$(objext)
-c
$(srcdir)
/crtstuff.c
-DCRT_END
-o
$(T)
crtend
$(objext)
# On some systems we also want to install versions of these files
# On some systems we also want to install versions of these files
...
...
gcc/configure
View file @
ca55abae
...
@@ -2313,7 +2313,7 @@ for machine in $build $host $target; do
...
@@ -2313,7 +2313,7 @@ for machine in $build $host $target; do
i[3456]86-
*
-freebsd
*
)
i[3456]86-
*
-freebsd
*
)
tm_file
=
i386/freebsd.h
tm_file
=
i386/freebsd.h
xm_file
=
i386/xm-freebsd.h
xm_file
=
i386/xm-freebsd.h
# On FreeBSD, the headers are already ok, except for math.h
# On FreeBSD, the headers are already ok, except for math.h
.
fixincludes
=
fixinc.math
fixincludes
=
fixinc.math
tmake_file
=
i386/t-freebsd
tmake_file
=
i386/t-freebsd
;;
;;
...
@@ -3897,6 +3897,9 @@ for machine in $build $host $target; do
...
@@ -3897,6 +3897,9 @@ for machine in $build $host $target; do
tm_file
=
sparc/sunos4.h
tm_file
=
sparc/sunos4.h
tmake_file
=
sparc/t-sunos41
tmake_file
=
sparc/t-sunos41
use_collect2
=
yes
use_collect2
=
yes
if
[
x
$gas
=
xyes
]
;
then
tm_file
=
"
${
tm_file
}
sparc/sun4gas.h"
fi
;;
;;
sparc-
*
-sunos3
*
)
sparc-
*
-sunos3
*
)
tm_file
=
sparc/sun4o3.h
tm_file
=
sparc/sun4o3.h
...
...
gcc/configure.in
View file @
ca55abae
...
@@ -2383,6 +2383,9 @@ for machine in $build $host $target; do
...
@@ -2383,6 +2383,9 @@ for machine in $build $host $target; do
tm_file=sparc/sunos4.h
tm_file=sparc/sunos4.h
tmake_file=sparc/t-sunos41
tmake_file=sparc/t-sunos41
use_collect2=yes
use_collect2=yes
if [[ x$gas = xyes ]]; then
tm_file="${tm_file} sparc/sun4gas.h"
fi
;;
;;
sparc-*-sunos3*)
sparc-*-sunos3*)
tm_file=sparc/sun4o3.h
tm_file=sparc/sun4o3.h
...
...
gcc/cp/ChangeLog
View file @
ca55abae
...
@@ -36,6 +36,14 @@ Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net>
...
@@ -36,6 +36,14 @@ Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net>
(tsubst): Do constant folding as necessary to make sure that
(tsubst): Do constant folding as necessary to make sure that
arguments passed to lookup_template_class really are constants.
arguments passed to lookup_template_class really are constants.
Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com>
* except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
* decl2.c (finish_file): Only register exception tables if we
need to.
* decl.c (init_decl_processing): Add __builtin_[fs]p.
Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com>
Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com>
* pt.c (unify): Just return 0 for a TYPENAME_TYPE.
* pt.c (unify): Just return 0 for a TYPENAME_TYPE.
...
...
gcc/cp/decl.c
View file @
ca55abae
...
@@ -4725,7 +4725,7 @@ init_decl_processing ()
...
@@ -4725,7 +4725,7 @@ init_decl_processing ()
tree
string_ftype_ptr_ptr
,
int_ftype_string_string
;
tree
string_ftype_ptr_ptr
,
int_ftype_string_string
;
tree
sizetype_endlink
;
tree
sizetype_endlink
;
tree
ptr_ftype
,
ptr_ftype_unsigned
,
ptr_ftype_sizetype
;
tree
ptr_ftype
,
ptr_ftype_unsigned
,
ptr_ftype_sizetype
;
tree
void_ftype
,
void_ftype_int
,
void_ftype_ptr
;
tree
void_ftype
,
void_ftype_int
,
void_ftype_ptr
,
ptr_ftype_void
;
/* Have to make these distinct before we try using them. */
/* Have to make these distinct before we try using them. */
lang_name_cplusplus
=
get_identifier
(
"C++"
);
lang_name_cplusplus
=
get_identifier
(
"C++"
);
...
@@ -5103,6 +5103,10 @@ init_decl_processing ()
...
@@ -5103,6 +5103,10 @@ init_decl_processing ()
builtin_function
(
"__builtin_frame_address"
,
ptr_ftype_unsigned
,
builtin_function
(
"__builtin_frame_address"
,
ptr_ftype_unsigned
,
BUILT_IN_FRAME_ADDRESS
,
NULL_PTR
);
BUILT_IN_FRAME_ADDRESS
,
NULL_PTR
);
ptr_ftype_void
=
build_function_type
(
ptr_type_node
,
endlink
);
builtin_function
(
"__builtin_fp"
,
ptr_ftype_void
,
BUILT_IN_FP
,
NULL_PTR
);
builtin_function
(
"__builtin_sp"
,
ptr_ftype_void
,
BUILT_IN_SP
,
NULL_PTR
);
builtin_function
(
"__builtin_alloca"
,
ptr_ftype_sizetype
,
builtin_function
(
"__builtin_alloca"
,
ptr_ftype_sizetype
,
BUILT_IN_ALLOCA
,
"alloca"
);
BUILT_IN_ALLOCA
,
"alloca"
);
builtin_function
(
"__builtin_ffs"
,
int_ftype_int
,
BUILT_IN_FFS
,
NULL_PTR
);
builtin_function
(
"__builtin_ffs"
,
int_ftype_int
,
BUILT_IN_FFS
,
NULL_PTR
);
...
...
gcc/emit-rtl.c
View file @
ca55abae
...
@@ -3196,6 +3196,7 @@ gen_sequence ()
...
@@ -3196,6 +3196,7 @@ gen_sequence ()
(Now that we cache SEQUENCE expressions, it isn't worth special-casing
(Now that we cache SEQUENCE expressions, it isn't worth special-casing
the case of an empty list.) */
the case of an empty list.) */
if
(
len
==
1
if
(
len
==
1
&&
!
RTX_FRAME_RELATED_P
(
first_insn
)
&&
(
GET_CODE
(
first_insn
)
==
INSN
&&
(
GET_CODE
(
first_insn
)
==
INSN
||
GET_CODE
(
first_insn
)
==
JUMP_INSN
||
GET_CODE
(
first_insn
)
==
JUMP_INSN
/* Don't discard the call usage field. */
/* Don't discard the call usage field. */
...
...
gcc/except.c
View file @
ca55abae
This diff is collapsed.
Click to expand it.
gcc/expr.c
View file @
ca55abae
...
@@ -36,6 +36,7 @@ Boston, MA 02111-1307, USA. */
...
@@ -36,6 +36,7 @@ Boston, MA 02111-1307, USA. */
#include "recog.h"
#include "recog.h"
#include "output.h"
#include "output.h"
#include "typeclass.h"
#include "typeclass.h"
#include "defaults.h"
#include "bytecode.h"
#include "bytecode.h"
#include "bc-opcode.h"
#include "bc-opcode.h"
...
@@ -7997,7 +7998,8 @@ expand_builtin_return_addr (fndecl_code, count, tem)
...
@@ -7997,7 +7998,8 @@ expand_builtin_return_addr (fndecl_code, count, tem)
arbitrary frames. For example, on the sparc, we must first flush
arbitrary frames. For example, on the sparc, we must first flush
all register windows to the stack. */
all register windows to the stack. */
#ifdef SETUP_FRAME_ADDRESSES
#ifdef SETUP_FRAME_ADDRESSES
SETUP_FRAME_ADDRESSES
();
if
(
count
>
0
)
SETUP_FRAME_ADDRESSES
();
#endif
#endif
/* On the sparc, the return address is not in the frame, it is in a
/* On the sparc, the return address is not in the frame, it is in a
...
@@ -9137,6 +9139,32 @@ expand_builtin (exp, target, subtarget, mode, ignore)
...
@@ -9137,6 +9139,32 @@ expand_builtin (exp, target, subtarget, mode, ignore)
return
const0_rtx
;
return
const0_rtx
;
}
}
/* Various hooks for the DWARF 2 __throw routine. */
case
BUILT_IN_UNWIND_INIT
:
expand_builtin_unwind_init
();
return
const0_rtx
;
case
BUILT_IN_FP
:
return
frame_pointer_rtx
;
case
BUILT_IN_SP
:
return
stack_pointer_rtx
;
#ifdef DWARF2_UNWIND_INFO
case
BUILT_IN_DWARF_FP_REGNUM
:
return
expand_builtin_dwarf_fp_regnum
();
#endif
case
BUILT_IN_FROB_RETURN_ADDR
:
return
expand_builtin_frob_return_addr
(
TREE_VALUE
(
arglist
));
case
BUILT_IN_EXTRACT_RETURN_ADDR
:
return
expand_builtin_extract_return_addr
(
TREE_VALUE
(
arglist
));
case
BUILT_IN_SET_RETURN_ADDR_REG
:
expand_builtin_set_return_addr_reg
(
TREE_VALUE
(
arglist
));
return
const0_rtx
;
case
BUILT_IN_EH_STUB
:
return
expand_builtin_eh_stub
();
case
BUILT_IN_SET_EH_REGS
:
expand_builtin_set_eh_regs
(
TREE_VALUE
(
arglist
),
TREE_VALUE
(
TREE_CHAIN
(
arglist
)));
return
const0_rtx
;
default
:
/* just do library call, if unknown builtin */
default
:
/* just do library call, if unknown builtin */
error
(
"built-in function `%s' not currently supported"
,
error
(
"built-in function `%s' not currently supported"
,
IDENTIFIER_POINTER
(
DECL_NAME
(
fndecl
)));
IDENTIFIER_POINTER
(
DECL_NAME
(
fndecl
)));
...
...
gcc/libgcc2.c
View file @
ca55abae
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment