[commit: ghc] master: Implement jump table fix-ups for linear register allocator. (16a037a)
Edward Z. Yang
ezyang at MIT.EDU
Wed Apr 27 19:06:08 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/16a037a8f9c7e444230c226081023fe56ffa2264
>---------------------------------------------------------------
commit 16a037a8f9c7e444230c226081023fe56ffa2264
Author: Edward Z. Yang <ezyang at mit.edu>
Date: Sun Apr 17 23:29:29 2011 +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 at mit.edu>
compiler/nativeGen/AsmCodeGen.lhs | 19 +++++++++++++++-
compiler/nativeGen/PPC/CodeGen.hs | 37 +++++++++++++++----------------
compiler/nativeGen/PPC/Instr.hs | 10 ++++----
compiler/nativeGen/PPC/Ppr.hs | 2 +-
compiler/nativeGen/SPARC/CodeGen.hs | 16 +++++++------
compiler/nativeGen/SPARC/Instr.hs | 10 +++++---
compiler/nativeGen/SPARC/Ppr.hs | 2 +-
compiler/nativeGen/X86/CodeGen.hs | 40 ++++++++++++++++++----------------
compiler/nativeGen/X86/Instr.hs | 15 ++++++++----
compiler/nativeGen/X86/Ppr.hs | 2 +-
10 files changed, 90 insertions(+), 63 deletions(-)
Diff suppressed because of size. To see it, use:
git show 16a037a8f9c7e444230c226081023fe56ffa2264
More information about the Cvs-ghc
mailing list