On 3/25/22 15:30, Claudio Imbrenda wrote:
On Fri, 25 Mar 2022 08:29:11 +0100
Janosch Frank <frankja@xxxxxxxxxxxxx> wrote:
On 3/24/22 18:40, Heiko Carstens wrote:
On Wed, Mar 23, 2022 at 06:03:19PM +0100, Nico Boehr wrote:
...
+static inline unsigned long load_guarded(unsigned long *p)
+{
+ unsigned long v;
+
+ asm(".insn rxy,0xe3000000004c, %0,%1"
+ : "=d" (v)
+ : "m" (*p)
+ : "r14", "memory");
+ return v;
+}
It was like that before, but why is r14 within the clobber list?
That doesn't make sense.
r14 is changed in the gs handler of the gs test which is executed if the
"guarded" part of the load takes place.
I will add a comment explaining that when picking the patch
Do we need load_guarded() in this new header?
The load/store_gscb() functions have potential to be shared across tests
but the lg doesn't need to be executed, no?
We could opt to leave it in gs.c instead