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