+2015-10-27 Evandro Menezes <e.menezes@samsung.com>
+
+ * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
+ for register extension into sign and zero register extension.
+ * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
+ for sign and zero register extension.
+ (cortexa57_addrcost_table): Likewise.
+ (xgene1_addrcost_table): Likewise.
+
2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
* fold-const.c (fold_minmax): Delete.
const int pre_modify;
const int post_modify;
const int register_offset;
- const int register_extend;
+ const int register_sextend;
+ const int register_zextend;
const int imm_offset;
};
0, /* pre_modify */
0, /* post_modify */
0, /* register_offset */
- 0, /* register_extend */
+ 0, /* register_sextend */
+ 0, /* register_zextend */
0 /* imm_offset */
};
0, /* pre_modify */
0, /* post_modify */
0, /* register_offset */
- 0, /* register_extend */
+ 0, /* register_sextend */
+ 0, /* register_zextend */
0, /* imm_offset */
};
1, /* pre_modify */
0, /* post_modify */
0, /* register_offset */
- 1, /* register_extend */
+ 1, /* register_sextend */
+ 1, /* register_zextend */
0, /* imm_offset */
};
cost += addr_cost->register_offset;
break;
- case ADDRESS_REG_UXTW:
case ADDRESS_REG_SXTW:
- cost += addr_cost->register_extend;
+ cost += addr_cost->register_sextend;
+ break;
+
+ case ADDRESS_REG_UXTW:
+ cost += addr_cost->register_zextend;
break;
default: