]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/msp430/msp430.md (umulsidi): Fix typo.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Apr 2014 13:59:00 +0000 (13:59 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Apr 2014 13:59:00 +0000 (13:59 +0000)
(mulhisi3): Enable even inside interrupt handlers.
* config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
bigger return address pushed in large mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209898 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/msp430/msp430.c
gcc/config/msp430/msp430.md

index bc0bc1a1c629b63f963976b3ee4d17efa0b69af0..42e0182a9484d38fb8704d7ac2b70acb0ac31329 100644 (file)
@@ -8,6 +8,13 @@
        (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
        code accordingly.
 
+2014-04-29  Nick Clifton  <nickc@redhat.com>
+
+       * config/msp430/msp430.md (umulsidi): Fix typo.
+       (mulhisi3): Enable even inside interrupt handlers.
+       * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
+       bigger return address pushed in large mode.
+
 2014-04-29  Nick Clifton  <nickc@redhat.com>
 
        * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
index 63812705d0b1c59436179b9cfd34e9694f9b0845..c844aa2a12cda5956ce21e27f7c500ad2fe74a69 100644 (file)
@@ -2162,7 +2162,7 @@ msp430_print_operand (FILE * file, rtx op, int letter)
         because builtins are expanded before the frame layout is determined.  */
       fprintf (file, "%d",
               msp430_initial_elimination_offset (ARG_POINTER_REGNUM, STACK_POINTER_REGNUM)
-               - 2);
+              - (TARGET_LARGE ? 4 : 2));
       return;
 
     case 'J':
index 5d930c3790167ae87d98002807cc425f2dc9facb..74a98b48019ae9fa83f1c29097b448cb797c1824 100644 (file)
   [(set (match_operand:SI                          0 "register_operand" "=r")
        (mult:SI (sign_extend:SI (match_operand:HI 1 "register_operand" "%0"))
                 (sign_extend:SI (match_operand:HI 2 "register_operand" "r"))))]
-  "optimize > 2 && msp430_hwmult_type != NONE && ! msp430_is_interrupt_func ()"
+  "optimize > 2 && msp430_hwmult_type != NONE"
   "*
     if (msp430_use_f5_series_hwmult ())
       return \"PUSH.W sr { DINT { MOV.W %1, &0x04C2 { MOV.W %2, &0x04C8 { MOV.W &0x04CA, %L0 { MOV.W &0x04CC, %H0 { POP.W sr\";
     if (msp430_use_f5_series_hwmult ())
       return \"PUSH.W sr { DINT { MOV.W %L1, &0x04D0 { MOV.W %H1, &0x04D2 { MOV.W %L2, &0x04E0 { MOV.W %H2, &0x04E2 { MOV.W &0x04E4, %A0 { MOV.W &0x04E6, %B0 { MOV.W &0x04E8, %C0 { MOV.W &0x04EA, %D0 { POP.W sr\";
     else
-      return \"PUSH.W sr { DINT { MOV.W %L1, &0x0140 { MOV.W %H1, &0x0141 { MOV.W %L2, &0x0150 { MOV.W %H2, &0x0152 { MOV.W &0x0154, %A0 { MOV.W &0x0156, %B0 { MOV.W &0x0158, %C0 { MOV.W &0x015A, %D0 { POP.W sr\";
+      return \"PUSH.W sr { DINT { MOV.W %L1, &0x0140 { MOV.W %H1, &0x0142 { MOV.W %L2, &0x0150 { MOV.W %H2, &0x0152 { MOV.W &0x0154, %A0 { MOV.W &0x0156, %B0 { MOV.W &0x0158, %C0 { MOV.W &0x015A, %D0 { POP.W sr\";
   "
 )