diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-08 17:31:24 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-04-08 17:31:24 +0000 |
commit | 36a2dfdb85d3fc67b8d5a4852d0ed01bdec76c1a (patch) | |
tree | add95cedb7af8f7a17f8f508b45eb61409595cf9 /gcc/config/sh/sh.h | |
parent | fd2d7dfc4f9feda02b1e33c677b2add5dde2613c (diff) | |
download | gcc-36a2dfdb85d3fc67b8d5a4852d0ed01bdec76c1a.tar.gz |
* sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
this is FP_MODE_DOUBLE .
* sh.c (ra.h): #include.
(push_regs): Add second parameter. Changed all callers.
If necessary, set fpscr before saving floating point registers.
(calc_live_regs): If interrupt handler and TARGET_FMOVD, always
do saves / restores with SZ == 1.
(sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
(sh_expand_epilogue): Likewise. For TARGET_FMOVD, if floating point
registers are being restored, restore FPSCR only after restoring them.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65379 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sh/sh.h')
-rw-r--r-- | gcc/config/sh/sh.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 1b2f3816e1c..35fa7c6a157 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -3292,7 +3292,8 @@ extern int rtx_equal_function_value_matters; (TARGET_FPU_SINGLE ? FP_MODE_SINGLE : FP_MODE_DOUBLE) #define NORMAL_MODE(ENTITY) \ - (sh_cfun_interrupt_handler_p () ? FP_MODE_NONE \ + (sh_cfun_interrupt_handler_p () \ + ? (TARGET_FMOVD ? FP_MODE_DOUBLE : FP_MODE_NONE) \ : ACTUAL_NORMAL_MODE (ENTITY)) #define EPILOGUE_USES(REGNO) ((TARGET_SH2E || TARGET_SH4) \ |