mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 21:41:47 +08:00
Fix determination of when two instructions can be combined in parallel.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
start-sanitize-m32rx
|
||||||
|
Wed Jan 28 16:27:27 1998 Nick Clifton <nickc@cygnus.com>
|
||||||
|
|
||||||
|
* config/tc-m32r.c (md_assemble): Fix determination of when
|
||||||
|
instructions can be combined in parallel.
|
||||||
|
|
||||||
|
end-sanitize-m32rx
|
||||||
Wed Jan 28 14:35:00 1998 Bill Moyer <billm@cygnus.com>
|
Wed Jan 28 14:35:00 1998 Bill Moyer <billm@cygnus.com>
|
||||||
|
|
||||||
* as.h (flag_warn_suppress_instructionswap): added new flag.
|
* as.h (flag_warn_suppress_instructionswap): added new flag.
|
||||||
|
@ -746,21 +746,19 @@ md_assemble (str)
|
|||||||
previous instruction to make one, parallel, 32 bit instruction.
|
previous instruction to make one, parallel, 32 bit instruction.
|
||||||
If the previous instruction (potentially) changed the flow of
|
If the previous instruction (potentially) changed the flow of
|
||||||
program control, then it cannot be combined with the current
|
program control, then it cannot be combined with the current
|
||||||
instruction, otherwise call can_make_parallel() with both
|
instruction. Also if the output of the previous instruction
|
||||||
|
is used as an input to the current instruction then it cannot
|
||||||
|
be combined. Otherwise call can_make_parallel() with both
|
||||||
orderings of the instructions to see if they can be combined. */
|
orderings of the instructions to see if they can be combined. */
|
||||||
if ( ! CGEN_INSN_ATTR (prev_insn.insn, CGEN_INSN_COND_CTI)
|
if ( ! CGEN_INSN_ATTR (prev_insn.insn, CGEN_INSN_COND_CTI)
|
||||||
&& ! CGEN_INSN_ATTR (prev_insn.insn, CGEN_INSN_UNCOND_CTI))
|
&& ! CGEN_INSN_ATTR (prev_insn.insn, CGEN_INSN_UNCOND_CTI)
|
||||||
|
&& check_parallel_io_clash (& prev_insn, &insn)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
if (can_make_parallel (& prev_insn, & insn) == NULL
|
if (can_make_parallel (& prev_insn, & insn) == NULL)
|
||||||
&& check_parallel_io_clash (& prev_insn, &insn))
|
make_parallel (insn.buffer);
|
||||||
{
|
else if (can_make_parallel (& insn, & prev_insn.insn) == NULL)
|
||||||
make_parallel (insn.buffer);
|
swap = true;
|
||||||
}
|
|
||||||
else if (can_make_parallel (& insn, & prev_insn.insn) == NULL
|
|
||||||
&& check_parallel_io_clash (& insn, & prev_insn))
|
|
||||||
{
|
|
||||||
swap = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/* end-sanitize-phase2-m32rx */
|
/* end-sanitize-phase2-m32rx */
|
||||||
/* end-sanitize-m32rx */
|
/* end-sanitize-m32rx */
|
||||||
|
Reference in New Issue
Block a user