m68k peephole weirdness

Paul Brook paul@codesourcery.com
Thu Dec 15 23:24:00 GMT 2005


In m68k.md we have:

;; Speed up pushing a single byte but leaving four bytes of space.

(define_peephole
  [(set (mem:QI (pre_dec:SI (reg:SI SP_REG)))
        (match_operand:QI 1 "general_operand" "dami"))
   (set (reg:SI SP_REG) (minus:SI (reg:SI SP_REG) (const_int 2)))]


The (const_int 2) looks very suspect. Shouldn't this be (const_int 3) ?
If not, could someone please explain to me what bit of arcane magic I'm 
missing?

I'm also intrigued to know under what circumstances this peephole would 
trigger.

Paul



More information about the Gcc mailing list