[Bug c/43999] Gcc (lib1funcs.asm) doesn't build on ARM/Thumb2

2010-05-11 Thread ramana at gcc dot gnu dot org


--- Comment #2 from ramana at gcc dot gnu dot org  2010-05-11 09:28 ---
How did you configure your tools in  ? Have you considered using the --with-cpu
and --with-mode options while building your tools i.e. --with-cpu=cortex-m3
--with-mode=thumb.

Ramana


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43999



[Bug c/43999] Gcc (lib1funcs.asm) doesn't build on ARM/Thumb2

2010-05-11 Thread jingyu at google dot com


--- Comment #3 from jingyu at google dot com  2010-05-11 17:56 ---
I configure gcc with --with-arch=armv5te. The default multilib will be compiled
in ARM mode.
The error happens when I build the armv7-a/thumb multilib.
I checked the config.log for armv7-a/thumb/libgcc, libgcc was indeed configured
with -march=armv7-a -mthumb. So the code will be generated in thumb2 mode.

In gcc/config/arm/lib1funcs.asm, do_it hs, t means itt hs.
The condition of the IT block must match the condition of the instructions
inside. hs here looks like a typo. I change hs into ne, then
lib1funcs.asm is compiled. This IT block is rephrased into

  5e:   2800cmp r0, #0
  60:   bf1citt ne
  62:   ea5f 1313   movsne.wr3, r3, lsr #4
  66:   0909lsrne   r1, r1, #4

Am I correct?
Thanks.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43999



[Bug c/43999] Gcc (lib1funcs.asm) doesn't build on ARM/Thumb2

2010-05-10 Thread jingyu at google dot com


--- Comment #1 from jingyu at google dot com  2010-05-10 23:52 ---
I see the same error when compiling thumb2 libgcc.
Host=Build=x86_64-unknown-linux-gnu, Target=arm-unknown-eabi

The error message points to following lines in gcc/config/arm/lib1funcs.asm.

cmp \dividend, #0   @ Early termination?
do_it   hs, t
movnes  \curbit,   \curbit,  lsr #4 @ No, any more bits to do?
movne   \divisor,  \divisor, lsr #4
bne 1b

The condition in do_it hs,t seems to be wrong.
This do_it line was committed by Kazu Hirata in Aug 2009.
http://gcc.gnu.org/ml/gcc-patches/2009-08/msg00365.html

I am using binutils-2.20.1.

Thanks.


-- 

jingyu at google dot com changed:

   What|Removed |Added

 CC||kazu at codesourcery dot
   ||com, jingyu at google dot
   ||com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43999