Wed, 05 Apr 2017 12:41:12 +0800
#5226 Disabled PS instructions
Kernel does not have emulation of PS instructions yet, so PS instructions is disabled.
Fixed a JVM crash caused by hotspot/test/compiler/6340864/TestFloatVect.java.
src/cpu/mips/vm/mips_64.ad | file | annotate | diff | comparison | revisions |
1.1 --- a/src/cpu/mips/vm/mips_64.ad Wed Mar 29 09:43:19 2017 +0800 1.2 +++ b/src/cpu/mips/vm/mips_64.ad Wed Apr 05 12:41:12 2017 +0800 1.3 @@ -13985,8 +13985,9 @@ 1.4 // --------------------------------- ADD -------------------------------------- 1.5 1.6 // Floats vector add 1.7 +// kernel does not have emulation of PS instructions yet, so PS instructions is disabled. 1.8 instruct vadd2F(vecD dst, vecD src) %{ 1.9 - predicate(n->as_Vector()->length() == 2); 1.10 + predicate(n->as_Vector()->length() == 2 && !UseLoongsonISA); 1.11 match(Set dst (AddVF dst src)); 1.12 format %{ "add.ps $dst,$src\t! add packed2F" %} 1.13 ins_encode %{ 1.14 @@ -13996,7 +13997,7 @@ 1.15 %} 1.16 1.17 instruct vadd2F3(vecD dst, vecD src1, vecD src2) %{ 1.18 - predicate(n->as_Vector()->length() == 2); 1.19 + predicate(n->as_Vector()->length() == 2 && !UseLoongsonISA); 1.20 match(Set dst (AddVF src1 src2)); 1.21 format %{ "add.ps $dst,$src1,$src2\t! add packed2F" %} 1.22 ins_encode %{ 1.23 @@ -14009,7 +14010,7 @@ 1.24 1.25 // Floats vector sub 1.26 instruct vsub2F(vecD dst, vecD src) %{ 1.27 - predicate(n->as_Vector()->length() == 2); 1.28 + predicate(n->as_Vector()->length() == 2 && !UseLoongsonISA); 1.29 match(Set dst (SubVF dst src)); 1.30 format %{ "sub.ps $dst,$src\t! sub packed2F" %} 1.31 ins_encode %{ 1.32 @@ -14022,7 +14023,7 @@ 1.33 1.34 // Floats vector mul 1.35 instruct vmul2F(vecD dst, vecD src) %{ 1.36 - predicate(n->as_Vector()->length() == 2); 1.37 + predicate(n->as_Vector()->length() == 2 && !UseLoongsonISA); 1.38 match(Set dst (MulVF dst src)); 1.39 format %{ "mul.ps $dst, $src\t! mul packed2F" %} 1.40 ins_encode %{ 1.41 @@ -14032,7 +14033,7 @@ 1.42 %} 1.43 1.44 instruct vmul2F3(vecD dst, vecD src1, vecD src2) %{ 1.45 - predicate(n->as_Vector()->length() == 2); 1.46 + predicate(n->as_Vector()->length() == 2 && !UseLoongsonISA); 1.47 match(Set dst (MulVF src1 src2)); 1.48 format %{ "mul.ps $dst, $src1, $src2\t! mul packed2F" %} 1.49 ins_encode %{