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
93f90be6
Commit
93f90be6
authored
Aug 16, 2004
by
Fariborz Jahanian
Committed by
Fariborz Jahanian
Aug 16, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Patch to fix -mcpu=G5 interface to EH runtime library.
Reviewed by Geoff Keating. From-SVN: r86074
parent
392765bf
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
44 additions
and
4 deletions
+44
-4
gcc/ChangeLog
+10
-0
gcc/config/rs6000/rs6000.c
+12
-0
gcc/except.c
+7
-4
gcc/target-def.h
+4
-0
gcc/target.h
+3
-0
gcc/targhooks.c
+6
-0
gcc/targhooks.h
+2
-0
No files found.
gcc/ChangeLog
View file @
93f90be6
2004-08-16 Fariborz Jahanian <fjahanian@apple.com>
* except.c (get_exception_filter, build_post_landing_pads,
dw2_build_landing_pads): Use target-specific mode for 'filter'.
* target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
* target.h (eh_return_filter_mode): New field added.
* targhooks.c (default_eh_return_filter_mode): Defined.
* targhooks.h (default_eh_return_filter_mode): Declared.
* config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
* configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
* configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
...
...
gcc/config/rs6000/rs6000.c
View file @
93f90be6
...
@@ -748,6 +748,8 @@ static tree rs6000_build_builtin_va_list (void);
...
@@ -748,6 +748,8 @@ static tree rs6000_build_builtin_va_list (void);
static
tree
rs6000_gimplify_va_arg
(
tree
,
tree
,
tree
*
,
tree
*
);
static
tree
rs6000_gimplify_va_arg
(
tree
,
tree
,
tree
*
,
tree
*
);
static
bool
rs6000_must_pass_in_stack
(
enum
machine_mode
,
tree
);
static
bool
rs6000_must_pass_in_stack
(
enum
machine_mode
,
tree
);
static
enum
machine_mode
rs6000_eh_return_filter_mode
(
void
);
/* Hash table stuff for keeping track of TOC entries. */
/* Hash table stuff for keeping track of TOC entries. */
struct
toc_hash_struct
GTY
(())
struct
toc_hash_struct
GTY
(())
...
@@ -964,6 +966,9 @@ static const char alt_reg_names[][8] =
...
@@ -964,6 +966,9 @@ static const char alt_reg_names[][8] =
#undef TARGET_GIMPLIFY_VA_ARG_EXPR
#undef TARGET_GIMPLIFY_VA_ARG_EXPR
#define TARGET_GIMPLIFY_VA_ARG_EXPR rs6000_gimplify_va_arg
#define TARGET_GIMPLIFY_VA_ARG_EXPR rs6000_gimplify_va_arg
#undef TARGET_EH_RETURN_FILTER_MODE
#define TARGET_EH_RETURN_FILTER_MODE rs6000_eh_return_filter_mode
struct
gcc_target
targetm
=
TARGET_INITIALIZER
;
struct
gcc_target
targetm
=
TARGET_INITIALIZER
;
...
@@ -17171,4 +17176,11 @@ rs6000_dbx_register_number (unsigned int regno)
...
@@ -17171,4 +17176,11 @@ rs6000_dbx_register_number (unsigned int regno)
abort
();
abort
();
}
}
/* target hook eh_return_filter_mode */
static
enum
machine_mode
rs6000_eh_return_filter_mode
(
void
)
{
return
TARGET_32BIT
?
SImode
:
word_mode
;
}
#include "gt-rs6000.h"
#include "gt-rs6000.h"
gcc/except.c
View file @
93f90be6
...
@@ -628,7 +628,7 @@ get_exception_filter (struct function *fun)
...
@@ -628,7 +628,7 @@ get_exception_filter (struct function *fun)
rtx
filter
=
fun
->
eh
->
filter
;
rtx
filter
=
fun
->
eh
->
filter
;
if
(
fun
==
cfun
&&
!
filter
)
if
(
fun
==
cfun
&&
!
filter
)
{
{
filter
=
gen_reg_rtx
(
word_mode
);
filter
=
gen_reg_rtx
(
targetm
.
eh_return_filter_mode
()
);
fun
->
eh
->
filter
=
filter
;
fun
->
eh
->
filter
=
filter
;
}
}
return
filter
;
return
filter
;
...
@@ -1528,7 +1528,8 @@ build_post_landing_pads (void)
...
@@ -1528,7 +1528,8 @@ build_post_landing_pads (void)
emit_cmp_and_jump_insns
emit_cmp_and_jump_insns
(
cfun
->
eh
->
filter
,
(
cfun
->
eh
->
filter
,
GEN_INT
(
tree_low_cst
(
TREE_VALUE
(
flt_node
),
0
)),
GEN_INT
(
tree_low_cst
(
TREE_VALUE
(
flt_node
),
0
)),
EQ
,
NULL_RTX
,
word_mode
,
0
,
c
->
label
);
EQ
,
NULL_RTX
,
targetm
.
eh_return_filter_mode
(),
0
,
c
->
label
);
tp_node
=
TREE_CHAIN
(
tp_node
);
tp_node
=
TREE_CHAIN
(
tp_node
);
flt_node
=
TREE_CHAIN
(
flt_node
);
flt_node
=
TREE_CHAIN
(
flt_node
);
...
@@ -1560,7 +1561,8 @@ build_post_landing_pads (void)
...
@@ -1560,7 +1561,8 @@ build_post_landing_pads (void)
emit_cmp_and_jump_insns
(
cfun
->
eh
->
filter
,
emit_cmp_and_jump_insns
(
cfun
->
eh
->
filter
,
GEN_INT
(
region
->
u
.
allowed
.
filter
),
GEN_INT
(
region
->
u
.
allowed
.
filter
),
EQ
,
NULL_RTX
,
word_mode
,
0
,
region
->
label
);
EQ
,
NULL_RTX
,
targetm
.
eh_return_filter_mode
(),
0
,
region
->
label
);
/* We delay the generation of the _Unwind_Resume until we generate
/* We delay the generation of the _Unwind_Resume until we generate
landing pads. We emit a marker here so as to get good control
landing pads. We emit a marker here so as to get good control
...
@@ -1738,7 +1740,8 @@ dw2_build_landing_pads (void)
...
@@ -1738,7 +1740,8 @@ dw2_build_landing_pads (void)
emit_move_insn
(
cfun
->
eh
->
exc_ptr
,
emit_move_insn
(
cfun
->
eh
->
exc_ptr
,
gen_rtx_REG
(
ptr_mode
,
EH_RETURN_DATA_REGNO
(
0
)));
gen_rtx_REG
(
ptr_mode
,
EH_RETURN_DATA_REGNO
(
0
)));
emit_move_insn
(
cfun
->
eh
->
filter
,
emit_move_insn
(
cfun
->
eh
->
filter
,
gen_rtx_REG
(
word_mode
,
EH_RETURN_DATA_REGNO
(
1
)));
gen_rtx_REG
(
targetm
.
eh_return_filter_mode
(),
EH_RETURN_DATA_REGNO
(
1
)));
seq
=
get_insns
();
seq
=
get_insns
();
end_sequence
();
end_sequence
();
...
...
gcc/target-def.h
View file @
93f90be6
...
@@ -268,6 +268,9 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
...
@@ -268,6 +268,9 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_SCHED_DFA_NEW_CYCLE, \
TARGET_SCHED_DFA_NEW_CYCLE, \
TARGET_SCHED_IS_COSTLY_DEPENDENCE}
TARGET_SCHED_IS_COSTLY_DEPENDENCE}
/* In except.c */
#define TARGET_EH_RETURN_FILTER_MODE default_eh_return_filter_mode;
/* In tree.c. */
/* In tree.c. */
#define TARGET_MERGE_DECL_ATTRIBUTES merge_decl_attributes
#define TARGET_MERGE_DECL_ATTRIBUTES merge_decl_attributes
#define TARGET_MERGE_TYPE_ATTRIBUTES merge_type_attributes
#define TARGET_MERGE_TYPE_ATTRIBUTES merge_type_attributes
...
@@ -436,6 +439,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
...
@@ -436,6 +439,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
{ \
{ \
TARGET_ASM_OUT, \
TARGET_ASM_OUT, \
TARGET_SCHED, \
TARGET_SCHED, \
TARGET_EH_RETURN_FILTER_MODE, \
TARGET_MERGE_DECL_ATTRIBUTES, \
TARGET_MERGE_DECL_ATTRIBUTES, \
TARGET_MERGE_TYPE_ATTRIBUTES, \
TARGET_MERGE_TYPE_ATTRIBUTES, \
TARGET_ATTRIBUTE_TABLE, \
TARGET_ATTRIBUTE_TABLE, \
...
...
gcc/target.h
View file @
93f90be6
...
@@ -276,6 +276,9 @@ struct gcc_target
...
@@ -276,6 +276,9 @@ struct gcc_target
bool
(
*
is_costly_dependence
)
(
rtx
,
rtx
,
rtx
,
int
,
int
);
bool
(
*
is_costly_dependence
)
(
rtx
,
rtx
,
rtx
,
int
,
int
);
}
sched
;
}
sched
;
/* Return machine mode for filter value. */
enum
machine_mode
(
*
eh_return_filter_mode
)
(
void
);
/* Given two decls, merge their attributes and return the result. */
/* Given two decls, merge their attributes and return the result. */
tree
(
*
merge_decl_attributes
)
(
tree
,
tree
);
tree
(
*
merge_decl_attributes
)
(
tree
,
tree
);
...
...
gcc/targhooks.c
View file @
93f90be6
...
@@ -128,6 +128,12 @@ default_pretend_outgoing_varargs_named (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED)
...
@@ -128,6 +128,12 @@ default_pretend_outgoing_varargs_named (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED)
!=
default_setup_incoming_varargs
);
!=
default_setup_incoming_varargs
);
}
}
enum
machine_mode
default_eh_return_filter_mode
(
void
)
{
return
word_mode
;
}
/* Generic hook that takes a CUMULATIVE_ARGS pointer and returns true. */
/* Generic hook that takes a CUMULATIVE_ARGS pointer and returns true. */
bool
bool
...
...
gcc/targhooks.h
View file @
93f90be6
...
@@ -31,6 +31,8 @@ extern rtx default_builtin_setjmp_frame_value (void);
...
@@ -31,6 +31,8 @@ extern rtx default_builtin_setjmp_frame_value (void);
extern
bool
hook_bool_CUMULATIVE_ARGS_false
(
CUMULATIVE_ARGS
*
);
extern
bool
hook_bool_CUMULATIVE_ARGS_false
(
CUMULATIVE_ARGS
*
);
extern
bool
default_pretend_outgoing_varargs_named
(
CUMULATIVE_ARGS
*
);
extern
bool
default_pretend_outgoing_varargs_named
(
CUMULATIVE_ARGS
*
);
extern
enum
machine_mode
default_eh_return_filter_mode
(
void
);
extern
bool
hook_bool_CUMULATIVE_ARGS_true
(
CUMULATIVE_ARGS
*
);
extern
bool
hook_bool_CUMULATIVE_ARGS_true
(
CUMULATIVE_ARGS
*
);
extern
tree
default_cxx_guard_type
(
void
);
extern
tree
default_cxx_guard_type
(
void
);
extern
tree
default_cxx_get_cookie_size
(
tree
);
extern
tree
default_cxx_get_cookie_size
(
tree
);
...
...
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