This is the mail archive of the gcc-patches@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: msp430 port


> GPL + exception seems like the way to go, except in those cases where 
> the code is coming from a 3rd party.

Already pointed out and fixed, but I'll double check that they're all
GPL+E.

> I'm assuming you documented all the MSP430 options.  I didn't check them 
> closely.  I'm also assuming the libgcc functions are reasonably correct.

I did.

> For popm, why not define a new output modifier instead of using %I, per 
> the comments.  That seems cleaner to me.

Done.

> movqihi seems wrong.  You really should determine why the standard 
> methods for handling automatic elimination of extensions when loading 
> from memory isn't working.  I believe most RISC port in GCC uses those 
> mechanisms successfully.

I went through every reference to LOAD_EXTEND_OP in the gcc sources,
added printfs, and for each that got hit, either it was looking for a
SUBREG (don't have one at that point) or was looking at the load and
zero_extend as separate insns (had nothing to do) or was related to
reload (nothing got reloaded).

I checked sparc, and they basically did what I did - they included a
pattern for load+extend (zero_extendqisi2_insn), despite setting
LOAD_EXTEND_OP to ZERO_EXTEND and having WORD_REGISTER_OPERATIONS set.

Same for mn10300.

So... I'm thinking, since every QImode operation has an implicit
zero_extend, for each of those I need a variant that includes a
zero_extend operation as well?


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