Paul Davidson wrote:
On Nov 8, 2005, at 12:11, Peter Vreman wrote:
# [735] case l3o3.FormType of
// Select 3o3 processor
lwz r2,160(r1)
cmplwi cr0,r2,0
beq cr0,L1051
cmplwi cr0,r2,1
beq cr0,L1052
cmplwi cr0,r2,2
beq cr0,L1053
cmplwi cr0,r2,3
beq cr0,L1054
etc.
Any hints?
Use 2.1.1
Peter
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
version 2.1.1 [2005/11/08] for powerpc
Same result, Peter :|
P Davidson
http://CoraxNetworks.com
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
You could use an array of procedures. It's members are initialized once,
var my_table: array [0 .. 146] of procedure;
my_table[0] := @my_proc_0;
my_tyble[1] := @my_proc_1;
...
and the 'case' statement is simply replaced with
begin
..
my_table[x];
..
end;
which is fast, because it performs no compare, but loads the procedure
address from the array, indexed with x.
Anton.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal