CompuServe Messages

Optimizer Useless!?

    20-Jul-93 20:29:58
Fm: Ken Broomfield 70650,523
To: Ken Broomfield 70650,523
[continued] 0000002E: 3D6E FFD8 FFD6 MOVE.W $FFD8(A6),$FFD6(A6) 00000034: 486E FFD4 PEA $FFD4(A6) 00000038: 4EBA 0000 JSR takebase(CBase&) 0000003C: 3F03 MOVE.W D3,-(A7) 0000003E: 4EBA 0000 JSR localSysBeep(short) 00000042: 4CDF 0018 MOVEM.L (A7)+,D3/D4 00000046: 4E5E UNLK A6 00000048: 4E75 RTS 0000004A Here is the disassembly of main() from the version that calls SysBeep() (i.e., a single toolbox call is being made). The code has lots of unneeded instructions: main: 00000000: 4E56 FFDC LINK A6,#$FFDC 00000004: 48E7 1C38 MOVEM.L D3-D5/A2-A4,-(A7) 00000008: 47EE FFDC LEA $FFDC(A6),A3 0000000C: 284B MOVEA.L A3,A4 0000000E: 7601 MOVEQ #$01,D3 00000010: 3883 MOVE.W D3,(A4) 00000012: 7002 MOVEQ #$02,D0 00000014: 3940 0002 MOVE.W D0,$0002(A4) 00000018: 7803 MOVEQ #$03,D4 0000001A: 3944 0004 MOVE.W D4,$0004(A4) 0000001E: 45EE FFDC LEA $FFDC(A6),A2 00000022: 2D4A FFE4 MOVE.L A2,$FFE4(A6) 00000026: 3A2A 0002 MOVE.W $0002(A2),D5 0000002A: 3D45 FFFC MOVE.W D5,$FFFC(A6) 0000002E: CBFC 0007 MULS.W #$0007,D5 00000032: 302A 0004 MOVE.W $0004(A2),D0 00000036: E960 ASL.W D4,D0 00000038: DA40 ADD.W D0,D5 0000003A: 302E FFFC MOVE.W $FFFC(A6),D0 0000003E: DA40 ADD.W D0,D5 00000040: 3485 MOVE.W D5,(A2) 00000042: 41EE FFDC LEA $FFDC(A6),A0 00000046: 2D48 FFE8 MOVE.L A0,$FFE8(A6) 0000004A: 2D48 FFF4 MOVE.L A0,$FFF4(A6) 0000004E: 3028 0004 MOVE.W $0004(A0),D0 00000052: 3140 0002 MOVE.W D0,$0002(A0) 00000056: 41EE FFDC LEA $FFDC(A6),A0 0000005A: 2D48 FFF8 MOVE.L A0,$FFF8(A6) 0000005E: 486E FFDC PEA $FFDC(A6) 00000062: 4EBA 0000 JSR takebase(CBase&) 00000066: 3F03 MOVE.W D3,-(A7) 00000068: A9C8 _SysBeep 0000006A: 4CDF 1C38 MOVEM.L (A7)+,D3-D5/A2-A4 0000006E: 4E5E UNLK A6 00000070: 4E75 RTS 00000072 Lastly, it sure would have been nice to have gotten a response from you three weeks ago. –Ken ~~~~