< prev index next >

src/cpu/aarch64/vm/aarch64.ad

Print this page
rev 8842 : 8133842: aarch64: C2 generates illegal instructions with int shifts >=32
Summary: Fix logical operatations combined with shifts >= 32
Reviewed-by: duke

*** 10039,10049 **** ins_encode %{ __ bicw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10039,10049 ---- ins_encode %{ __ bicw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10075,10085 **** ins_encode %{ __ bicw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10075,10085 ---- ins_encode %{ __ bicw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10111,10121 **** ins_encode %{ __ bicw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10111,10121 ---- ins_encode %{ __ bicw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10147,10157 **** ins_encode %{ __ eonw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10147,10157 ---- ins_encode %{ __ eonw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10183,10193 **** ins_encode %{ __ eonw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10183,10193 ---- ins_encode %{ __ eonw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10219,10229 **** ins_encode %{ __ eonw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10219,10229 ---- ins_encode %{ __ eonw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10255,10265 **** ins_encode %{ __ ornw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10255,10265 ---- ins_encode %{ __ ornw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10291,10301 **** ins_encode %{ __ ornw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10291,10301 ---- ins_encode %{ __ ornw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10327,10337 **** ins_encode %{ __ ornw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10327,10337 ---- ins_encode %{ __ ornw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10364,10374 **** ins_encode %{ __ andw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10364,10374 ---- ins_encode %{ __ andw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10402,10412 **** ins_encode %{ __ andw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10402,10412 ---- ins_encode %{ __ andw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10440,10450 **** ins_encode %{ __ andw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10440,10450 ---- ins_encode %{ __ andw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10478,10488 **** ins_encode %{ __ eorw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10478,10488 ---- ins_encode %{ __ eorw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10516,10526 **** ins_encode %{ __ eorw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10516,10526 ---- ins_encode %{ __ eorw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10554,10564 **** ins_encode %{ __ eorw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10554,10564 ---- ins_encode %{ __ eorw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10592,10602 **** ins_encode %{ __ orrw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10592,10602 ---- ins_encode %{ __ orrw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10630,10640 **** ins_encode %{ __ orrw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10630,10640 ---- ins_encode %{ __ orrw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10668,10678 **** ins_encode %{ __ orrw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10668,10678 ---- ins_encode %{ __ orrw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10706,10716 **** ins_encode %{ __ addw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10706,10716 ---- ins_encode %{ __ addw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10744,10754 **** ins_encode %{ __ addw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10744,10754 ---- ins_encode %{ __ addw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10782,10792 **** ins_encode %{ __ addw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10782,10792 ---- ins_encode %{ __ addw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10820,10830 **** ins_encode %{ __ subw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10820,10830 ---- ins_encode %{ __ subw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10858,10868 **** ins_encode %{ __ subw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10858,10868 ---- ins_encode %{ __ subw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::ASR, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
*** 10896,10906 **** ins_encode %{ __ subw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x3f); %} ins_pipe(ialu_reg_reg_shift); %} --- 10896,10906 ---- ins_encode %{ __ subw(as_Register($dst$$reg), as_Register($src1$$reg), as_Register($src2$$reg), Assembler::LSL, ! $src3$$constant & 0x1f); %} ins_pipe(ialu_reg_reg_shift); %}
< prev index next >