<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 11, 2019 at 10:21 PM Tim Northover <<a href="mailto:t.p.northover@gmail.com">t.p.northover@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, 11 Jul 2019 at 17:16, Reshabh Sharma <<a href="mailto:reshabhsh@gmail.com" target="_blank">reshabhsh@gmail.com</a>> wrote:<br>
> We thought LUI and ADDI pair will be good to store the values in a i32 register.<br>
<br>
With you so far, I think. To be explicit, to materialize a full 64-bit<br>
pointer you'd need 4 instructions:<br>
<br>
    lui rLO32, addr:MO_LO32_LO<br>
    addi rLO32, rLO32, addr:MO_LO32_HI<br>
    lui rHI32, addr:MO_HI32_LO<br>
    addi rHI32, rLO32, addr:MO_LO32_HI<br>
<br>
or some variation for PIC etc.<br>
<br>
>  If we could transform GlobalAddress<0xHighLow> directly to GlobalAddress<0xLow>, we could use the present RISCVII::MO_HI and MO_LO as they only exact the 32 high bits. What do you think?<br>
<br>
I still recommend against reusing GlobalAddress as-is with an i32<br>
type, but that's probably a minor detail. The only way I can see to<br>
reuse the existing modifiers unambiguously would be to modify the<br>
above sequence to:<br>
<br>
    lui rLO32, addr:MO_LO<br>
    addi rLO32, rLO32, addr:MO_LO<br>
    lui rHI32, addr:MO_HI<br>
    addi rHI32, rLO32, addr:MO_HI<br>
<br>
It kind of works, but personally I think it's stretching the<br>
understood semantics of MO_LO and MO_HI too far -- I'd add new ones if<br>
it was me. But I'm not an active RISC-V maintainer so take my opinions<br>
with a grain of salt.<br></blockquote><div><br></div><div>Ah now I could see it more clearly. I was not sure that should I add them (MO_LO32_LO and MO_LO32_HI), btw this was backup plan. Probably for now we are going with this. I implemented them today and they seem to work well.</div><div><br></div><div>Many thanks,</div><div>Reshabh  </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Cheers.<br>
<br>
Tim.<br>
</blockquote></div></div></div></div>