From 111d74744d0ab29d3eeec78088b847debcfbfd08 Mon Sep 17 00:00:00 2001 From: Christian Helmuth Date: Thu, 19 May 2016 12:37:03 +0200 Subject: [PATCH] hw_x86_64: remove aligment attribute from FPU context We do not ensure that the Fpu::Context is 16-byte aligned and, therefore, should not tell the compiler that we did. Otherwise, the GCC may optimize operations regarding the addresses of members as it did for if ((addr_t)_fxsave_area & 0xf) ... With the declared 16-byte alignment the condition will never become true. --- repos/base-hw/src/core/include/spec/x86/fpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/base-hw/src/core/include/spec/x86/fpu.h b/repos/base-hw/src/core/include/spec/x86/fpu.h index 81c1ef6c31..72e9fe784a 100644 --- a/repos/base-hw/src/core/include/spec/x86/fpu.h +++ b/repos/base-hw/src/core/include/spec/x86/fpu.h @@ -59,7 +59,7 @@ class Genode::Fpu public: ~Context() { if (_fpu) _fpu->unset(*this); } - } __attribute__((aligned(16))); + }; private: