Bitcast of 64-bit immediates may need to split the immediate, not a var.
Currently, the integer immediate is legalized to a
64-bit integer register first, and then the lower/upper
parts of that register are used for the bitcast.
However, mov(64_bit_reg, imm) done by the legalization
isn't legal.
Similarly, trunc of 64-bit immediates need to take the
lower half of the immediate, not legalize to a var first.
This shifts the legalization code around.
Other cases where immediates are illegal and legalized
are idiv/div, but for those cases 64-bit operands are
handled separately via a function call. The function
call code properly splits up immediate arguments.
BUG=none
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/348373005
4 files changed