Skip to content
This repository was archived by the owner on Sep 2, 2022. It is now read-only.

Commit 4c9aefd

Browse files
e1iuPengfei Li
authored and
Pengfei Li
committed
8268739: AArch64: Build failure after JDK-8267663
Reviewed-by: aph, dholmes
1 parent 112ddb7 commit 4c9aefd

File tree

4 files changed

+49
-47
lines changed

4 files changed

+49
-47
lines changed

src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.cpp

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@
2727
#include "asm/assembler.inline.hpp"
2828
#include "opto/c2_MacroAssembler.hpp"
2929
#include "opto/intrinsicnode.hpp"
30+
#include "opto/subnode.hpp"
3031
#include "runtime/stubRoutines.hpp"
3132

3233
#ifdef PRODUCT
@@ -832,3 +833,45 @@ void C2_MacroAssembler::string_compare(Register str1, Register str2,
832833

833834
BLOCK_COMMENT("} string_compare");
834835
}
836+
837+
void C2_MacroAssembler::neon_compare(FloatRegister dst, BasicType bt, FloatRegister src1,
838+
FloatRegister src2, int cond, bool isQ) {
839+
SIMD_Arrangement size = esize2arrangement(type2aelembytes(bt), isQ);
840+
if (bt == T_FLOAT || bt == T_DOUBLE) {
841+
switch (cond) {
842+
case BoolTest::eq: fcmeq(dst, size, src1, src2); break;
843+
case BoolTest::ne: {
844+
fcmeq(dst, size, src1, src2);
845+
notr(dst, T16B, dst);
846+
break;
847+
}
848+
case BoolTest::ge: fcmge(dst, size, src1, src2); break;
849+
case BoolTest::gt: fcmgt(dst, size, src1, src2); break;
850+
case BoolTest::le: fcmge(dst, size, src2, src1); break;
851+
case BoolTest::lt: fcmgt(dst, size, src2, src1); break;
852+
default:
853+
assert(false, "unsupported");
854+
ShouldNotReachHere();
855+
}
856+
} else {
857+
switch (cond) {
858+
case BoolTest::eq: cmeq(dst, size, src1, src2); break;
859+
case BoolTest::ne: {
860+
cmeq(dst, size, src1, src2);
861+
notr(dst, T16B, dst);
862+
break;
863+
}
864+
case BoolTest::ge: cmge(dst, size, src1, src2); break;
865+
case BoolTest::gt: cmgt(dst, size, src1, src2); break;
866+
case BoolTest::le: cmge(dst, size, src2, src1); break;
867+
case BoolTest::lt: cmgt(dst, size, src2, src1); break;
868+
case BoolTest::uge: cmhs(dst, size, src1, src2); break;
869+
case BoolTest::ugt: cmhi(dst, size, src1, src2); break;
870+
case BoolTest::ult: cmhi(dst, size, src2, src1); break;
871+
case BoolTest::ule: cmhs(dst, size, src2, src1); break;
872+
default:
873+
assert(false, "unsupported");
874+
ShouldNotReachHere();
875+
}
876+
}
877+
}

src/hotspot/cpu/aarch64/c2_MacroAssembler_aarch64.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -49,4 +49,8 @@
4949
Register ch, Register result,
5050
Register tmp1, Register tmp2, Register tmp3);
5151

52+
// SIMD&FP comparison
53+
void neon_compare(FloatRegister dst, BasicType bt, FloatRegister src1,
54+
FloatRegister src2, int cond, bool isQ);
55+
5256
#endif // CPU_AARCH64_C2_MACROASSEMBLER_AARCH64_HPP

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5339,49 +5339,6 @@ void MacroAssembler::safepoint_isb() {
53395339
#endif
53405340
}
53415341

5342-
void MacroAssembler::neon_compare(FloatRegister dst, BasicType bt, FloatRegister src1,
5343-
FloatRegister src2, int cond, bool isQ) {
5344-
SIMD_Arrangement size = esize2arrangement(type2aelembytes(bt), isQ);
5345-
if (bt == T_FLOAT || bt == T_DOUBLE) {
5346-
switch (cond) {
5347-
case BoolTest::eq: fcmeq(dst, size, src1, src2); break;
5348-
case BoolTest::ne: {
5349-
fcmeq(dst, size, src1, src2);
5350-
notr(dst, T16B, dst);
5351-
break;
5352-
}
5353-
case BoolTest::ge: fcmge(dst, size, src1, src2); break;
5354-
case BoolTest::gt: fcmgt(dst, size, src1, src2); break;
5355-
case BoolTest::le: fcmge(dst, size, src2, src1); break;
5356-
case BoolTest::lt: fcmgt(dst, size, src2, src1); break;
5357-
default:
5358-
assert(false, "unsupported");
5359-
ShouldNotReachHere();
5360-
}
5361-
} else {
5362-
switch (cond) {
5363-
case BoolTest::eq: cmeq(dst, size, src1, src2); break;
5364-
case BoolTest::ne: {
5365-
cmeq(dst, size, src1, src2);
5366-
notr(dst, T16B, dst);
5367-
break;
5368-
}
5369-
case BoolTest::ge: cmge(dst, size, src1, src2); break;
5370-
case BoolTest::gt: cmgt(dst, size, src1, src2); break;
5371-
case BoolTest::le: cmge(dst, size, src2, src1); break;
5372-
case BoolTest::lt: cmgt(dst, size, src2, src1); break;
5373-
case BoolTest::uge: cmhs(dst, size, src1, src2); break;
5374-
case BoolTest::ugt: cmhi(dst, size, src1, src2); break;
5375-
case BoolTest::ult: cmhi(dst, size, src2, src1); break;
5376-
case BoolTest::ule: cmhs(dst, size, src2, src1); break;
5377-
default:
5378-
assert(false, "unsupported");
5379-
ShouldNotReachHere();
5380-
}
5381-
}
5382-
}
5383-
5384-
53855342
#ifndef PRODUCT
53865343
void MacroAssembler::verify_cross_modify_fence_not_required() {
53875344
if (VerifyCrossModifyFence) {

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,8 +1058,6 @@ class MacroAssembler: public Assembler {
10581058
bool acquire, bool release, bool weak,
10591059
Register result);
10601060

1061-
// SIMD&FP comparison
1062-
void neon_compare(FloatRegister dst, BasicType bt, FloatRegister src1, FloatRegister src2, int cond, bool isQ);
10631061
private:
10641062
void compare_eq(Register rn, Register rm, enum operand_size size);
10651063

0 commit comments

Comments
 (0)