constant switch test bug in x86Translate

Matthew Fluet fluet@CS.Cornell.EDU
Mon, 15 Jan 2001 17:37:30 -0500 (EST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-351212254-979598250=:6540
Content-Type: TEXT/PLAIN; charset=US-ASCII


> In attempting to find a nasty G1 bug, I turned off a bunch of passes in the CPS
> simplifier.  This tickled a silly bug in x86Translate.  It fails on constant
> switch tests.  For example, mlton died in a self compile with the error
> 	mlton:toX86Blocks: Switch
> on the following switch statement
> 	Switch (3, [(0, L_4175), (1, L_4176), (2, L_4177), (3, L_4178)], None)
> 
> Is it hard to make the codegen handle this?

Nope.  Here are new x86-mlton.{sig,fun} and x86-translate.fun to handle
it.  Note: it's very inefficient, essentially I move the constant into a
temporary and do the switch just like before (i.e., don't try to do the
optimization which chooses the right label during translation).

Another note: you should technically add 
	word switchTemp;						\
to x86codegen.h, although the register allocator should never need to
spill that temporary.


---559023410-351212254-979598250=:6540
Content-Type: APPLICATION/octet-stream; name="switch.tgz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.3.95.1010115173730.6540C@hoho.cs.cornell.edu>
Content-Description: 

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

---559023410-351212254-979598250=:6540--