[Bug target/95943] New: arc -mbig-endian "inappropriate arguments" error from assembler
arnd at linaro dot org
gcc-bugzilla@gcc.gnu.org
Sat Jun 27 21:10:58 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95943
Bug ID: 95943
Summary: arc -mbig-endian "inappropriate arguments" error from
assembler
Product: gcc
Version: 10.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: arnd at linaro dot org
Target Milestone: ---
Building an 'allmodconfig' linux kernel for ARC results in a failure to
assemble one file:
{standard input}: Assembler messages:
{standard input}:12347: Error: inappropriate arguments for opcode 'mpyd'
make[3]: *** [/tmp/mainline/scripts/Makefile.build:281: kernel/sched/core.o]
Error 1
With creduce, I reduced the problem to
void a(int b, int c, long long d) {
long e = d;
long long f = 0;
if (e / 1000)
f = (long long)e * 1000;
g(a, f);
}
$ arc-linux-gcc-O2 -mbig-endian -mcpu=hs38 -c test.c
/tmp/ccfzWfgR.s: Assembler messages:
/tmp/ccfzWfgR.s:21: Error: inappropriate arguments for opcode 'mpyd'
$ arc-linux-gcc-O2 -mbig-endian -mcpu=hs38 -S test.c -o-
.section .text
.align 4
.global a
.type a, @function
a:
mov_s r2,r3 ;4
add r2,r2,999
cmp r2,1998
mov.ls r2,0
mov.ls r3,0
mpyd.hi r2,r3,1000
mov_s r1,r2 ;4
mov_s r0,@a ;13
b.d @g
mov_s r2,r3 ;4
.size a, .-a
.ident "GCC: (GNU) 10.1.0"
This happens with at least gcc-8 through gcc-10, but not with gcc-7.5.
More information about the Gcc-bugs
mailing list