This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

2.8 gcc on m68k



Has anybody noticed that the 2.8 m68k version is MUCH SLOWER than the
2.7.2.1 version of m68k?

I need the 68060 support, but can't accept the slower performance.

I work in a hard real time environment. The timing for the 2.7.2.1
compiler was 137.566 seconds on a specific test. Using the 2.8 compiler
with the same compile time flags (adding -fno-rtti -fno-exceptions
because we don't need that overhead) the time increased to 176.394
seconds.

This is un-acceptable.

I noticed that a particular set of operations was slower in the new 2.8
compiler.  Does anybody know what could be done to get back the 2.7.2.1
speed, and still have the 68060 support?

It appears that in general
	move	rX(nn), rX(mm)
has been replaced with
	move	rX(nn), rY
	move	rY, rX(mm)

2.7.2.1
< movel fp@(-24),fp@(-8)
< movel fp@(-20),fp@(-4)
---
2.8
> movel fp@(-24),d6
> movel fp@(-20),d7
> movel d6,a3@
> movel d7,a3@(4)
--------------------------
2.7.2.1
< moveal d7,a1
< movel a1@,fp@(-8)
< movel a1@(4),fp@(-4)
< moveal fp@(16),a1
< movel a1@,fp@(-16)
< movel a1@(4),fp@(-12)
< movew fp@(-4),d4
< movew fp@(-8),d3

2.8
> moveal fp@(20),a5
> movel a5@,d6
> movel a5@(4),d7
> movel d6,fp@(-8)
> movel d7,fp@(-4)
> moveal fp@(16),a0
> movel a0@,d6
> movel a0@(4),d7
> movel d6,fp@(-48)
> movel d7,fp@(-44)
--------------------------
2.7.2.1
< movew d4,fp@(-20)
< subw d1,d2
< movew d2,fp@(-18)
< movel fp@(-24),fp@(-8)
< movel fp@(-20),fp@(-4)
< btst #0,d6

2.8
> movew fp@(-4),d7
> subw a2@,d7
> movew d7,fp@(-28)
> moveaw fp@(-2),a5
> subaw fp@(-6),a5
> movew a5,fp@(-26)
> movel fp@(-32),d6
> movel fp@(-28),d7
> movel d6,a2@
> movel d7,a2@(4)
> btst #0,fp@(25)
--------------------------

2.7.2.1
< movew d0,fp@(-22)
< subw d3,d4
< movew d4,fp@(-20)
< subw d1,d2
< movew d2,fp@(-18)
< movel fp@(-24),fp@(-8)
< movel fp@(-20),fp@(-4)
< cmpiw #1,fp@(-26)

2.8
> movew d0,fp@(-54)
> movew fp@(-4),d7
> subw a2@,d7
> movew d7,fp@(-52)
> moveaw fp@(-2),a5
> subaw fp@(-6),a5
> movew a5,fp@(-50)
> movel fp@(-56),d6
> movel fp@(-52),d7
> movel d6,a2@
> movel d7,a2@(4)
> cmpiw #1,fp@(-66)
--------------------------

2.7.2.1
< movel fp@(-184),fp@(-16)
< movel fp@(-180),fp@(-12)

2.8
> movel fp@(-198),d6
> movel fp@(-194),d7
> movel d6,a2@
> movel d7,a2@(4)
--------------------------

2.7.2.1
< movel fp@(-16),fp@(-194)
< movel fp@(-12),fp@(-190)
< movel fp@(-8),fp@(-202)
< movel fp@(-4),fp@(-198)

2.8
> movel a0@,d6
> movel a0@(4),d7
> movel d6,fp@(-214)
> movel d7,fp@(-210)
> movel a1@,d6
> movel a1@(4),d7
> movel d6,fp@(-222)
> movel d7,fp@(-218)
--------------------------

2.7.2.1
< movel a4@,a5@
< movel a4@(4),a5@(4)

2.8
> movel a4@,d2
> movel a4@(4),d3
> movel d2,a5@
> movel d3,a5@(4)

-- 
David Barto	barto@network.ucsd.edu	barto@visionpro.com
>From a Marketing type:
    Don't give me any technical reason why something can't be done.
    If you really believed in the product you'd make it work.