aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2014-04-29 13:59:00 +0000
committerNick Clifton <nickc@gcc.gnu.org>2014-04-29 13:59:00 +0000
commitd77f7b19b7f15ac0fec0823e7cc507f39ab36c30 (patch)
tree6356b47ffb790ff9ff41336061c0f963365a45f7
parent3d9684ae6fc8c6d3697654128a135513c49e41fc (diff)
downloadgcc-d77f7b19b7f15ac0fec0823e7cc507f39ab36c30.zip
gcc-d77f7b19b7f15ac0fec0823e7cc507f39ab36c30.tar.gz
gcc-d77f7b19b7f15ac0fec0823e7cc507f39ab36c30.tar.bz2
msp430.md (umulsidi): Fix typo.
* 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. From-SVN: r209898
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/msp430/msp430.c2
-rw-r--r--gcc/config/msp430/msp430.md4
3 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc0bc1a..42e0182 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -10,6 +10,13 @@
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.
(arc_init_reg_tables): Use a machine_mode enum to iterate over
available modes.
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c
index 6381270..c844aa2 100644
--- a/gcc/config/msp430/msp430.c
+++ b/gcc/config/msp430/msp430.c
@@ -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':
diff --git a/gcc/config/msp430/msp430.md b/gcc/config/msp430/msp430.md
index 5d930c3..74a98b4 100644
--- a/gcc/config/msp430/msp430.md
+++ b/gcc/config/msp430/msp430.md
@@ -1321,7 +1321,7 @@
[(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\";
@@ -1365,6 +1365,6 @@
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\";
"
)