Browse Source

+ support 64 bit sar on sparc64
* fix on sparc64 broken a_cmp_const_reg_label and a_cmp_reg_reg_label

git-svn-id: trunk@36661 -

florian 8 years ago
parent
commit
8401a460e5
1 changed files with 6 additions and 4 deletions
  1. 6 4
      compiler/sparcgen/cgsparc.pas

+ 6 - 4
compiler/sparcgen/cgsparc.pas

@@ -695,6 +695,10 @@ implementation
                 list.concat(taicpu.op_reg_const_reg(A_SRA,dst,32-(tcgsize2size[size]*8),dst));
                 list.concat(taicpu.op_reg_const_reg(A_SRA,dst,32-(tcgsize2size[size]*8),dst));
                 src2:=dst;
                 src2:=dst;
               end
               end
+{$ifdef SPARC64}
+            { allow 64 bit sar on sparc64 without ie }
+            else if size in [OS_64,OS_S64] then
+{$endif SPARC64}
             else if not (size in [OS_32,OS_S32]) then
             else if not (size in [OS_32,OS_S32]) then
               InternalError(2013070306);
               InternalError(2013070306);
           end;
           end;
@@ -814,9 +818,8 @@ implementation
         if size in [OS_64,OS_S64] then
         if size in [OS_64,OS_S64] then
           a_jmp_cond64(list,cmp_op,l)
           a_jmp_cond64(list,cmp_op,l)
         else
         else
-{$else SPARC64}
-          a_jmp_cond(list,cmp_op,l);
 {$endif SPARC64}
 {$endif SPARC64}
+          a_jmp_cond(list,cmp_op,l);
       end;
       end;
 
 
 
 
@@ -827,9 +830,8 @@ implementation
         if size in [OS_64,OS_S64] then
         if size in [OS_64,OS_S64] then
           a_jmp_cond64(list,cmp_op,l)
           a_jmp_cond64(list,cmp_op,l)
         else
         else
-{$else SPARC64}
-          a_jmp_cond(list,cmp_op,l);
 {$endif SPARC64}
 {$endif SPARC64}
+          a_jmp_cond(list,cmp_op,l);
       end;
       end;