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);
r~