sig writes: > On 09/05/07, Guillermo Adrián Molina <[EMAIL PROTECTED]> wrote: > There are assembler instructions which currently not supported by > Exupery, so it may be problematic to get fully equivalent code in asm > for some primitives. > For instance, mov instructions support only 32 mem/reg operand size. > Also, NOT, XOR is missing (without these instruction i can't invert > operand, because logical set of instructions is not fully defined. If > there will be NOT, i can use it to do XOR, if there will be XOR i can > do NOT, but i cannot invert without at least one of them). > I would also like to see support of calls with relative offset, so i > can link all compiled functions in single byte array and properly set > relative calls where its needed.
If you want to add the missing instructions feel free, I'll merge them into Exupery so long as they're written in a similar style and have similar test coverage. > I found only one way how to load a compiled code into executable > memory: its a 'loadCode' primitive. > It loads a given bytearray to code cache and returns a pointer to it. > The problem is, that i don't see a way how i can modify bytes in > already loaded chunk of code (for relocating calls). > > BAH! I just thought, that problem can be simply solved by loading at > startup a small asm subroutine which will allow me to do that :) > simple assembly function accepting 2 arguments - pointer and value.. :) > See, how life can be easier: i have a way for extending functionality > based on what i have! I don't need to climb down to C and write > another plugin/primitive :) Have a look at Exupery>>relocateMethodAt: Exupery does relocation after loading code. > > What is the state of your project? (unfinished, testing, etc) > > Current state is unfinished. I must polish some things and add extra > functionality. > Parser is functional (at least by my analysis it generates correct > intermediate for given methods). To test it in action i'll need to > install exupery plugin. Btw, if someone can share a ready to use > squeak win32 executable with it, things will go faster.. There's both a Windows and a Linux VM here: http://wiki.squeak.org/squeak/3945 Bryce _______________________________________________ Exupery mailing list [email protected] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
