pike.git/
src/
code/
amd64.c
Branch:
Tag:
Non-build tags
All tags
No tags
2012-06-13
2012-06-13 17:10:41 by Henrik Grubbström (Grubba) <grubba@grubba.org>
373ff54518c772aa708412880bc59f25be7b9cb4 (
7
lines) (+
4
/-
3
)
[
Show
|
Annotate
]
Branch:
7.9
Compiler (amd64): Minor optimization of F_LOCAL_2_LOCAL.
1751:
{ int b_c_dist = b-c; amd64_load_fp_reg();
-
mov_mem_reg(fp_reg, OFFSETOF(pike_frame, locals), REG_
RAX
);
-
add_reg_imm
_reg
( REG_
RAX
, b*sizeof(struct svalue)
,
REG_RBX
);
+
mov_mem_reg(
fp_reg, OFFSETOF(pike_frame, locals), REG_
RBX
);
+
add_reg_imm( REG_
RBX
, b*sizeof(struct svalue) );
/* RBX points to dst. */ amd64_free_svalue( REG_RBX, 0 );
-
/* assign rbx[0] = rbx[
b-
c] */
+
/* assign rbx[0] = rbx[
c-
b] */
mov_mem_reg( REG_RBX, (c-b)*sizeof(struct svalue), REG_RAX ); mov_mem_reg( REG_RBX, (c-b)*sizeof(struct svalue)+8, REG_RCX ); mov_reg_mem( REG_RAX, REG_RBX, 0 );