Mercurial > hg > jdk9-shenandoah > hotspot
changeset 9621:b00a25e45cd9
Implement barriers in new C2 intrinsics: multiplyToLen, squareToLen, mulAdd, montgomeryMultiply, montgomerySquare.
author | rkennke |
---|---|
date | Wed, 16 Sep 2015 17:21:59 +0200 |
parents | 818dd82363ec |
children | 263be3296c38 |
files | src/share/vm/opto/library_call.cpp |
diffstat | 1 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/opto/library_call.cpp Wed Sep 16 17:21:25 2015 +0200 +++ b/src/share/vm/opto/library_call.cpp Wed Sep 16 17:21:59 2015 +0200 @@ -5179,6 +5179,10 @@ Node* ylen = argument(3); Node* z = argument(4); + x = shenandoah_read_barrier(x); + y = shenandoah_read_barrier(y); + z = shenandoah_write_barrier(z); + const Type* x_type = x->Value(&_gvn); const Type* y_type = y->Value(&_gvn); const TypeAryPtr* top_x = x_type->isa_aryptr(); @@ -5279,6 +5283,9 @@ Node* z = argument(2); Node* zlen = argument(3); + x = shenandoah_read_barrier(x); + z = shenandoah_write_barrier(z); + const Type* x_type = x->Value(&_gvn); const Type* z_type = z->Value(&_gvn); const TypeAryPtr* top_x = x_type->isa_aryptr(); @@ -5326,6 +5333,9 @@ Node* len = argument(3); Node* k = argument(4); + in = shenandoah_read_barrier(in); + out = shenandoah_write_barrier(out); + const Type* out_type = out->Value(&_gvn); const Type* in_type = in->Value(&_gvn); const TypeAryPtr* top_out = out_type->isa_aryptr(); @@ -5375,6 +5385,11 @@ Node* inv = argument(4); Node* m = argument(6); + a = shenandoah_read_barrier(a); + b = shenandoah_read_barrier(b); + n = shenandoah_read_barrier(n); + m = shenandoah_write_barrier(m); + const Type* a_type = a->Value(&_gvn); const TypeAryPtr* top_a = a_type->isa_aryptr(); const Type* b_type = b->Value(&_gvn); @@ -5434,6 +5449,10 @@ Node* inv = argument(3); Node* m = argument(5); + a = shenandoah_read_barrier(a); + n = shenandoah_read_barrier(n); + m = shenandoah_write_barrier(m); + const Type* a_type = a->Value(&_gvn); const TypeAryPtr* top_a = a_type->isa_aryptr(); const Type* n_type = a->Value(&_gvn);