ghc.git
8 years agoMerge remote branch 'origin/master'
Simon Peyton Jones [Wed, 11 May 2011 16:28:26 +0000 (17:28 +0100)] 
Merge remote branch 'origin/master'

8 years agoscheduleDoGC: if we're doing heapCensus(), do it *before* releasing
Simon Marlow [Wed, 11 May 2011 10:00:10 +0000 (11:00 +0100)] 
scheduleDoGC: if we're doing heapCensus(), do it *before* releasing
the other mutator threads (#5127)

8 years agofix the names of the floating-point operations in the Cmm parser
Simon Marlow [Wed, 4 May 2011 15:43:35 +0000 (16:43 +0100)] 
fix the names of the floating-point operations in the Cmm parser

8 years agoFix bug in one-line stats printing
David M Peixotto [Tue, 10 May 2011 17:40:23 +0000 (12:40 -0500)] 
Fix bug in one-line stats printing

The code that prints the "one-line" stats (i.e. the RTS -t flag) was
incorreclty printing zeros for some time values. These time values
were computed inside a conditional that was only true when printing
detailed stats (i.e. the RTS -s or -S flags).

This commit simply moves the computation out of the conditional so
they are available for the one-line stats output.

8 years agoMerge branch 'master' of http://darcs.haskell.org/ghc
Simon Peyton Jones [Mon, 9 May 2011 17:10:57 +0000 (18:10 +0100)] 
Merge branch 'master' of darcs.haskell.org/ghc

8 years agoFix renaming of guards
Simon Peyton Jones [Mon, 9 May 2011 15:45:12 +0000 (16:45 +0100)] 
Fix renaming of guards

This was making mc17 fail.

8 years agoFix the desugaring of guards in arrow syntax
Simon Peyton Jones [Mon, 9 May 2011 15:44:30 +0000 (16:44 +0100)] 
Fix the desugaring of guards in arrow syntax

This was making T3822 fail, which it has apparently been doing
for some time (ie in GHC 7, 6.12, 6.10)!

8 years agofix pretty-printing of the cvttsd2si SSE2 instruction (fixes 5149 test
Simon Marlow [Mon, 9 May 2011 12:33:00 +0000 (13:33 +0100)] 
fix pretty-printing of the cvttsd2si SSE2 instruction (fixes 5149 test
on x86_64).

8 years agoMerge branch 'master' of http://darcs.haskell.org/ghc
Simon Peyton Jones [Mon, 9 May 2011 11:01:38 +0000 (12:01 +0100)] 
Merge branch 'master' of darcs.haskell.org/ghc

8 years agoMerge ghc-new-co into master branch
Simon Peyton Jones [Mon, 9 May 2011 10:53:47 +0000 (11:53 +0100)] 
Merge ghc-new-co into master branch

8 years agoDon't discard usage info from coercion bindings!
Simon Peyton Jones [Mon, 9 May 2011 10:46:03 +0000 (11:46 +0100)] 
Don't discard usage info from coercion bindings!

8 years agoheapCensus: we need to traverse the heap fragments stored in the
Simon Marlow [Mon, 9 May 2011 10:34:14 +0000 (11:34 +0100)] 
heapCensus: we need to traverse the heap fragments stored in the
gen_workspace structures.  Fixes heapprof001(prof_hc_hb).

8 years agoAdd $$($1_$2_$3_ALL_HC_OPTS) when linking dynamic libraries. Not
Simon Marlow [Fri, 6 May 2011 11:00:53 +0000 (12:00 +0100)] 
Add $$($1_$2_$3_ALL_HC_OPTS) when linking dynamic libraries.  Not
having this meant we weren't getting -no-user-package-conf, which
caused a build failure for me due to locally-installed packages being
used instead of ones in the tree.

8 years agoComments only
Simon Peyton Jones [Mon, 9 May 2011 09:03:28 +0000 (10:03 +0100)] 
Comments only

8 years agoMerge branch 'coloured-core' of https://github.com/nominolo/ghc into coloured-core
Ian Lynagh [Sun, 8 May 2011 15:13:33 +0000 (16:13 +0100)] 
Merge branch 'coloured-core' of https://github.com/nominolo/ghc into coloured-core

8 years agoChange remaining uses of cTargetOS to platformOS
Ian Lynagh [Sun, 8 May 2011 12:41:12 +0000 (13:41 +0100)] 
Change remaining uses of cTargetOS to platformOS

And remove cTargetOS/cTargetPlatform.

8 years agoRemove a use of cTargetOS, in favour of platformOS
Ian Lynagh [Sun, 8 May 2011 10:41:34 +0000 (11:41 +0100)] 
Remove a use of cTargetOS, in favour of platformOS

8 years agoWhitespace only in ghci/ByteCodeGen.lhs
Ian Lynagh [Sat, 7 May 2011 23:50:04 +0000 (00:50 +0100)] 
Whitespace only in ghci/ByteCodeGen.lhs

8 years agoRemove an explicit import list
Ian Lynagh [Sat, 7 May 2011 23:39:42 +0000 (00:39 +0100)] 
Remove an explicit import list

8 years agoRemove commented out imports
Ian Lynagh [Sat, 7 May 2011 23:39:05 +0000 (00:39 +0100)] 
Remove commented out imports

8 years agoChange more Config tests to Platform tests
Ian Lynagh [Sat, 7 May 2011 23:30:38 +0000 (00:30 +0100)] 
Change more Config tests to Platform tests

8 years agoRemove unused pprUserReg functions
Ian Lynagh [Sat, 7 May 2011 23:25:19 +0000 (00:25 +0100)] 
Remove unused pprUserReg functions

8 years agoChange some conditional tests from Config.cTargetArch to platformArch
Ian Lynagh [Sat, 7 May 2011 23:22:38 +0000 (00:22 +0100)] 
Change some conditional tests from Config.cTargetArch to platformArch

8 years agoMove Platform from compiler/nativeGen to compiler/utils
Ian Lynagh [Sat, 7 May 2011 22:37:59 +0000 (23:37 +0100)] 
Move Platform from compiler/nativeGen to compiler/utils

We want to use it across the whole compiler now

8 years agoImprove the warning about -fllvm and -fPIC/-dynamic conflicting
Ian Lynagh [Sat, 7 May 2011 22:35:39 +0000 (23:35 +0100)] 
Improve the warning about -fllvm and -fPIC/-dynamic conflicting

We now do it while parsing the flags, rather than at the end.
It also now uses the Platform's arch/os variables, rather than Config's.

8 years agoRemove some dead code
Ian Lynagh [Sat, 7 May 2011 16:55:08 +0000 (17:55 +0100)] 
Remove some dead code

Not needed now that we don't support registerised via-C compilation.

8 years agoMake retainer profiling use the label length (-L) flag)
Ian Lynagh [Fri, 6 May 2011 14:28:53 +0000 (15:28 +0100)] 
Make retainer profiling use the label length (-L) flag)

8 years agoRemove commented out imports
Ian Lynagh [Sun, 1 May 2011 17:04:21 +0000 (18:04 +0100)] 
Remove commented out imports

8 years agoFix build
Simon Peyton Jones [Fri, 6 May 2011 17:07:36 +0000 (18:07 +0100)] 
Fix build

8 years agoMerge master into the ghc-new-co branch
Simon Peyton Jones [Fri, 6 May 2011 14:56:06 +0000 (15:56 +0100)] 
Merge master into the ghc-new-co branch

8 years agoSubstantial improvements in RtClosureInspect
Simon Peyton Jones [Fri, 6 May 2011 14:43:49 +0000 (15:43 +0100)] 
Substantial improvements in RtClosureInspect

The code for constructors in cvReconstrutType and cvObtainTerm
was grotesque.  It's now slightly better.  And it works with
the new coercion representation.

Apart from being simpler I have also made some small behavioural
improvements
  * Improved printing for string values
  * Preserve the print-name when instanting type variables
    (so now they are not always called "t")
  * Suppressed printing of predicate arguments to
    data constructors, unless -dppr-debug is on

8 years agoMissing coercion case in byte code generation
Simon Peyton Jones [Fri, 6 May 2011 14:35:07 +0000 (15:35 +0100)] 
Missing coercion case in byte code generation

8 years agoRemove special case for EqPred in CoreView
Simon Peyton Jones [Fri, 6 May 2011 14:34:32 +0000 (15:34 +0100)] 
Remove special case for EqPred in CoreView

8 years agoUse eqSpecPreds
Simon Peyton Jones [Fri, 6 May 2011 14:34:09 +0000 (15:34 +0100)] 
Use eqSpecPreds

8 years agoImprove dead block calculation, per Simon Marlow's advice.
Edward Z. Yang [Thu, 5 May 2011 18:37:23 +0000 (19:37 +0100)] 
Improve dead block calculation, per Simon Marlow's advice.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
8 years agoRemove unused hasktags configure check
David Terei [Thu, 5 May 2011 00:08:47 +0000 (17:08 -0700)] 
Remove unused hasktags configure check

8 years agoRemove depreciated install-docs command
David Terei [Thu, 5 May 2011 00:07:53 +0000 (17:07 -0700)] 
Remove depreciated install-docs command

8 years agoMerge remote branch 'origin/master'
Simon Peyton Jones [Wed, 4 May 2011 22:10:42 +0000 (23:10 +0100)] 
Merge remote branch 'origin/master'

8 years agoDo-notation in an arrow context is not rebindable
Simon Peyton Jones [Wed, 4 May 2011 22:09:53 +0000 (23:09 +0100)] 
Do-notation in an arrow context is not rebindable

Fixes Trac #4851

8 years agoFormat wibble
David Terei [Wed, 4 May 2011 22:09:13 +0000 (15:09 -0700)] 
Format wibble

8 years agoFix some warnings in IfaceSyn
David Terei [Tue, 3 May 2011 22:02:25 +0000 (15:02 -0700)] 
Fix some warnings in IfaceSyn

8 years agoFormatting fixes to GhcMonad
David Terei [Tue, 3 May 2011 21:52:58 +0000 (14:52 -0700)] 
Formatting fixes to GhcMonad

8 years agoFormatting fixes to IfaceSyn
David Terei [Tue, 3 May 2011 21:52:35 +0000 (14:52 -0700)] 
Formatting fixes to IfaceSyn

8 years agoLLVM: Support LLVM 2.9 (#5103)
David Terei [Mon, 2 May 2011 08:03:13 +0000 (01:03 -0700)] 
LLVM: Support LLVM 2.9 (#5103)

Instead of using the GNU As subsection feature on Linux/Windows
for TNTC we now use the LLVM Mangler on all platforms.

8 years agoLLVM: Add support for 64bit OSX. (partial #4210)
David Terei [Sun, 1 May 2011 19:58:56 +0000 (05:58 +1000)] 
LLVM: Add support for 64bit OSX. (partial #4210)

8 years agoMake import conditional on DEBUG to avoid unused-import warnings
Simon Peyton Jones [Wed, 4 May 2011 21:35:27 +0000 (22:35 +0100)] 
Make import conditional on DEBUG to avoid unused-import warnings

8 years agoRemove accidental trace
Simon Peyton Jones [Wed, 4 May 2011 21:34:14 +0000 (22:34 +0100)] 
Remove accidental trace

8 years agoMerge branch monad-comp onto master
Simon Peyton Jones [Wed, 4 May 2011 15:37:08 +0000 (16:37 +0100)] 
Merge branch monad-comp onto master

This patch implements monad comprehensions, Trac #4370.
Thanks to Nils Schweinsberg for doing most of the heavy lifting.

I did quite a lot of related refactoring as well.  Notably:

* Combined TransformStmt and GroupStmt into a single
  constructor TransStmt; they share a lot of code.
  I also made TransStmt into a record; it has a lot of fields.

* Remove the "result expression" field of HsDo, and instead
  implement LastStmt, which is expected to be at the end
  of a list of Stmts

* Generalise and tidy up the typechecking of monad comprehensions

* Do-notation in arrows is marked with HsStmtContext = ArrowExpr

* tcMDoStmt (which was only used for arrows) is moved
  to TcArrows, and renamed tcArrDoStmt

* Improved documentation in the user manual

* Lots of other minor changes

8 years agoChange (back) to Unix line endings
Simon Peyton Jones [Wed, 4 May 2011 15:14:04 +0000 (16:14 +0100)] 
Change (back) to Unix line endings

8 years agoPrint contraint step counts only with -dppr-debug
Simon Peyton Jones [Wed, 4 May 2011 14:46:09 +0000 (15:46 +0100)] 
Print contraint step counts only with -dppr-debug

8 years agoImprove error message when a function is applied
Simon Peyton Jones [Wed, 4 May 2011 14:45:43 +0000 (15:45 +0100)] 
Improve error message when a function is applied
to too many or too few args, in a higher order context

The change is to tcExpr.funResCtxt

8 years agoFinal batch of monad-comprehension stuff
Simon Peyton Jones [Wed, 4 May 2011 14:44:42 +0000 (15:44 +0100)] 
Final batch of monad-comprehension stuff

* Do-notation in arrows is marked with HsStmtContext = ArrowExpr
* tcMDoStmt (which was only used for arrows) is moved
  to TcArrows, and renamed tcArrDoStmt
* Improved documentation in the user manual
* Lots of other minor changes

8 years agoBe cleverer in dataConCannotMatch, fixes Trac #5168
Simon Peyton Jones [Wed, 4 May 2011 12:27:12 +0000 (13:27 +0100)] 
Be cleverer in dataConCannotMatch, fixes Trac #5168

8 years agoMerge commit
Simon Peyton Jones [Wed, 4 May 2011 12:26:30 +0000 (13:26 +0100)] 
Merge commit

8 years agoMerge remote-tracking branch 'origin/master'
Simon Peyton Jones [Wed, 4 May 2011 11:14:27 +0000 (12:14 +0100)] 
Merge remote-tracking branch 'origin/master'

8 years agoFix Trac #5117: desugar literal patterns consistencly
Simon Peyton Jones [Wed, 4 May 2011 11:05:42 +0000 (12:05 +0100)] 
Fix Trac #5117: desugar literal patterns consistencly

8 years agoMerge remote branch 'origin/master' into monad-comp
Simon Peyton Jones [Wed, 4 May 2011 10:37:02 +0000 (11:37 +0100)] 
Merge remote branch 'origin/master' into monad-comp

8 years agoexpand/fix comment about x86-64 registers
Simon Marlow [Mon, 18 Apr 2011 11:14:19 +0000 (12:14 +0100)] 
expand/fix comment about x86-64 registers

8 years agoThe fix for #4914 was wrong and broke other things (see #5149). We
Simon Marlow [Wed, 4 May 2011 09:58:38 +0000 (10:58 +0100)] 
The fix for #4914 was wrong and broke other things (see #5149).  We
can't emit the ffrees before a conditional jump, because we don't want
to ffree the stack registers if the jump isn't taken (d'oh).

This commit fixes it properly, by moving the pass that inserts the
ffrees to *before* we do the jump-shortcutting which introduces the
conditional non-local jumps.

8 years agoremove some old commented-out settings that no longer work
Simon Marlow [Tue, 3 May 2011 14:17:29 +0000 (15:17 +0100)] 
remove some old commented-out settings that no longer work

8 years agoMore hacking on monad-comp
Simon Peyton Jones [Tue, 3 May 2011 07:57:30 +0000 (08:57 +0100)] 
More hacking on monad-comp

Lots of refactoring. In particular I have now combined
TansformStmt and GroupStmt into a single constructor TransStmt.
This gives lots of useful code sharing.

8 years agoMore on monad-comp; an intermediate state, so don't pull
Simon Peyton Jones [Mon, 2 May 2011 12:56:37 +0000 (13:56 +0100)] 
More on monad-comp; an intermediate state, so don't pull

8 years agoMerge in changes from HEAD
Simon Peyton Jones [Mon, 2 May 2011 09:25:36 +0000 (10:25 +0100)] 
Merge in changes from HEAD

8 years agoMore hacking on monad-comp; now works
Simon Peyton Jones [Mon, 2 May 2011 08:02:18 +0000 (09:02 +0100)] 
More hacking on monad-comp; now works

8 years agoA few more wibbles on ghc-new-co
Simon Peyton Jones [Mon, 2 May 2011 07:49:32 +0000 (08:49 +0100)] 
A few more wibbles on ghc-new-co

8 years agoRemove some ifdefs in favour of Haskell tests
Ian Lynagh [Sun, 1 May 2011 16:00:26 +0000 (17:00 +0100)] 
Remove some ifdefs in favour of Haskell tests

8 years agoRemove an ifdef from ghci/ByteCodeAsm.lhs
Ian Lynagh [Sun, 1 May 2011 15:34:51 +0000 (16:34 +0100)] 
Remove an ifdef from ghci/ByteCodeAsm.lhs

8 years agoIgnore requests to use backends that aren't available; fixes #5145
Ian Lynagh [Sun, 1 May 2011 15:19:06 +0000 (16:19 +0100)] 
Ignore requests to use backends that aren't available; fixes #5145

Now if you try to use "-fasm" with an unreg compiler, for example,
you just get a warning saying it's being ignored.

8 years agoRemove the OMIT_NATIVE_CODEGEN ifdef
Ian Lynagh [Sun, 1 May 2011 14:38:18 +0000 (15:38 +0100)] 
Remove the OMIT_NATIVE_CODEGEN ifdef

We now test
    cGhcWithNativeCodeGen == "YES"
instead.

8 years agoRemove a commented out import
Ian Lynagh [Sun, 1 May 2011 13:37:07 +0000 (14:37 +0100)] 
Remove a commented out import

8 years agoSmall DynFlags improvements
Ian Lynagh [Sun, 1 May 2011 13:20:25 +0000 (14:20 +0100)] 
Small DynFlags improvements

8 years agoReinstate the "-O conflicts with --interactive" warning
Ian Lynagh [Sat, 30 Apr 2011 22:59:15 +0000 (23:59 +0100)] 
Reinstate the "-O conflicts with --interactive" warning

8 years agoUpdate the defaultObjectTarget definition
Ian Lynagh [Sat, 30 Apr 2011 21:58:57 +0000 (22:58 +0100)] 
Update the defaultObjectTarget definition

We now default to HscC if unregisterised, else HscAsm if we have
an NCG, else LLVM.

8 years agoLLVM: Fix bug with osx mangler and jump tables.
David Terei [Sun, 1 May 2011 09:50:03 +0000 (19:50 +1000)] 
LLVM: Fix bug with osx mangler and jump tables.

8 years agoImplement dead basic block elimination.
Edward Z. Yang [Tue, 5 Apr 2011 16:38:15 +0000 (17:38 +0100)] 
Implement dead basic block elimination.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
8 years agoRemove dead Alpha native backend.
Edward Z. Yang [Sat, 30 Apr 2011 12:04:54 +0000 (13:04 +0100)] 
Remove dead Alpha native backend.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
8 years agoMerge remote branch 'origin/master' into ghc-new-co
Simon Peyton Jones [Sat, 30 Apr 2011 13:26:48 +0000 (14:26 +0100)] 
Merge remote branch 'origin/master' into ghc-new-co

Conflicts:
compiler/typecheck/TcErrors.lhs
compiler/typecheck/TcSMonad.lhs
compiler/typecheck/TcType.lhs
compiler/types/TypeRep.lhs

8 years agoDon't expose the cas definition to .hc files
Ian Lynagh [Sat, 30 Apr 2011 11:03:28 +0000 (12:03 +0100)] 
Don't expose the cas definition to .hc files

This is more pleasant than having the C generator check whether the
function it's calling is cas, and not generate a prototype if so.

8 years agoUse "true" rather than ":" for RANLIB, where we don't have ranlib
Ian Lynagh [Fri, 29 Apr 2011 18:05:19 +0000 (19:05 +0100)] 
Use "true" rather than ":" for RANLIB, where we don't have ranlib

We can pass "true" to Cabal, but not ":" as it's just a shell built-in

8 years agoPass the right tool locations to Cabal when generating package.mk files
Ian Lynagh [Fri, 29 Apr 2011 17:50:19 +0000 (18:50 +0100)] 
Pass the right tool locations to Cabal when generating package.mk files

8 years agoFix build on OS X amd64
Ian Lynagh [Fri, 29 Apr 2011 17:07:57 +0000 (18:07 +0100)] 
Fix build on OS X amd64

8 years agoSimon's hacking on monad-comp; incomplete
Simon Peyton Jones [Fri, 29 Apr 2011 17:06:03 +0000 (18:06 +0100)] 
Simon's hacking on monad-comp; incomplete

8 years agoWe no longer need to pass pgmc etc in the ghc.wrapper script
Ian Lynagh [Fri, 29 Apr 2011 15:19:33 +0000 (16:19 +0100)] 
We no longer need to pass pgmc etc in the ghc.wrapper script

They can now be set in the settings file instead

8 years agoAdd ar location and details to settings file
Ian Lynagh [Fri, 29 Apr 2011 13:56:31 +0000 (14:56 +0100)] 
Add ar location and details to settings file

8 years agoAdd stage-specific AS variables to the build system
Ian Lynagh [Fri, 29 Apr 2011 13:37:44 +0000 (14:37 +0100)] 
Add stage-specific AS variables to the build system

8 years agoAdd "C compiler flags" to settings file
Ian Lynagh [Fri, 29 Apr 2011 13:19:53 +0000 (14:19 +0100)] 
Add "C compiler flags" to settings file

I've made cpp_args include gcc_args. It effectively didn't before,
but seeing as gcc_args sometimes has -D flags in, I think doing so
is the right thing to do.

8 years agoMove the machdepCCOpts flags into cCcOpts
Ian Lynagh [Fri, 29 Apr 2011 11:59:00 +0000 (12:59 +0100)] 
Move the machdepCCOpts flags into cCcOpts

This will ultimately mean they end up in the settings file, rather
than being hardcoded.

We now unconditionally give -D_REENTRANT on alpha, but I think that's
probably the right thing to do nowadays anyway.

8 years agoRemove redundant -DDONT_WANT_WIN32_DLL_SUPPORT flag
Ian Lynagh [Fri, 29 Apr 2011 11:41:27 +0000 (12:41 +0100)] 
Remove redundant -DDONT_WANT_WIN32_DLL_SUPPORT flag

8 years agoRemove some out-of-date comments
Ian Lynagh [Fri, 29 Apr 2011 11:30:56 +0000 (12:30 +0100)] 
Remove some out-of-date comments

8 years agoRemove html, pdf and ps from the list of targets in MAKEHELP
Ian Lynagh [Thu, 28 Apr 2011 19:23:22 +0000 (20:23 +0100)] 
Remove html, pdf and ps from the list of targets in MAKEHELP

They don't exist in the makefiles.

8 years agoprimops.txt.pp: add missing type application in description of GHC.Prim.Any
Adam Megacz [Sat, 23 Apr 2011 03:22:06 +0000 (20:22 -0700)] 
primops.txt.pp: add missing type application in description of GHC.Prim.Any

Understanding GHC.Prim.Any is all about understanding the need for
explicit type applications in CoreSyn; the previous example had one
explicit type application but was missing the other, which this patch
adds.  It also expands the explanation, based on SPJ's post here:

  http://article.gmane.org/gmane.comp.lang.haskell.cvs.ghc/46551

8 years agoMerge remote branch 'origin/master' into monad-comp
Simon Peyton Jones [Thu, 28 Apr 2011 10:50:15 +0000 (11:50 +0100)] 
Merge remote branch 'origin/master' into monad-comp

Conflicts:
compiler/main/HscMain.lhs

8 years agoPreliminary monad-comprehension patch (Trac #4370)
Simon Peyton Jones [Thu, 28 Apr 2011 10:44:12 +0000 (11:44 +0100)] 
Preliminary monad-comprehension patch (Trac #4370)

This is the work of Nils Schweinsberg <mail@n-sch.de>

It adds the language extension -XMonadComprehensions, which
generalises list comprehension syntax [ e | x <- xs] to work over
arbitrary monads.

8 years agoMerge boot and boot-pkgs
Ian Lynagh [Wed, 27 Apr 2011 23:35:02 +0000 (00:35 +0100)] 
Merge boot and boot-pkgs

There is no longer any need for them to be separate, and this
way we don't have to call perl from the boot script. This is
particularly useful when perl isn't where we expect it to be
(#5154).

8 years agoconfigure: bootstrapping fix (#5155)
Ian Lynagh [Wed, 27 Apr 2011 23:23:28 +0000 (00:23 +0100)] 
configure: bootstrapping fix (#5155)

Don't check ghc compiles for the right platform when we're bootstrapping.

8 years agoOutput ELF .size directives for functions
Johan Tibell [Wed, 27 Apr 2011 12:43:51 +0000 (14:43 +0200)] 
Output ELF .size directives for functions

This allows tools like Linux's perf events to display symbol names for
CMM primops.

8 years agoFix bug in multi-destination jump patching.
Edward Z. Yang [Wed, 27 Apr 2011 16:54:15 +0000 (17:54 +0100)] 
Fix bug in multi-destination jump patching.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
8 years agoImplement jump table fix-ups for linear register allocator.
Edward Z. Yang [Sun, 17 Apr 2011 22:29:29 +0000 (23:29 +0100)] 
Implement jump table fix-ups for linear register allocator.

We achieve this by splitting up instruction selection for case
switches into two parts: the actual code generation, and the
generation of the accompanying jump table.  With this scheme,
the jump fixup code can modify the contents of the jump table
stored within the JMP_TBL (or BCTL) instruction, before the
actual data section is created.

SPARC and PPC patches are untested; they might not work!

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
8 years agoEliminate GC check when no extra stack is used.
Edward Z. Yang [Mon, 18 Apr 2011 19:06:11 +0000 (20:06 +0100)] 
Eliminate GC check when no extra stack is used.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
8 years agoGive manifestSP better information about the actual SP location.
Edward Z. Yang [Thu, 14 Apr 2011 20:20:21 +0000 (21:20 +0100)] 
Give manifestSP better information about the actual SP location.

This patch fixes silliness where the SP pointer is continually
bumped up and down.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>