Stewart Platt wrote:
Thanks for the reply Tom (and in reply to your message, I am modifying the interpreter)!

Yes, I think that's probably going to be the easiest way forward, all the loading code etc is quite fiddly and there's no need to duplicate it :-)

Aha, seems I threw something of a red herring with the 0x24, it was in fact decimal 24.

Ah, I'd wondered if that might be the case :-)

Judging from my current output (Warning, assembly): http://modseven.de/pastebin.php?id=1802
something went wrong around the NEED_HEAP_32 / UNPACK area.

Indeed, you seem to have lost a few instructions, some of the earlier ones seem to be out of order as well, though that could be deliberate :-)

Looking at the assembly is interesting, looking good so far. There are some definite possibilities for optimization such as keeping the stack pointer in a register, and not using CALL to do MK_AP, NEED_HEAP, EVAL etc. Though you may well have these things in mind already :-)

One thing to be careful of is RETURN_EVAL, this is because it should implement tail call optimisation, which can be fiddly. Of course your example doesn't include any assembly for it, so it might be correct already :-)

Anyway, good luck, I'll be interested to hear how it goes :-)




Tom
_______________________________________________
Yhc mailing list
Yhc@haskell.org
http://www.haskell.org/mailman/listinfo/yhc

Reply via email to