This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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

Re: Bug in sh constant pool generation


  In message <Pine.LNX.4.21.0009161248110.28302-100000@mahatma.cygnus.co.uk>you
 write:
  > Large constants on the sh are placed in small in-line constant pools which
  > are accessed through pc-relative addressing.  This happens during
  > machine_dependent_reorg.  We walk the insns looking for constant moves that
  > need to be converted to pc-relative loads.  When placing the constant pools
  > ,
  > we need to ensure that the offset from the load to the pool is within the
  > insn's range.
  > 
  > There's a problem with this code; in machine_dependent_reorg we sometimes
  > generate new insns, but we do not take this into account when computing the
  > offsets in find_barrier.  Thus we can end up with out-of-range accesses.
  > 
  > 
  > Bernd
  > 
  > 	* sh.c (find_barrier): Take into account that machine_dependent_reorg
  > 	might add new insns.
Approved.  Please install.

Thanks,
jeff


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