diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-01-21 23:28:34 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-01-21 23:28:34 +0000 |
commit | 1903b037de2fb3e75826406b46f055acb70963fa (patch) | |
tree | 604cd8b790fe14e5fbe441d4cd647c80d2a36a9a /compiler/sparc | |
parent | ad1141d52f8353457053b925cd674fe1d5c4eafc (diff) | |
parent | 953d907e4d6c3a5c2f8aaee6e5e4f73c55ce5985 (diff) | |
download | fpc-blocks.tar.gz |
* synchronised with trunk till r29513blocks
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/blocks@29516 3ad0048d-3df7-0310-abae-a5850022a9f2
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; |