Skip to content

Commit cb1e5b4

Browse files
authored
Update (2023.07.12)
31170: Fix conflicting types for MIN2() 31168: LA port of 8303040: linux PPC64le: Implementation of Foreign Function & Memory API (Preview) 31096: LA port of 8306302: C2 Superword fix: use VectorMaskCmp and VectorBlend instead of CMoveVF/D
1 parent 0d6d37f commit cb1e5b4

File tree

3 files changed

+2
-52
lines changed

3 files changed

+2
-52
lines changed

src/hotspot/cpu/loongarch/loongarch_64.ad

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -17171,56 +17171,6 @@ instruct cmpV32(vecY dst, vecY src1, vecY src2, immI cond)
1717117171
ins_pipe( pipe_slow );
1717217172
%}
1717317173

17174-
// ------------------------- Vector conditional move --------------------------
17175-
17176-
instruct cmove4F(vecX dst, vecX src1, vecX src2, immI cond, cmpOp copnd)
17177-
%{
17178-
match(Set dst (CMoveVF (Binary copnd cond) (Binary src1 src2)));
17179-
format %{ "vcmove_$copnd $dst, $src1, $src2, $cond\t# @cmove4F" %}
17180-
ins_encode %{
17181-
BasicType bt = Matcher::vector_element_basic_type(this);
17182-
__ vector_compare(fscratch, $src1$$FloatRegister, $src2$$FloatRegister, bt, $cond$$constant, 16);
17183-
__ vbitsel_v($dst$$FloatRegister, $src1$$FloatRegister, $src2$$FloatRegister, fscratch);
17184-
%}
17185-
ins_pipe( pipe_slow );
17186-
%}
17187-
17188-
instruct cmove2D(vecX dst, vecX src1, vecX src2, immI cond, cmpOp copnd)
17189-
%{
17190-
match(Set dst (CMoveVD (Binary copnd cond) (Binary src1 src2)));
17191-
format %{ "vcmove_$copnd $dst, $src1, $src2, $cond\t# @cmove2D" %}
17192-
ins_encode %{
17193-
BasicType bt = Matcher::vector_element_basic_type(this);
17194-
__ vector_compare(fscratch, $src1$$FloatRegister, $src2$$FloatRegister, bt, $cond$$constant, 16);
17195-
__ vbitsel_v($dst$$FloatRegister, $src1$$FloatRegister, $src2$$FloatRegister, fscratch);
17196-
%}
17197-
ins_pipe( pipe_slow );
17198-
%}
17199-
17200-
instruct cmove8F(vecY dst, vecY src1, vecY src2, immI cond, cmpOp copnd)
17201-
%{
17202-
match(Set dst (CMoveVF (Binary copnd cond) (Binary src1 src2)));
17203-
format %{ "vcmove_$copnd $dst, $src1, $src2, $cond\t# @cmove8F" %}
17204-
ins_encode %{
17205-
BasicType bt = Matcher::vector_element_basic_type(this);
17206-
__ vector_compare(fscratch, $src1$$FloatRegister, $src2$$FloatRegister, bt, $cond$$constant, 32);
17207-
__ xvbitsel_v($dst$$FloatRegister, $src1$$FloatRegister, $src2$$FloatRegister, fscratch);
17208-
%}
17209-
ins_pipe( pipe_slow );
17210-
%}
17211-
17212-
instruct cmove4D(vecY dst, vecY src1, vecY src2, immI cond, cmpOp copnd)
17213-
%{
17214-
match(Set dst (CMoveVD (Binary copnd cond) (Binary src1 src2)));
17215-
format %{ "vcmove_$copnd $dst, $src1, $src2, $cond\t# @cmove4D" %}
17216-
ins_encode %{
17217-
BasicType bt = Matcher::vector_element_basic_type(this);
17218-
__ vector_compare(fscratch, $src1$$FloatRegister, $src2$$FloatRegister, bt, $cond$$constant, 32);
17219-
__ xvbitsel_v($dst$$FloatRegister, $src1$$FloatRegister, $src2$$FloatRegister, fscratch);
17220-
%}
17221-
ins_pipe( pipe_slow );
17222-
%}
17223-
1722417174
// ---------------------------- LOAD_IOTA_INDICES -----------------------------
1722517175

1722617176
instruct loadconV16(vecX dst, immI_0 src) %{

src/hotspot/cpu/loongarch/sharedRuntime_loongarch_64.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -929,7 +929,7 @@ static void verify_oop_args(MacroAssembler* masm,
929929
const VMRegPair* regs) {
930930
if (VerifyOops) {
931931
// verify too many args may overflow the code buffer
932-
int arg_size = MIN2(64, method->size_of_parameters());
932+
int arg_size = MIN2(64, (int)(method->size_of_parameters()));
933933

934934
for (int i = 0; i < arg_size; i++) {
935935
if (is_reference_type(sig_bt[i])) {

src/hotspot/cpu/loongarch/vmstorage_loongarch.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ constexpr inline VMStorage as_VMStorage(FloatRegister reg) {
6969
return VMStorage::reg_storage(StorageType::FLOAT, FLOAT64_MASK, reg->encoding());
7070
}
7171

72-
inline VMStorage as_VMStorage(VMReg reg) {
72+
inline VMStorage as_VMStorage(VMReg reg, BasicType bt) {
7373
if (reg->is_Register()) {
7474
return as_VMStorage(reg->as_Register());
7575
} else if (reg->is_FloatRegister()) {

0 commit comments

Comments
 (0)