summaryrefslogtreecommitdiff
path: root/compiler/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/sparc')
-rw-r--r--compiler/sparc/aoptcpu.pas2
-rw-r--r--compiler/sparc/cpuinfo.pas21
-rw-r--r--compiler/sparc/ncpuadd.pas12
3 files changed, 33 insertions, 2 deletions
diff --git a/compiler/sparc/aoptcpu.pas b/compiler/sparc/aoptcpu.pas
index bc31c671eb..01ce2c0749 100644
--- a/compiler/sparc/aoptcpu.pas
+++ b/compiler/sparc/aoptcpu.pas
@@ -127,7 +127,7 @@ unit aoptcpu;
Result:=GetNextInstruction(Next,Next);
until {not(cs_opt_level3 in current_settings.optimizerswitches) or} not(Result) or (Next.typ<>ait_instruction) or (RegInInstruction(reg,Next)) or
(is_calljmp(taicpu(Next).opcode));
- if is_calljmp(taicpu(next).opcode) then
+ if result and (next.typ=ait_instruction) and is_calljmp(taicpu(next).opcode) then
begin
result:=false;
next:=nil;
diff --git a/compiler/sparc/cpuinfo.pas b/compiler/sparc/cpuinfo.pas
index e9d86e7d8b..55c26d3e6c 100644
--- a/compiler/sparc/cpuinfo.pas
+++ b/compiler/sparc/cpuinfo.pas
@@ -30,6 +30,9 @@ uses
type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -49,8 +52,24 @@ type
fpu_hard
);
+ tcontrollertype =(ct_none
+ );
+
+
+Const
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = true;
+
+ { We know that there are fields after sramsize
+ but we don't care about this warning }
+ {$PUSH}
+ {$WARN 3177 OFF}
+ embedded_controllers : array [tcontrollertype] of tcontrollerdatatype =
+ (
+ (controllertypestr:''; controllerunitstr:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
-const
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
diff --git a/compiler/sparc/ncpuadd.pas b/compiler/sparc/ncpuadd.pas
index 12faca4876..3186e58bc9 100644
--- a/compiler/sparc/ncpuadd.pas
+++ b/compiler/sparc/ncpuadd.pas
@@ -82,6 +82,8 @@ interface
GetResFlags:=F_L;
gten:
GetResFlags:=F_LE;
+ else
+ internalerror(2014082010);
end
else
case NodeType of
@@ -93,6 +95,8 @@ interface
GetResFlags:=F_G;
gten:
GetResFlags:=F_GE;
+ else
+ internalerror(2014082011);
end;
end
else
@@ -107,6 +111,8 @@ interface
GetResFlags:=F_B;
gten:
GetResFlags:=F_BE;
+ else
+ internalerror(2014082012);
end
else
case NodeType of
@@ -118,6 +124,8 @@ interface
GetResFlags:=F_A;
gten:
GetResFlags:=F_AE;
+ else
+ internalerror(2014082013);
end;
end;
end;
@@ -143,6 +151,8 @@ interface
result:=F_FL;
gten:
result:=F_FLE;
+ else
+ internalerror(2014082014);
end
else
case NodeType of
@@ -154,6 +164,8 @@ interface
result:=F_FG;
gten:
result:=F_FGE;
+ else
+ internalerror(2014082015);
end;
end;
end;