9fans archive / 1996 / 03 / 28 /    prev next

From: Ken Thompson ken@pla...
Subject: No subject
Date: Sun, 10 Mar 1996 19:22:08 -0500

> Compiling gs, I ran cross a bug, distilled down to the
> following:
> 
> term% cat x.c
> void foo()
> {	
> 	char	a;
> 	int	b;
> 	char	d[1];
>         long e = a | (1 << b); 
> 
> 	while (1) d[b] = e;
> }
> 
> term% 8c x.c && 8l x.8
> foo: doasm: notfound (6)	SALL	BX,AX
> 
> foo: doasm: notfound (6)	SALL	BX,AX
> 
> foo: doasm: notfound (6)	SALL	BX,AX

the fix is to add the following lines.
in /sys/src/cmd/8c/peep.c

165a166,177
> 		case AROLB:
> 		case AROLL:
> 		case AROLW:
> 		case ARORB:
> 		case ARORL:
> 		case ARORW:
> 		case ASALB:
> 		case ASALL:
> 		case ASALW:
> 		case ASARB:
> 		case ASARL:
> 		case ASARW: