From e205481027f142c3195a4eab38377b4b7afb584f Mon Sep 17 00:00:00 2001 From: Jonas Maebe <jonas@freepascal.org> Date: Wed, 8 Aug 2007 09:48:37 +0000 Subject: [PATCH] * fixed sparc bootstrap * use -Av9 assembler option so it accepts the memory barrier opcodes git-svn-id: trunk@8244 - --- compiler/options.pas | 1 + compiler/sparc/cpugas.pas | 2 +- rtl/sparc/sparc.inc | 6 ++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/compiler/options.pas b/compiler/options.pas index 747cec779b..f0dbdd27f6 100644 --- a/compiler/options.pas +++ b/compiler/options.pas @@ -2049,6 +2049,7 @@ begin {$ifdef powerpc64} def_system_macro('FPC_HAS_LWSYNC'); {$endif} + def_system_macro('FPC_HAS_MEMBAR'); {$if defined(x86) or defined(arm)} def_system_macro('INTERNAL_BACKTRACE'); diff --git a/compiler/sparc/cpugas.pas b/compiler/sparc/cpugas.pas index a094d40302..3132ae6626 100644 --- a/compiler/sparc/cpugas.pas +++ b/compiler/sparc/cpugas.pas @@ -224,7 +224,7 @@ implementation id : as_ggas; idtxt : 'GAS'; asmbin : 'gas'; - asmcmd : '-o $OBJ $ASM'; + asmcmd : '-Av9 -o $OBJ $ASM'; supported_target : system_any; flags : [af_allowdirect,af_needar,af_smartlink_sections]; labelprefix : '.L'; diff --git a/rtl/sparc/sparc.inc b/rtl/sparc/sparc.inc index f4d6fb7981..c89c5f7fd7 100644 --- a/rtl/sparc/sparc.inc +++ b/rtl/sparc/sparc.inc @@ -522,9 +522,11 @@ const procedure ReadBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif} asm +{$ifdef FPC_HAS_MEMBAR} ba,pt .L1 membar LoadLoad .L1: +{$endif} end; procedure ReadDependencyBarrier;{$ifdef SYSTEMINLINE}inline;{$endif} @@ -534,16 +536,20 @@ end; procedure ReadWriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif} asm +{$ifdef FPC_HAS_MEMBAR} ba,pt .L1 membar LoadLoad + LoadStore + StoreLoad + StoreStore .L1: +{$endif} end; procedure WriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif} asm +{$ifdef FPC_HAS_MEMBAR} ba,pt .L1 stbar .L1: +{$endif} end; {$endif}