[Git][ghc/ghc][wip/ncg-simd] fix getStackSlotFor FF32

sheaf (@sheaf) gitlab at gitlab.haskell.org
Tue Jun 18 10:45:51 UTC 2024



sheaf pushed to branch wip/ncg-simd at Glasgow Haskell Compiler / GHC


Commits:
8d32ceb9 by sheaf at 2024-06-18T12:45:42+02:00
fix getStackSlotFor FF32

- - - - -


2 changed files:

- compiler/GHC/CmmToAsm/Reg/Linear.hs
- compiler/GHC/CmmToAsm/Reg/Linear/StackMap.hs


Changes:

=====================================
compiler/GHC/CmmToAsm/Reg/Linear.hs
=====================================
@@ -878,7 +878,10 @@ allocRegsAndSpill_spill reading keep spills alloc r rs assig spill_loc
                 -- or v4i32 etc here. This is perhaps a sign that 'Format'
                 -- is not the right type to use here, but that is a battle
                 -- for another day.
-                _ -> II64
+                VirtualRegD {} -> FF64
+                VirtualRegI {} -> II64
+                VirtualRegHi {} -> II64
+
 
         -- Can we put the variable into a register it already was?
         pref_reg <- findPrefRealReg r


=====================================
compiler/GHC/CmmToAsm/Reg/Linear/StackMap.hs
=====================================
@@ -55,7 +55,7 @@ getStackSlotFor fs@(StackMap _ reserved) _fmt regUnique
 
 getStackSlotFor (StackMap freeSlot reserved) fmt regUnique =
   let
-    nbSlots = formatInBytes fmt `div` 8
+    nbSlots = max 1 (formatInBytes fmt `div` 8)
   in
     (StackMap (freeSlot+nbSlots) (addToUFM reserved regUnique freeSlot), freeSlot)
 



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/8d32ceb97496ca9e7644dd758270bb198f490a13

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/8d32ceb97496ca9e7644dd758270bb198f490a13
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20240618/8c989504/attachment-0001.html>


More information about the ghc-commits mailing list