mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-10 00:11:00 +02:00
* set is_jmp flag correctly
git-svn-id: trunk@5399 -
This commit is contained in:
parent
a1f0fc1e9d
commit
3f77637b56
@ -1119,14 +1119,22 @@ unit cgcpu;
|
|||||||
|
|
||||||
|
|
||||||
procedure tcgarm.a_jmp_name(list : TAsmList;const s : string);
|
procedure tcgarm.a_jmp_name(list : TAsmList;const s : string);
|
||||||
|
var
|
||||||
|
ai : taicpu;
|
||||||
begin
|
begin
|
||||||
list.concat(taicpu.op_sym(A_B,current_asmdata.RefAsmSymbol(s)));
|
ai:=taicpu.op_sym(A_B,current_asmdata.RefAsmSymbol(s));
|
||||||
|
ai.is_jmp:=true;
|
||||||
|
list.concat(ai);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgarm.a_jmp_always(list : TAsmList;l: tasmlabel);
|
procedure tcgarm.a_jmp_always(list : TAsmList;l: tasmlabel);
|
||||||
|
var
|
||||||
|
ai : taicpu;
|
||||||
begin
|
begin
|
||||||
list.concat(taicpu.op_sym(A_B,l));
|
ai:=taicpu.op_sym(A_B,l);
|
||||||
|
ai.is_jmp:=true;
|
||||||
|
list.concat(ai);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -1349,7 +1357,7 @@ unit cgcpu;
|
|||||||
begin
|
begin
|
||||||
list.concat(taicpu.op_reg_reg_const(A_ADD,NR_STACK_POINTER_REG,NR_STACK_POINTER_REG,LocalSize));
|
list.concat(taicpu.op_reg_reg_const(A_ADD,NR_STACK_POINTER_REG,NR_STACK_POINTER_REG,LocalSize));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
regs:=rg[R_INTREGISTER].used_in_proc-paramanager.get_volatile_registers_int(pocall_stdcall);
|
regs:=rg[R_INTREGISTER].used_in_proc-paramanager.get_volatile_registers_int(pocall_stdcall);
|
||||||
if (pi_do_call in current_procinfo.flags) or (regs<>[]) then
|
if (pi_do_call in current_procinfo.flags) or (regs<>[]) then
|
||||||
begin
|
begin
|
||||||
@ -1558,7 +1566,7 @@ unit cgcpu;
|
|||||||
a_load_ref_reg(list,size2opsize[size],size2opsize[size],srcref,r);
|
a_load_ref_reg(list,size2opsize[size],size2opsize[size],srcref,r);
|
||||||
list.concat(setoppostfix(taicpu.op_reg_reg_const(A_SUB,countreg,countreg,1),PF_S));
|
list.concat(setoppostfix(taicpu.op_reg_reg_const(A_SUB,countreg,countreg,1),PF_S));
|
||||||
a_load_reg_ref(list,size2opsize[size],size2opsize[size],r,dstref);
|
a_load_reg_ref(list,size2opsize[size],size2opsize[size],r,dstref);
|
||||||
list.concat(setcondition(taicpu.op_sym(A_B,l),C_NE));
|
a_jmp_flags(list,F_NE,l);
|
||||||
srcref.offset:=1;
|
srcref.offset:=1;
|
||||||
dstref.offset:=1;
|
dstref.offset:=1;
|
||||||
case count mod size of
|
case count mod size of
|
||||||
|
Loading…
Reference in New Issue
Block a user