> 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?