[gnu.utils.bug] ns32k displacement offsets in gas

taylor@THINK.COM (05/05/89)

The displacement offset boundaries in ns32k.c are slightly wrong.

In function convert_iif(), there's the `if' statement:

	if (-0x40000000<=expP.X_add_number &&
	    exprP.X_add_number<=0x3fffffff) {

the limits should be -0x1f000000 and 0x1fffffff.  That is, the `if'
statement should be:

	if (-0x1f000000<=expP.X_add_number &&
	    exprP.X_add_number<=0x1fffffff) {

And similarly in md_number_to_disp, in the `if' statement:

	if (val < -0x20000000 || vaxl >= 0x20000000) as_warn("Double word displacement out of range");

the lower limit should be -0x1f000000 not -0x20000000.

Note:  The reason the lower limit is -0x1f000000 and not -0x20000000 is
that, according to Nat'l Semi's data sheet on the ns32532, ``the pattern
11100000 for the most significant byte of the displacement is reserved
by National for future enhancements''.

David
--
David Taylor
taylor@think.com, ...!think!taylor