[rtems commit] bsps/i386: use Pentimum instructions for pc586 and pc686 builds.
Pavel Pisa
ppisa at rtems.org
Mon Oct 17 07:43:02 UTC 2016
Module: rtems
Branch: master
Commit: 20625a581de4faaf002a4cc3fa3ea29a9c7a04f7
Changeset: http://git.rtems.org/rtems/commit/?id=20625a581de4faaf002a4cc3fa3ea29a9c7a04f7
Author: Pavel Pisa <pisa at cmp.felk.cvut.cz>
Date: Wed Oct 12 09:47:00 2016 +0200
bsps/i386: use Pentimum instructions for pc586 and pc686 builds.
When GCC option -march is not specifies i386-rtems toolchain
defaults to i386 architecture instruction set. It does not
provide atomic instructions which results in really inefficient
atomic_fetch_or even on UP build.
SMP build is broken with i386 set because libatomic and GCC
generate infinite loop for __atomic_fetch_add_4 used
in rtems_interrupt_lock_acquire
__atomic_fetch_add_4:
push %ebp
mov %esp,%ebp
movl $0x5,0x10(%ebp)
pop %ebp
jmp __atomic_fetch_add_4
---
c/src/lib/libbsp/i386/pc386/make/custom/pc586.cfg | 2 +-
c/src/lib/libbsp/i386/pc386/make/custom/pc686.cfg | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/c/src/lib/libbsp/i386/pc386/make/custom/pc586.cfg b/c/src/lib/libbsp/i386/pc386/make/custom/pc586.cfg
index 73e42cd..6f9cfcb 100644
--- a/c/src/lib/libbsp/i386/pc386/make/custom/pc586.cfg
+++ b/c/src/lib/libbsp/i386/pc386/make/custom/pc586.cfg
@@ -6,7 +6,7 @@ RTEMS_CPU_MODEL=pentium
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
-CPU_CFLAGS = -mtune=pentium
+CPU_CFLAGS = -mtune=pentium -march=pentium
include $(RTEMS_ROOT)/make/custom/pc386.cfg
diff --git a/c/src/lib/libbsp/i386/pc386/make/custom/pc686.cfg b/c/src/lib/libbsp/i386/pc386/make/custom/pc686.cfg
index 04f001f..b27e8ae 100644
--- a/c/src/lib/libbsp/i386/pc386/make/custom/pc686.cfg
+++ b/c/src/lib/libbsp/i386/pc386/make/custom/pc686.cfg
@@ -6,7 +6,7 @@ RTEMS_CPU_MODEL=pentiumpro
# This contains the compiler options necessary to select the CPU model
# and (hopefully) optimize for it.
-CPU_CFLAGS = -mtune=pentiumpro
+CPU_CFLAGS = -mtune=pentiumpro -march=pentium
include $(RTEMS_ROOT)/make/custom/pc386.cfg
More information about the vc
mailing list