Fwd: Questions on PA machine description?

Jeffrey A Law law@upchuck.cygnus.com
Mon Mar 8 20:48:00 GMT 1999


  In message < 36E3E35A.4BB420BE@americasm01.nt.com >you write:
  > > ;; We have two basic ALUs.
  > > (define_function_unit "pa7100LCalu" 2 2
  > >   (and
  > >     (eq_attr "type" "!fpcc,fpalu,fpmulsgl,fpmuldbl,fpdivsgl,fpsqrtsgl,
  > > fpdivdbl,fpsqrtdbl,load,fpload,store,fpstore,shift,nullshift")
  > >    (eq_attr "cpu" "7100LC,7200")) 1 1)
  > > 
  > > It says there are 2 ALU's.  The READY=1 and DELAY=1 appear to me to be a 
  > > gate so that each unit can be issued 1 insn per cycle.
Correct.


  > What is confusing is the SIMULTANEITY of 2.  The documentation claims that
  > this means that each unit can have two active insns issued at a time.  But
  > this isn't true.
Could well be an oversight on my part.  It's been a long time since I wrote
that stuff.


  > > Also, my reading of the definition of SIMULTANEITY seems to indicate
  > > that it should be 1 for the pa7100LCfp_div function unit since the
  > > div/sqrt portion of the FPU can only execute one insn at a time.  Is
  > > this correct or wrong?
I believe this is correct.  The simultaneity should be one.

  > > There is a comment that shifts and memory ops execute in one of the
  > > ALU's but that that can't be modeled.
That was true at one time.  Or more correctly it couldn't be easily modeled.


  > Can someone explain what that means.
Basically one of the ALUs is not complete and can only handle a subset of the
ALU instructions.

So, stuff like adds, subtracts, compares, etc can issue to either ALU, but
a memory load/store or a shift instruction can only issue to the first
alu.  Assuming I remember everything from the LC series correctly.

jeff


More information about the Gcc mailing list