< 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 >