From: <lut...@fr...> - 2013-05-01 12:46:58
|
Paul Khuong wrote: > Lutz Euler wrote: > > Stas wrote: > > > >> Paul Khuong<pv...@pv...> writes: > >> > >>> stassats wrote: > > [...] > >>>> + (if (sc-is res unsigned-reg) > >>>> + (inst test res res) > >>>> + (inst cmp res 0)) > >>>> + (inst jmp :ge POS) > >>> What's the SC test for? > >> That was copied from the original instruction. > > > > this kind of SC test is quite common: to test if a value is 0, if it is > > in a register, "test" can be used, which has a shorter encoding than > > "cmp". "cmp" on the other hand can take one operand in memory, too. > > Right, but the VOP wants an unsigned-reg for res (without any load-if > condition). You are right. Sorry, I didn't expect anything wrong in that direction so didn't look hard enough. The SC-test is unnecessary; one can always use the TEST instruction. The original VOP SIGNED-BYTE-64-LEN has the same unnecessary test. The change from "always use cmp" to "test the sc" there was commit 16028d14234d2acd0e6a3145a7364f2a52eabf63, which affects x86, too. Greetings, Lutz |