diff options
Diffstat (limited to 'compiler/llvmGen/LlvmCodeGen/Data.hs')
-rw-r--r-- | compiler/llvmGen/LlvmCodeGen/Data.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/llvmGen/LlvmCodeGen/Data.hs b/compiler/llvmGen/LlvmCodeGen/Data.hs index fd0d7ccd99..83b5453aa9 100644 --- a/compiler/llvmGen/LlvmCodeGen/Data.hs +++ b/compiler/llvmGen/LlvmCodeGen/Data.hs @@ -171,6 +171,14 @@ genStaticLit (CmmInt i w) genStaticLit (CmmFloat r w) = Right $ LMStaticLit (LMFloatLit (fromRational r) (widthToLlvmFloat w)) +genStaticLit (CmmVec ls) + = Right $ LMStaticLit (LMVectorLit (map toLlvmLit ls)) + where + toLlvmLit :: CmmLit -> LlvmLit + toLlvmLit lit = case genStaticLit lit of + Right (LMStaticLit llvmLit) -> llvmLit + _ -> panic "genStaticLit" + -- Leave unresolved, will fix later genStaticLit c@(CmmLabel _ ) = Left $ c genStaticLit c@(CmmLabelOff _ _) = Left $ c |