< prev index next >
src/cpu/x86/vm/x86_64.ad
Print this page
rev 10719 : [backport] Fix up superfluous changes against upstream
rev 10760 : [backport] Cleanup .ad files includes
rev 10764 : [backport] Rename BrooksPointer to ShenandoahBrooksPointer
*** 525,537 ****
// reg_class ip_reg(RIP);
%}
source_hpp %{
!
! #include "gc_implementation/shenandoah/brooksPointer.hpp"
!
%}
//----------SOURCE BLOCK-------------------------------------------------------
// This is a block of C++ code which provides values, functions, and
// definitions necessary in the rest of the architecture description
--- 525,537 ----
// reg_class ip_reg(RIP);
%}
source_hpp %{
! #if INCLUDE_ALL_GCS
! #include "gc_implementation/shenandoah/shenandoahBrooksPointer.hpp"
! #endif
%}
//----------SOURCE BLOCK-------------------------------------------------------
// This is a block of C++ code which provides values, functions, and
// definitions necessary in the rest of the architecture description
*** 6441,6453 ****
match(Set dst (ShenandoahReadBarrier src));
effect(DEF dst, USE src);
ins_cost(125); // XXX
format %{ "shenandoah_rb $dst, $src" %}
ins_encode %{
Register d = $dst$$Register;
Register s = $src$$Register;
! __ movptr(d, Address(s, BrooksPointer::byte_offset()));
%}
ins_pipe(ialu_reg_mem);
%}
instruct shenandoahRBNarrow(rRegP dst, rRegN src) %{
--- 6441,6457 ----
match(Set dst (ShenandoahReadBarrier src));
effect(DEF dst, USE src);
ins_cost(125); // XXX
format %{ "shenandoah_rb $dst, $src" %}
ins_encode %{
+ #if INCLUDE_ALL_GCS
Register d = $dst$$Register;
Register s = $src$$Register;
! __ movptr(d, Address(s, ShenandoahBrooksPointer::byte_offset()));
! #else
! ShouldNotReachHere();
! #endif
%}
ins_pipe(ialu_reg_mem);
%}
instruct shenandoahRBNarrow(rRegP dst, rRegN src) %{
*** 6455,6467 ****
match(Set dst (ShenandoahReadBarrier (DecodeN src)));
effect(DEF dst, USE src);
ins_cost(125); // XXX
format %{ "shenandoah_rb $dst, $src" %}
ins_encode %{
Register d = $dst$$Register;
Register s = $src$$Register;
! __ movptr(d, Address(r12, s, Address::times_1, BrooksPointer::byte_offset()));
%}
ins_pipe(ialu_reg_mem);
%}
instruct shenandoahRBNarrowShift(rRegP dst, rRegN src) %{
--- 6459,6475 ----
match(Set dst (ShenandoahReadBarrier (DecodeN src)));
effect(DEF dst, USE src);
ins_cost(125); // XXX
format %{ "shenandoah_rb $dst, $src" %}
ins_encode %{
+ #if INCLUDE_ALL_GCS
Register d = $dst$$Register;
Register s = $src$$Register;
! __ movptr(d, Address(r12, s, Address::times_1, ShenandoahBrooksPointer::byte_offset()));
! #else
! ShouldNotReachHere();
! #endif
%}
ins_pipe(ialu_reg_mem);
%}
instruct shenandoahRBNarrowShift(rRegP dst, rRegN src) %{
*** 6469,6481 ****
match(Set dst (ShenandoahReadBarrier (DecodeN src)));
effect(DEF dst, USE src);
ins_cost(125); // XXX
format %{ "shenandoah_rb $dst, $src" %}
ins_encode %{
Register d = $dst$$Register;
Register s = $src$$Register;
! __ movptr(d, Address(r12, s, Address::times_8, BrooksPointer::byte_offset()));
%}
ins_pipe(ialu_reg_mem);
%}
// Convert oop pointer into compressed form
--- 6477,6493 ----
match(Set dst (ShenandoahReadBarrier (DecodeN src)));
effect(DEF dst, USE src);
ins_cost(125); // XXX
format %{ "shenandoah_rb $dst, $src" %}
ins_encode %{
+ #if INCLUDE_ALL_GCS
Register d = $dst$$Register;
Register s = $src$$Register;
! __ movptr(d, Address(r12, s, Address::times_8, ShenandoahBrooksPointer::byte_offset()));
! #else
! ShouldNotReachHere();
! #endif
%}
ins_pipe(ialu_reg_mem);
%}
// Convert oop pointer into compressed form
< prev index next >