This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Fix for parallel_ok in d10v assembler
- To: hiller at redhat dot com
- Subject: Re: Fix for parallel_ok in d10v assembler
- From: Nick Clifton <nickc at redhat dot com>
- Date: Mon, 4 Dec 2000 17:12:07 -0800
- CC: binutils at sources dot redhat dot com
Hi Matt,
: parallel_ok checks to see if a pair of instructions are
: parallelizeable. However, it fails to recognize certain branches as
: instructions that cannot be parallelized; brf0t.s, for example. This patch
: fixes this.
:
: 2000-12-04 Matthew Hiller <hiller@redhat.com>
: * config/tc-d10v.c (parallel_ok): Fixed detection of branch
: instructions.
:
: Index: gas/config/tc-d10v.c
: ===================================================================
: RCS file: /cvs/src/src/gas/config/tc-d10v.c,v
: retrieving revision 1.14
: diff -c -3 -p -r1.14 tc-d10v.c
: *** gas/config/tc-d10v.c 2000/12/05 00:56:04 1.14
: --- gas/config/tc-d10v.c 2000/12/05 01:02:37
: *************** parallel_ok (op1, insn1, op2, insn2, exe
: *** 941,947 ****
: /* If this is auto parallization, and either instruction is a branch,
: don't parallel. */
: if (exec_type == PACK_UNSPEC
: ! && (op1->exec_type & ALONE || op2->exec_type & ALONE))
: return 0;
:
: /* The idea here is to create two sets of bitmasks (mod and used)
: --- 941,948 ----
: /* If this is auto parallization, and either instruction is a branch,
: don't parallel. */
: if (exec_type == PACK_UNSPEC
: ! && (op1->exec_type & ALONE || op2->exec_type & ALONE
: ! || op1->exectype & BRANCH || op2->exec_type & BRANCH))
: return 0;
:
This does not look right. If the brf0t.s instruction cannot be
parallelized then it should have the ALONE attribute set (in
opcodes/d10v-opc.c). That is the point of that attribute. It should
not be necessary to add tests for the BRANCH attribute in parallel_ok.
Cheers
Nick