[GHC] #7598: ghc-stage1 generates wrong assembler on StgCmmPrim (operand out of range)

GHC cvs-ghc at haskell.org
Wed Jan 16 23:17:43 CET 2013


#7598: ghc-stage1 generates wrong assembler on StgCmmPrim (operand out of range)
--------------------------------+-------------------------------------------
Reporter:  kgardas              |          Owner:          
    Type:  bug                  |         Status:  new     
Priority:  normal               |      Component:  Compiler
 Version:  7.7                  |       Keywords:          
      Os:  Linux                |   Architecture:  powerpc 
 Failure:  Building GHC failed  |      Blockedby:          
Blocking:                       |        Related:          
--------------------------------+-------------------------------------------

Comment(by kgardas):

 if assembler correctly reports line number, then this should be this:
 {{{
   98877 .text
   98878 .align 2
   98879         .long   uVbd_srtd-(cN2c_info)+0
   98880         .long   4
   98881         .long   2162687
   98882 cN2c_info:
   98883 .LcN2c:
   98884         mr      31, 14
   98885         andi.   30, 31, 3
   98886         cmplwi  30, 2
   98887         blt     $+8
   98888         b       .LcNoE
   98889 .LcNoD:
   98890         lis     31, cNdK_info at ha
   98891         addi    31, 31, cNdK_info at l
   98892         stw     31, 0(22)
   98893         lwz     14, 4(22)
   98894         andi.   31, 14, 3
   98895         cmpwi   31, 0
 ->98896         bne     .LcNdK
   98897 .LcOgw:
   98898         lwz     31, 0(14)
   98899         mtctr   31
   98900         bctr
 }}}

 am I right assuming we're generating jump and it's too long for PPC to
 perform? i.e. bne is conditional branch instruction which should jump just
 in a range of 16K. Full assembler file generated attached for your
 convenient.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7598#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list