[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gcc (Re: porting?)



On Tue, 10 Feb 1998, Konrad Kokoszkiewicz wrote:
> > Just curious, is it possible to produce PC-relative code with long
> > branches on the 020->? And is it faster than absolute addressing?
> Long branches are possible on 68020+, but PC-relative code with long
> offsets is not possible. For example:
> 
> 	move.l	addr(PC),d0
> 
> 'addr' must be 16-bit, what means a distance of -32768 up to +32767
> bytes.

At least gas 2.8.1 which I am using assembles that as long offset. Same 
thing with address register. If short mode is wanted one must use
move.l   addr:w(pc),d0 (or in mit syntax move.l  pc@addr:w,d0). There's 
also --base-size-default-(16/32) and --disp-size-default-(16/32) but they 
don't seem to work or I'm doing something wrong...

The other thing with that gas is conditional branches. The syntax used in 
mintlib (b??) and in mint itself assembles always as b??.w althougth 
b??.b would be possible. j?? format works ok. I'm been sending diffs for 
these at least a week now... Who knows when it really happens. ;)