[ { "BlackBox" : { "name" : "GHC.Classes.eqInt" , "kind" : "Expression" , "type" : "eqInt :: Int -> Int -> Bool" , "template" : "~ARG[0] = ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Classes.neInt" , "kind" : "Expression" , "type" : "neInt :: Int -> Int -> Bool" , "template" : "~ARG[0] /= ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Classes.&&" , "kind" : "Expression" , "type" : "(&&) :: Bool -> Bool -> Bool" , "template" : "~ARG[0] and ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Classes.||" , "kind" : "Expression" , "type" : "(::) :: Bool -> Bool -> Bool" , "template" : "~ARG[0] or ~ARG[1]" } } , { "BlackBox" : { "name" : "GHC.Classes.not" , "kind" : "Expression" , "type" : "not :: Bool -> Bool" , "template" : "not ~ARG[0]" } } , { "BlackBox" : { "name" : "GHC.Classes.divInt#" , "kind" : "Declaration" , "type" : "divInt# :: Int# -> Int# -> Int#" , "template" : "-- divInt# begin ~GENSYM[divInt][0] : block signal ~GENSYM[resultPos][1] : boolean; signal ~GENSYM[dividerNeg][2] : boolean; signal ~GENSYM[dividend2][3] : signed(~SIZE[~TYPO] downto 0); signal ~GENSYM[quot_res][4] : signed(~SIZE[~TYPO] downto 0); begin ~SYM[1] <= ~VAR[dividend][0](~VAR[dividend][0]'high) = ~VAR[divider][1](~VAR[divider][1]'high); ~SYM[2] <= ~VAR[divider][1](~VAR[divider][1]'high) = '1'; ~SYM[3] <= resize(~VAR[dividend][0],~SIZE[~TYPO]+1) when ~SYM[1] else (resize(~VAR[dividend][0],~SIZE[~TYPO]+1) - resize(~VAR[divider][1],~SIZE[~TYPO]+1) - 1) when ~SYM[2] else (resize(~VAR[dividend][0],~SIZE[~TYPO]+1) - resize(~VAR[divider][1],~SIZE[~TYPO]+1) + 1); ~SYM[4] <= ~SYM[3] / ~VAR[divider][1]; ~RESULT <= signed(~SYM[4](~SIZE[~TYPO]-1 downto 0)); end block; -- divInt# end" } } , { "BlackBox" : { "name" : "GHC.Classes.modInt#" , "kind" : "Expression" , "type" : "modInt# :: Int# -> Int# -> Int#" , "template" : "~ARG[0] mod ~ARG[1]" } } ]