[project @ 2000-05-18 13:55:36 by sewardj]
authorsewardj <unknown>
Thu, 18 May 2000 13:55:37 +0000 (13:55 +0000)
committersewardj <unknown>
Thu, 18 May 2000 13:55:37 +0000 (13:55 +0000)
commit963cf41182a705b0bb2f6dee66fd17566ae65173
treeb418574461147f451f55f6d45d50c520345dd528
parent6f191b69a64cdf0492643c56b279f95a0caa87cf
[project @ 2000-05-18 13:55:36 by sewardj]
Teach the NCG about the dereferencing and naming conventions to be
used when compiling for a DLLised world.  Some cleanups on the way
too.  The scheme is that

* All CLabels which are in different DLLs from the current module
  will, via the renamer, already be such that labelDynamic returns
  True for them.

* Redo the StixPrim/StixMacro stuff so that all references to symbols
  in the RTS are via CLabels.  That means that the usual labelDynamic
  story can be used.

* When a label is printed in PprMach, labelDynamic is consulted, to
  generate the __imp_ prefix if necessary.

* In MachCode.stmt2Instrs, selectively ask derefDLL to walk trees
  before code generation and insert deferencing code around other-DLL
  symbols.

* When generating Stix for SRTs, add 1 to other-DLL refs.

* When generating static closures, insert a zero word before
  the _closure label.
12 files changed:
ghc/compiler/absCSyn/CLabel.lhs
ghc/compiler/nativeGen/AbsCStixGen.lhs
ghc/compiler/nativeGen/AsmCodeGen.lhs
ghc/compiler/nativeGen/AsmRegAlloc.lhs
ghc/compiler/nativeGen/MachCode.lhs
ghc/compiler/nativeGen/MachMisc.lhs
ghc/compiler/nativeGen/MachRegs.lhs
ghc/compiler/nativeGen/PprMach.lhs
ghc/compiler/nativeGen/Stix.lhs
ghc/compiler/nativeGen/StixInteger.lhs
ghc/compiler/nativeGen/StixMacro.lhs
ghc/compiler/nativeGen/StixPrim.lhs