[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Has anyone successfully bootstrapped gcc-4.6.3 on m68k?



My apologies for yet another off-topic post - I hope I am not polluting the list.

Unfortunately I am still struggling with stage2 of gcc-4.4 and 4.6 on the NeXT.  I think I have everything configured correctly and the stage1 compiler produces good executables as long as they do not include jump tables.  Unfortunately I get bus errors and segmentation faults with jump tables.  I think the issue here might be with the limitations of the native NEXTSTEP assembler based on gas-1.38.

When I compile the following test program:

int main( void )
{
    int i, value, sum;
    
    i = 2;
    sum = 0;

    switch( i ) 
    {
        case 1:
            value = 1;
            break;
        case 2:
            value = 2;
            break;
        case 3:
            value = 3;
            break;
        case 4:
            value = 4;
            break;
        case 5:
            value = 5;
            break;
        default:
            value = 0;
            break;
    }
        
    sum += value;
    printf( "Sum = %d (case %d)\n", sum, i );
    
    return (0);
}

The stage1 gcc-4.6.3 compiler produces the following assembly:

	.cstring
LC0:
	.ascii "Sum = %d (case %d)\12\0"
	.text
	.align 1
	.globl _main
_main:
	link a6,#-12
	moveq #2,d0
	movel d0,a6@(-8)
	clrl a6@(-12)
	moveq #5,d0
	cmpl a6@(-8),d0
	jcs L2
	movel a6@(-8),d0
	lsll #2,d0
	movel pc@(L8,d0:l),d0
	movel d0,a0
	jmp a0@
	.const
	.align 1
L8:
	.long L2
	.long L3
	.long L4
	.long L5
	.long L6
	.long L7
	.text
L3:
	moveq #1,d0
	movel d0,a6@(-4)
	jra L9
L4:
	moveq #2,d0
	movel d0,a6@(-4)
	jra L9
L5:
	moveq #3,d0
	movel d0,a6@(-4)
	jra L9
L6:
	moveq #4,d0
	movel d0,a6@(-4)
	jra L9
L7:
	moveq #5,d0
	movel d0,a6@(-4)
	jra L9
L2:
	clrl a6@(-4)
	nop
L9:
	movel a6@(-4),d0
	addl d0,a6@(-12)
	movel a6@(-8),sp@-
	movel a6@(-12),sp@-
	pea LC0
	jsr _printf
	addw #12,sp
	clrl d0
	unlk a6
	rts

Could someone please kindly confirm that the above assembly source is good?  Unfortunately I hardly remember anything at all from my m68k assembly adventures 20+ years ago and I have been struggling to decipher it...

Thank you very much!
t-rexky

Reply to: