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
9bed5535
Commit
9bed5535
authored
Sep 07, 2016
by
Kaz Kojima
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[SH] Move definitions for atomic models to sh.h from sh-protos.h.
From-SVN: r240023
parent
cdc65c28
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
69 additions
and
53 deletions
+69
-53
gcc/ChangeLog
+12
-0
gcc/config/sh/sh-protos.h
+0
-53
gcc/config/sh/sh.h
+57
-0
No files found.
gcc/ChangeLog
View file @
9bed5535
2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh-protos.h (struct sh_atomic_model,
selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
* config/sh/sh.h (struct sh_atomic_model,
selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
Guard with __cplusplus.
2016-09-06 Jakub Jelinek <jakub@redhat.com>
2016-09-06 Jakub Jelinek <jakub@redhat.com>
PR target/69255
PR target/69255
...
...
gcc/config/sh/sh-protos.h
View file @
9bed5535
...
@@ -35,59 +35,6 @@ enum sh_function_kind {
...
@@ -35,59 +35,6 @@ enum sh_function_kind {
SFUNC_STATIC
SFUNC_STATIC
};
};
/* Atomic model. */
struct
sh_atomic_model
{
enum
enum_type
{
none
=
0
,
soft_gusa
,
hard_llcs
,
soft_tcb
,
soft_imask
,
num_models
};
/* If strict is set, disallow mixing of different models, as it would
happen on SH4A. */
bool
strict
;
enum_type
type
;
/* Name string as it was specified on the command line. */
const
char
*
name
;
/* Name string as it is used in C/C++ defines. */
const
char
*
cdef_name
;
/* GBR offset variable for TCB model. */
int
tcb_gbr_offset
;
};
extern
const
sh_atomic_model
&
selected_atomic_model
(
void
);
/* Shortcuts to check the currently selected atomic model. */
#define TARGET_ATOMIC_ANY \
(selected_atomic_model ().type != sh_atomic_model::none)
#define TARGET_ATOMIC_STRICT \
(selected_atomic_model ().strict)
#define TARGET_ATOMIC_SOFT_GUSA \
(selected_atomic_model ().type == sh_atomic_model::soft_gusa)
#define TARGET_ATOMIC_HARD_LLCS \
(selected_atomic_model ().type == sh_atomic_model::hard_llcs)
#define TARGET_ATOMIC_SOFT_TCB \
(selected_atomic_model ().type == sh_atomic_model::soft_tcb)
#define TARGET_ATOMIC_SOFT_TCB_GBR_OFFSET_RTX \
GEN_INT (selected_atomic_model ().tcb_gbr_offset)
#define TARGET_ATOMIC_SOFT_IMASK \
(selected_atomic_model ().type == sh_atomic_model::soft_imask)
#ifdef RTX_CODE
#ifdef RTX_CODE
extern
rtx
sh_fsca_sf2int
(
void
);
extern
rtx
sh_fsca_sf2int
(
void
);
extern
rtx
sh_fsca_int2sf
(
void
);
extern
rtx
sh_fsca_int2sf
(
void
);
...
...
gcc/config/sh/sh.h
View file @
9bed5535
...
@@ -333,6 +333,63 @@ extern enum sh_divide_strategy_e sh_div_strategy;
...
@@ -333,6 +333,63 @@ extern enum sh_divide_strategy_e sh_div_strategy;
#define SH_DIV_STRATEGY_DEFAULT SH_DIV_CALL_DIV1
#define SH_DIV_STRATEGY_DEFAULT SH_DIV_CALL_DIV1
#endif
#endif
#ifdef __cplusplus
/* Atomic model. */
struct
sh_atomic_model
{
enum
enum_type
{
none
=
0
,
soft_gusa
,
hard_llcs
,
soft_tcb
,
soft_imask
,
num_models
};
/* If strict is set, disallow mixing of different models, as it would
happen on SH4A. */
bool
strict
;
enum_type
type
;
/* Name string as it was specified on the command line. */
const
char
*
name
;
/* Name string as it is used in C/C++ defines. */
const
char
*
cdef_name
;
/* GBR offset variable for TCB model. */
int
tcb_gbr_offset
;
};
extern
const
sh_atomic_model
&
selected_atomic_model
(
void
);
/* Shortcuts to check the currently selected atomic model. */
#define TARGET_ATOMIC_ANY \
(selected_atomic_model ().type != sh_atomic_model::none)
#define TARGET_ATOMIC_STRICT \
(selected_atomic_model ().strict)
#define TARGET_ATOMIC_SOFT_GUSA \
(selected_atomic_model ().type == sh_atomic_model::soft_gusa)
#define TARGET_ATOMIC_HARD_LLCS \
(selected_atomic_model ().type == sh_atomic_model::hard_llcs)
#define TARGET_ATOMIC_SOFT_TCB \
(selected_atomic_model ().type == sh_atomic_model::soft_tcb)
#define TARGET_ATOMIC_SOFT_TCB_GBR_OFFSET_RTX \
GEN_INT (selected_atomic_model ().tcb_gbr_offset)
#define TARGET_ATOMIC_SOFT_IMASK \
(selected_atomic_model ().type == sh_atomic_model::soft_imask)
#endif // __cplusplus
#define SUBTARGET_OVERRIDE_OPTIONS (void) 0
#define SUBTARGET_OVERRIDE_OPTIONS (void) 0
...
...
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