Browse Source

* ARM: Fixed interface wrapper generation after r28542 for targets without BX instruction.

git-svn-id: trunk@29580 -
sergei 10 years ago
parent
commit
472310d83f
1 changed files with 4 additions and 1 deletions
  1. 4 1
      compiler/arm/cgcpu.pas

+ 4 - 1
compiler/arm/cgcpu.pas

@@ -3247,7 +3247,10 @@ unit cgcpu;
               reference_reset_base(href,NR_R12,tobjectdef(procdef.struct).vmtmethodoffset(procdef.extnumber),sizeof(pint));
               reference_reset_base(href,NR_R12,tobjectdef(procdef.struct).vmtmethodoffset(procdef.extnumber),sizeof(pint));
               cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,NR_R12);
               cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,NR_R12);
             end;
             end;
-          list.concat(taicpu.op_reg(A_BX,NR_R12));
+          if not(CPUARM_HAS_BX in cpu_capabilities[current_settings.cputype]) then
+            list.concat(taicpu.op_reg_reg(A_MOV,NR_PC,NR_R12))
+          else
+            list.concat(taicpu.op_reg(A_BX,NR_R12));
         end;
         end;
 
 
       var
       var