diff options
author | Geoffrey Mainland <gmainlan@microsoft.com> | 2013-02-14 23:28:39 +0000 |
---|---|---|
committer | Geoffrey Mainland <gmainlan@microsoft.com> | 2013-09-22 22:33:59 -0400 |
commit | 0b561f17f158ebd7bba841a3cf6ef602b55e7c61 (patch) | |
tree | 1e283bf675a53598fb1a169d89bd63c21333c854 /includes/CodeGen.Platform.hs | |
parent | f8c51678b0e60aad8ee1e4c57af746fa792a3546 (diff) | |
download | haskell-0b561f17f158ebd7bba841a3cf6ef602b55e7c61.tar.gz |
Pass 256-bit-wide vectors in registers.
Diffstat (limited to 'includes/CodeGen.Platform.hs')
-rw-r--r-- | includes/CodeGen.Platform.hs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/includes/CodeGen.Platform.hs b/includes/CodeGen.Platform.hs index ca0a905d40..cff60b3e8c 100644 --- a/includes/CodeGen.Platform.hs +++ b/includes/CodeGen.Platform.hs @@ -65,6 +65,23 @@ import Reg # define xmm14 38 # define xmm15 39 +# define ymm0 40 +# define ymm1 41 +# define ymm2 42 +# define ymm3 43 +# define ymm4 44 +# define ymm5 45 +# define ymm6 46 +# define ymm7 47 +# define ymm8 48 +# define ymm9 49 +# define ymm10 50 +# define ymm11 51 +# define ymm12 52 +# define ymm13 53 +# define ymm14 54 +# define ymm15 55 + #elif MACHREGS_powerpc # define r0 0 @@ -391,6 +408,9 @@ activeStgRegs = [ #ifdef REG_XMM1 ,XmmReg 1 #endif +#ifdef REG_YMM1 + ,YmmReg 1 +#endif #ifdef REG_F2 ,FloatReg 2 #endif @@ -400,6 +420,9 @@ activeStgRegs = [ #ifdef REG_XMM2 ,XmmReg 2 #endif +#ifdef REG_YMM2 + ,YmmReg 2 +#endif #ifdef REG_F3 ,FloatReg 3 #endif @@ -409,6 +432,9 @@ activeStgRegs = [ #ifdef REG_XMM3 ,XmmReg 3 #endif +#ifdef REG_YMM3 + ,YmmReg 3 +#endif #ifdef REG_F4 ,FloatReg 4 #endif @@ -418,6 +444,9 @@ activeStgRegs = [ #ifdef REG_XMM4 ,XmmReg 4 #endif +#ifdef REG_YMM4 + ,YmmReg 4 +#endif #ifdef REG_F5 ,FloatReg 5 #endif @@ -427,6 +456,9 @@ activeStgRegs = [ #ifdef REG_XMM5 ,XmmReg 5 #endif +#ifdef REG_YMM5 + ,YmmReg 5 +#endif #ifdef REG_F6 ,FloatReg 6 #endif @@ -436,6 +468,9 @@ activeStgRegs = [ #ifdef REG_XMM6 ,XmmReg 6 #endif +#ifdef REG_YMM6 + ,YmmReg 6 +#endif #else /* MAX_REAL_XMM_REG == 0 */ #ifdef REG_F1 ,FloatReg 1 @@ -607,6 +642,26 @@ globalRegMaybe (XmmReg 5) = Just (RealRegSingle REG_XMM5) globalRegMaybe (XmmReg 6) = Just (RealRegSingle REG_XMM6) # endif # endif +# if MAX_REAL_YMM_REG != 0 +# ifdef REG_YMM1 +globalRegMaybe (YmmReg 1) = Just (RealRegSingle REG_YMM1) +# endif +# ifdef REG_YMM2 +globalRegMaybe (YmmReg 2) = Just (RealRegSingle REG_YMM2) +# endif +# ifdef REG_YMM3 +globalRegMaybe (YmmReg 3) = Just (RealRegSingle REG_YMM3) +# endif +# ifdef REG_YMM4 +globalRegMaybe (YmmReg 4) = Just (RealRegSingle REG_YMM4) +# endif +# ifdef REG_YMM5 +globalRegMaybe (YmmReg 5) = Just (RealRegSingle REG_YMM5) +# endif +# ifdef REG_YMM6 +globalRegMaybe (YmmReg 6) = Just (RealRegSingle REG_YMM6) +# endif +# endif # ifdef REG_Sp globalRegMaybe Sp = Just (RealRegSingle REG_Sp) # endif |