hotspot/src/cpu/aarch64/vm/aarch64.ad
changeset 43488 82158896218c
parent 43481 47657134c5c2
child 44332 5c8abd7d8b49
equal deleted inserted replaced
43487:cd909594bb94 43488:82158896218c
  9992 %}
  9992 %}
  9993 
  9993 
  9994 // END This section of the file is automatically generated. Do not edit --------------
  9994 // END This section of the file is automatically generated. Do not edit --------------
  9995 // ---------------------------------------------------------------------
  9995 // ---------------------------------------------------------------------
  9996 
  9996 
  9997 instruct get_and_setI(indirect mem, iRegINoSp newv, iRegI prev) %{
  9997 instruct get_and_setI(indirect mem, iRegI newv, iRegINoSp prev) %{
  9998   match(Set prev (GetAndSetI mem newv));
  9998   match(Set prev (GetAndSetI mem newv));
  9999   format %{ "atomic_xchgw  $prev, $newv, [$mem]" %}
  9999   format %{ "atomic_xchgw  $prev, $newv, [$mem]" %}
 10000   ins_encode %{
 10000   ins_encode %{
 10001     __ atomic_xchgw($prev$$Register, $newv$$Register, as_Register($mem$$base));
 10001     __ atomic_xchgw($prev$$Register, $newv$$Register, as_Register($mem$$base));
 10002   %}
 10002   %}
 10003   ins_pipe(pipe_serial);
 10003   ins_pipe(pipe_serial);
 10004 %}
 10004 %}
 10005 
 10005 
 10006 instruct get_and_setL(indirect mem, iRegLNoSp newv, iRegL prev) %{
 10006 instruct get_and_setL(indirect mem, iRegL newv, iRegLNoSp prev) %{
 10007   match(Set prev (GetAndSetL mem newv));
 10007   match(Set prev (GetAndSetL mem newv));
 10008   format %{ "atomic_xchg  $prev, $newv, [$mem]" %}
 10008   format %{ "atomic_xchg  $prev, $newv, [$mem]" %}
 10009   ins_encode %{
 10009   ins_encode %{
 10010     __ atomic_xchg($prev$$Register, $newv$$Register, as_Register($mem$$base));
 10010     __ atomic_xchg($prev$$Register, $newv$$Register, as_Register($mem$$base));
 10011   %}
 10011   %}
 10012   ins_pipe(pipe_serial);
 10012   ins_pipe(pipe_serial);
 10013 %}
 10013 %}
 10014 
 10014 
 10015 instruct get_and_setN(indirect mem, iRegNNoSp newv, iRegI prev) %{
 10015 instruct get_and_setN(indirect mem, iRegN newv, iRegINoSp prev) %{
 10016   match(Set prev (GetAndSetN mem newv));
 10016   match(Set prev (GetAndSetN mem newv));
 10017   format %{ "atomic_xchgw $prev, $newv, [$mem]" %}
 10017   format %{ "atomic_xchgw $prev, $newv, [$mem]" %}
 10018   ins_encode %{
 10018   ins_encode %{
 10019     __ atomic_xchgw($prev$$Register, $newv$$Register, as_Register($mem$$base));
 10019     __ atomic_xchgw($prev$$Register, $newv$$Register, as_Register($mem$$base));
 10020   %}
 10020   %}
 10021   ins_pipe(pipe_serial);
 10021   ins_pipe(pipe_serial);
 10022 %}
 10022 %}
 10023 
 10023 
 10024 instruct get_and_setP(indirect mem, iRegPNoSp newv, iRegP prev) %{
 10024 instruct get_and_setP(indirect mem, iRegP newv, iRegPNoSp prev) %{
 10025   match(Set prev (GetAndSetP mem newv));
 10025   match(Set prev (GetAndSetP mem newv));
 10026   format %{ "atomic_xchg  $prev, $newv, [$mem]" %}
 10026   format %{ "atomic_xchg  $prev, $newv, [$mem]" %}
 10027   ins_encode %{
 10027   ins_encode %{
 10028     __ atomic_xchg($prev$$Register, $newv$$Register, as_Register($mem$$base));
 10028     __ atomic_xchg($prev$$Register, $newv$$Register, as_Register($mem$$base));
 10029   %}
 10029   %}