On 25.02.19 17:40, Richard Henderson wrote: > On 2/25/19 8:17 AM, David Hildenbrand wrote: >> On 25.02.19 17:14, Richard Henderson wrote: >>> I don't understand all of this "blocksize" business, when they are all >>> powers >>> of two, and the maximum value returned is 16. >>> >>> As far as I can see, the result is obtained by -(addr | -16) regardless of >>> the >>> value of m3. >> >> Let's assume we have addr = 63; >> >> Assume block size is 64: >> -> to_load = 1 >> >> Assume block size is 128: >> -> to_load = 16 >> >> Or am i missing something? > > No, just me. > > You can still do the computation inline, with > > tcg_gen_ori_i64(tmp, addr, -blocksize); > tcg_gen_neg_i64(tmp, tmp); > sixteen = tcg_const_i64(16); > tcg_gen_umin_i64(tmp, sixteen); >
Nice trick, works fine, thanks :) > > r~ > -- Thanks, David / dhildenb
