Hi John,

Sorry for the slow reply. Unfortunately I've lost the actual code I was
using for this (switched to a new machine).

It was along the lines of using:

BPatch_registerExpr(Dyninst::MachRegister reg)

To access an XMM register and then trying various combinations of
dereferecing (BPatch_deref) to try and access elements. I also tried not
dereferencing to see what happened (nothing!). The idea was to then use
this as an argument to a printf call.

What I found strange was that the newly generated code never had any
mention of xmm0 in it at all.

I'll try and recreate the code soon. Before then, do you have any pointers
of how I should be accessing elements. Is dereferencing into the
BPatch_registerExpr the correct method?

Many thanks,
Blair

On 27 September 2016 at 17:23, John Detter <[email protected]> wrote:

> Blair,
>
> You should be able to do this using Dyninst. Could I see the code you're
> trying to use for this analysis?
>
> -- John
>
> On 09/27/2016 04:52 AM, Blair Archibald wrote:
>
> Hi everyone,
>
> I'm looking to do some analysis on (AVX) vectorised values stored in
> XMM/YMM. Is it possible to access the individual packed floats within these
> registers?
>
> I've tried using BPatch_registerExpr to get the register I care about but
> I'm stuck trying to access the values. I thought something like *(regVal +
> 1) might work to get the second float but I've had no luck so far.
>
> As an aside: I don't think YMM is configured correctly in the
> registerSpace and I had to manually add it to initialise64().
>
> Any ideas if this is possible/how to do it?
>
> Many thanks,
> Blair
>
>
> _______________________________________________
> Dyninst-api mailing 
> [email protected]https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
>
>
>
_______________________________________________
Dyninst-api mailing list
[email protected]
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api

Reply via email to