From ae627a4ba823b360bbaf1ef634604133a8af6e2f Mon Sep 17 00:00:00 2001 From: sergei Date: Sun, 8 Jun 2014 00:08:56 +0000 Subject: [PATCH] * tcgx86.a_op_const_reg_reg: optimize trivial cases before considering more complex ones. git-svn-id: trunk@27892 - --- compiler/x86/cgx86.pas | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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