[project @ 2006-01-09 10:31:14 by simonmar]
authorsimonmar <unknown>
Mon, 9 Jan 2006 10:31:14 +0000 (10:31 +0000)
committersimonmar <unknown>
Mon, 9 Jan 2006 10:31:14 +0000 (10:31 +0000)
ord# and chr# should be no-ops, not conversions between wordRep and I32.

ghc/compiler/codeGen/CgPrimOp.hs

index ccb252b..e59aafd 100644 (file)
@@ -330,6 +330,8 @@ nopOp Int2WordOp     = True
 nopOp Word2IntOp     = True
 nopOp Int2AddrOp     = True
 nopOp Addr2IntOp     = True
+nopOp ChrOp         = True  -- Int# and Char# are rep'd the same
+nopOp OrdOp         = True
 nopOp _                     = False
 
 -- These PrimOps turn into double casts
@@ -451,9 +453,6 @@ translateOp Float2IntOp    = Just (MO_S_Conv F32 wordRep)
 translateOp Float2DoubleOp = Just (MO_S_Conv F32 F64)
 translateOp Double2FloatOp = Just (MO_S_Conv F64 F32)
 
-translateOp OrdOp          = Just (MO_U_Conv I32 wordRep)
-translateOp ChrOp          = Just (MO_U_Conv wordRep I32)
-
 -- Word comparisons masquerading as more exotic things.
 
 translateOp SameMutVarOp           = Just mo_wordEq