This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc-4.5/4.4: Bug in .subreg1 pass?


Georg-Johann Lay schrieb:
Denis Chertykov schrieb:

2011/2/26 Georg Johann Lay <avr@gjlay.de>

Eric Botcazou schrieb:

What does "word" mean here? Is it a 32-bit entity or is it according to
word_mode which is QImode for avr?


The latter, it is machine-dependent.



So the same should be true for QI-subregs of scalar modes if
UNITS_PER_WORT = 1. Right?


Right.


Thanks for that definite clarification.



As I understand PR46779 and PR45291 no longer an AVR port bugs. And the following comment is not a true anymore: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45291#c2 Am I right ?


At least the analysis I gave there is incorrect.

I remember a problem in avr backend concerning the frame pointer because QImode was allowed in FP's hard regs... that sort of problem. Was that fixed here or just in some distribution like WinAVR? So perhaps it's still this FP problem?

Ok, here it is:


http://gcc.gnu.org/viewcvs?view=revision&revision=123263

But now there is the problem that we have

(insn 33 35 34 2 foo.c:5 (set (subreg:QI (reg:HI 50 [ D.1955 ]) 1)
        (reg:QI 41 [ D.1955 ])) ...

and reg 50 is allowed to get in R29:R28 (frame pointer regs) but the subreg is not, i.e. because QI is not allowed in FP regs, it is not possible to set low/high part seperately.

Johann


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]