]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix restoration of hi/lo in MIPS64R2 interrupt handlers.
authorrts <rts@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Jul 2015 11:43:05 +0000 (11:43 +0000)
committerrts <rts@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Jul 2015 11:43:05 +0000 (11:43 +0000)
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

gcc/ChangeLog
gcc/config/mips/mips.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/interrupt_handler-5.c [new file with mode: 0644]

index 64208db51a2f9088b06fa4f6dd2bc32e255629dd..dac10abdb74f58299b97cbc389a426da27931e82 100644 (file)
@@ -1,3 +1,7 @@
+2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
+
+       * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
+
 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
            Robert Suchanek  <robert.suchanek@imgtec.com>
 
index 70240f7bf68f959c17f658b96d85798299e07975..c32532b07214d9876873d623fb973914367de5af 100644 (file)
@@ -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),
index 7b021537c823bfd46145edbf47294b9fc625089f..4c430bff2d7dc6e87ede4df0ead749bb9a5dffc1 100644 (file)
@@ -1,3 +1,7 @@
+2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
+
+       * gcc.target/mips/interrupt_handler-5.c: New test.
+
 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
            Robert Suchanek  <robert.suchanek@imgtec.com>
 
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 (file)
index 0000000..6419479
--- /dev/null
@@ -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;
+}