Page MenuHomeFreeBSD

D58550.diff
No OneTemporary

D58550.diff

diff --git a/sys/amd64/amd64/exception.S b/sys/amd64/amd64/exception.S
--- a/sys/amd64/amd64/exception.S
+++ b/sys/amd64/amd64/exception.S
@@ -1403,6 +1403,23 @@
movq $0,PCB_GSBASE(%r8)
jmp doreti
+#if defined(__clang__) && (__clang_major__ <= 18)
+ .macro lkgs reg
+ .if \reg != %ax
+ .err "Only %ax is supported"
+ .endif
+ .byte 0xf2, 0x0f, 0x00, 0xf0
+ .endm
+
+ .macro eretu
+ .byte 0xf3, 0x0f, 0x01, 0xca
+ .endm
+
+ .macro erets
+ .byte 0xf2, 0x0f, 0x01, 0xca
+ .endm
+#endif
+
/*
* FRED guarantees that on entry, %rflags is set to '2', which in
* particular means that interrupts are disabled, and DF/AC are clear.

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 3, 2:00 AM (7 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35782733
Default Alt Text
D58550.diff (635 B)

Event Timeline