tpm%digsys.engineering.cambridge.ac.uk@NSS.CS.UCL.AC.UK (tim marsland) (01/31/89)
whilst trying to make a motorola syntax version of GCC, i came across what looks to me like a small buglet in the 68000 machine description. when compiling `exit (0),' the compiler emits a `clrl -(sp)' instruction. if the following patch is applied, the correct result `clr.l -(sp)' is produced by the Motorola syntax version, and should, from my understanding of the back end of GCC, produce the correct MIT syntax too. tim marsland. cambridge university engineering dept. ---------------------------- script follows ------------------------------ Script started on Mon Jan 30 20:59:11 1989 % cat /etc/motd SunOS Release 4.0_Export (PSF) #12: Fri Jan 13 13:29:52 GMT 1989 % gcc -v gcc version 1.32 % diff -c7 m68k.md ../gcc-1.32 *** m68k.md Sun Jan 29 21:25:44 1989 --- ../gcc-1.32/m68k.md Mon Jan 16 18:30:08 1989 *************** *** 675,689 **** (match_operand:SI 1 "general_operand" "J"))] "GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) >= -0x8000 && INTVAL (operands[1]) < 0x8000" "* { if (operands[1] == const0_rtx) ! return \"clr%.l %0\"; return \"pea %a1\"; }") ;This is never used. ;(define_insn "swapsi" ; [(set (match_operand:SI 0 "general_operand" "r") ; (match_operand:SI 1 "general_operand" "r")) --- 675,689 ---- (match_operand:SI 1 "general_operand" "J"))] "GET_CODE (operands[1]) == CONST_INT && INTVAL (operands[1]) >= -0x8000 && INTVAL (operands[1]) < 0x8000" "* { if (operands[1] == const0_rtx) ! return \"clrl %0\"; return \"pea %a1\"; }") ;This is never used. ;(define_insn "swapsi" ; [(set (match_operand:SI 0 "general_operand" "r") ; (match_operand:SI 1 "general_operand" "r")) % exit psf: script done on Mon Jan 30 21:00:48 1989