Skip to content

Commit 65960f7

Browse files
committed
8277753: Long*VectorTests.java fail with "bad AD file" on x86_32 after JDK-8276162
Reviewed-by: kvn, thartmann
1 parent 3889af3 commit 65960f7

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/hotspot/cpu/x86/x86_32.ad

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13180,6 +13180,16 @@ instruct cmovPP_reg_LTGE(cmpOp cmp, flagsReg_long_LTGE flags, eRegP dst, eRegP s
1318013180
ins_pipe( pipe_cmov_reg );
1318113181
%}
1318213182

13183+
// Compare 2 unsigned longs and CMOVE ptrs.
13184+
instruct cmovPP_reg_LTGE_U(cmpOpU cmp, flagsReg_ulong_LTGE flags, eRegP dst, eRegP src) %{
13185+
predicate(VM_Version::supports_cmov() && ( _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::lt || _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::ge ));
13186+
match(Set dst (CMoveP (Binary cmp flags) (Binary dst src)));
13187+
ins_cost(200);
13188+
expand %{
13189+
cmovPP_reg_LTGE(cmp,flags,dst,src);
13190+
%}
13191+
%}
13192+
1318313193
// Compare 2 longs and CMOVE doubles
1318413194
instruct cmovDDPR_reg_LTGE(cmpOp cmp, flagsReg_long_LTGE flags, regDPR dst, regDPR src) %{
1318513195
predicate( UseSSE<=1 && _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::lt || _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::ge );
@@ -13361,6 +13371,16 @@ instruct cmovPP_reg_EQNE(cmpOp cmp, flagsReg_long_EQNE flags, eRegP dst, eRegP s
1336113371
ins_pipe( pipe_cmov_reg );
1336213372
%}
1336313373

13374+
// Compare 2 unsigned longs and CMOVE ptrs.
13375+
instruct cmovPP_reg_EQNE_U(cmpOpU cmp, flagsReg_ulong_EQNE flags, eRegP dst, eRegP src) %{
13376+
predicate(VM_Version::supports_cmov() && ( _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::eq || _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::ne ));
13377+
match(Set dst (CMoveP (Binary cmp flags) (Binary dst src)));
13378+
ins_cost(200);
13379+
expand %{
13380+
cmovPP_reg_EQNE(cmp,flags,dst,src);
13381+
%}
13382+
%}
13383+
1336413384
// Compare 2 longs and CMOVE doubles
1336513385
instruct cmovDDPR_reg_EQNE(cmpOp cmp, flagsReg_long_EQNE flags, regDPR dst, regDPR src) %{
1336613386
predicate( UseSSE<=1 && _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::eq || _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::ne );
@@ -13570,6 +13590,16 @@ instruct cmovPP_reg_LEGT(cmpOp_commute cmp, flagsReg_long_LEGT flags, eRegP dst,
1357013590
ins_pipe( pipe_cmov_reg );
1357113591
%}
1357213592

13593+
// Compare 2 unsigned longs and CMOVE ptrs.
13594+
instruct cmovPP_reg_LEGT_U(cmpOpU_commute cmp, flagsReg_ulong_LEGT flags, eRegP dst, eRegP src) %{
13595+
predicate(VM_Version::supports_cmov() && ( _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::le || _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::gt ));
13596+
match(Set dst (CMoveP (Binary cmp flags) (Binary dst src)));
13597+
ins_cost(200);
13598+
expand %{
13599+
cmovPP_reg_LEGT(cmp,flags,dst,src);
13600+
%}
13601+
%}
13602+
1357313603
// Compare 2 longs and CMOVE doubles
1357413604
instruct cmovDDPR_reg_LEGT(cmpOp_commute cmp, flagsReg_long_LEGT flags, regDPR dst, regDPR src) %{
1357513605
predicate( UseSSE<=1 && _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::le || _kids[0]->_kids[0]->_leaf->as_Bool()->_test._test == BoolTest::gt );

0 commit comments

Comments
 (0)