From 3ba6150e62080bbd0d93375f6ac182dfbc177fcb Mon Sep 17 00:00:00 2001
From: sewardj <unknown>
Date: Mon, 24 Jan 2000 18:33:34 +0000
Subject: [PATCH] [project @ 2000-01-24 18:33:34 by sewardj] Start a NOTES
 file, recording known but un-fixed nativeGen bugs.

---
 ghc/compiler/nativeGen/NOTES | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 ghc/compiler/nativeGen/NOTES

diff --git a/ghc/compiler/nativeGen/NOTES b/ghc/compiler/nativeGen/NOTES
new file mode 100644
index 000000000000..f19375b15394
--- /dev/null
+++ b/ghc/compiler/nativeGen/NOTES
@@ -0,0 +1,22 @@
+
+Known bugs in nativeGen, 000124 (JRS)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+All these bugs are for x86; I don't know about sparc/alpha.
+
+-- argument marshalling for ccall is fundamentally flawed, since
+   it moves the C stack pointer %esp as it pushes each argument.
+   Alas, the register allocator spills relative to %esp and 
+   assumes that it doesn't move.  Result: if the marshalling code
+   for a ccall involves any spills, the resulting code will 
+   probably be wrong.
+
+   The Right Way to fix this is to copy stuff onto the stack
+   without moving %esp, then adjust it immediately prior to the
+   call insn and un-adjust it immediately following it.
+
+-- nofib/spectral/cvh_unboxing exposes some kind of spilling bug
+   (I think), since there are many references to registers %M229
+   etc, which I believe are dynamic registers which didn't get assigned
+   to real ones.
+
-- 
GitLab