Am 12.05.2009 21:03, Xueming Shen schrieb:
Ulf Zibis wrote:
*** Question: Why you code:
} else if ((byte1 & MSB) == 0) { // ASCII G0
instead of:
} else if (byte1 >= 0) { // ASCII G0
I believe this line was written 10 years ago, so I have no idea (or
forgot) why we picked this one, my guess is the code might
be a little easier to read with "MSB"...you think the >=0 is better
or faster/
Yes, I think it's also faster, as loading of "MSB" + AND would be saved.
Not sure if HotSpot will detect the shortcut!
it actually should be "byte1 < 0x80"
Oops, you are right. I was in the assumption, that byte1 was, "naked"
from byte array, in range 0xffffff80..0x7f.
Maybe it's better to do:
byte byte1 = sa[sp];
or mask by 0xff after the if .. else
... so we could save some more loop effective opcode by "byte1 >= 0"
-Ulf