瀏覽代碼

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

git-svn-id: trunk@29580 -
sergei 10 年之前
父節點
當前提交
472310d83f
共有 1 個文件被更改,包括 4 次插入1 次删除
  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));
               cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,NR_R12);
             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;
 
       var