diff options
Diffstat (limited to 'compiler/sparc')
-rw-r--r-- | compiler/sparc/aoptcpu.pas | 2 | ||||
-rw-r--r-- | compiler/sparc/cpuinfo.pas | 21 | ||||
-rw-r--r-- | compiler/sparc/ncpuadd.pas | 12 |
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; |