On Thu, Feb 14, 2002 at 08:22:49PM -0500, Dan Sugalski wrote: > If you choose to accept it, is to dig out the computed goto and > switch runops cores from the archives, dust 'em off and get them up > to snuff with the current sources. > > Takers, anone?
I spent about an hour on this last night and have something that works for life.pasm, at least. However, in trying to benchmark it against the regular code, I couldn't get vanilla ol' test_parrot to work with life.pbc. Is it broken, or is it my local modifications? I get a seg fault in string_copy -- the string register it's using is NULL. All 'make test' tests pass, though. Making a patch is a little difficult, because my local copy is accumulating too many different modifications. Though I see that the OpTrans patch made it in -- that helped a lot. But that means the patch I sent to get rid of all the now-unnecessary (opcode_t *) casts won't apply cleanly, because they were tangled together. So it would be easiest for me to send another combo patch, this time the cast removal mixed in with reviving pbc2c.pl. Is that ok with you, Dan? Looks like the commits since last night have re-broken pbc2c.pl, so it'll be a little while before I can generate a patch. Oh, my version of the computed goto is a little different from the original. I used another related gcc-ism to eliminate most uses of the switch statement, and in fact could pretty easily eliminate it altogether (though I think it would cost an array of void* the same length as the opcodes.)