[comp.unix.xenix] 2.3.0 compiler error

corwin@polari.UUCP (Don Glover) (03/14/90)

I have the following code (condensed to a reasonable size for
demonstration)
extern int rand();
#define RND(x)	(rand() % x)
main()
{
	rnd(6);
}

int
rnd(x)		/* 1 <= rnd(x) <= x */
register int x; 
{
	return(RND(x)+1);
}

the above code when compiled produces an idiv esi assembler
instruction, that to the best of my ability to tell is an
incorrect instruction, further my mahcine running xenix 386
chokes on it.  is this a known bug or is there something I am
missing?