aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@acm.org>2003-02-11 21:42:31 +0000
committerBob Wilson <bwilson@gcc.gnu.org>2003-02-11 21:42:31 +0000
commita3259be8e3a8e67a512227abb5d059e114369c4d (patch)
tree95efd16752c19f3085a79758ecd15e0ef0938a1e
parent16ddb59931ee80859aaff3624ca4f30e48295a22 (diff)
downloadgcc-a3259be8e3a8e67a512227abb5d059e114369c4d.zip
gcc-a3259be8e3a8e67a512227abb5d059e114369c4d.tar.gz
gcc-a3259be8e3a8e67a512227abb5d059e114369c4d.tar.bz2
xtensa.md (set_frame_ptr): Change rtl to set reg a7.
* config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7. * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP as a SET pattern. From-SVN: r62730
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/xtensa/xtensa.c5
-rw-r--r--gcc/config/xtensa/xtensa.md4
3 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index edf66be..69ef144 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-02-11 Bob Wilson <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
+ * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
+ as a SET pattern.
+
2003-02-11 Roger Sayle <roger@eyesopen.com>
* builtins.c: Fix failure caused by commiting wrong patch.
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index cb7d7e5..f254628 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -2241,8 +2241,9 @@ xtensa_reorg (first)
continue;
pat = PATTERN (insn);
- if (GET_CODE (pat) == UNSPEC_VOLATILE
- && (XINT (pat, 1) == UNSPECV_SET_FP))
+ if (GET_CODE (pat) == SET
+ && GET_CODE (SET_SRC (pat)) == UNSPEC_VOLATILE
+ && (XINT (SET_SRC (pat), 1) == UNSPECV_SET_FP))
{
set_frame_ptr_insn = insn;
break;
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
index 5db5c0c..cbda342 100644
--- a/gcc/config/xtensa/xtensa.md
+++ b/gcc/config/xtensa/xtensa.md
@@ -2387,7 +2387,7 @@
;; to set up the frame pointer.
(define_insn "set_frame_ptr"
- [(unspec_volatile [(const_int 0)] UNSPECV_SET_FP)]
+ [(set (reg:SI A7_REG) (unspec_volatile [(const_int 0)] UNSPECV_SET_FP))]
""
"*
{
@@ -2401,7 +2401,7 @@
;; Post-reload splitter to remove fp assignment when it's not needed.
(define_split
- [(unspec_volatile [(const_int 0)] UNSPECV_SET_FP)]
+ [(set (reg:SI A7_REG) (unspec_volatile [(const_int 0)] UNSPECV_SET_FP))]
"reload_completed && !frame_pointer_needed"
[(unspec [(const_int 0)] UNSPEC_NOP)]
"")