summary refs log tree commit diff stats
path: root/results/scraper/fex/4104
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-07-17 09:10:43 +0200
committerChristian Krinitsin <mail@krinitsin.com>2025-07-17 09:10:43 +0200
commitf2ec263023649e596c5076df32c2d328bc9393d2 (patch)
tree5dd86caab46e552bd2e62bf9c4fb1a7504a44db4 /results/scraper/fex/4104
parent63d2e9d409831aa8582787234cae4741847504b7 (diff)
downloadqemu-analysis-main.tar.gz
qemu-analysis-main.zip
add downloaded fex bug-reports HEAD main
Diffstat (limited to 'results/scraper/fex/4104')
-rw-r--r--results/scraper/fex/410433
1 files changed, 33 insertions, 0 deletions
diff --git a/results/scraper/fex/4104 b/results/scraper/fex/4104
new file mode 100644
index 000000000..4b645db69
--- /dev/null
+++ b/results/scraper/fex/4104
@@ -0,0 +1,33 @@
+Fix fsgsbase on hostrunner
+Once https://github.com/herumi/xbyak/pull/193 is merged, rebase xbyak on latest.

+

+Then make sure to save and restore fs/gs in the hostrunner.

+This will let our unittests use wrfsbase without breaking host TLS, since it can be restored.

+

+Example for just fs, but should include gs also:

+```diff

+diff --git a/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.cpp b/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.cpp

+index 0e9b88cca..9a816ccac 100644

+--- a/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.cpp

++++ b/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.cpp

+@@ -51,7 +51,8 @@ public:

+     push(r13);

+     push(r14);

+     push(r15);

+-    sub(rsp, 8);

++    rdfsbase(rbx);

++    push(rbx);

+

+     // Save this stack pointer so we can cleanly shutdown the emulation with a long jump

+     // regardless of where we were in the stack

+@@ -103,8 +104,8 @@ public:

+

+     ThreadStopHandlerAddress = getCurr<uint64_t>();

+

+-    add(rsp, 8);

+-

++    pop(rbx);

++    wrfsbase(rbx);

+     pop(r15);

+     pop(r14);

+```
\ No newline at end of file