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