diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2017-04-14 22:08:35 +0100 |
---|---|---|
committer | Andrew Burgess <aburgess@gcc.gnu.org> | 2017-04-14 22:08:35 +0100 |
commit | 8c1d6b64e3e163e434b2f8d8521a31c9469089f0 (patch) | |
tree | 313cd8aba080d7daa3cfd79ca56d168ed772fd16 | |
parent | 31a07c8102fa4a7e44118bdacda5f8577ca7218e (diff) | |
download | gcc-8c1d6b64e3e163e434b2f8d8521a31c9469089f0.zip gcc-8c1d6b64e3e163e434b2f8d8521a31c9469089f0.tar.gz gcc-8c1d6b64e3e163e434b2f8d8521a31c9469089f0.tar.bz2 |
arc: Use @pcl assembler syntax instead of invalid expressions
The old ARC assembler would accept expressions like 'LABEL-(.&-4)'
which would calculate the offset from the PCL to LABEL. The new ARC
assembler does not accept these expressions, instead there's an @pcl
synax, used like LABEL@pcl which gives the offset from PCL to LABEL.
Most of the use of the old expression syntax have been removed,
however, this one got missed.
gcc/ChangeLog:
* config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
From-SVN: r246932
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/arc/arc.md | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 719974b..8c4728c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com> + + * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax. + 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/80098 diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md index 88b7fca..f707bd0 100644 --- a/gcc/config/arc/arc.md +++ b/gcc/config/arc/arc.md @@ -5070,7 +5070,7 @@ { /* ??? Can do better for when a scratch register is known. But that would require extra testing. */ - return "push_s r0\;add r0,pcl,%4-(.&-4)\;sr r0,[2]; LP_START\;add r0,pcl,.L__GCC__LP%1-(.&-4)\;sr r0,[3]; LP_END\;pop_s r0"; + return "push_s r0\;add r0,pcl,%4@pcl\;sr r0,[2]; LP_START\;add r0,pcl,.L__GCC__LP%1@pcl\;sr r0,[3]; LP_END\;pop_s r0"; } /* Check if the loop end is in range to be set by the lp instruction. */ size = INTVAL (operands[3]) < 2 ? 0 : 2048; |