[Bug target/24610] New: The comment start symbol of arm target

2005-10-31 Thread hanzac at gmail dot com
It's true that the arm comment start symbol is '@', but GCC will generate some
assembler code end with a '@' and a comment without a separator so it can't be
parsed by gas.

For example, I compile the libgcc2.c:__gcc_bcmp with xgcc, it failed:
_
/* Like bcmp except the sign is meaningful.
   Result is negative if S1 is less than S2,
   positive if S1 is greater, 0 if S1 and S2 are equal.  */

int
__gcc_bcmp (const unsigned char *s1, const unsigned char *s2, size_t size)
{
  while (size > 0)
{
  const unsigned char c1 = *s1++, c2 = *s2++;
  if (c1 != c2)
return c1 - c2;
  size--;
}
  return 0;
}
_
I'm compile gcc under cygwin and mingw32-gcc, binutils-2.16.1 already compiled
also with --target=arm-wince-pe, here is the gcc(gcc-4.1-20051022)
configuration:
$ ./configure --disable-nls --disable-win32-registry --enable-threads=win32
--host=i686-pc-mingw32 --build=i686-pc-mingw32 --target=arm-wince-pe

I also found that if I made a change in gcc-4.1-20051022\gcc\config\arm\aout.h
(add a semicolon), it will work:
@@ -294,7 +294,7 @@
 #endif

 #ifndef ASM_COMMENT_START
-#define ASM_COMMENT_START "@"
+#define ASM_COMMENT_START ";@"
 #endif

 /* This works for GAS and some other assemblers.  */

See also in: http://gcc.gnu.org/ml/gcc/2005-10/msg01215.html


-- 
   Summary: The comment start symbol of arm target
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hanzac at gmail dot com
 GCC build triplet: i686-pc-mingw32
  GCC host triplet: i686-pc-mingw32
GCC target triplet: arm-wince-pe


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



[Bug target/24610] The comment start symbol of arm target

2005-11-01 Thread hanzac at gmail dot com


--- Comment #2 from hanzac at gmail dot com  2005-11-02 06:27 ---
I made a clean compilation, here is the result, even the existing assembler
code can't pass. (gcc/config/arm/lib1funcs.asm)

/cygdrive/e/gcc-4.1-20051029/host-i686-pc-mingw32/gcc/xgcc
-B/cygdrive/e/gcc-4.1-20051029/host-i686-pc-mingw32/gcc/
-B/usr/local/arm-wince-pe/bin/ -B/usr/local/arm-wince-pe/lib/ -isystem
/usr/local/arm-wince-pe/include -isystem /usr/local/arm-wince-pe/sys-include
-O2  -O2 -g -O2   -DIN_GCC -DCROSS_COMPILE   -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem
./include  -Dinhibit_libc -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../.././gcc -I../.././gcc/.
-I../.././gcc/../include -I../.././gcc/../libcpp/include  -DL_udivsi3
-xassembler-with-cpp -c ../.././gcc/config/arm/lib1funcs.asm -o
libgcc/./_udivsi3.o
../.././gcc/config/arm/lib1funcs.asm: Assembler messages:
../.././gcc/config/arm/lib1funcs.asm:1: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:2: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:65: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:730: Error: too many memory references for
`sub'
../.././gcc/config/arm/lib1funcs.asm:731: Error: no such instruction: `moveq
pc,lr'
../.././gcc/config/arm/lib1funcs.asm:732: Error: no such instruction: `bcc
Ldiv0'
../.././gcc/config/arm/lib1funcs.asm:733: Error: too many memory references for
`cmp'
../.././gcc/config/arm/lib1funcs.asm:734: Error: no such instruction: `bls 11f'
../.././gcc/config/arm/lib1funcs.asm:735: Error: no such instruction: `tst
r1,r2'
../.././gcc/config/arm/lib1funcs.asm:736: Error: no such instruction: `beq 12f'
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `tst r1,'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `moveq
r1,r1,lsl'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `moveq
r3,'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `movne
r3,'
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: expecting operand after ',';
got nothing
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `cmplo
r1,r0'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `movlo
r1,r1,lsl'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `movlo
r3,r3,lsl'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `blo 1b'
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: expecting operand after ',';
got nothing
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `cmplo
r1,r0'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `movlo
r1,r1,lsl'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `movlo
r3,r3,lsl'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `blo 1b'
../.././gcc/config/arm/lib1funcs.asm:373: Error: expecting operand after ',';
got nothing
../.././gcc/config/arm/lib1funcs.asm:373: Error: invalid character '@' in
mnemonic
../.././gcc/config/arm/lib1funcs.asm:373: Error: too many memory references for
`cmp'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `subhs
r0,r0,r1'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `orrhs
r2,r2,r3'
../.././gcc/config/arm/lib1funcs.asm:373: Error: too many memory references for
`cmp'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `subhs
r0,r0,r1,lsr'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `orrhs
r2,r2,r3,lsr'
../.././gcc/config/arm/lib1funcs.asm:373: Error: too many memory references for
`cmp'
../.././gcc/config/arm/lib1funcs.asm:373: Error: no such instruction: `subhs
r0,r0,r1,lsr'
../..

[Bug rtl-optimization/3329] optimization large memory copies uses kernel memcpy function without user's knowledge.

2005-07-15 Thread hanzac at gmail dot com

--- Additional Comments From hanzac at gmail dot com  2005-07-15 08:26 
---
> Anyway, like (nearly) all optimizations in gcc, it can be turned off by
turning off optimization for the affected file.

It can't be turned off when using MinGW GCC. I hope there will be a
option to enable or disable this feature that auto-emits memcpy.
Because when developing a OS kernel, external memcpy to link is not
available, of course.

-- 


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