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.
