#6156: Optimiser bug on linux-powerpc
------------------------------------------+---------------------------------
  Reporter:  erikd                        |          Owner:  igloo  
      Type:  bug                          |         Status:  new    
  Priority:  normal                       |      Milestone:  7.6.1  
 Component:  Compiler                     |        Version:  7.4.1  
Resolution:                               |       Keywords:         
        Os:  Linux                        |   Architecture:  powerpc
   Failure:  Incorrect result at runtime  |     Difficulty:  Unknown
  Testcase:                               |      Blockedby:         
  Blocking:                               |        Related:         
------------------------------------------+---------------------------------

Comment(by erikd):

 Replying to [comment:39 simonmar]:
 > > which is weird in that the FFI version is incorrect, but only when
 optimisation is off.
 >
 > Did you mean to say ''on'' here?

 Yes.

 Simplifying the haskell code (adding unsafe as suggested):

 {{{
 import Foreign.C.Types
 import Numeric

 foreign import ccall unsafe "c_printInt64" printInt64 :: CLLong -> IO ()

 main :: IO ()
 main = printInt64 input

 input :: CLLong
 input = 0x1a2a3a4a5a6a7a8a
 }}}

 compiles to the following ASM:

 {{{
 Main.main1_info:
 _c1ni:
         lis     31, 0            ; r31 = 0
         ori     31, 31, 31370    ; r31 |= 0x7a8a
         lis     30, 0            ; r30 = 0
         ori     31, 31, 0        ; r30 |= 0
         mr      3, 30            ; r3 = r30
         mr      4, 31            ; r4 = r31
         bl      c_printInt64
         lis     14, GHC.Tuple.()_closure+1@ha
         addi    14, 14, GHC.Tuple.()_closure+1@l
         lwz     31, 0(22)
         mtctr   31
         bctr
 }}}

 Obviously the generated code is wrong. Looking at the PPC code generator
 now.

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

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to