diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-05-27 09:08:20 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-05-27 09:08:20 +0000 |
commit | 131f3644ef87d5406722ee42b0989cb5783156fa (patch) | |
tree | 6f9c3016cb1696987ba7b0cc8c1b8c5400c6157d /gcc/config/h8300/h8300.c | |
parent | 851ccf1afd9b0e045e7dda2539a3dfa30c16bb64 (diff) | |
download | gcc-131f3644ef87d5406722ee42b0989cb5783156fa.tar.gz |
2015-05-27 Basile Starynkevitch <basile@starynkevitch.net>
{{merged with almost GCC 5. i.e. trunk r222129 from 2015-04-15,
using svn merge -r219880:222129
svn+ssh://bstarynk@gcc.gnu.org/svn/gcc/trunk }}
[gcc/]
2015-05-27 Basile Starynkevitch <basile@starynkevitch.net>
{{merged with GCC 5, so}}
* melt-runtime.h (melt_fatal_error, melt_fatal_error_at_line):
Pass UNKNOWN_LOCATION for GCC 5. Re-indented with command:
astyle --style=gnu -s2
* melt-runtime.cc: Re-indented with command:
astyle --style=gnu -s2
(melt_branch_process_arguments, melt_ggcstart_callback)
(melt_reserved_allocation_failure): Use melt_fatal_error instead
of fatal_error.
* melt/generated/meltrunsup-inc.cc: Manually edited for fatal_error.
* melt/generated/warmelt-first.cc: Ditto.
* melt/warmelt-first.melt (melt_assert_failure_fun): Ditto.
* melt/warmelt-modes.melt (generate_runtypesupport_scanning):
Ditto, in the emitted code.
* Makefile.in: mention s-gtype instead of gt-melt-runtime.h in
dependencies.
(TEXI_GCCINT_FILES): Add meltgendoc.texi.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@223739 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/h8300/h8300.c')
-rw-r--r-- | gcc/config/h8300/h8300.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 5968e5572b9..4e9110ecb7d 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -619,7 +619,7 @@ compute_saved_regs (void) /* Emit an insn to push register RN. */ static rtx -push (int rn) +push (int rn, bool in_prologue) { rtx reg = gen_rtx_REG (word_mode, rn); rtx x; @@ -630,7 +630,7 @@ push (int rn) x = gen_push_h8300hs_advanced (reg); else x = gen_push_h8300hs_normal (reg); - x = F (emit_insn (x), true); + x = F (emit_insn (x), in_prologue); add_reg_note (x, REG_INC, stack_pointer_rtx); return x; } @@ -683,7 +683,7 @@ h8300_push_pop (int regno, int nregs, bool pop_p, bool return_p) if (pop_p) pop (regno); else - push (regno); + push (regno, false); return; } @@ -868,7 +868,7 @@ h8300_expand_prologue (void) if (frame_pointer_needed) { /* Push fp. */ - push (HARD_FRAME_POINTER_REGNUM); + push (HARD_FRAME_POINTER_REGNUM, true); F (emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx), true); } @@ -2757,7 +2757,7 @@ h8sx_emit_movmd (rtx dest, rtx src, rtx length, void h8300_swap_into_er6 (rtx addr) { - rtx insn = push (HARD_FRAME_POINTER_REGNUM); + rtx insn = push (HARD_FRAME_POINTER_REGNUM, false); if (frame_pointer_needed) add_reg_note (insn, REG_CFA_DEF_CFA, plus_constant (Pmode, gen_rtx_MEM (Pmode, stack_pointer_rtx), @@ -2786,7 +2786,6 @@ h8300_swap_out_of_er6 (rtx addr) emit_move_insn (addr, hard_frame_pointer_rtx); insn = pop (HARD_FRAME_POINTER_REGNUM); - RTX_FRAME_RELATED_P (insn) = 1; if (frame_pointer_needed) add_reg_note (insn, REG_CFA_DEF_CFA, plus_constant (Pmode, hard_frame_pointer_rtx, @@ -4384,7 +4383,7 @@ get_shift_alg (enum shift_type shift_type, enum shift_mode shift_mode, info->cc_inline = CC_SET_ZNV; goto end; case SHIFT_ASHIFTRT: - info->special = "mov.b\t%z0,%w0\n\tbld\t#7,%w0\n\tsubx\t%x0,%x0\n\tsubx\t%x0,%x0\n\tsubx\t%x0,%x0"; + info->special = "mov.b\t%z0,%w0\n\tbld\t#7,%w0\n\tsubx\t%x0,%x0\n\tsubx\t%y0,%y0\n\tsubx\t%z0,%z0"; info->shift1 = "shar.b\t%w0"; info->cc_inline = CC_SET_ZNV; goto end; @@ -5637,6 +5636,12 @@ h8300_eightbit_constant_address_p (rtx x) if (GET_CODE (x) == SYMBOL_REF) return (SYMBOL_REF_FLAGS (x) & SYMBOL_FLAG_EIGHTBIT_DATA) != 0; + if (GET_CODE (x) == CONST + && GET_CODE (XEXP (x, 0)) == PLUS + && GET_CODE (XEXP (XEXP (x, 0), 0)) == SYMBOL_REF + && (SYMBOL_REF_FLAGS (XEXP (XEXP (x, 0), 0)) & SYMBOL_FLAG_EIGHTBIT_DATA) != 0) + return 1; + if (GET_CODE (x) != CONST_INT) return 0; |