[libre-riscv-dev] LD/ST address matcher

Luke Kenneth Casson Leighton lkcl at lkcl.net
Tue Jun 4 13:35:05 BST 2019


On Tue, Jun 4, 2019 at 5:59 AM Jacob Lifshay <programmerjake at gmail.com> wrote:

> On Mon, Jun 3, 2019, 21:50 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
> wrote:
>
> > Which one is it?
> >
> not quite either, it's more like:
> Pixel *textureA = (Pixel *)0x123400000;
> Pixel *textureB = (Pixel *)0x567800000;
> for(size_t i = 0; i < 0x100000; i++)
> {
>     textureA[i] = ...;
>     textureB[i] = ...;
> }

 ok so there are massive regular-sized data structures, at fixed
memory locations, guaranteed to be on multi-page regular boundaries,
where an inner loop will be accessing two such data structures.

 ... y'know... one way to avoid the problem is to offset the first
data structure when loaded into memory by 16 bytes...

that however would not work if there is an outer loop.

l.



More information about the libre-riscv-dev mailing list