Michael Menegakis wrote:
> I noticed that it is slower than x86 and I suspect it is because
> unlike vm_x86, it does not directly write opcodes but first makes an
> assembly array of lines that in turn get assembled.

The code is simply not optimized. I'm quite sure there is room for
improvements to gain speed with the current method. One idea I have
in mind is to get rid of the full second pass for example. The
second pass is used to compute offsets for labels. However, since
there are no opcodes used which have a variable argument size
depending on offset size one could always write out opcodes with
placeholder addresses in the first pass already. The second pass
then only needs to replace those placeholders with actual values by
walking the label lookup hash instead of parsing the whole assembler
code again.

cu
Ludwig

-- 
 (o_   Ludwig Nussel
 //\   
 V_/_  http://www.suse.de/
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg)
_______________________________________________
ioquake3 mailing list
[email protected]
http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org
By sending this message I agree to love ioquake3 and libsdl.

Reply via email to