From: rts Date: Wed, 15 Jul 2015 11:43:05 +0000 (+0000) Subject: Fix restoration of hi/lo in MIPS64R2 interrupt handlers. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b1ec24676c0b067c03aa51ff5ea6d267582d9daf;p=thirdparty%2Fgcc.git Fix restoration of hi/lo in MIPS64R2 interrupt handlers. gcc/ * config/mips/mips.c (mips_emit_save_slot_move): Fix typo. gcc/testsuite/ * gcc.target/mips/interrupt_handler-5.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@225820 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 64208db51a2f..dac10abdb74f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2015-07-15 Robert Suchanek + + * config/mips/mips.c (mips_emit_save_slot_move): Fix typo. + 2015-07-15 Matthew Fortune Robert Suchanek diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 70240f7bf68f..c32532b07214 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -11131,7 +11131,7 @@ mips_emit_save_slot_move (rtx dest, rtx src, rtx temp) { mips_emit_move (temp, src); if (TARGET_64BIT) - emit_insn (gen_mthisi_di (gen_rtx_REG (TImode, MD_REG_FIRST), + emit_insn (gen_mthidi_ti (gen_rtx_REG (TImode, MD_REG_FIRST), temp, gen_rtx_REG (DImode, LO_REGNUM))); else emit_insn (gen_mthisi_di (gen_rtx_REG (DImode, MD_REG_FIRST), diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7b021537c823..4c430bff2d7d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-07-15 Robert Suchanek + + * gcc.target/mips/interrupt_handler-5.c: New test. + 2015-07-15 Matthew Fortune Robert Suchanek diff --git a/gcc/testsuite/gcc.target/mips/interrupt_handler-5.c b/gcc/testsuite/gcc.target/mips/interrupt_handler-5.c new file mode 100644 index 000000000000..64194795e349 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/interrupt_handler-5.c @@ -0,0 +1,8 @@ +/* Test the interrupt handler with an accumulator. */ +/* { dg-do assemble } */ +/* { dg-options "-mips64r2" } */ +_Accum a; +__attribute__((interrupt)) +void foo () { + a = a*a; +}