8284990: AArch64: Remove STXR_PREFETCH from CPU features
Reviewed-by: aph, ngasson, njian
This commit is contained in:
parent
2a1d9cfead
commit
2bd90c2149
@ -1892,7 +1892,6 @@ void MacroAssembler::atomic_incw(Register counter_addr, Register tmp, Register t
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Label retry_load;
|
Label retry_load;
|
||||||
if (VM_Version::supports_stxr_prefetch())
|
|
||||||
prfm(Address(counter_addr), PSTL1STRM);
|
prfm(Address(counter_addr), PSTL1STRM);
|
||||||
bind(retry_load);
|
bind(retry_load);
|
||||||
// flush and load exclusive from the memory location
|
// flush and load exclusive from the memory location
|
||||||
@ -2627,7 +2626,6 @@ void MacroAssembler::cmpxchgptr(Register oldv, Register newv, Register addr, Reg
|
|||||||
membar(AnyAny);
|
membar(AnyAny);
|
||||||
} else {
|
} else {
|
||||||
Label retry_load, nope;
|
Label retry_load, nope;
|
||||||
if (VM_Version::supports_stxr_prefetch())
|
|
||||||
prfm(Address(addr), PSTL1STRM);
|
prfm(Address(addr), PSTL1STRM);
|
||||||
bind(retry_load);
|
bind(retry_load);
|
||||||
// flush and load exclusive from the memory location
|
// flush and load exclusive from the memory location
|
||||||
@ -2670,7 +2668,6 @@ void MacroAssembler::cmpxchgw(Register oldv, Register newv, Register addr, Regis
|
|||||||
membar(AnyAny);
|
membar(AnyAny);
|
||||||
} else {
|
} else {
|
||||||
Label retry_load, nope;
|
Label retry_load, nope;
|
||||||
if (VM_Version::supports_stxr_prefetch())
|
|
||||||
prfm(Address(addr), PSTL1STRM);
|
prfm(Address(addr), PSTL1STRM);
|
||||||
bind(retry_load);
|
bind(retry_load);
|
||||||
// flush and load exclusive from the memory location
|
// flush and load exclusive from the memory location
|
||||||
@ -2712,7 +2709,6 @@ void MacroAssembler::cmpxchg(Register addr, Register expected,
|
|||||||
compare_eq(result, expected, size);
|
compare_eq(result, expected, size);
|
||||||
} else {
|
} else {
|
||||||
Label retry_load, done;
|
Label retry_load, done;
|
||||||
if (VM_Version::supports_stxr_prefetch())
|
|
||||||
prfm(Address(addr), PSTL1STRM);
|
prfm(Address(addr), PSTL1STRM);
|
||||||
bind(retry_load);
|
bind(retry_load);
|
||||||
load_exclusive(result, addr, size, acquire);
|
load_exclusive(result, addr, size, acquire);
|
||||||
@ -2771,7 +2767,6 @@ void MacroAssembler::atomic_##NAME(Register prev, RegisterOrConstant incr, Regis
|
|||||||
result = different(prev, incr, addr) ? prev : rscratch2; \
|
result = different(prev, incr, addr) ? prev : rscratch2; \
|
||||||
\
|
\
|
||||||
Label retry_load; \
|
Label retry_load; \
|
||||||
if (VM_Version::supports_stxr_prefetch()) \
|
|
||||||
prfm(Address(addr), PSTL1STRM); \
|
prfm(Address(addr), PSTL1STRM); \
|
||||||
bind(retry_load); \
|
bind(retry_load); \
|
||||||
LDXR(result, addr); \
|
LDXR(result, addr); \
|
||||||
@ -2802,7 +2797,6 @@ void MacroAssembler::atomic_##OP(Register prev, Register newv, Register addr) {
|
|||||||
result = different(prev, newv, addr) ? prev : rscratch2; \
|
result = different(prev, newv, addr) ? prev : rscratch2; \
|
||||||
\
|
\
|
||||||
Label retry_load; \
|
Label retry_load; \
|
||||||
if (VM_Version::supports_stxr_prefetch()) \
|
|
||||||
prfm(Address(addr), PSTL1STRM); \
|
prfm(Address(addr), PSTL1STRM); \
|
||||||
bind(retry_load); \
|
bind(retry_load); \
|
||||||
LDXR(result, addr); \
|
LDXR(result, addr); \
|
||||||
|
@ -223,8 +223,6 @@ void VM_Version::initialize() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_cpu == CPU_ARM && (_model == 0xd07 || _model2 == 0xd07)) _features |= CPU_STXR_PREFETCH;
|
|
||||||
|
|
||||||
char buf[512];
|
char buf[512];
|
||||||
sprintf(buf, "0x%02x:0x%x:0x%03x:%d", _cpu, _variant, _model, _revision);
|
sprintf(buf, "0x%02x:0x%x:0x%03x:%d", _cpu, _variant, _model, _revision);
|
||||||
if (_model2) sprintf(buf+strlen(buf), "(0x%03x)", _model2);
|
if (_model2) sprintf(buf+strlen(buf), "(0x%03x)", _model2);
|
||||||
|
@ -120,7 +120,6 @@ public:
|
|||||||
/* flags above must follow Linux HWCAP */ \
|
/* flags above must follow Linux HWCAP */ \
|
||||||
decl(SVEBITPERM, svebitperm, 27) \
|
decl(SVEBITPERM, svebitperm, 27) \
|
||||||
decl(SVE2, sve2, 28) \
|
decl(SVE2, sve2, 28) \
|
||||||
decl(STXR_PREFETCH, stxr_prefetch, 29) \
|
|
||||||
decl(A53MAC, a53mac, 31)
|
decl(A53MAC, a53mac, 31)
|
||||||
|
|
||||||
enum Feature_Flag {
|
enum Feature_Flag {
|
||||||
|
@ -180,7 +180,6 @@ public class AArch64 extends Architecture {
|
|||||||
PACA,
|
PACA,
|
||||||
SVEBITPERM,
|
SVEBITPERM,
|
||||||
SVE2,
|
SVE2,
|
||||||
STXR_PREFETCH,
|
|
||||||
A53MAC,
|
A53MAC,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -68,7 +68,6 @@ class AArch64HotSpotVMConfig extends HotSpotVMConfigAccess {
|
|||||||
final long aarch64SHA2 = getConstant("VM_Version::CPU_SHA2", Long.class);
|
final long aarch64SHA2 = getConstant("VM_Version::CPU_SHA2", Long.class);
|
||||||
final long aarch64CRC32 = getConstant("VM_Version::CPU_CRC32", Long.class);
|
final long aarch64CRC32 = getConstant("VM_Version::CPU_CRC32", Long.class);
|
||||||
final long aarch64LSE = getConstant("VM_Version::CPU_LSE", Long.class);
|
final long aarch64LSE = getConstant("VM_Version::CPU_LSE", Long.class);
|
||||||
final long aarch64STXR_PREFETCH = getConstant("VM_Version::CPU_STXR_PREFETCH", Long.class);
|
|
||||||
final long aarch64A53MAC = getConstant("VM_Version::CPU_A53MAC", Long.class);
|
final long aarch64A53MAC = getConstant("VM_Version::CPU_A53MAC", Long.class);
|
||||||
// Checkstyle: resume
|
// Checkstyle: resume
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user