瀏覽代碼

--- Merging r29580 into '.':
U compiler/arm/cgcpu.pas

# revisions: 29580

git-svn-id: branches/fixes_3_0@29581 -

marco 10 年之前
父節點
當前提交
bf34c6bcd1
共有 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));
               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