On 30/10/2019 22.04, Bill Wendling wrote:
The movdqu and movapd instructions are SSE2 instructions. Clang
interprets the __attribute__((target("sse"))) as allowing SSE only
instructions. Using SSE2 instructions cause an error.
Signed-off-by: Bill Wendling <morbo@xxxxxxxxxx>
---
x86/emulator.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/x86/emulator.c b/x86/emulator.c
index 621caf9..bec0154 100644
--- a/x86/emulator.c
+++ b/x86/emulator.c
@@ -657,7 +657,7 @@ static bool sseeq(sse_union *v1, sse_union *v2)
return ok;
}
-static __attribute__((target("sse"))) void test_sse(sse_union *mem)
+static __attribute__((target("sse2"))) void test_sse(sse_union *mem)
{
sse_union v;
That seems to work fine with both, gcc and clang, thus:
Tested-by: Thomas Huth <thuth@xxxxxxxxxx>