Article View: comp.sys.amiga.tech
Article #5900Manx 3.6 intermediates are _wierd_
From: Allan Duncan
Date: Wed, 17 Oct 1990 02:09
Date: Wed, 17 Oct 1990 02:09
26 lines
1476 bytes
1476 bytes
While I was doing some debugging I was perusing the assembler listings,
and since I wanted to be sure what addressing mode was actaully being
used, looked at the binary opcodes. Did I get a surprise!
As we all know, Manx have a near data model that uses the a4 register as
a base and adds a signed 16 bit offset to get the data address, so I
would have expected to see
2c6c xxxx (move.l xxxx(a4),a6)
but found instead
2c6d xxxx (move.l xxxx(a5),a6) !!
Just in case there was a bug in the assembler listing I checked the .o
files, and sure enough, there was 2c6d.
But after linking these self same .o files, the final object file
contains 2c6c as it should.
Curiously, subroutines with local variables contain move.l d(a5),an in
both the .o files and the final object.
How on earth does the linker know which d(a5) should be converted to
d(a4), and why do it this way in the first place?
Allan Duncan ACSnet a.duncan@trl.oz
(03) 541 6708 ARPA a.duncan%trl.oz.au@uunet.uu.net
UUCP {uunet,hplabs,ukc}!munnari!trl.oz!a.duncan
Telecom Research Labs, PO Box 249, Clayton, Victoria, 3168, Australia.
Technical Details
Message-ID:
<2354@trlluna.trl.oz>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!uunet!munnari.oz.au!bruce!trlluna!rhea!aduncanShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!uunet!munnari.oz.au!bruce!trlluna!rhea!aduncan From: aduncan@rhea.trl.oz (Allan Duncan) Newsgroups: comp.sys.amiga.tech Subject: Manx 3.6 intermediates are _wierd_ Message-ID: <2354@trlluna.trl.oz> Date: 17 Oct 90 02:09:25 GMT Sender: news@trlluna.trl.oz Lines: 26