Skip to content

Commit 6d6cf83

Browse files
committed
Cleanup.
1 parent a0f2118 commit 6d6cf83

File tree

14 files changed

+101
-84
lines changed

14 files changed

+101
-84
lines changed

compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/truffle/test/strings/TStringOpsCalcStringAttributesUTF16ConstantTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,15 @@ public void testUnknown() {
6060
@Test
6161
public void testForeignEndianValid() {
6262
byte[] swappedArray = byteSwapArray(arrayA, 1);
63-
setConstantArgs(DUMMY_LOCATION, swappedArray, offsetA, lengthA, true);
64-
test(getTStringOpsMethod("calcStringAttributesUTF16FE", byte[].class, long.class, int.class, boolean.class), null, DUMMY_LOCATION, swappedArray, offsetA, lengthA, true);
63+
setConstantArgs(DUMMY_LOCATION, swappedArray, offsetA, lengthA);
64+
test(getTStringOpsMethod("calcStringAttributesUTF16FEAssumeValid", byte[].class, long.class, int.class), null, DUMMY_LOCATION, swappedArray, offsetA, lengthA);
6565
}
6666

6767
@Test
6868
public void testForeignEndianUnknown() {
6969
byte[] swappedArray = byteSwapArray(arrayA, 1);
70-
setConstantArgs(DUMMY_LOCATION, swappedArray, offsetA, lengthA, false);
71-
test(getTStringOpsMethod("calcStringAttributesUTF16FE", byte[].class, long.class, int.class, boolean.class), null, DUMMY_LOCATION, swappedArray, offsetA, lengthA, false);
70+
setConstantArgs(DUMMY_LOCATION, swappedArray, offsetA, lengthA);
71+
test(getTStringOpsMethod("calcStringAttributesUTF16FE", byte[].class, long.class, int.class), null, DUMMY_LOCATION, swappedArray, offsetA, lengthA);
7272
}
7373

7474
@Test

compiler/src/jdk.graal.compiler.test/src/jdk/graal/compiler/truffle/test/strings/TStringOpsCalcStringAttributesUTF16Test.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,12 +212,12 @@ public void testUnknown() {
212212

213213
@Test
214214
public void testForeignEndianValid() {
215-
testWithNative(getTStringOpsMethod("calcStringAttributesUTF16FE", byte[].class, long.class, int.class, boolean.class), null, DUMMY_LOCATION, byteSwapArray(array, 1), offset, length, true);
215+
testWithNative(getTStringOpsMethod("calcStringAttributesUTF16FEAssumeValid", byte[].class, long.class, int.class), null, DUMMY_LOCATION, byteSwapArray(array, 1), offset, length);
216216
}
217217

218218
@Test
219219
public void testForeignEndianUnknown() {
220-
testWithNative(getTStringOpsMethod("calcStringAttributesUTF16FE", byte[].class, long.class, int.class, boolean.class), null, DUMMY_LOCATION, byteSwapArray(array, 1), offset, length, false);
220+
testWithNative(getTStringOpsMethod("calcStringAttributesUTF16FE", byte[].class, long.class, int.class), null, DUMMY_LOCATION, byteSwapArray(array, 1), offset, length);
221221
}
222222

223223
@Test

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/lir/aarch64/AArch64CalcStringAttributesOp.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1471,10 +1471,11 @@ private void emitUTF32(AArch64MacroAssembler asm, Register arr, Register len, Re
14711471
asm.neon.orrVVV(FullReg, vecTmp1, vecTmp1, vecTmp2);
14721472
asm.bind(tailLessThan64Continue);
14731473
asm.neon.cmtstVVV(FullReg, Word, vecTmp2, vecTmp1, vecMask);
1474-
// convert mask to 0xffffff00
14751474
if (foreignEndian) {
1475+
// convert mask to 0x00ffffff
14761476
asm.neon.moveVI(FullReg, Word, vecMask, 0x00ffffff);
14771477
} else {
1478+
// convert mask to 0xffffff00
14781479
asm.neon.shlVVI(FullReg, Word, vecMask, vecMask, 1);
14791480
}
14801481
cbnzVector(asm, Word, vecTmp2, vecTmp2, tmp, true, latinFoundTail);
@@ -1483,10 +1484,11 @@ private void emitUTF32(AArch64MacroAssembler asm, Register arr, Register len, Re
14831484

14841485
asm.align(PREFERRED_BRANCH_TARGET_ALIGNMENT);
14851486
asm.bind(latinFound);
1486-
// convert mask to 0xffffff00
14871487
if (foreignEndian) {
1488+
// convert mask to 0x00ffffff
14881489
asm.neon.moveVI(FullReg, Word, vecMask, 0x00ffffff);
14891490
} else {
1491+
// convert mask to 0xffffff00
14901492
asm.neon.shlVVI(FullReg, Word, vecMask, vecMask, 1);
14911493
}
14921494
asm.jmp(latinContinue);
@@ -1514,10 +1516,11 @@ private void emitUTF32(AArch64MacroAssembler asm, Register arr, Register len, Re
15141516
asm.neon.orrVVV(FullReg, vecTmp1, vecTmp1, vecTmp2);
15151517
asm.bind(latinFoundTail);
15161518
asm.neon.cmtstVVV(FullReg, Word, vecTmp2, vecTmp1, vecMask);
1517-
// convert mask to 0xffff0000
15181519
if (foreignEndian) {
1520+
// convert mask to 0x0000ffff
15191521
asm.neon.ushrVVI(FullReg, Word, vecMask, vecMask, 8);
15201522
} else {
1523+
// convert mask to 0xffff0000
15211524
asm.neon.shlVVI(FullReg, Word, vecMask, vecMask, 8);
15221525
}
15231526
cbnzVector(asm, Word, vecTmp2, vecTmp2, tmp, true, bmpFoundTail);
@@ -1526,10 +1529,11 @@ private void emitUTF32(AArch64MacroAssembler asm, Register arr, Register len, Re
15261529

15271530
asm.align(PREFERRED_BRANCH_TARGET_ALIGNMENT);
15281531
asm.bind(bmpFound);
1529-
// convert mask to 0xffff0000
15301532
if (foreignEndian) {
1533+
// convert mask to 0x0000ffff
15311534
asm.neon.ushrVVI(FullReg, Word, vecMask, vecMask, 8);
15321535
} else {
1536+
// convert mask to 0xffff0000
15331537
asm.neon.shlVVI(FullReg, Word, vecMask, vecMask, 8);
15341538
}
15351539
asm.mov(ret, 0);

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/lir/amd64/AMD64CalcStringAttributesOp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1407,7 +1407,7 @@ private void utf32CheckSurrogates(AMD64MacroAssembler asm, Register vecArray, Re
14071407
}
14081408
// identify codepoints in the forbidden UTF-16 surrogate range [0xd800-0xdfff]
14091409
// native endian: ((codepoint >> 11) == 0x1b)
1410-
// foreign endian: ((codepoint & 0x00d80000) == 0x00f80000)
1410+
// foreign endian: ((codepoint & 0x00f80000) == 0x00d80000)
14111411
asm.pcmpeqd(vectorSize, vecArray, vecMaskSurrogate);
14121412
// check if a surrogate character was present
14131413
asm.ptest(vectorSize, vecArray, vecArray);

compiler/src/jdk.graal.compiler/src/jdk/graal/compiler/replacements/nodes/ArrayIndexOfNode.java

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,6 @@ public static EnumSet<AMD64.CPUFeature> amd64FeaturesSSE41() {
198198
return EnumSet.of(AMD64.CPUFeature.SSE2, AMD64.CPUFeature.SSSE3, AMD64.CPUFeature.SSE4_1);
199199
}
200200

201-
public static EnumSet<AArch64.CPUFeature> aarch64FeaturesNone() {
202-
return EnumSet.noneOf(AArch64.CPUFeature.class);
203-
}
204-
205201
public static EnumSet<AArch64.CPUFeature> minFeaturesAARCH64() {
206202
return EnumSet.noneOf(AArch64.CPUFeature.class);
207203
}
@@ -436,18 +432,18 @@ public static native int optimizedArrayIndexOf(
436432
@GenerateStub(name = "indexOf2S2", parameters = {"S2", "MatchAny"})
437433
@GenerateStub(name = "indexOf2S4", parameters = {"S4", "MatchAny"})
438434
@GenerateStub(name = "indexOfRange1S1", parameters = {"S1", "MatchRange"})
439-
@GenerateStub(name = "indexOfRange1S2", parameters = {"S2", "MatchRange"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
440-
@GenerateStub(name = "indexOfRange1S4", parameters = {"S4", "MatchRange"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
435+
@GenerateStub(name = "indexOfRange1S2", parameters = {"S2", "MatchRange"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
436+
@GenerateStub(name = "indexOfRange1S4", parameters = {"S4", "MatchRange"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
441437
@GenerateStub(name = "indexOfWithMaskS1", parameters = {"S1", "WithMask"})
442438
@GenerateStub(name = "indexOfWithMaskS2", parameters = {"S2", "WithMask"})
443439
@GenerateStub(name = "indexOfWithMaskS4", parameters = {"S4", "WithMask"})
444440
@GenerateStub(name = "indexOfTwoConsecutiveS1", parameters = {"S1", "FindTwoConsecutive"})
445441
@GenerateStub(name = "indexOfTwoConsecutiveS2", parameters = {"S2", "FindTwoConsecutive"})
446442
@GenerateStub(name = "indexOfTwoConsecutiveS4", parameters = {"S4", "FindTwoConsecutive"})
447443
@GenerateStub(name = "indexOfRangeForeignEndian1S2", parameters = {"S2",
448-
"MatchRangeForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
444+
"MatchRangeForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
449445
@GenerateStub(name = "indexOfRangeForeignEndian1S4", parameters = {"S4",
450-
"MatchRangeForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
446+
"MatchRangeForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
451447
public static native int optimizedArrayIndexOf(
452448
@ConstantNodeParameter Stride stride,
453449
@ConstantNodeParameter ArrayIndexOfVariant variant,
@@ -481,15 +477,15 @@ public static native int optimizedArrayIndexOf(
481477
@GenerateStub(name = "indexOf4S2", parameters = {"S2", "MatchAny"})
482478
@GenerateStub(name = "indexOf4S4", parameters = {"S4", "MatchAny"})
483479
@GenerateStub(name = "indexOfRange2S1", parameters = {"S1", "MatchRange"})
484-
@GenerateStub(name = "indexOfRange2S2", parameters = {"S2", "MatchRange"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
485-
@GenerateStub(name = "indexOfRange2S4", parameters = {"S4", "MatchRange"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
480+
@GenerateStub(name = "indexOfRange2S2", parameters = {"S2", "MatchRange"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
481+
@GenerateStub(name = "indexOfRange2S4", parameters = {"S4", "MatchRange"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
486482
@GenerateStub(name = "indexOfTwoConsecutiveWithMaskS1", parameters = {"S1", "FindTwoConsecutiveWithMask"})
487483
@GenerateStub(name = "indexOfTwoConsecutiveWithMaskS2", parameters = {"S2", "FindTwoConsecutiveWithMask"})
488484
@GenerateStub(name = "indexOfTwoConsecutiveWithMaskS4", parameters = {"S4", "FindTwoConsecutiveWithMask"})
489485
@GenerateStub(name = "indexOfRangeForeignEndian2S2", parameters = {"S2",
490-
"MatchRangeForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
486+
"MatchRangeForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
491487
@GenerateStub(name = "indexOfRangeForeignEndian2S4", parameters = {"S4",
492-
"MatchRangeForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
488+
"MatchRangeForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
493489
public static native int optimizedArrayIndexOf(
494490
@ConstantNodeParameter Stride stride,
495491
@ConstantNodeParameter ArrayIndexOfVariant variant,
@@ -503,11 +499,11 @@ public static native int optimizedArrayIndexOf(
503499
Object array, long arrayOffset, int arrayLength, int fromIndex, int v1, int v2, int v3, int v4);
504500

505501
@NodeIntrinsic
506-
@GenerateStub(name = "indexOfTableS1", parameters = {"S1", "Table"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
507-
@GenerateStub(name = "indexOfTableS2", parameters = {"S2", "Table"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
508-
@GenerateStub(name = "indexOfTableS4", parameters = {"S4", "Table"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
509-
@GenerateStub(name = "indexOfTableForeignEndianS2", parameters = {"S2", "TableForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
510-
@GenerateStub(name = "indexOfTableForeignEndianS4", parameters = {"S4", "TableForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41", minimumCPUFeaturesAARCH64 = "aarch64FeaturesNone")
502+
@GenerateStub(name = "indexOfTableS1", parameters = {"S1", "Table"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
503+
@GenerateStub(name = "indexOfTableS2", parameters = {"S2", "Table"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
504+
@GenerateStub(name = "indexOfTableS4", parameters = {"S4", "Table"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
505+
@GenerateStub(name = "indexOfTableForeignEndianS2", parameters = {"S2", "TableForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
506+
@GenerateStub(name = "indexOfTableForeignEndianS4", parameters = {"S4", "TableForeignEndian"}, minimumCPUFeaturesAMD64 = "amd64FeaturesSSE41")
511507
public static native int optimizedArrayIndexOfTable(
512508
@ConstantNodeParameter Stride stride,
513509
@ConstantNodeParameter ArrayIndexOfVariant variant,

regex/src/com.oracle.truffle.regex.test/src/com/oracle/truffle/regex/tregex/StringTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,13 @@ public void testEncodings() {
6060
}
6161

6262
static void testEncodingsRange(int lo, int hi) {
63+
int capacity = hi - lo + 1;
6364
AbstractStringBuffer[] sbs = {
64-
new StringBufferUTF8(hi - lo),
65-
new StringBufferUTF16(hi - lo, Encoding.UTF_16),
66-
new StringBufferUTF16(hi - lo, Encoding.UTF_16FE),
67-
new StringBufferUTF32(hi - lo, Encoding.UTF_32),
68-
new StringBufferUTF32(hi - lo, Encoding.UTF_32FE)
65+
new StringBufferUTF8(capacity),
66+
new StringBufferUTF16(capacity, Encoding.UTF_16),
67+
new StringBufferUTF16(capacity, Encoding.UTF_16BE),
68+
new StringBufferUTF32(capacity, Encoding.UTF_32),
69+
new StringBufferUTF32(capacity, Encoding.UTF_32BE)
6970
};
7071

7172
for (AbstractStringBuffer sb : sbs) {

regex/src/com.oracle.truffle.regex/src/com/oracle/truffle/regex/RegexOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -873,12 +873,12 @@ private Encoding parseEncoding() throws RegexSyntaxException {
873873
return expectEncodingValue(Encoding.UTF_8);
874874
case '1':
875875
if (lookAheadInKey(6) == 'B') {
876-
return expectEncodingValue(Encoding.UTF_16FE);
876+
return expectEncodingValue(Encoding.UTF_16BE);
877877
}
878878
return expectEncodingValue(Encoding.UTF_16);
879879
case '3':
880880
if (lookAheadInKey(6) == 'B') {
881-
return expectEncodingValue(Encoding.UTF_32FE);
881+
return expectEncodingValue(Encoding.UTF_32BE);
882882
}
883883
return expectEncodingValue(Encoding.UTF_32);
884884
default:

regex/src/com.oracle.truffle.regex/src/com/oracle/truffle/regex/tregex/nodes/TRegexExecutorBaseNode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ public final boolean isUTF8() {
8383
}
8484

8585
public final boolean isUTF16() {
86-
return getEncoding() == Encoding.UTF_16 || getEncoding() == Encoding.UTF_16FE;
86+
return getEncoding().isUTF16();
8787
}
8888

8989
public final boolean isUTF32() {
90-
return getEncoding() == Encoding.UTF_32 || getEncoding() == Encoding.UTF_32FE;
90+
return getEncoding().isUTF32();
9191
}
9292

9393
public final boolean isBooleanMatch() {

regex/src/com.oracle.truffle.regex/src/com/oracle/truffle/regex/tregex/nodes/input/InputReadNode.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,15 @@
4141
package com.oracle.truffle.regex.tregex.nodes.input;
4242

4343
import static com.oracle.truffle.regex.tregex.string.Encoding.UTF_16;
44-
import static com.oracle.truffle.regex.tregex.string.Encoding.UTF_16FE;
44+
import static com.oracle.truffle.regex.tregex.string.Encoding.UTF_16BE;
4545
import static com.oracle.truffle.regex.tregex.string.Encoding.UTF_16_RAW;
46+
import static com.oracle.truffle.regex.tregex.string.Encoding.UTF_32;
47+
import static com.oracle.truffle.regex.tregex.string.Encoding.UTF_32BE;
4648

4749
import com.oracle.truffle.api.dsl.Cached;
4850
import com.oracle.truffle.api.dsl.Fallback;
4951
import com.oracle.truffle.api.dsl.GenerateInline;
5052
import com.oracle.truffle.api.dsl.GenerateUncached;
51-
import com.oracle.truffle.api.dsl.ImportStatic;
5253
import com.oracle.truffle.api.dsl.NeverDefault;
5354
import com.oracle.truffle.api.dsl.Specialization;
5455
import com.oracle.truffle.api.nodes.Node;
@@ -57,18 +58,17 @@
5758

5859
@GenerateUncached
5960
@GenerateInline
60-
@ImportStatic(Encoding.class)
6161
public abstract class InputReadNode extends Node {
6262

6363
public abstract int execute(Node node, TruffleString input, int index, Encoding encoding);
6464

6565
@Specialization(guards = "isUTF16(encoding)")
6666
static int doTStringUTF16(TruffleString input, int index, @SuppressWarnings("unused") Encoding encoding,
6767
@Cached TruffleString.ReadCharUTF16Node readRawNode) {
68-
return encoding == UTF_16FE ? readRawNode.executeBE(input, index) : readRawNode.execute(input, index);
68+
return encoding == UTF_16BE ? readRawNode.executeBE(input, index) : readRawNode.execute(input, index);
6969
}
7070

71-
@Specialization(guards = "encoding == UTF_32 || encoding == UTF_32FE")
71+
@Specialization(guards = "isUTF32(encoding)")
7272
static int doTStringUTF32(TruffleString input, int index, @SuppressWarnings("unused") Encoding encoding,
7373
@Cached TruffleString.CodePointAtIndexNode readRawNode) {
7474
return readRawNode.execute(input, index, encoding.getTStringEncoding());
@@ -86,6 +86,10 @@ public static InputReadNode create() {
8686
}
8787

8888
static boolean isUTF16(Encoding encoding) {
89-
return encoding == UTF_16 || encoding == UTF_16_RAW || encoding == UTF_16FE;
89+
return encoding == UTF_16 || encoding == UTF_16_RAW || encoding == UTF_16BE;
90+
}
91+
92+
static boolean isUTF32(Encoding encoding) {
93+
return encoding == UTF_32 || encoding == UTF_32BE;
9094
}
9195
}

0 commit comments

Comments
 (0)