Merge same if branches in declare_pragma section in gram.y

This commit is contained in:
Homer Hsing 2012-09-17 13:34:38 +08:00 committed by Damien Lespiau
parent c19f8338d7
commit e6d61ac202

View File

@ -252,27 +252,23 @@ declare_type: TYPE EQ regtype
; ;
declare_pragma: DECLARE_PRAGMA STRING declare_base declare_elementsize declare_srcregion declare_dstregion declare_type declare_pragma: DECLARE_PRAGMA STRING declare_base declare_elementsize declare_srcregion declare_dstregion declare_type
{ {
struct declared_register *reg; struct declared_register *reg;
if ((reg = find_register($2)) != NULL) { int defined;
defined = (reg = find_register($2)) != NULL;
if (defined) {
fprintf(stderr, "WARNING: %s already defined\n", $2); fprintf(stderr, "WARNING: %s already defined\n", $2);
reg->name = $2; } else {
reg->base.reg_file = $3.reg_file;
reg->base.reg_nr = $3.reg_nr;
reg->base.subreg_nr = $3.subreg_nr;
reg->element_size = $4;
reg->src_region = $5;
reg->dst_region = $6;
reg->type = $7;
}else {
reg = calloc(sizeof(struct declared_register), 1); reg = calloc(sizeof(struct declared_register), 1);
reg->name = $2; }
reg->base.reg_file = $3.reg_file; reg->name = $2;
reg->base.reg_nr = $3.reg_nr; reg->base.reg_file = $3.reg_file;
reg->base.subreg_nr = $3.subreg_nr; reg->base.reg_nr = $3.reg_nr;
reg->element_size = $4; reg->base.subreg_nr = $3.subreg_nr;
reg->src_region = $5; reg->element_size = $4;
reg->dst_region = $6; reg->src_region = $5;
reg->type = $7; reg->dst_region = $6;
reg->type = $7;
if (!defined) {
insert_register(reg); insert_register(reg);
} }
} }