diff options
author | Bob Wilson <bob.wilson@acm.org> | 2003-02-11 21:42:31 +0000 |
---|---|---|
committer | Bob Wilson <bwilson@gcc.gnu.org> | 2003-02-11 21:42:31 +0000 |
commit | a3259be8e3a8e67a512227abb5d059e114369c4d (patch) | |
tree | 95efd16752c19f3085a79758ecd15e0ef0938a1e | |
parent | 16ddb59931ee80859aaff3624ca4f30e48295a22 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa.c | 5 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa.md | 4 |
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)] "") |