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. --- gcc/ChangeLog | 4 ++++ gcc/config/arc/arc.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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; -- 2.4.11