🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.utils.bug
Article #1591

ns32k displacement offsets in gas

#1591
From: taylor
Date: Fri, 05 May 1989 04:08
28 lines
1291 bytes
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
Technical Details
Message-ID: <8905050408.AA01499@odin.think.com>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!THINK.COM!taylor

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!THINK.COM!taylor
From: taylor@THINK.COM
Newsgroups: gnu.utils.bug
Subject: ns32k displacement offsets in gas
Message-ID: <8905050408.AA01499@odin.think.com>
Date: 5 May 89 04:08:56 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 28