[gnu.gcc.bug] GCC 1.31 bug on SysV 386

kayvan@APPLE.COM (Kayvan Sylvan) (12/02/88)

I grabbed the latest version of GNU Chess (Nov88 I think) off of
prep and can't compile it.

The assembler always gives me syntax errors.

With optimization:

	% gcc -O -S gnuchess.c
	% as -o gnuchess.o gnuchess.s
	Assembler: gnuchess.c
		aline 5671	: syntax error
		aline 5718	: syntax error
	%

The lines in question:

 5665		salw $1,%ax
 5666		addw %ax,-12(%ebp)
 5667		jmp .L621
 5668	.L620:
 5669		movswl -32(%ebp),%esi
 5670		movw row(,%esi,2),%ax
 5671		imulw $50,%ax
 5672		addw $500,%ax
 5673		movw %ax,-12(%ebp)

...

 5708		movw %dx,%ax
 5709		salw $2,%ax
 5710		addw %dx,%ax
 5711		salw $1,%ax
 5712		addw %ax,-12(%ebp)
 5713		jmp .L628
 5714	.L627:
 5715		movswl -32(%ebp),%esi
 5716		movw $7,%ax
 5717		subw row(,%esi,2),%ax
 5718		imulw $50,%ax
 5719		addw $500,%ax
 5720		movw %ax,-12(%ebp)
 5721	.L628:
 5722		movswl -32(%ebp),%esi

Without optimization:

	% gcc -S gnuchess.c
	% as -o gnuchess.o gnuchess.s
	Assembler: gnuchess.c
		aline 6743	: syntax error
		aline 6799	: syntax error
	%

This time:

 6740	.L530:
 6741		movswl 28(%ebp),%esi
 6742		movw row(,%esi,2),%ax
 6743		imulw $50,%ax
 6744		movw %ax,%bx

....

 6790		salw $2,%dx
 6791		addw %dx,%ax
 6792		salw $1,%ax
 6793		addw %ax,-4(%ebp)
 6794		jmp .L538
 6795	.L537:
 6796		movswl 28(%ebp),%esi
 6797		movw $7,%ax
 6798		subw row(,%esi,2),%ax
 6799		imulw $50,%ax
 6800		movw %ax,%bx
 6801		addw $500,%bx
 6802		movw %bx,-4(%ebp)
 6803	.L538:

All four errors are imulw instructions...

				---Kayvan

P.S. I can provide further info if necessary.