< prev index next >

src/hotspot/cpu/x86/x86_64.ad

Print this page




5353 // Load Compressed Pointer
5354 instruct loadN(rRegN dst, memory mem)
5355 %{
5356    match(Set dst (LoadN mem));
5357 
5358    ins_cost(125); // XXX
5359    format %{ "movl    $dst, $mem\t# compressed ptr" %}
5360    ins_encode %{
5361      __ movl($dst$$Register, $mem$$Address);
5362    %}
5363    ins_pipe(ialu_reg_mem); // XXX
5364 %}
5365 
5366 
5367 // Load Klass Pointer
5368 instruct loadKlass(rRegP dst, memory mem)
5369 %{
5370   match(Set dst (LoadKlass mem));
5371 
5372   ins_cost(125); // XXX
5373   format %{ "movq    $dst, $mem\t# class" %}
5374   opcode(0x8B);
5375   ins_encode(REX_reg_mem_wide(dst, mem), OpcP, reg_mem(dst, mem));





5376   ins_pipe(ialu_reg_mem); // XXX
5377 %}
5378 
5379 // Load narrow Klass Pointer
5380 instruct loadNKlass(rRegN dst, memory mem)
5381 %{
5382   match(Set dst (LoadNKlass mem));
5383 
5384   ins_cost(125); // XXX
5385   format %{ "movl    $dst, $mem\t# compressed klass ptr" %}

5386   ins_encode %{
5387     __ movl($dst$$Register, $mem$$Address);

5388   %}
5389   ins_pipe(ialu_reg_mem); // XXX
5390 %}
5391 
5392 // Load Float
5393 instruct loadF(regF dst, memory mem)
5394 %{
5395   match(Set dst (LoadF mem));
5396 
5397   ins_cost(145); // XXX
5398   format %{ "movss   $dst, $mem\t# float" %}
5399   ins_encode %{
5400     __ movflt($dst$$XMMRegister, $mem$$Address);
5401   %}
5402   ins_pipe(pipe_slow); // XXX
5403 %}
5404 
5405 // Load Float
5406 instruct MoveF2VL(vlRegF dst, regF src) %{
5407   match(Set dst src);




5353 // Load Compressed Pointer
5354 instruct loadN(rRegN dst, memory mem)
5355 %{
5356    match(Set dst (LoadN mem));
5357 
5358    ins_cost(125); // XXX
5359    format %{ "movl    $dst, $mem\t# compressed ptr" %}
5360    ins_encode %{
5361      __ movl($dst$$Register, $mem$$Address);
5362    %}
5363    ins_pipe(ialu_reg_mem); // XXX
5364 %}
5365 
5366 
5367 // Load Klass Pointer
5368 instruct loadKlass(rRegP dst, memory mem)
5369 %{
5370   match(Set dst (LoadKlass mem));
5371 
5372   ins_cost(125); // XXX
5373   format %{ "movq    $dst, $mem\t# class\n\t"
5374             "shlq    $dst, oopDesc::storage_props_nof_bits\n\t"
5375             "shrq    $dst, oopDesc::storage_props_nof_bits" %}
5376   ins_encode %{
5377     __ movptr($dst$$Register, $mem$$Address);
5378     __ shlq($dst$$Register, oopDesc::storage_props_nof_bits);
5379     __ shrq($dst$$Register, oopDesc::storage_props_nof_bits);
5380   %}
5381   ins_pipe(ialu_reg_mem); // XXX
5382 %}
5383 
5384 // Load narrow Klass Pointer
5385 instruct loadNKlass(rRegN dst, memory mem)
5386 %{
5387   match(Set dst (LoadNKlass mem));
5388 
5389   ins_cost(125); // XXX
5390   format %{ "movl    $dst, $mem\t# compressed klass ptr\n\t"
5391             "andl    $dst, oopDesc::compressed_klass_mask()" %}
5392   ins_encode %{
5393     __ movl($dst$$Register, $mem$$Address);
5394     __ andl($dst$$Register, oopDesc::compressed_klass_mask());
5395   %}
5396   ins_pipe(ialu_reg_mem); // XXX
5397 %}
5398 
5399 // Load Float
5400 instruct loadF(regF dst, memory mem)
5401 %{
5402   match(Set dst (LoadF mem));
5403 
5404   ins_cost(145); // XXX
5405   format %{ "movss   $dst, $mem\t# float" %}
5406   ins_encode %{
5407     __ movflt($dst$$XMMRegister, $mem$$Address);
5408   %}
5409   ins_pipe(pipe_slow); // XXX
5410 %}
5411 
5412 // Load Float
5413 instruct MoveF2VL(vlRegF dst, regF src) %{
5414   match(Set dst src);


< prev index next >