Commit 2c274197 by Kyrylo Tkachov Committed by Kyrylo Tkachov

[AArch64] Move one_match > zero_match case to just before simple_sequence.

	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
	one_match > zero_match case to just before simple_sequence.

From-SVN: r214008
parent 4b5337e6
2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
one_match > zero_match case to just before simple_sequence.
2014-08-15 Richard Biener <rguenther@suse.de> 2014-08-15 Richard Biener <rguenther@suse.de>
* data-streamer.h (streamer_string_index, string_for_index): * data-streamer.h (streamer_string_index, string_for_index):
......
...@@ -1132,24 +1132,6 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm) ...@@ -1132,24 +1132,6 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm)
return; return;
} }
if (one_match > zero_match)
{
/* Set either first three quarters or all but the third. */
mask = 0xffffll << (16 - first_not_ffff_match);
emit_insn (gen_rtx_SET (VOIDmode, dest,
GEN_INT (val | mask | 0xffffffff00000000ull)));
/* Now insert other two quarters. */
for (i = first_not_ffff_match + 16, mask <<= (first_not_ffff_match << 1);
i < 64; i += 16, mask <<= 16)
{
if ((val & mask) != mask)
emit_insn (gen_insv_immdi (dest, GEN_INT (i),
GEN_INT ((val >> i) & 0xffff)));
}
return;
}
if (zero_match == 2) if (zero_match == 2)
goto simple_sequence; goto simple_sequence;
...@@ -1266,6 +1248,24 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm) ...@@ -1266,6 +1248,24 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm)
} }
} }
if (one_match > zero_match)
{
/* Set either first three quarters or all but the third. */
mask = 0xffffll << (16 - first_not_ffff_match);
emit_insn (gen_rtx_SET (VOIDmode, dest,
GEN_INT (val | mask | 0xffffffff00000000ull)));
/* Now insert other two quarters. */
for (i = first_not_ffff_match + 16, mask <<= (first_not_ffff_match << 1);
i < 64; i += 16, mask <<= 16)
{
if ((val & mask) != mask)
emit_insn (gen_insv_immdi (dest, GEN_INT (i),
GEN_INT ((val >> i) & 0xffff)));
}
return;
}
simple_sequence: simple_sequence:
first = true; first = true;
mask = 0xffff; mask = 0xffff;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment