OSDN Git Service

* config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
authorbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Feb 2003 21:42:31 +0000 (21:42 +0000)
committerbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 11 Feb 2003 21:42:31 +0000 (21:42 +0000)
        * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
        as a SET pattern.

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

gcc/ChangeLog
gcc/config/xtensa/xtensa.c
gcc/config/xtensa/xtensa.md

index edf66be..69ef144 100644 (file)
@@ -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.
index cb7d7e5..f254628 100644 (file)
@@ -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;
index 5db5c0c..cbda342 100644 (file)
 ;; 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))]
   ""
   "*
 {
 
 ;; 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)]
   "")