hrev47283 adds 1 changeset to branch 'master' old head: fb010e297f7581a6c8e27defd53775ff481a7f78 new head: b20eb413cd5afe7d879235b4553deeaab4ee5ed0 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=b20eb41+%5Efb010e2 ---------------------------------------------------------------------------- b20eb41: kernel/x86_64: help gcc with devirtualization This patch gets rid of some indirect calls in the paging code. [ Paweł Dziepak <pdziepak@xxxxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev47283 Commit: b20eb413cd5afe7d879235b4553deeaab4ee5ed0 URL: http://cgit.haiku-os.org/haiku/commit/?id=b20eb41 Author: Paweł Dziepak <pdziepak@xxxxxxxxxxx> Date: Fri May 30 00:11:05 2014 UTC ---------------------------------------------------------------------------- 4 files changed, 12 insertions(+), 7 deletions(-) .../kernel/arch/x86/paging/64bit/X86PagingMethod64Bit.h | 2 +- .../arch/x86/paging/64bit/X86PagingStructures64Bit.h | 2 +- .../arch/x86/paging/64bit/X86VMTranslationMap64Bit.h | 2 +- src/system/kernel/arch/x86/paging/X86VMTranslationMap.h | 13 +++++++++---- ---------------------------------------------------------------------------- diff --git a/src/system/kernel/arch/x86/paging/64bit/X86PagingMethod64Bit.h b/src/system/kernel/arch/x86/paging/64bit/X86PagingMethod64Bit.h index e68e559..694b5be 100644 --- a/src/system/kernel/arch/x86/paging/64bit/X86PagingMethod64Bit.h +++ b/src/system/kernel/arch/x86/paging/64bit/X86PagingMethod64Bit.h @@ -25,7 +25,7 @@ class X86PhysicalPageMapper; struct vm_page_reservation; -class X86PagingMethod64Bit : public X86PagingMethod { +class X86PagingMethod64Bit final : public X86PagingMethod { public: X86PagingMethod64Bit(); virtual ~X86PagingMethod64Bit(); diff --git a/src/system/kernel/arch/x86/paging/64bit/X86PagingStructures64Bit.h b/src/system/kernel/arch/x86/paging/64bit/X86PagingStructures64Bit.h index e3114d2..edb3e44 100644 --- a/src/system/kernel/arch/x86/paging/64bit/X86PagingStructures64Bit.h +++ b/src/system/kernel/arch/x86/paging/64bit/X86PagingStructures64Bit.h @@ -10,7 +10,7 @@ #include "paging/X86PagingStructures.h" -struct X86PagingStructures64Bit : X86PagingStructures { +struct X86PagingStructures64Bit final : X86PagingStructures { X86PagingStructures64Bit(); virtual ~X86PagingStructures64Bit(); diff --git a/src/system/kernel/arch/x86/paging/64bit/X86VMTranslationMap64Bit.h b/src/system/kernel/arch/x86/paging/64bit/X86VMTranslationMap64Bit.h index 7a9b449..aa62a29 100644 --- a/src/system/kernel/arch/x86/paging/64bit/X86VMTranslationMap64Bit.h +++ b/src/system/kernel/arch/x86/paging/64bit/X86VMTranslationMap64Bit.h @@ -13,7 +13,7 @@ struct X86PagingStructures64Bit; -struct X86VMTranslationMap64Bit : X86VMTranslationMap { +struct X86VMTranslationMap64Bit final : X86VMTranslationMap { X86VMTranslationMap64Bit(); virtual ~X86VMTranslationMap64Bit(); diff --git a/src/system/kernel/arch/x86/paging/X86VMTranslationMap.h b/src/system/kernel/arch/x86/paging/X86VMTranslationMap.h index fdb0241..a07b314 100644 --- a/src/system/kernel/arch/x86/paging/X86VMTranslationMap.h +++ b/src/system/kernel/arch/x86/paging/X86VMTranslationMap.h @@ -9,6 +9,11 @@ #include <vm/VMTranslationMap.h> +#if __GNUC__ < 4 +#define final +#endif + + #define PAGE_INVALIDATE_CACHE_SIZE 64 @@ -22,12 +27,12 @@ struct X86VMTranslationMap : VMTranslationMap { status_t Init(bool kernel); - virtual bool Lock(); - virtual void Unlock(); + virtual bool Lock() final; + virtual void Unlock() final; - virtual addr_t MappedSize() const; + virtual addr_t MappedSize() const final; - virtual void Flush(); + virtual void Flush() final; virtual X86PagingStructures* PagingStructures() const = 0;