Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!agate!labrea!polya!rokicki From: rokicki@polya.Stanford.EDU (Tomas G. Rokicki) Newsgroups: comp.sys.amiga.tech Subject: Re: A68k and Manx AS Message-ID: <8979@polya.Stanford.EDU> Date: 5 May 89 17:52:59 GMT References: <221@mindlink.UUCP> <262@xdos.UUCP> Sender: Tomas G. Rokicki Reply-To: rokicki@polya.Stanford.EDU (Tomas G. Rokicki) Organization: Stanford University Lines: 17 >> - Bcc is converted to Bcc.S if possible (for backward >> references only - forward references are too hard :-). >There were some assemblers on the PDP 11 (long ago, V6 Unix) that did >the forward references, too. Problematic due to an apparent necessity for >an indefinite number of passes or the equivalent, but when your text memory >space is only 64K I guess it may seem worth it. If you have memory available, it's not *that* difficult. Simply maintain a list of `candidate' branches during the first pass. A branch is a candidate if --> it's not already short and there isn't too much unmoveable code between it and it's target. Now, simply run multiple passes over your branch list in *memory*, changing any appropriate ones to short, until it can no longer be done. Now go back and update your symbol table. tom