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

Jacob Lifshay programmerjake at gmail.com
Tue Jun 4 21:36:13 BST 2019


On Tue, Jun 4, 2019, 05:35 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:

> 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.
>
can easily be much more than 2 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...
>
The Vulkan API mostly requires it.

>
> that however would not work if there is an outer loop.
>
> l.
>
> _______________________________________________
> libre-riscv-dev mailing list
> libre-riscv-dev at lists.libre-riscv.org
> http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
>


More information about the libre-riscv-dev mailing list