[Bug 730840] Re: [armel, avmv6] wrong assembler with -O[13s], not -O2
Mans Rullgard
mans.rullgard at linaro.org
Tue Oct 23 13:59:13 UTC 2012
The problem is indeed inline asm which is invalid for Thumb-1.
This code comes from JamVM, and the inline asm performs a syscall to
invalidate the I-cache after generating some code. It would be better
off using the gcc __builtin__clear_cache() function for this, or least
changing the code to let gcc generate the constants.
** Changed in: gcc-linaro
Status: Incomplete => Invalid
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.4 in Ubuntu.
https://bugs.launchpad.net/bugs/730840
Title:
[armel, avmv6] wrong assembler with -O[13s], not -O2
Status in Linaro GCC:
Invalid
Status in “gcc-4.4” package in Ubuntu:
New
Status in “gcc-4.5” package in Ubuntu:
New
Bug description:
Binary package hint: gcc-4.4
maverick:
$ gcc-4.4 -c -march=armv6 -Os inlining.i
inlining.c: In function 'rewriteLock':
inlining.c:850: error: insn does not satisfy its constraints:
(insn 62 20 21 3 inlining.c:846 (set (reg:SI 3 r3)
(reg/f:SI 13 sp)) 174 {*thumb1_movsi_insn_osize} (nil))
inlining.c:850: internal compiler error: in reload_cse_simplify_operands, at postreload.c:397
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.4/README.Bugs> for instructions.
natty, with both gcc-4.4 and gcc-4.5:
$ gcc-4.5 -c -march=armv6 -Os inlining.i
/tmp/ccl1qfKd.s: Assembler messages:
/tmp/ccl1qfKd.s:794: Error: invalid immediate: 983040 is out of range
/tmp/ccl1qfKd.s:794: Error: value of 983040 too large for field of 2 bytes at 1310
/tmp/ccl1qfKd.s:1088: Error: invalid immediate: 983040 is out of range
/tmp/ccl1qfKd.s:1088: Error: value of 983040 too large for field of 2 bytes at 1800
works with -O2, fails with -O1, -Os, -O3.
To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc-linaro/+bug/730840/+subscriptions
More information about the foundations-bugs
mailing list