On Mon, Feb 23, 2004 at 11:07:48AM +0100, Leopold Toetsch wrote: > Yep. That's a bit complicated. The jit code tries to avoid > loading/storing the same register from/to memory. Actually on this, while looking at what jit on i386 would give for this particular loop, just noticed it does quite a lot of these store/loads to memory who are, afaik, useless? (althaugh as I understand they are needed for the general case)
0x0829c5ed <jit_func+53>: mov $0x2,%ebx 0x0829c5f2 <jit_func+58>: mov %esi,%esi 0x0829c5f4 <jit_func+60>: mov %ebx,0x8278c74 0x0829c5fa <jit_func+66>: mov 0x8278c74,%ebx 0x0829c600 <jit_func+72>: sub $0x1,%ebx 0x0829c606 <jit_func+78>: test %ebx,%ebx 0x0829c608 <jit_func+80>: jne 0x829c600 <jit_func+72> (up here we could just skeep 58 to 66) > jit/i386/jit_emit.h implements all the necessary bits. > s. jit_emit_jcc, fixup->skip and load_size. Thanks.. was going "round in loops" ;) I'll go on it as time permits. > leo Stéphane