< prev index next >

src/hotspot/cpu/x86/x86_64.ad

Print this page




6220   ins_cost(95); // XXX
6221   format %{ "movss   $dst, $src\t# float stk" %}
6222   ins_encode %{
6223     __ movflt(Address(rsp, $dst$$disp), $src$$XMMRegister);
6224   %}
6225   ins_pipe(pipe_slow); // XXX
6226 %}
6227 
6228 instruct storeSSD(stackSlotD dst, regD src)
6229 %{
6230   match(Set dst src);
6231 
6232   ins_cost(95); // XXX
6233   format %{ "movsd   $dst, $src\t# double stk" %}
6234   ins_encode %{
6235     __ movdbl(Address(rsp, $dst$$disp), $src$$XMMRegister);
6236   %}
6237   ins_pipe(pipe_slow); // XXX
6238 %}
6239 






































6240 //----------BSWAP Instructions-------------------------------------------------
6241 instruct bytes_reverse_int(rRegI dst) %{
6242   match(Set dst (ReverseBytesI dst));
6243 
6244   format %{ "bswapl  $dst" %}
6245   opcode(0x0F, 0xC8);  /*Opcode 0F /C8 */
6246   ins_encode( REX_reg(dst), OpcP, opc2_reg(dst) );
6247   ins_pipe( ialu_reg );
6248 %}
6249 
6250 instruct bytes_reverse_long(rRegL dst) %{
6251   match(Set dst (ReverseBytesL dst));
6252 
6253   format %{ "bswapq  $dst" %}
6254   opcode(0x0F, 0xC8); /* Opcode 0F /C8 */
6255   ins_encode( REX_reg_wide(dst), OpcP, opc2_reg(dst) );
6256   ins_pipe( ialu_reg);
6257 %}
6258 
6259 instruct bytes_reverse_unsigned_short(rRegI dst, rFlagsReg cr) %{




6220   ins_cost(95); // XXX
6221   format %{ "movss   $dst, $src\t# float stk" %}
6222   ins_encode %{
6223     __ movflt(Address(rsp, $dst$$disp), $src$$XMMRegister);
6224   %}
6225   ins_pipe(pipe_slow); // XXX
6226 %}
6227 
6228 instruct storeSSD(stackSlotD dst, regD src)
6229 %{
6230   match(Set dst src);
6231 
6232   ins_cost(95); // XXX
6233   format %{ "movsd   $dst, $src\t# double stk" %}
6234   ins_encode %{
6235     __ movdbl(Address(rsp, $dst$$disp), $src$$XMMRegister);
6236   %}
6237   ins_pipe(pipe_slow); // XXX
6238 %}
6239 
6240 instruct cacheWB(indirect addr)
6241 %{
6242   match(CacheWB addr);
6243 
6244   ins_cost(100);
6245   format %{"cache wb $addr" %}
6246   ins_encode %{
6247     assert($addr->index_position() < 0, "should be");
6248     assert($addr$$disp == 0, "should be");
6249     __ cache_wb(Address($addr$$base$$Register, 0));
6250   %}
6251   ins_pipe(pipe_slow); // XXX
6252 %}
6253 
6254 instruct cacheWBPreSync()
6255 %{
6256   match(CacheWBPreSync);
6257 
6258   ins_cost(100);
6259   format %{"cache wb presync" %}
6260   ins_encode %{
6261     __ cache_wbsync(true);
6262   %}
6263   ins_pipe(pipe_slow); // XXX
6264 %}
6265 
6266 instruct cacheWBPostSync()
6267 %{
6268   match(CacheWBPostSync);
6269 
6270   ins_cost(100);
6271   format %{"cache wb postsync" %}
6272   ins_encode %{
6273     __ cache_wbsync(false);
6274   %}
6275   ins_pipe(pipe_slow); // XXX
6276 %}
6277 
6278 //----------BSWAP Instructions-------------------------------------------------
6279 instruct bytes_reverse_int(rRegI dst) %{
6280   match(Set dst (ReverseBytesI dst));
6281 
6282   format %{ "bswapl  $dst" %}
6283   opcode(0x0F, 0xC8);  /*Opcode 0F /C8 */
6284   ins_encode( REX_reg(dst), OpcP, opc2_reg(dst) );
6285   ins_pipe( ialu_reg );
6286 %}
6287 
6288 instruct bytes_reverse_long(rRegL dst) %{
6289   match(Set dst (ReverseBytesL dst));
6290 
6291   format %{ "bswapq  $dst" %}
6292   opcode(0x0F, 0xC8); /* Opcode 0F /C8 */
6293   ins_encode( REX_reg_wide(dst), OpcP, opc2_reg(dst) );
6294   ins_pipe( ialu_reg);
6295 %}
6296 
6297 instruct bytes_reverse_unsigned_short(rRegI dst, rFlagsReg cr) %{


< prev index next >