Re: [m68k]: More trouble with byte moves into Address registers

2005-04-16 Thread Peter Barada
>> I've got a "Using and Porting GNU CC" manual for rev 2.95, and am >> looking around for a newer one and can't find it anywhere. Does >> anyone know if a newer printed manual is available(and if so, where I >> can find it)? > >At the risk of stating the dreadfully obvious, the manual is online

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-16 Thread James A. Morrison
Zack Weinberg <[EMAIL PROTECTED]> writes: > Ian Lance Taylor writes: > > Peter Barada <[EMAIL PROTECTED]> writes: > >> I've got a "Using and Porting GNU CC" manual for rev 2.95, and am > >> looking around for a newer one and can't find it anywhere. Does > >> anyone know if a newer printed manua

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-16 Thread Zack Weinberg
Ian Lance Taylor writes: > Peter Barada <[EMAIL PROTECTED]> writes: >> I've got a "Using and Porting GNU CC" manual for rev 2.95, and am >> looking around for a newer one and can't find it anywhere. Does >> anyone know if a newer printed manual is available(and if so, where I >> can find it)? > >

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-16 Thread Ian Lance Taylor
Peter Barada <[EMAIL PROTECTED]> writes: > I've got a "Using and Porting GNU CC" manual for rev 2.95, and am > looking around for a newer one and can't find it anywhere. Does > anyone know if a newer printed manual is available(and if so, where I > can find it)? At the risk of stating the dreadf

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-16 Thread Peter Barada
>> pp_pack.c:2220: error: unable to find a register to spill in class >> `ADDR_REGS' >> pp_pack.c:2220: error: this is the insn: >> (insn 5559 5558 5560 694 pp_pack.c:2144 (set (reg:SI 8 %a0 [1421]) >> (plus:SI (subreg:SI (reg:QI 1420) 0) >> (const_int -32 [0xffe0]))) 121

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-15 Thread James E Wilson
Peter Barada wrote: pp_pack.c:2220: error: unable to find a register to spill in class `ADDR_REGS' pp_pack.c:2220: error: this is the insn: (insn 5559 5558 5560 694 pp_pack.c:2144 (set (reg:SI 8 %a0 [1421]) (plus:SI (subreg:SI (reg:QI 1420) 0) (const_int -32 [0xffe0]))) 121

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-15 Thread Peter Barada
>For some reason reload has decided that it needs ADDR_REGS for the >register being reloaded, namely (reg:QI 1420). So gcc looks for a >register in ADDR_REGS which can hold QImode. Because of your changes, >it doesn't find one. So it crashes. > >The question is why reload thinks that it needs A

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-15 Thread Ian Lance Taylor
Peter Barada <[EMAIL PROTECTED]> writes: > >> The problem is that there is no valid QImode instruction that can move > >> values in/out of an address register > > > >I know. I'm suggesting that QImode values have to move in and out of > >address registers via data registers, so you just put t

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-15 Thread Peter Barada
>> Would it help to rearrange the constraints to have reg += >> mem|reg|constant before the addreg += ... ? > >Probably not in this case. You could try it. It is true that when >two alternatives have the same cost, reload will pick the first one >listed. With my luck that will cause a bigger p

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-15 Thread Ian Lance Taylor
Peter Barada <[EMAIL PROTECTED]> writes: > >So register 1420 is being assigned to a data register. The > >constraints for addsi3_5200 permit the following alternatives: > >mem += datareg > >addrreg = addrreg + reg|constant > >addrreg = reg|constant + addrreg > >reg += mem|reg|cons

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-15 Thread Peter Barada
>> (insn 5559 5558 5560 694 pp_pack.c:2144 (set (reg:SI 1421) >> (plus:SI (subreg:SI (reg:QI 1420) 0) >> (const_int -32 [0xffe0]))) 121 {*addsi3_5200} (insn_list >> 5558 (nil)) >> (nil)) > >So register 1420 is being assigned to a data register. The >constraints for ad

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-15 Thread Peter Barada
>For some reason reload has decided that it needs ADDR_REGS for the >register being reloaded, namely (reg:QI 1420). So gcc looks for a >register in ADDR_REGS which can hold QImode. Because of your changes, >it doesn't find one. So it crashes. > >The question is why reload thinks that it needs A

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-15 Thread Ian Lance Taylor
Peter Barada <[EMAIL PROTECTED]> writes: > Which debugging dump has the output from "local-alloc"? If its > pp_pack.c.24.lreg, then that is the output I supplied in the original > message which contains(for all bits regarding register 1420 up until > the compilation fails): Sorry, guess I missed

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-14 Thread Peter Barada
>For some reason reload has decided that it needs ADDR_REGS for the >register being reloaded, namely (reg:QI 1420). So gcc looks for a >register in ADDR_REGS which can hold QImode. Because of your changes, >it doesn't find one. So it crashes. > >The question is why reload thinks that it needs A

Re: [m68k]: More trouble with byte moves into Address registers

2005-04-14 Thread Ian Lance Taylor
Peter Barada <[EMAIL PROTECTED]> writes: > This is driving me up a tree. I have a fix for 18421(on mainline & > gcc-3.4.3) that uses HARD_REGNO_MODE_OK to prevent bytes into address > registers, and modified movqi for ColdFire to drop the '*a' in > d*a/di*a constraint, as well as modified addsi3_

[m68k]: More trouble with byte moves into Address registers

2005-04-14 Thread Peter Barada
This is driving me up a tree. I have a fix for 18421(on mainline & gcc-3.4.3) that uses HARD_REGNO_MODE_OK to prevent bytes into address registers, and modified movqi for ColdFire to drop the '*a' in d*a/di*a constraint, as well as modified addsi3_5200 to us 'i' instead of 's'. My current proble