[GHC] #7902: Add support for byte endianness swapping exposed as a primops

GHC cvs-ghc at haskell.org
Sat May 11 17:09:14 CEST 2013


#7902: Add support for byte endianness swapping exposed as a primops
-----------------------------+----------------------------------------------
Reporter:  tab               |          Owner:                  
    Type:  feature request   |         Status:  patch           
Priority:  normal            |      Component:  Compiler        
 Version:  7.7               |       Keywords:  bswap endianness
      Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
 Failure:  None/Unknown      |      Blockedby:                  
Blocking:                    |        Related:                  
-----------------------------+----------------------------------------------

Comment(by tab):

 i've uploaded new versions of the patch. a quick revlog:

 * i've added a 16 bits bswap. in NCG, i've implemented it as a 32 bits
 bswap followed by a shr instead of using a xchg, as the higher 8 bits
 register are not available as a name in the current codebase, and also
 that limits the number of possible registers to 4.
 * corrected a bug with bswap's llvm codegen. Use zero extension (zext)
 instead of signed extension (sext). Technically popcnt got the same
 problem, but as the number never reach the highest bits, sext is
 equivalent to zext in this case.

 (Is there a better way to contribute to ghc than attaching patches here ?
 Or is this the best thing to do ?)

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



More information about the ghc-tickets mailing list