[ { "BlackBox" : { "name" : "GHC.Integer.Type.smallInteger" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "smallInteger :: Int# -> Integer" , "template" : "assign ~RESULT = $signed(~ARG[0]);" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.integerToInt" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "integerToInt :: Integer -> Int#" , "template" : "assign ~RESULT = $signed(~ARG[0]);" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.timesInteger" , "kind" : "Expression" , "type" : "timesInteger :: Integer -> Integer -> Integer" , "template" : "~ARG[0] * ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.negateInteger" , "kind" : "Expression" , "type" : "negateInteger :: Integer -> Integer" , "template" : "-~ARG[0]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.absInteger" , "kind" : "Expression" , "type" : "absInteger :: Integer -> Integer" , "template" : "(~ARG[0] < ~SIZE[~TYPO]'sd0) ? -~ARG[0] : ~ARG[0]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.remInteger" , "kind" : "Expression" , "type" : "remInteger :: Integer -> Integer -> Integer" , "template" : "~ARG[0] % ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.eqInteger" , "kind" : "Expression" , "type" : "eqInteger :: Integer -> Integer -> Bool" , "template" : "~ARG[0] == ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.neqInteger" , "kind" : "Expression" , "type" : "neqInteger :: Integer -> Integer -> Bool" , "template" : "~ARG[0] != ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.eqInteger#" , "kind" : "Expression" , "type" : "eqInteger :: Integer -> Integer -> Bool" , "template" : "(~ARG[0] == ~ARG[1]) ? ~SIZE[~TYPO]'sd1 : ~SIZE[~TYPO]'sd0" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.neqInteger#" , "kind" : "Expression" , "type" : "neqInteger :: Integer -> Integer -> Bool" , "template" : "(~ARG[0] != ~ARG[1]) ? ~SIZE[~TYPO]'sd1 : ~SIZE[~TYPO]'sd0" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.leInteger#" , "kind" : "Expression" , "type" : "leInteger :: Integer -> Integer -> Bool" , "template" : "(~ARG[0] <= ~ARG[1]) ? ~SIZE[~TYPO]'sd1 : ~SIZE[~TYPO]'sd0" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.gtInteger#" , "kind" : "Expression" , "type" : "gtInteger :: Integer -> Integer -> Bool" , "template" : "(~ARG[0] > ~ARG[1] ? ~SIZE[~TYPO]'sd1 : ~SIZE[~TYPO]'sd0" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.ltInteger#" , "kind" : "Expression" , "type" : "ltInteger :: Integer -> Integer -> Bool" , "template" : "(~ARG[0] < ~ARG[1]) ? ~SIZE[~TYPO]'sd1 : ~SIZE[~TYPO]'sd0" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.geInteger#" , "kind" : "Expression" , "type" : "geInteger :: Integer -> Integer -> Bool" , "template" : "(~ARG[0] >= ~ARG[1]) ? ~SIZE[~TYPO]'sd1 : ~SIZE[~TYPO]'sd0" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.shiftRInteger" , "kind" : "Expression" , "type" : "shiftRInteger :: Integer -> Int# -> Integer" , "template" : "~ARG[0] >>> ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.shiftLInteger" , "kind" : "Expression" , "type" : "shiftLInteger :: Integer -> Int# -> Integer" , "template" : "~ARG[0] <<< ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.testBitInteger" , "kind" : "Expression" , "type" : "testBitInteger :: Integer -> Int# -> Bool" , "template" : "~VAR[input][0][~ARG[1]] == 1'b1" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.wordToInteger" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "wordToInteger :: Word# -> Integer" , "template" : "assign ~RESULT = $signed(~ARG[0]);" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.integerToWord" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "integerToWord :: Integer -> Word#" , "template" : "assign ~RESULT = $unsigned(~ARG[0]);" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.integerToWord64" , "workInfo" : "Never" , "kind" : "Declaration" , "type" : "integerToWord :: Integer -> Word64#" , "comment" : "only used by 32 bit GHC" , "template" : "assign ~RESULT = $unsigned(~ARG[0]);" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.bitInteger" , "kind" : "Expression" , "type" : "bitInteger :: Int -> Integer" , "template" : "1 << ~ARG[0]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.complementInteger" , "kind" : "Expression" , "type" : "complementInteger :: Integer -> Integer" , "template" : "~ ~ARG[0]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.xorInteger" , "kind" : "Expression" , "type" : "xorInteger :: Integer -> Integer -> Integer" , "template" : "~ARG[0] ^ ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.orInteger" , "kind" : "Expression" , "type" : "orInteger :: Integer -> Integer -> Integer" , "template" : "~ARG[0] | ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.andInteger" , "kind" : "Expression" , "type" : "andInteger :: Integer -> Integer -> Integer" , "template" : "~ARG[0] & ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Integer.Type.$wsignumInteger" , "kind" : "Expression" , "type" : "$wsignumInteger :: Integer -> Integer" , "template" : "(~ARG[0] < ~SIZE[~TYPO]'sd0) ? -~SIZE[~TYPO]'sd1 : ((~ARG[0] == ~SIZE[~TYPO]'sd0) ? ~SIZE[~TYPO]'sd0 : ~SIZE[~TYPO]'sd1)" } } ]