diff --git a/compiler/x86/cgx86.pas b/compiler/x86/cgx86.pas index d9024c4d2a..f36e9cf3ac 100644 --- a/compiler/x86/cgx86.pas +++ b/compiler/x86/cgx86.pas @@ -1570,6 +1570,19 @@ unit cgx86; href : treference; begin power:=0; + optimize_op_const(size,op,a); + case op of + OP_NONE: + begin + a_load_reg_reg(list,size,size,src,dst); + exit; + end; + OP_MOVE: + begin + a_load_const_reg(list,size,a,dst); + exit; + end; + end; if (op in [OP_MUL,OP_IMUL]) and (size in [OS_32,OS_S32,OS_64,OS_S64]) and not(cs_check_overflow in current_settings.localswitches) and (a>1) and ispowerof2(int64(a-1),power) and (power in [1..3]) then