Page MenuHomeFreeBSD

D23870.diff
No OneTemporary

D23870.diff

Index: head/sys/amd64/amd64/pmap.c
===================================================================
--- head/sys/amd64/amd64/pmap.c
+++ head/sys/amd64/amd64/pmap.c
@@ -714,8 +714,8 @@
old_low = new_low = 0;
old_high = new_high = (uintptr_t)0;
- __asm volatile("lock;cmpxchg16b\t%1;sete\t%0"
- : "=r" (res), "+m" (*ptr), "+a" (old_low), "+d" (old_high)
+ __asm volatile("lock;cmpxchg16b\t%1"
+ : "=@cce" (res), "+m" (*ptr), "+a" (old_low), "+d" (old_high)
: "b"(new_low), "c" (new_high)
: "memory", "cc");
if (res == 0) {
@@ -742,8 +742,8 @@
old_low = old_val->gen;
old_high = (uintptr_t)old_val->next;
- __asm volatile("lock;cmpxchg16b\t%1;sete\t%0"
- : "=r" (res), "+m" (*ptr), "+a" (old_low), "+d" (old_high)
+ __asm volatile("lock;cmpxchg16b\t%1"
+ : "=@cce" (res), "+m" (*ptr), "+a" (old_low), "+d" (old_high)
: "b"(new_low), "c" (new_high)
: "memory", "cc");
return (res);

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 3, 5:42 PM (13 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34632405
Default Alt Text
D23870.diff (937 B)

Event Timeline