mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-12 12:29:41 +01:00
Compare commits
637 Commits
openjdk-lo
...
jdk-19+10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5b466657e | ||
|
|
fef5d74d0e | ||
|
|
a86cab8d42 | ||
|
|
0af356bb4b | ||
|
|
a24498b777 | ||
|
|
1aff44b2cf | ||
|
|
394ce5f948 | ||
|
|
745f7e7d92 | ||
|
|
18704653dc | ||
|
|
2fe0bf66b7 | ||
|
|
bc6148407e | ||
|
|
2112a9dc49 | ||
|
|
1c12b159ff | ||
|
|
f82866bc79 | ||
|
|
8819f45357 | ||
|
|
622970e47c | ||
|
|
11f943d148 | ||
|
|
b1564624ce | ||
|
|
f33329eb7f | ||
|
|
d4cd8dfedb | ||
|
|
1a7b70a8be | ||
|
|
16f649b9c5 | ||
|
|
88fc3bfdff | ||
|
|
f07b816523 | ||
|
|
9d0a4c3f2e | ||
|
|
2604a88fbb | ||
|
|
534e557874 | ||
|
|
95f198b2b1 | ||
|
|
c61d629add | ||
|
|
2597206242 | ||
|
|
2632d40dfc | ||
|
|
46f522962f | ||
|
|
1ef45c5bbd | ||
|
|
483d4b97e0 | ||
|
|
adbe066102 | ||
|
|
eff5dafba9 | ||
|
|
8acfbc2e21 | ||
|
|
67077a0430 | ||
|
|
58dae60da0 | ||
|
|
aa918a6ec4 | ||
|
|
6fdfe0458d | ||
|
|
c3179a8760 | ||
|
|
4032fe76dc | ||
|
|
83ffbd2e7a | ||
|
|
0786ddb471 | ||
|
|
c5ff6e45de | ||
|
|
8886839779 | ||
|
|
e75e8cd708 | ||
|
|
e73ee0ca10 | ||
|
|
f399ae558e | ||
|
|
4ff5824f5b | ||
|
|
d254cf28c5 | ||
|
|
4d64076058 | ||
|
|
90939cb801 | ||
|
|
3a13425bc9 | ||
|
|
8441d51e71 | ||
|
|
a037b3c358 | ||
|
|
65831eb294 | ||
|
|
eee6a5622d | ||
|
|
84868e39be | ||
|
|
58c2bd3158 | ||
|
|
83b6e4bc04 | ||
|
|
039313d65d | ||
|
|
3ce1c5b6ce | ||
|
|
d442328bc2 | ||
|
|
c820d1acb7 | ||
|
|
fa0a72c030 | ||
|
|
7218d8449b | ||
|
|
fd8a3dcc52 | ||
|
|
178b962e01 | ||
|
|
c5c8c0644d | ||
|
|
f823bed043 | ||
|
|
8b384b986a | ||
|
|
bb2e10ccea | ||
|
|
69e390a0e8 | ||
|
|
f092babafb | ||
|
|
f924e50c42 | ||
|
|
072e7b4da0 | ||
|
|
cb2f8caed2 | ||
|
|
fc77217814 | ||
|
|
bce5dd1766 | ||
|
|
13f739d330 | ||
|
|
2f46af05ce | ||
|
|
fb17a8ece0 | ||
|
|
d658d945cf | ||
|
|
5fb56dbb0b | ||
|
|
92f4f40da6 | ||
|
|
7f19c70070 | ||
|
|
380378c551 | ||
|
|
83d67452da | ||
|
|
f5d8cebbb6 | ||
|
|
861f2797f7 | ||
|
|
f2a9627c05 | ||
|
|
4eacacb5ad | ||
|
|
2f71a6b39e | ||
|
|
8a662105c2 | ||
|
|
1dfc94dd56 | ||
|
|
2ed1f4cf32 | ||
|
|
a0f6f2409e | ||
|
|
22a1a32c7e | ||
|
|
76677716ab | ||
|
|
4c169495a2 | ||
|
|
f3e8242683 | ||
|
|
95fd9d20f3 | ||
|
|
f5e0870091 | ||
|
|
f2302822c0 | ||
|
|
5dfff7406e | ||
|
|
2f48a3f032 | ||
|
|
f7814c120b | ||
|
|
77b0240d44 | ||
|
|
42e272e181 | ||
|
|
48523b0908 | ||
|
|
8e4ef818a9 | ||
|
|
f5d6fddc6d | ||
|
|
d4b99bc029 | ||
|
|
66b2c3b66e | ||
|
|
7207f2a3b5 | ||
|
|
3d926dd66e | ||
|
|
51b53a821b | ||
|
|
46c6c6f308 | ||
|
|
c936e7059b | ||
|
|
01f93ddf18 | ||
|
|
63e11cfa3f | ||
|
|
e44dc638b8 | ||
|
|
b6935dfb86 | ||
|
|
130cf46dcb | ||
|
|
cda9c3011b | ||
|
|
86c24b319e | ||
|
|
1f92660937 | ||
|
|
010965c86a | ||
|
|
63a00a0df2 | ||
|
|
5ab22e88da | ||
|
|
fe547eacd7 | ||
|
|
a95ee5ada2 | ||
|
|
a46307a79d | ||
|
|
fe0118f804 | ||
|
|
e3d5c9e7c4 | ||
|
|
47800bf3da | ||
|
|
9d578537ce | ||
|
|
87ab0994de | ||
|
|
ce71e8b281 | ||
|
|
4ea6037ea5 | ||
|
|
ae2504b469 | ||
|
|
de826ba18a | ||
|
|
4304a7728e | ||
|
|
ab638341de | ||
|
|
48a32b5f3a | ||
|
|
97af323041 | ||
|
|
d32f99ee65 | ||
|
|
85d839fb4f | ||
|
|
9ca7ff3e4f | ||
|
|
c74b8f48fa | ||
|
|
a18beb4797 | ||
|
|
fdd9ca74bd | ||
|
|
d95de5c7fe | ||
|
|
bde2b3783e | ||
|
|
2531c332f8 | ||
|
|
d1cc5fda8f | ||
|
|
4532c3a163 | ||
|
|
5080e815b4 | ||
|
|
1f6fcbe2f3 | ||
|
|
c5a86120df | ||
|
|
86debf42f5 | ||
|
|
d37fb1df46 | ||
|
|
18a7dc8c08 | ||
|
|
16ec47d5e5 | ||
|
|
de3113b998 | ||
|
|
0e70d4504c | ||
|
|
1ea01465ab | ||
|
|
9c0104b9c9 | ||
|
|
4dbebb62aa | ||
|
|
4191b2b9b9 | ||
|
|
96d0df72db | ||
|
|
ee3be0bb56 | ||
|
|
74921e8422 | ||
|
|
39165613aa | ||
|
|
f991891b0b | ||
|
|
319b77492f | ||
|
|
993a2488ef | ||
|
|
dcc666d53d | ||
|
|
bdda43e066 | ||
|
|
091aff92e2 | ||
|
|
61794c5039 | ||
|
|
c6ed2046b4 | ||
|
|
251351f494 | ||
|
|
be9f984cae | ||
|
|
268880b471 | ||
|
|
d366d15d67 | ||
|
|
9139159898 | ||
|
|
0740ac474c | ||
|
|
ff34d624ba | ||
|
|
95ee9bf7be | ||
|
|
409382ba4b | ||
|
|
cb8a82ee24 | ||
|
|
6de90ad980 | ||
|
|
ed826f2927 | ||
|
|
8a3cca09ba | ||
|
|
973dda5ce0 | ||
|
|
55f180fb7d | ||
|
|
178ac74653 | ||
|
|
a1d1e4753b | ||
|
|
094db1a3ee | ||
|
|
78574057a4 | ||
|
|
40a2ce2033 | ||
|
|
6d242e4065 | ||
|
|
ece89c6df1 | ||
|
|
b94ebaa09c | ||
|
|
a3a0dcd921 | ||
|
|
cab590517b | ||
|
|
7f68759c60 | ||
|
|
94380d0e46 | ||
|
|
0dba170791 | ||
|
|
2ea0edf2c4 | ||
|
|
890830196d | ||
|
|
c2ee1b33c3 | ||
|
|
16e0ad0ad0 | ||
|
|
d2a50a6492 | ||
|
|
b5de2cc9d3 | ||
|
|
0c42e43f77 | ||
|
|
a5a11f14b9 | ||
|
|
b8365aa485 | ||
|
|
4b2370e576 | ||
|
|
e1d8f55564 | ||
|
|
f34f8d4d6a | ||
|
|
a07e19d833 | ||
|
|
ed0df2fa1f | ||
|
|
c180070cb5 | ||
|
|
a24f44d17d | ||
|
|
e72eefd9f6 | ||
|
|
2c64a7f2e3 | ||
|
|
a183bfb436 | ||
|
|
ef08e2c63b | ||
|
|
2eab86b513 | ||
|
|
295c0474c4 | ||
|
|
841eae6f52 | ||
|
|
76fe03fe01 | ||
|
|
cebaad1c94 | ||
|
|
cbe8395ace | ||
|
|
f4575e4052 | ||
|
|
674a97b27e | ||
|
|
fe77250fa4 | ||
|
|
496baada10 | ||
|
|
4503d0431c | ||
|
|
36fbec78be | ||
|
|
28796cbd1d | ||
|
|
c43ce85f01 | ||
|
|
1b14157677 | ||
|
|
2155afe2a8 | ||
|
|
295b263fa9 | ||
|
|
b32774653f | ||
|
|
53804720a0 | ||
|
|
a59d717fd6 | ||
|
|
f35df5bfb5 | ||
|
|
e3076552ec | ||
|
|
52ddbe2dcd | ||
|
|
8e82d0021c | ||
|
|
a5416669a5 | ||
|
|
a825a4a1db | ||
|
|
0b5c54be67 | ||
|
|
acd98294c6 | ||
|
|
dae2226a53 | ||
|
|
1c7769d35b | ||
|
|
4b329addf1 | ||
|
|
2b13341500 | ||
|
|
d53d8bd708 | ||
|
|
18c9cb0789 | ||
|
|
44db4794d2 | ||
|
|
4501ddda7f | ||
|
|
afd2805ef2 | ||
|
|
f05ff99654 | ||
|
|
7a0a6c95a5 | ||
|
|
0567a84d49 | ||
|
|
ead9feccae | ||
|
|
d1569111d7 | ||
|
|
9bf6ffa19f | ||
|
|
30cd47d421 | ||
|
|
54c9de26ab | ||
|
|
b9ae77906e | ||
|
|
7d2ef9d984 | ||
|
|
c1e4f3dd1b | ||
|
|
2920ce5487 | ||
|
|
6287ae3707 | ||
|
|
ab2c8d3c9b | ||
|
|
47b1c51bbd | ||
|
|
19f877981e | ||
|
|
6352c020c2 | ||
|
|
35ee0f38c6 | ||
|
|
293fb46f7c | ||
|
|
2426d58e59 | ||
|
|
02390c79b1 | ||
|
|
3419ff7ba7 | ||
|
|
d48279b0bf | ||
|
|
9636502658 | ||
|
|
0ea2b39035 | ||
|
|
ec8b6acff3 | ||
|
|
a4d201909c | ||
|
|
98b157a79a | ||
|
|
20297deaeb | ||
|
|
3f747368b9 | ||
|
|
cf977e88ec | ||
|
|
0bf95a1a73 | ||
|
|
e683d4ac8d | ||
|
|
1022cbdf98 | ||
|
|
c4a624d463 | ||
|
|
4616c13c2f | ||
|
|
98d96a7707 | ||
|
|
d1efb0cc56 | ||
|
|
6179e13b08 | ||
|
|
5523ddebd5 | ||
|
|
dac15efc1b | ||
|
|
03680bea1c | ||
|
|
84fa0d8c7d | ||
|
|
be0538d7c8 | ||
|
|
610a12904d | ||
|
|
f5de6fa799 | ||
|
|
e20c6bf972 | ||
|
|
b20b11cf82 | ||
|
|
96114315cf | ||
|
|
cc2f474c18 | ||
|
|
8931c12258 | ||
|
|
28e02fa2cb | ||
|
|
68b40ec286 | ||
|
|
39b1d75f25 | ||
|
|
5af7f25814 | ||
|
|
f37bfeadcf | ||
|
|
44fe958c8a | ||
|
|
69cfa9cb36 | ||
|
|
b0496b0df6 | ||
|
|
4eb4f94db0 | ||
|
|
4f4da3b172 | ||
|
|
af6c9abafa | ||
|
|
6d3fd860d7 | ||
|
|
82d6afe675 | ||
|
|
3603e754ce | ||
|
|
a6fd2c3114 | ||
|
|
4525a4b94d | ||
|
|
abf6fdd75a | ||
|
|
9c02c4c55f | ||
|
|
12034273c7 | ||
|
|
4d3663a6d0 | ||
|
|
cb7482d5bd | ||
|
|
ae7877df2e | ||
|
|
78b2c8419b | ||
|
|
3adc111766 | ||
|
|
aa28430bdd | ||
|
|
4be02d3155 | ||
|
|
5832a34404 | ||
|
|
6b6f829b46 | ||
|
|
c372990f5f | ||
|
|
518160353a | ||
|
|
afd0dc76b6 | ||
|
|
b02ea6dc3c | ||
|
|
fa47c368d4 | ||
|
|
9a94fbc793 | ||
|
|
1fddb03d93 | ||
|
|
7ee905a8a0 | ||
|
|
e069a3b8bf | ||
|
|
f18deeb69e | ||
|
|
29f61b3b0a | ||
|
|
feff0e5578 | ||
|
|
3a421e4b78 | ||
|
|
1a20628757 | ||
|
|
46fd683820 | ||
|
|
e314a4cfda | ||
|
|
bdfa15d92c | ||
|
|
fd9fb9a4af | ||
|
|
20ef954158 | ||
|
|
848b16a3f9 | ||
|
|
b734dc86ee | ||
|
|
7acc4c7dfe | ||
|
|
bd35f9740d | ||
|
|
88a8b239aa | ||
|
|
9e3f68d8f4 | ||
|
|
9eb50a5ee4 | ||
|
|
64c0c0e109 | ||
|
|
d175d33f44 | ||
|
|
1725f77bcd | ||
|
|
e38df21641 | ||
|
|
645b38d586 | ||
|
|
eb9499535c | ||
|
|
9452262652 | ||
|
|
48c5f3c715 | ||
|
|
39f140a201 | ||
|
|
37143c09ab | ||
|
|
262f2efd6c | ||
|
|
7b6738fa02 | ||
|
|
5d52bf9987 | ||
|
|
3edcb13272 | ||
|
|
9e536b6470 | ||
|
|
71ca85f5a6 | ||
|
|
431bd9a66d | ||
|
|
4d9b3f4cee | ||
|
|
a30aa52b77 | ||
|
|
590eb86033 | ||
|
|
c6196662b8 | ||
|
|
fef8f2d300 | ||
|
|
9a18190a4f | ||
|
|
22b7295e75 | ||
|
|
9b0f689557 | ||
|
|
eab4e6d670 | ||
|
|
0d1a97f793 | ||
|
|
c359c358c8 | ||
|
|
09d61b6187 | ||
|
|
fb8fdc0fbf | ||
|
|
d9dd485b95 | ||
|
|
cf283e2a33 | ||
|
|
f180530935 | ||
|
|
ac98b22040 | ||
|
|
61b8944327 | ||
|
|
35734ad080 | ||
|
|
e8f494cd5f | ||
|
|
c809d34f9e | ||
|
|
4b520f0001 | ||
|
|
9f30ec174f | ||
|
|
dd76a28d44 | ||
|
|
c6b027559c | ||
|
|
84976b4531 | ||
|
|
965c64bca7 | ||
|
|
45f20633f6 | ||
|
|
064ee6ae13 | ||
|
|
35172cdaf3 | ||
|
|
237f861e82 | ||
|
|
9209e6d6ae | ||
|
|
0a839b434b | ||
|
|
ff85659311 | ||
|
|
6fcaa322d9 | ||
|
|
c17a0122c4 | ||
|
|
b61a4af719 | ||
|
|
6933934633 | ||
|
|
14a90e536b | ||
|
|
33814791d9 | ||
|
|
65eb066b63 | ||
|
|
4851948059 | ||
|
|
67e3d51d68 | ||
|
|
cb25029885 | ||
|
|
1228b2f1f8 | ||
|
|
d70545d710 | ||
|
|
0a094d7c28 | ||
|
|
ddddec7d74 | ||
|
|
8fed8ab29c | ||
|
|
f54ce84474 | ||
|
|
ff0cb98965 | ||
|
|
ece98d859d | ||
|
|
525b20fce0 | ||
|
|
4f0b65023f | ||
|
|
bd339aa6c0 | ||
|
|
319d23033f | ||
|
|
13bfb49725 | ||
|
|
f16f6a95df | ||
|
|
1c688f4137 | ||
|
|
3aaa0982d8 | ||
|
|
36f41cbe11 | ||
|
|
c4518e257c | ||
|
|
67141849d9 | ||
|
|
cfee4512f7 | ||
|
|
c3d0a94040 | ||
|
|
5aecb37211 | ||
|
|
9e0244762c | ||
|
|
08e14c605e | ||
|
|
c08b2ac34c | ||
|
|
4c52eb3943 | ||
|
|
d46410c553 | ||
|
|
2bbeae3f05 | ||
|
|
86d0abb66b | ||
|
|
3121898c33 | ||
|
|
bf7bcaacaa | ||
|
|
6d7db4b0b3 | ||
|
|
126328cb62 | ||
|
|
ec5a455efb | ||
|
|
6504458d87 | ||
|
|
2f13872d51 | ||
|
|
2f7665b829 | ||
|
|
92307e5a94 | ||
|
|
bbc1ddb474 | ||
|
|
4471e95174 | ||
|
|
d7e6e9bd0b | ||
|
|
0d190961f2 | ||
|
|
d9b1bb5860 | ||
|
|
dee447f8ae | ||
|
|
40df5df95e | ||
|
|
debaa28e9c | ||
|
|
76477f8cdb | ||
|
|
11d88ce82e | ||
|
|
ad34f03b54 | ||
|
|
4ff6720573 | ||
|
|
928e347736 | ||
|
|
354c904798 | ||
|
|
6613ce64d7 | ||
|
|
06b4d494bf | ||
|
|
1f101b04f4 | ||
|
|
8f969a1362 | ||
|
|
79b614cc19 | ||
|
|
5fa13bb4a3 | ||
|
|
642ab34a60 | ||
|
|
4aefd8b8b6 | ||
|
|
2f8a2fd077 | ||
|
|
8d1a1e83f4 | ||
|
|
e14fb4f4aa | ||
|
|
77757ba974 | ||
|
|
f203723fc7 | ||
|
|
d47af74e4c | ||
|
|
d65c665839 | ||
|
|
4243f4c998 | ||
|
|
967ef0c482 | ||
|
|
62d03c2836 | ||
|
|
6a42fbaf9b | ||
|
|
8d0f385fd0 | ||
|
|
b3dbfc6452 | ||
|
|
8703f14808 | ||
|
|
7c792f27a8 | ||
|
|
bc12381105 | ||
|
|
2dbb936da9 | ||
|
|
456bd1ed1c | ||
|
|
844dfb3ab6 | ||
|
|
ab490534a1 | ||
|
|
523300e796 | ||
|
|
7b429a64ce | ||
|
|
564c8c6390 | ||
|
|
9a0e890056 | ||
|
|
590fa9d8d7 | ||
|
|
5cd9515333 | ||
|
|
a741b927a3 | ||
|
|
b6ec39cc84 | ||
|
|
0f98efbf2f | ||
|
|
9d43d25da8 | ||
|
|
0f4807e8fe | ||
|
|
8b5de27ce1 | ||
|
|
f326305396 | ||
|
|
f8f9148016 | ||
|
|
191f7307bb | ||
|
|
99a8351bc9 | ||
|
|
d1e6f26160 | ||
|
|
95a3010acf | ||
|
|
58b5fb3233 | ||
|
|
93c7d90c55 | ||
|
|
06f3713271 | ||
|
|
e7244c19f4 | ||
|
|
1ffdc52cf0 | ||
|
|
863bffb3b6 | ||
|
|
9bdf6eb7b2 | ||
|
|
09cf5f19d7 | ||
|
|
8dc4437d00 | ||
|
|
6b906bbab1 | ||
|
|
c295e71b49 | ||
|
|
3a1fca3adf | ||
|
|
2a59ebbba3 | ||
|
|
b4b0328d62 | ||
|
|
299022dfac | ||
|
|
4f607f2ada | ||
|
|
7fea10327e | ||
|
|
54b800d56d | ||
|
|
2945b786ba | ||
|
|
6588bedc19 | ||
|
|
70c6df6be4 | ||
|
|
d52392c15e | ||
|
|
22c15ddae5 | ||
|
|
9d99a377bf | ||
|
|
4669bcd877 | ||
|
|
a3b1c6b036 | ||
|
|
9df200f749 | ||
|
|
7aff03aee1 | ||
|
|
ff2ca4f21b | ||
|
|
bc0466c7ca | ||
|
|
04ad668921 | ||
|
|
558a6824c6 | ||
|
|
730f67081d | ||
|
|
87cc4e5009 | ||
|
|
214f98f6b0 | ||
|
|
ad1dc9c2ae | ||
|
|
eaefb1a1ed | ||
|
|
9d5ae2e380 | ||
|
|
d64820dfef | ||
|
|
04ee9211fc | ||
|
|
2be3e7ef1c | ||
|
|
f1fbba23eb | ||
|
|
9a478b347e | ||
|
|
a6903f806a | ||
|
|
dfb15c3e34 | ||
|
|
e49d4a9870 | ||
|
|
3f41fdecdb | ||
|
|
713fbeb050 | ||
|
|
734143918d | ||
|
|
d0ea7c9db9 | ||
|
|
97c5cd7fac | ||
|
|
bf2826499a | ||
|
|
00c0d10870 | ||
|
|
fb623f1d2e | ||
|
|
9ee3ccfee2 | ||
|
|
803cb8a768 | ||
|
|
997b1eea6e | ||
|
|
6aeb40cf2a | ||
|
|
84d3333c7a | ||
|
|
1128674d7f | ||
|
|
f31dead6c5 | ||
|
|
54517fa3d8 | ||
|
|
ac7430cf7e | ||
|
|
f7309060de | ||
|
|
db3d6d7724 | ||
|
|
8c0bb53f5b | ||
|
|
f90425a1cb | ||
|
|
f4f2f32cd1 | ||
|
|
29bd73638a | ||
|
|
467f654916 | ||
|
|
ff5d41762d | ||
|
|
517967284c | ||
|
|
8549d8b569 | ||
|
|
819f9bd084 | ||
|
|
ad1282842c | ||
|
|
4c78c9ab80 | ||
|
|
06206c7199 | ||
|
|
31fbb8723e | ||
|
|
deaf75a585 | ||
|
|
63e43030ed | ||
|
|
6f0e8da6d3 | ||
|
|
3c10b5db38 | ||
|
|
cc44e13797 | ||
|
|
905b763942 | ||
|
|
36676db2fd | ||
|
|
a5f5d60f25 | ||
|
|
8fbe1724e0 | ||
|
|
022e4f0f1c | ||
|
|
b46f0b0b1f | ||
|
|
0bfc204a78 | ||
|
|
b17f8d5b6c | ||
|
|
769f14db84 | ||
|
|
e45e0b05b9 | ||
|
|
a68f28cea6 | ||
|
|
9cd709060c | ||
|
|
3607a5cdd9 | ||
|
|
abab1738a7 | ||
|
|
6412d57a0a | ||
|
|
fffa73c1ef | ||
|
|
247ea71d24 | ||
|
|
b9a477bf19 | ||
|
|
bb7efb3517 | ||
|
|
8494fec665 | ||
|
|
f5d7c777bc |
91
.github/workflows/submit.yml
vendored
91
.github/workflows/submit.yml
vendored
@@ -183,7 +183,6 @@ jobs:
|
||||
--with-conf-name=linux-x64
|
||||
${{ matrix.flags }}
|
||||
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
||||
--with-version-build=0
|
||||
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
||||
--with-jtreg=${HOME}/jtreg
|
||||
--with-gtest=${GITHUB_WORKSPACE}/gtest
|
||||
@@ -201,8 +200,8 @@ jobs:
|
||||
with:
|
||||
name: transient_jdk-linux-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
||||
path: |
|
||||
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
|
||||
linux_x64_test:
|
||||
name: Linux x64
|
||||
@@ -308,23 +307,23 @@ jobs:
|
||||
|
||||
- name: Unpack jdk
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}"
|
||||
mkdir -p "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin${{ matrix.artifact }}"
|
||||
|
||||
- name: Unpack tests
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}"
|
||||
mkdir -p "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin-tests${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin-tests${{ matrix.artifact }}"
|
||||
|
||||
- name: Find root of jdk image dir
|
||||
run: |
|
||||
imageroot=`find ${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }} -name release -type f`
|
||||
imageroot=`find ${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin${{ matrix.artifact }} -name release -type f`
|
||||
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
|
||||
|
||||
- name: Run tests
|
||||
run: >
|
||||
JDK_IMAGE_DIR=${{ env.imageroot }}
|
||||
TEST_IMAGE_DIR=${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}
|
||||
TEST_IMAGE_DIR=${HOME}/jdk-linux-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin-tests${{ matrix.artifact }}
|
||||
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
||||
JT_HOME=${HOME}/jtreg
|
||||
make test-prebuilt
|
||||
@@ -341,6 +340,7 @@ jobs:
|
||||
run: >
|
||||
if ! grep --include=test-summary.txt -lqr build/*/test-results -e "TEST SUCCESS" ; then
|
||||
cat build/*/test-results/*/text/newfailures.txt ;
|
||||
cat build/*/test-results/*/text/other_errors.txt ;
|
||||
exit 1 ;
|
||||
fi
|
||||
|
||||
@@ -476,12 +476,12 @@ jobs:
|
||||
|
||||
- name: Unpack build JDK
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
||||
tar -xf "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin.tar.gz" -C "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
|
||||
mkdir -p "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin"
|
||||
tar -xf "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin.tar.gz" -C "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin"
|
||||
|
||||
- name: Find root of build JDK image dir
|
||||
run: |
|
||||
build_jdk_root=`find ${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin -name release -type f`
|
||||
build_jdk_root=`find ${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal_linux-x64_bin -name release -type f`
|
||||
echo "build_jdk_root=`dirname ${build_jdk_root}`" >> $GITHUB_ENV
|
||||
|
||||
- name: Update apt
|
||||
@@ -549,7 +549,6 @@ jobs:
|
||||
${{ matrix.flags }}
|
||||
${{ env.cross_flags }}
|
||||
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
||||
--with-version-build=0
|
||||
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
||||
--with-build-jdk=${{ env.build_jdk_root }}
|
||||
--with-default-make-target="hotspot"
|
||||
@@ -648,7 +647,6 @@ jobs:
|
||||
--with-target-bits=32
|
||||
${{ matrix.flags }}
|
||||
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
||||
--with-version-build=0
|
||||
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
||||
--with-jtreg=${HOME}/jtreg
|
||||
--with-gtest=${GITHUB_WORKSPACE}/gtest
|
||||
@@ -666,8 +664,8 @@ jobs:
|
||||
with:
|
||||
name: transient_jdk-linux-x86${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
||||
path: |
|
||||
jdk/build/linux-x86/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/linux-x86/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/linux-x86/bundles/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/linux-x86/bundles/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
|
||||
linux_x86_test:
|
||||
name: Linux x86
|
||||
@@ -774,23 +772,23 @@ jobs:
|
||||
|
||||
- name: Unpack jdk
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}"
|
||||
mkdir -p "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin${{ matrix.artifact }}"
|
||||
|
||||
- name: Unpack tests
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}"
|
||||
mkdir -p "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin-tests${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin-tests${{ matrix.artifact }}"
|
||||
|
||||
- name: Find root of jdk image dir
|
||||
run: |
|
||||
imageroot=`find ${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }} -name release -type f`
|
||||
imageroot=`find ${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin${{ matrix.artifact }} -name release -type f`
|
||||
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
|
||||
|
||||
- name: Run tests
|
||||
run: >
|
||||
JDK_IMAGE_DIR=${{ env.imageroot }}
|
||||
TEST_IMAGE_DIR=${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin-tests${{ matrix.artifact }}
|
||||
TEST_IMAGE_DIR=${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_linux-x86_bin-tests${{ matrix.artifact }}
|
||||
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}
|
||||
JT_HOME=${HOME}/jtreg
|
||||
make test-prebuilt
|
||||
@@ -807,6 +805,7 @@ jobs:
|
||||
run: >
|
||||
if ! grep --include=test-summary.txt -lqr build/*/test-results -e "TEST SUCCESS" ; then
|
||||
cat build/*/test-results/*/text/newfailures.txt ;
|
||||
cat build/*/test-results/*/text/other_errors.txt ;
|
||||
exit 1 ;
|
||||
fi
|
||||
|
||||
@@ -925,7 +924,6 @@ jobs:
|
||||
--openjdk-target=aarch64-unknown-cygwin
|
||||
${{ matrix.flags }}
|
||||
--with-version-opt="$env:GITHUB_ACTOR-$env:GITHUB_SHA"
|
||||
--with-version-build=0
|
||||
--with-boot-jdk="$env:BOOT_JDK"
|
||||
--with-default-make-target="hotspot"
|
||||
working-directory: jdk
|
||||
@@ -1037,7 +1035,6 @@ jobs:
|
||||
--with-msvc-toolset-version=14.28
|
||||
${{ matrix.flags }}
|
||||
--with-version-opt="$env:GITHUB_ACTOR-$env:GITHUB_SHA"
|
||||
--with-version-build=0
|
||||
--with-boot-jdk="$env:BOOT_JDK"
|
||||
--with-jtreg="$env:JT_HOME"
|
||||
--with-gtest="$env:GTEST"
|
||||
@@ -1057,9 +1054,9 @@ jobs:
|
||||
with:
|
||||
name: transient_jdk-windows-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
||||
path: |
|
||||
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}.zip
|
||||
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols.tar.gz
|
||||
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }}.zip
|
||||
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }}-symbols.tar.gz
|
||||
|
||||
windows_x64_test:
|
||||
name: Windows x64
|
||||
@@ -1179,21 +1176,21 @@ jobs:
|
||||
|
||||
- name: Unpack jdk
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}.zip" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}"
|
||||
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }}.zip" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }}"
|
||||
|
||||
- name: Unpack symbols
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols"
|
||||
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols.tar.gz" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols"
|
||||
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }}-symbols"
|
||||
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }}-symbols.tar.gz" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }}-symbols"
|
||||
|
||||
- name: Unpack tests
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}"
|
||||
mkdir -p "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin-tests${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin-tests${{ matrix.artifact }}"
|
||||
|
||||
- name: Find root of jdk image dir
|
||||
run: echo ("imageroot=" + (Get-ChildItem -Path $HOME/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }} -Filter release -Recurse -ErrorAction SilentlyContinue -Force).DirectoryName) | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
run: echo ("imageroot=" + (Get-ChildItem -Path $HOME/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin${{ matrix.artifact }} -Filter release -Recurse -ErrorAction SilentlyContinue -Force).DirectoryName) | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
|
||||
- name: Run tests
|
||||
run: >
|
||||
@@ -1201,7 +1198,7 @@ jobs:
|
||||
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
|
||||
$env:JDK_IMAGE_DIR = cygpath "${{ env.imageroot }}" ;
|
||||
$env:SYMBOLS_IMAGE_DIR = cygpath "${{ env.imageroot }}" ;
|
||||
$env:TEST_IMAGE_DIR = cygpath "$HOME/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}" ;
|
||||
$env:TEST_IMAGE_DIR = cygpath "$HOME/jdk-windows-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_windows-x64_bin-tests${{ matrix.artifact }}" ;
|
||||
$env:BOOT_JDK = cygpath "$HOME/bootjdk/$env:BOOT_JDK_VERSION" ;
|
||||
$env:JT_HOME = cygpath "$HOME/jtreg" ;
|
||||
& make test-prebuilt
|
||||
@@ -1218,6 +1215,7 @@ jobs:
|
||||
run: >
|
||||
if ((Get-ChildItem -Path build\*\test-results\test-summary.txt -Recurse | Select-String -Pattern "TEST SUCCESS" ).Count -eq 0) {
|
||||
Get-Content -Path build\*\test-results\*\*\newfailures.txt ;
|
||||
Get-Content -Path build\*\test-results\*\*\other_errors.txt ;
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -1343,7 +1341,6 @@ jobs:
|
||||
--with-conf-name=macos-x64
|
||||
${{ matrix.flags }}
|
||||
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
||||
--with-version-build=0
|
||||
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
|
||||
--with-jtreg=${HOME}/jtreg
|
||||
--with-gtest=${GITHUB_WORKSPACE}/gtest
|
||||
@@ -1361,8 +1358,8 @@ jobs:
|
||||
with:
|
||||
name: transient_jdk-macos-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
||||
path: |
|
||||
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
|
||||
macos_aarch64_build:
|
||||
name: macOS aarch64
|
||||
@@ -1446,7 +1443,6 @@ jobs:
|
||||
--openjdk-target=aarch64-apple-darwin
|
||||
${{ matrix.flags }}
|
||||
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
|
||||
--with-version-build=0
|
||||
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
|
||||
--with-jtreg=${HOME}/jtreg
|
||||
--with-gtest=${GITHUB_WORKSPACE}/gtest
|
||||
@@ -1464,8 +1460,8 @@ jobs:
|
||||
with:
|
||||
name: transient_jdk-macos-aarch64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
|
||||
path: |
|
||||
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-aarch64_bin${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-aarch64_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal_macos-aarch64_bin${{ matrix.artifact }}.tar.gz
|
||||
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal_macos-aarch64_bin-tests${{ matrix.artifact }}.tar.gz
|
||||
|
||||
|
||||
macos_x64_test:
|
||||
@@ -1572,13 +1568,13 @@ jobs:
|
||||
|
||||
- name: Unpack jdk
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}"
|
||||
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin${{ matrix.artifact }}"
|
||||
|
||||
- name: Unpack tests
|
||||
run: |
|
||||
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}"
|
||||
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin-tests${{ matrix.artifact }}"
|
||||
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin-tests${{ matrix.artifact }}"
|
||||
|
||||
- name: Install dependencies
|
||||
run: brew install make
|
||||
@@ -1588,13 +1584,13 @@ jobs:
|
||||
|
||||
- name: Find root of jdk image dir
|
||||
run: |
|
||||
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }} -name release -type f`
|
||||
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin${{ matrix.artifact }} -name release -type f`
|
||||
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
|
||||
|
||||
- name: Run tests
|
||||
run: >
|
||||
JDK_IMAGE_DIR=${{ env.imageroot }}
|
||||
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}
|
||||
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal_macos-x64_bin-tests${{ matrix.artifact }}
|
||||
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
|
||||
JT_HOME=${HOME}/jtreg
|
||||
gmake test-prebuilt
|
||||
@@ -1611,6 +1607,7 @@ jobs:
|
||||
run: >
|
||||
if ! grep --include=test-summary.txt -lqr build/*/test-results -e "TEST SUCCESS" ; then
|
||||
cat build/*/test-results/*/text/newfailures.txt ;
|
||||
cat build/*/test-results/*/text/other_errors.txt ;
|
||||
exit 1 ;
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
[general]
|
||||
project=jdk
|
||||
jbs=JDK
|
||||
version=19
|
||||
|
||||
[checks]
|
||||
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
<h3 id="windows">Windows</h3>
|
||||
<p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
|
||||
<p>On Windows, it is important that you pay attention to the instructions in the <a href="#special-considerations">Special Considerations</a>.</p>
|
||||
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layers are Cygwin and Windows Subsystem for Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would likely be possible to support in a future version but that would require effort to implement.)</p>
|
||||
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layers are Cygwin, Windows Subsystem for Linux (WSL), and MSYS2. (MSYS is no longer supported due to an outdated bash; While OpenJDK can be built with MSYS2, support for it is still experimental, so build failures and unusual errors are not uncommon.)</p>
|
||||
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/git/jdk/Makefile</code> rather than <code>C:\git\jdk\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
|
||||
<h4 id="cygwin">Cygwin</h4>
|
||||
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
|
||||
@@ -298,7 +298,7 @@
|
||||
<p>It is advisable to keep an older version of Xcode for building the JDK when updating Xcode. This <a href="http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html">blog page</a> has good suggestions on managing multiple Xcode versions. To use a specific version of Xcode, use <code>xcode-select -s</code> before running <code>configure</code>, or use <code>--with-toolchain-path</code> to point to the version of Xcode to use, e.g. <code>configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin</code></p>
|
||||
<p>If you have recently (inadvertently) updated your OS and/or Xcode version, and the JDK can no longer be built, please see the section on <a href="#problems-with-the-build-environment">Problems with the Build Environment</a>, and <a href="#getting-help">Getting Help</a> to find out if there are any recent, non-merged patches available for this update.</p>
|
||||
<h3 id="microsoft-visual-studio">Microsoft Visual Studio</h3>
|
||||
<p>The minimum accepted version of Visual Studio is 2017. Older versions will not be accepted by <code>configure</code> and will not work. The maximum accepted version of Visual Studio is 2019.</p>
|
||||
<p>For aarch64 machines running Windows the minimum accepted version is Visual Studio 2019 (16.8 or higher). For all other platforms the minimum accepted version of Visual Studio is 2017. Older versions will not be accepted by <code>configure</code> and will not work. For all platforms the maximum accepted version of Visual Studio is 2022.</p>
|
||||
<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2017</code>.</p>
|
||||
<p>If you have Visual Studio installed but <code>configure</code> fails to detect it, it may be because of <a href="#spaces-in-path">spaces in path</a>.</p>
|
||||
<h3 id="ibm-xl-cc">IBM XL C/C++</h3>
|
||||
|
||||
@@ -179,10 +179,10 @@ On Windows, it is important that you pay attention to the instructions in the
|
||||
|
||||
Windows is the only non-POSIX OS supported by the JDK, and as such, requires
|
||||
some extra care. A POSIX support layer is required to build on Windows.
|
||||
Currently, the only supported such layers are Cygwin and Windows Subsystem for
|
||||
Linux (WSL). (Msys is no longer supported due to a too old bash; msys2 would
|
||||
likely be possible to support in a future version but that would require effort
|
||||
to implement.)
|
||||
Currently, the only supported such layers are Cygwin, Windows Subsystem for
|
||||
Linux (WSL), and MSYS2. (MSYS is no longer supported due to an outdated bash;
|
||||
While OpenJDK can be built with MSYS2, support for it is still experimental, so
|
||||
build failures and unusual errors are not uncommon.)
|
||||
|
||||
Internally in the build system, all paths are represented as Unix-style paths,
|
||||
e.g. `/cygdrive/c/git/jdk/Makefile` rather than `C:\git\jdk\Makefile`. This
|
||||
@@ -374,9 +374,10 @@ available for this update.
|
||||
|
||||
### Microsoft Visual Studio
|
||||
|
||||
The minimum accepted version of Visual Studio is 2017. Older versions will not
|
||||
be accepted by `configure` and will not work. The maximum accepted
|
||||
version of Visual Studio is 2019.
|
||||
For aarch64 machines running Windows the minimum accepted version is Visual Studio 2019
|
||||
(16.8 or higher). For all other platforms the minimum accepted version of
|
||||
Visual Studio is 2017. Older versions will not be accepted by `configure` and will
|
||||
not work. For all platforms the maximum accepted version of Visual Studio is 2022.
|
||||
|
||||
If you have multiple versions of Visual Studio installed, `configure` will by
|
||||
default pick the latest. You can request a specific version to be used by
|
||||
|
||||
@@ -67,7 +67,9 @@
|
||||
<h3 id="counterexamples-and-updates">Counterexamples and Updates</h3>
|
||||
<p>Many of the guidelines mentioned here have (sometimes widespread) counterexamples in the HotSpot code base. Finding a counterexample is not sufficient justification for new code to follow the counterexample as a precedent, since readers of your code will rightfully expect your code to follow the greater bulk of precedents documented here.</p>
|
||||
<p>Occasionally a guideline mentioned here may be just out of synch with the actual HotSpot code base. If you find that a guideline is consistently contradicted by a large number of counterexamples, please bring it up for discussion and possible change. The architectural rule, of course, is "When in Rome do as the Romans". Sometimes in the suburbs of Rome the rules are a little different; these differences can be pointed out here.</p>
|
||||
<p>Proposed changes should be discussed on the <a href="mailto:hotspot-dev@openjdk.java.net">HotSpot Developers</a> mailing list, and approved by <a href="https://en.wikipedia.org/wiki/Rough_consensus">rough consensus</a> of the <a href="https://openjdk.java.net/census#hotspot">HotSpot Group</a> Members. The Group Lead determines whether consensus has been reached. Changes are likely to be cautious and incremental, since HotSpot coders have been using these guidelines for years.</p>
|
||||
<p>Proposed changes should be discussed on the <a href="mailto:hotspot-dev@openjdk.java.net">HotSpot Developers</a> mailing list. Changes are likely to be cautious and incremental, since HotSpot coders have been using these guidelines for years.</p>
|
||||
<p>Substantive changes are approved by <a href="https://en.wikipedia.org/wiki/Rough_consensus">rough consensus</a> of the <a href="https://openjdk.java.net/census#hotspot">HotSpot Group</a> Members. The Group Lead determines whether consensus has been reached.</p>
|
||||
<p>Editorial changes (changes that only affect the description of HotSpot style, not its substance) do not require the full consensus gathering process. The normal HotSpot pull request process may be used for editorial changes, with the additional requirement that the requisite reviewers are also HotSpot Group Members.</p>
|
||||
<h2 id="structure-and-formatting">Structure and Formatting</h2>
|
||||
<h3 id="factoring-and-class-design">Factoring and Class Design</h3>
|
||||
<ul>
|
||||
@@ -195,7 +197,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
|
||||
<p>Similar discussions for some other projects:</p>
|
||||
<ul>
|
||||
<li><p><a href="https://google.github.io/styleguide/cppguide.html">Google C++ Style Guide</a> — Currently (2020) targeting C++17.</p></li>
|
||||
<li><p><a href="https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++11.md">C++11 and C++14 use in Chromium</a> — Categorizes features as allowed, banned, or to be discussed.</p></li>
|
||||
<li><p><a href="https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++-features.md">C++11 and C++14 use in Chromium</a> — Categorizes features as allowed, banned, or to be discussed.</p></li>
|
||||
<li><p><a href="https://llvm.org/docs/CodingStandards.html">llvm Coding Standards</a> — Currently (2020) targeting C++14.</p></li>
|
||||
<li><p><a href="https://firefox-source-docs.mozilla.org/code-quality/coding-style/using_cxx_in_firefox_code.html">Using C++ in Mozilla code</a> — C++17 support is required for recent versions (2020).</p></li>
|
||||
</ul>
|
||||
|
||||
@@ -56,12 +56,19 @@ can be pointed out here.
|
||||
|
||||
Proposed changes should be discussed on the
|
||||
[HotSpot Developers](mailto:hotspot-dev@openjdk.java.net) mailing
|
||||
list, and approved by
|
||||
list. Changes are likely to be cautious and incremental, since HotSpot
|
||||
coders have been using these guidelines for years.
|
||||
|
||||
Substantive changes are approved by
|
||||
[rough consensus](https://en.wikipedia.org/wiki/Rough_consensus) of
|
||||
the [HotSpot Group](https://openjdk.java.net/census#hotspot) Members.
|
||||
The Group Lead determines whether consensus has been reached.
|
||||
Changes are likely to be cautious and incremental, since HotSpot
|
||||
coders have been using these guidelines for years.
|
||||
|
||||
Editorial changes (changes that only affect the description of HotSpot
|
||||
style, not its substance) do not require the full consensus gathering
|
||||
process. The normal HotSpot pull request process may be used for
|
||||
editorial changes, with the additional requirement that the requisite
|
||||
reviewers are also HotSpot Group Members.
|
||||
|
||||
## Structure and Formatting
|
||||
|
||||
@@ -409,7 +416,7 @@ Similar discussions for some other projects:
|
||||
* [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) —
|
||||
Currently (2020) targeting C++17.
|
||||
|
||||
* [C++11 and C++14 use in Chromium](https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++11.md) —
|
||||
* [C++11 and C++14 use in Chromium](https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++-features.md) —
|
||||
Categorizes features as allowed, banned, or to be discussed.
|
||||
|
||||
* [llvm Coding Standards](https://llvm.org/docs/CodingStandards.html) —
|
||||
|
||||
12
doc/ide.html
12
doc/ide.html
@@ -41,14 +41,20 @@
|
||||
<pre class="shell"><code>make vscode-project-clangd</code></pre>
|
||||
<p>Additional instructions for configuring the given indexer will be displayed after the workspace has been generated.</p>
|
||||
<h4 id="visual-studio">Visual Studio</h4>
|
||||
<p>This section is a work in progress.</p>
|
||||
<pre class="shell"><code>make ide-project</code></pre>
|
||||
<p>The make system can generate a Visual Studio project for the Hotspot native source. After configuring, the project is generated using:</p>
|
||||
<pre class="shell"><code>make hotspot-ide-project</code></pre>
|
||||
<p>This creates a file named <code>jvm.vcxproj</code> in <code>ide\hotspot-visualstudio</code> subfolder of the build output folder. The file can be opened in Visual Studio via <code>File -> Open -> Project/Solution</code>.</p>
|
||||
<h4 id="compilation-database">Compilation Database</h4>
|
||||
<p>The make system can generate generic native code indexing support in the form of a <a href="https://clang.llvm.org/docs/JSONCompilationDatabase.html">Compilation Database</a> that can be used by many different IDEs and source code indexers.</p>
|
||||
<pre class="shell"><code>make compile-commands</code></pre>
|
||||
<p>It's also possible to generate the Compilation Database for the HotSpot source code only, which is a bit faster as it includes less information.</p>
|
||||
<pre class="shell"><code>make compile-commands-hotspot</code></pre>
|
||||
<h3 id="ide-support-for-java-code">IDE support for Java code</h3>
|
||||
<p>This section is a work in progress.</p>
|
||||
<h4 id="intellij-idea">IntelliJ IDEA</h4>
|
||||
<p>The JDK project has a script that can be used for indexing the project with IntelliJ. After configuring and building the JDK, an IntelliJ workspace can be generated by running the following command in the top-level folder of the cloned repository:</p>
|
||||
<pre class="shell"><code>bash bin/idea.sh</code></pre>
|
||||
<p>To use it, choose <code>File -> Open...</code> in IntelliJ and select the folder where you ran the above script.</p>
|
||||
<p>Next, configure the project SDK in IntelliJ. Open <code>File -> Project Structure -> Project</code> and select <code>build/<config>/images/jdk</code> as the SDK to use.</p>
|
||||
<p>In order to run the tests from the IDE, you can use the JTReg plugin. Instructions for building and using the plugin can be found <a href="https://github.com/openjdk/jtreg/tree/master/plugins/idea">here</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
31
doc/ide.md
31
doc/ide.md
@@ -45,12 +45,17 @@ after the workspace has been generated.
|
||||
|
||||
#### Visual Studio
|
||||
|
||||
This section is a work in progress.
|
||||
The make system can generate a Visual Studio project for the Hotspot
|
||||
native source. After configuring, the project is generated using:
|
||||
|
||||
```shell
|
||||
make ide-project
|
||||
make hotspot-ide-project
|
||||
```
|
||||
|
||||
This creates a file named `jvm.vcxproj` in `ide\hotspot-visualstudio`
|
||||
subfolder of the build output folder. The file can be opened in Visual Studio
|
||||
via `File -> Open -> Project/Solution`.
|
||||
|
||||
#### Compilation Database
|
||||
|
||||
The make system can generate generic native code indexing support in the form of
|
||||
@@ -70,4 +75,24 @@ make compile-commands-hotspot
|
||||
|
||||
### IDE support for Java code
|
||||
|
||||
This section is a work in progress.
|
||||
#### IntelliJ IDEA
|
||||
|
||||
The JDK project has a script that can be used for indexing the project
|
||||
with IntelliJ. After configuring and building the JDK, an IntelliJ workspace
|
||||
can be generated by running the following command in the top-level folder
|
||||
of the cloned repository:
|
||||
|
||||
```shell
|
||||
bash bin/idea.sh
|
||||
```
|
||||
|
||||
To use it, choose `File -> Open...` in IntelliJ and select the folder where
|
||||
you ran the above script.
|
||||
|
||||
Next, configure the project SDK in IntelliJ. Open
|
||||
`File -> Project Structure -> Project` and select `build/<config>/images/jdk`
|
||||
as the SDK to use.
|
||||
|
||||
In order to run the tests from the IDE, you can use the JTReg plugin.
|
||||
Instructions for building and using the plugin can be found
|
||||
[here](https://github.com/openjdk/jtreg/tree/master/plugins/idea).
|
||||
|
||||
@@ -193,9 +193,9 @@ TEST FAILURE</code></pre>
|
||||
<h4 id="aot_modules-1">AOT_MODULES</h4>
|
||||
<p>Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
|
||||
<h4 id="retry_count">RETRY_COUNT</h4>
|
||||
<p>Retry failed tests up to a set number of times. Defaults to 0.</p>
|
||||
<p>Retry failed tests up to a set number of times, until they pass. This allows to pass the tests with intermittent failures. Defaults to 0.</p>
|
||||
<h4 id="repeat_count">REPEAT_COUNT</h4>
|
||||
<p>Repeat the tests for a set number of times. Defaults to 0.</p>
|
||||
<p>Repeat the tests up to a set number of times, stopping at first failure. This helps to reproduce intermittent test failures. Defaults to 0.</p>
|
||||
<h3 id="gtest-keywords">Gtest keywords</h3>
|
||||
<h4 id="repeat">REPEAT</h4>
|
||||
<p>The number of times to repeat the tests (<code>--gtest_repeat</code>).</p>
|
||||
|
||||
@@ -419,11 +419,15 @@ modules. If multiple modules are specified, they should be separated by space
|
||||
|
||||
#### RETRY_COUNT
|
||||
|
||||
Retry failed tests up to a set number of times. Defaults to 0.
|
||||
Retry failed tests up to a set number of times, until they pass.
|
||||
This allows to pass the tests with intermittent failures.
|
||||
Defaults to 0.
|
||||
|
||||
#### REPEAT_COUNT
|
||||
|
||||
Repeat the tests for a set number of times. Defaults to 0.
|
||||
Repeat the tests up to a set number of times, stopping at first failure.
|
||||
This helps to reproduce intermittent test failures.
|
||||
Defaults to 0.
|
||||
|
||||
### Gtest keywords
|
||||
|
||||
|
||||
@@ -226,6 +226,13 @@ else
|
||||
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}'
|
||||
endif
|
||||
|
||||
# For reproducible builds specify the jmod --date using SOURCE_DATE in ISO-8601
|
||||
ifeq ($(ENABLE_REPRODUCIBLE_BUILD), true)
|
||||
JMOD_SOURCE_DATE := --date $(SOURCE_DATE_ISO_8601)
|
||||
else
|
||||
JMOD_SOURCE_DATE :=
|
||||
endif
|
||||
|
||||
# Create jmods in the support dir and then move them into place to keep the
|
||||
# module path in $(IMAGES_OUTPUTDIR)/jmods valid at all times.
|
||||
$(eval $(call SetupExecute, create_$(JMOD_FILE), \
|
||||
@@ -237,6 +244,7 @@ $(eval $(call SetupExecute, create_$(JMOD_FILE), \
|
||||
COMMAND := $(JMOD) create --module-version $(VERSION_SHORT) \
|
||||
--target-platform '$(OPENJDK_MODULE_TARGET_PLATFORM)' \
|
||||
--module-path $(JMODS_DIR) $(JMOD_FLAGS) \
|
||||
$(JMOD_SOURCE_DATE) \
|
||||
$(JMODS_SUPPORT_DIR)/$(JMOD_FILE), \
|
||||
POST_COMMAND := $(MV) $(JMODS_SUPPORT_DIR)/$(JMOD_FILE) $(JMODS_DIR)/$(JMOD_FILE), \
|
||||
))
|
||||
|
||||
@@ -131,7 +131,7 @@ JAVA_PLATFORM := Java Platform
|
||||
|
||||
ifeq ($(IS_DRAFT), true)
|
||||
DRAFT_MARKER_STR := <br><strong>DRAFT $(VERSION_STRING)</strong>
|
||||
ifeq ($(VERSION_BUILD), 0)
|
||||
ifeq ($(VERSION_BUILD), )
|
||||
DRAFT_MARKER_TITLE := $(SPACE)[ad-hoc build]
|
||||
else
|
||||
DRAFT_MARKER_TITLE := $(SPACE)[build $(VERSION_BUILD)]
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -313,6 +313,15 @@ else # $(HAS_SPEC)=true
|
||||
SOURCE_DATE := $$(shell $$(DATE) +"%s")
|
||||
endif
|
||||
export SOURCE_DATE_EPOCH := $$(SOURCE_DATE)
|
||||
ifeq ($$(IS_GNU_DATE), yes)
|
||||
export SOURCE_DATE_ISO_8601 := $$(shell $$(DATE) --utc \
|
||||
--date="@$$(SOURCE_DATE_EPOCH)" \
|
||||
+"%Y-%m-%dT%H:%M:%SZ" 2> /dev/null)
|
||||
else
|
||||
export SOURCE_DATE_ISO_8601 := $$(shell $$(DATE) -u \
|
||||
-j -f "%s" "$$(SOURCE_DATE_EPOCH)" \
|
||||
+"%Y-%m-%dT%H:%M:%SZ" 2> /dev/null)
|
||||
endif
|
||||
endef
|
||||
|
||||
# Parse COMPARE_BUILD into COMPARE_BUILD_*
|
||||
|
||||
@@ -35,8 +35,8 @@ BUILD_INFO_PROPERTIES := $(TEST_IMAGE_DIR)/build-info.properties
|
||||
$(BUILD_INFO_PROPERTIES):
|
||||
$(call MakeTargetDir)
|
||||
$(ECHO) "# Build info properties for JDK tests" > $@
|
||||
$(ECHO) "build.workspace.root=$(call FixPath, $(WORKSPACE_ROOT))" >> $@
|
||||
$(ECHO) "build.output.root=$(call FixPath, $(OUTPUTDIR))" >> $@
|
||||
$(ECHO) 'build.workspace.root=$(call FixPath, $(WORKSPACE_ROOT))' >> $@
|
||||
$(ECHO) 'build.output.root=$(call FixPath, $(OUTPUTDIR))' >> $@
|
||||
|
||||
README := $(TEST_IMAGE_DIR)/Readme.txt
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -438,7 +438,9 @@ AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
|
||||
AC_DEFUN_ONCE([BASIC_CHECK_SRC_PERMS],
|
||||
[
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
||||
file_to_test="$TOPDIR/LICENSE"
|
||||
# The choice of file here is somewhat arbitrary, it just needs to be there
|
||||
# in the source tree when configure runs
|
||||
file_to_test="$TOPDIR/Makefile"
|
||||
if test `$STAT -c '%a' "$file_to_test"` -lt 400; then
|
||||
AC_MSG_ERROR([Bad file permissions on src files. This is usually caused by cloning the repositories with a non cygwin hg in a directory not created in cygwin.])
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -356,13 +356,17 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
|
||||
fi
|
||||
AC_SUBST(IS_GNU_TIME)
|
||||
|
||||
# Check if it's GNU date
|
||||
check_date=`$DATE --version 2>&1 | $GREP GNU`
|
||||
# Check if it's a GNU date compatible version
|
||||
AC_MSG_CHECKING([if date is a GNU compatible version])
|
||||
check_date=`$DATE --version 2>&1 | $GREP "GNU\|BusyBox"`
|
||||
if test "x$check_date" != x; then
|
||||
AC_MSG_RESULT([yes])
|
||||
IS_GNU_DATE=yes
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
IS_GNU_DATE=no
|
||||
fi
|
||||
AC_SUBST(IS_GNU_DATE)
|
||||
|
||||
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
|
||||
UTIL_REQUIRE_PROGS(DSYMUTIL, dsymutil)
|
||||
|
||||
@@ -379,6 +379,16 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
|
||||
|
||||
# Finally, set some other options...
|
||||
|
||||
# Determine if the boot jdk jar supports the --date option
|
||||
if $JAR --help 2>&1 | $GREP -q "\-\-date=TIMESTAMP"; then
|
||||
BOOT_JDK_JAR_SUPPORTS_DATE=true
|
||||
else
|
||||
BOOT_JDK_JAR_SUPPORTS_DATE=false
|
||||
fi
|
||||
AC_MSG_CHECKING([if Boot JDK jar supports --date=TIMESTAMP])
|
||||
AC_MSG_RESULT([$BOOT_JDK_JAR_SUPPORTS_DATE])
|
||||
AC_SUBST(BOOT_JDK_JAR_SUPPORTS_DATE)
|
||||
|
||||
# When compiling code to be executed by the Boot JDK, force compatibility with the
|
||||
# oldest supported bootjdk.
|
||||
OLDEST_BOOT_JDK=`$ECHO $DEFAULT_ACCEPTABLE_BOOT_VERSIONS \
|
||||
|
||||
@@ -782,10 +782,8 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
|
||||
test "x$ENABLE_REPRODUCIBLE_BUILD" = xtrue; then
|
||||
# There is a known issue with the pathmap if the mapping is made to the
|
||||
# empty string. Add a minimal string "s" as prefix to work around this.
|
||||
workspace_root_win=`$FIXPATH_BASE print "${WORKSPACE_ROOT%/}"`
|
||||
# PATHMAP_FLAGS is also added to LDFLAGS in flags-ldflags.m4.
|
||||
PATHMAP_FLAGS="-pathmap:${workspace_root_win//\//\\\\}=s \
|
||||
-pathmap:${workspace_root_win}=s"
|
||||
PATHMAP_FLAGS="-pathmap:${WORKSPACE_ROOT}=s"
|
||||
FILE_MACRO_CFLAGS="$PATHMAP_FLAGS"
|
||||
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${FILE_MACRO_CFLAGS}],
|
||||
PREFIX: $3,
|
||||
|
||||
@@ -215,8 +215,21 @@ AC_DEFUN([FLAGS_SETUP_SYSROOT_FLAGS],
|
||||
$1SYSROOT_CFLAGS="--sysroot=[$]$1SYSROOT"
|
||||
$1SYSROOT_LDFLAGS="--sysroot=[$]$1SYSROOT"
|
||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||
$1SYSROOT_CFLAGS="-isysroot [$]$1SYSROOT"
|
||||
$1SYSROOT_LDFLAGS="-isysroot [$]$1SYSROOT"
|
||||
if test "x$OPENJDK_TARGET_OS" = "xlinux"; then
|
||||
# -isysroot has no effect on linux
|
||||
# https://bugs.llvm.org/show_bug.cgi?id=11503
|
||||
$1SYSROOT_CFLAGS="--sysroot=[$]$1SYSROOT"
|
||||
$1SYSROOT_LDFLAGS="--sysroot=[$]$1SYSROOT"
|
||||
if test -d "$DEVKIT_TOOLCHAIN_PATH"; then
|
||||
# In devkits, gcc is not located in the sysroot.
|
||||
# use --gcc-toolchain to let clang find the gcc installation.
|
||||
$1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS --gcc-toolchain=$DEVKIT_TOOLCHAIN_PATH/.."
|
||||
$1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS --gcc-toolchain=$DEVKIT_TOOLCHAIN_PATH/.."
|
||||
fi
|
||||
else
|
||||
$1SYSROOT_CFLAGS="-isysroot [$]$1SYSROOT"
|
||||
$1SYSROOT_LDFLAGS="-isysroot [$]$1SYSROOT"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP],
|
||||
[
|
||||
UTIL_LOOKUP_PROGS(PKGHANDLER, zypper apt-get yum brew port pkgutil pkgadd pacman)
|
||||
UTIL_LOOKUP_PROGS(PKGHANDLER, zypper apt-get yum brew port pkgutil pkgadd pacman apk)
|
||||
])
|
||||
|
||||
AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
|
||||
@@ -58,6 +58,8 @@ AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
|
||||
zypper_help $MISSING_DEPENDENCY ;;
|
||||
*pacman)
|
||||
pacman_help $MISSING_DEPENDENCY ;;
|
||||
*apk)
|
||||
apk_help $MISSING_DEPENDENCY ;;
|
||||
esac
|
||||
|
||||
if test "x$PKGHANDLER_COMMAND" != x; then
|
||||
@@ -192,6 +194,27 @@ pkgadd_help() {
|
||||
PKGHANDLER_COMMAND=""
|
||||
}
|
||||
|
||||
apk_help() {
|
||||
case $1 in
|
||||
devkit)
|
||||
PKGHANDLER_COMMAND="sudo apk add alpine-sdk linux-headers" ;;
|
||||
alsa)
|
||||
PKGHANDLER_COMMAND="sudo apk add alsa-lib-dev" ;;
|
||||
cups)
|
||||
PKGHANDLER_COMMAND="sudo apk add cups-dev" ;;
|
||||
fontconfig)
|
||||
PKGHANDLER_COMMAND="sudo apk add fontconfig-dev" ;;
|
||||
freetype)
|
||||
PKGHANDLER_COMMAND="sudo apk add freetype-dev" ;;
|
||||
harfbuzz)
|
||||
PKGHANDLER_COMMAND="sudo apk add harfbuzz-dev" ;;
|
||||
x11)
|
||||
PKGHANDLER_COMMAND="sudo apk add libxtst-dev libxt-dev libxrender-dev libxrandr-dev" ;;
|
||||
ccache)
|
||||
PKGHANDLER_COMMAND="sudo apk add ccache" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# This function will check if we're called from the "configure" wrapper while
|
||||
# printing --help. If so, we will print out additional information that can
|
||||
# only be extracted within the autoconf script, and then exit. This must be
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -847,6 +847,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_HSDIS],
|
||||
AC_CHECK_LIB(opcodes, disassembler, [ HSDIS_LIBS="$HSDIS_LIBS -lopcodes" ], [ binutils_system_error="libopcodes not found" ])
|
||||
AC_CHECK_LIB(iberty, xmalloc, [ HSDIS_LIBS="$HSDIS_LIBS -liberty" ], [ binutils_system_error="libiberty not found" ])
|
||||
AC_CHECK_LIB(z, deflate, [ HSDIS_LIBS="$HSDIS_LIBS -lz" ], [ binutils_system_error="libz not found" ])
|
||||
HSDIS_CFLAGS="-DLIBARCH_$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
||||
elif test "x$BINUTILS_DIR" != x; then
|
||||
if test -e $BINUTILS_DIR/bfd/libbfd.a && \
|
||||
test -e $BINUTILS_DIR/opcodes/libopcodes.a && \
|
||||
@@ -864,7 +865,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_HSDIS],
|
||||
AC_MSG_ERROR([binutils on system is supported for Linux only])
|
||||
elif test "x$binutils_system_error" = x; then
|
||||
AC_MSG_RESULT([system])
|
||||
HSDIS_CFLAGS="-DSYSTEM_BINUTILS"
|
||||
HSDIS_CFLAGS="$HSDIS_CFLAGS -DSYSTEM_BINUTILS"
|
||||
else
|
||||
AC_MSG_RESULT([invalid])
|
||||
AC_MSG_ERROR([$binutils_system_error])
|
||||
|
||||
@@ -199,6 +199,10 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||
&& test "x$VERSION_BUILD$VERSION_OPT" = x; then
|
||||
AC_MSG_ERROR([Version string contains + but both 'BUILD' and 'OPT' are missing])
|
||||
fi
|
||||
if test "x$VERSION_BUILD" = x0; then
|
||||
AC_MSG_WARN([Version build 0 is interpreted as no build number])
|
||||
VERSION_BUILD=
|
||||
fi
|
||||
# Stop the version part process from setting default values.
|
||||
# We still allow them to explicitly override though.
|
||||
NO_DEFAULT_VERSION_PARTS=true
|
||||
@@ -250,9 +254,10 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||
fi
|
||||
else
|
||||
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
|
||||
# Default is to calculate a string like this 'adhoc.<username>.<base dir name>'
|
||||
# Default is to calculate a string like this:
|
||||
# 'adhoc.<username>.<base dir name>'
|
||||
# Outer [ ] to quote m4.
|
||||
[ basedirname=`$BASENAME "$TOPDIR" | $TR -d -c '[a-z][A-Z][0-9].-'` ]
|
||||
[ basedirname=`$BASENAME "$WORKSPACE_ROOT" | $TR -d -c '[a-z][A-Z][0-9].-'` ]
|
||||
VERSION_OPT="adhoc.$USERNAME.$basedirname"
|
||||
fi
|
||||
fi
|
||||
@@ -271,13 +276,15 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||
VERSION_BUILD=
|
||||
else
|
||||
JDKVER_CHECK_AND_SET_NUMBER(VERSION_BUILD, $with_version_build)
|
||||
if test "x$VERSION_BUILD" = "x0"; then
|
||||
AC_MSG_WARN([--with-version-build=0 is interpreted as --without-version-build])
|
||||
VERSION_BUILD=
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if test "x$NO_DEFAULT_VERSION_PARTS" != xtrue; then
|
||||
# Default is to not have a build number.
|
||||
VERSION_BUILD=""
|
||||
# FIXME: Until all code can cope with an empty VERSION_BUILD, set it to 0.
|
||||
VERSION_BUILD=0
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -450,14 +457,23 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
|
||||
for i in 1 2 3 4 5 6 ; do stripped_version_number=${stripped_version_number%.0} ; done
|
||||
VERSION_NUMBER=$stripped_version_number
|
||||
|
||||
# The complete version string, with additional build information
|
||||
if test "x$VERSION_BUILD$VERSION_OPT" = x; then
|
||||
VERSION_STRING=$VERSION_NUMBER${VERSION_PRE:+-$VERSION_PRE}
|
||||
else
|
||||
# If either build or opt is set, we need a + separator
|
||||
VERSION_STRING=$VERSION_NUMBER${VERSION_PRE:+-$VERSION_PRE}+$VERSION_BUILD${VERSION_OPT:+-$VERSION_OPT}
|
||||
# A build number of "0" is interpreted as "no build number".
|
||||
if test "x$VERSION_BUILD" = x0; then
|
||||
VERSION_BUILD=
|
||||
fi
|
||||
|
||||
# Compute the complete version string, with additional build information
|
||||
version_with_pre=$VERSION_NUMBER${VERSION_PRE:+-$VERSION_PRE}
|
||||
if test "x$VERSION_BUILD" != x || \
|
||||
( test "x$VERSION_OPT" != x && test "x$VERSION_PRE" = x ); then
|
||||
# As per JEP 223, if build is set, or if opt is set but not pre,
|
||||
# we need a + separator
|
||||
version_with_build=$version_with_pre+$VERSION_BUILD
|
||||
else
|
||||
version_with_build=$version_with_pre
|
||||
fi
|
||||
VERSION_STRING=$version_with_build${VERSION_OPT:+-$VERSION_OPT}
|
||||
|
||||
# The short version string, just VERSION_NUMBER and PRE, if present.
|
||||
VERSION_SHORT=$VERSION_NUMBER${VERSION_PRE:+-$VERSION_PRE}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -45,7 +45,7 @@ m4_define(jvm_features_valid, m4_normalize( \
|
||||
ifdef([custom_jvm_features_valid], custom_jvm_features_valid) \
|
||||
\
|
||||
cds compiler1 compiler2 dtrace epsilongc g1gc jfr jni-check \
|
||||
jvmci jvmti link-time-opt management minimal nmt opt-size parallelgc \
|
||||
jvmci jvmti link-time-opt management minimal opt-size parallelgc \
|
||||
serialgc services shenandoahgc static-build vm-structs zero zgc \
|
||||
))
|
||||
|
||||
@@ -68,7 +68,6 @@ m4_define(jvm_feature_desc_jvmti, [enable Java Virtual Machine Tool Interface (J
|
||||
m4_define(jvm_feature_desc_link_time_opt, [enable link time optimization])
|
||||
m4_define(jvm_feature_desc_management, [enable java.lang.management API support])
|
||||
m4_define(jvm_feature_desc_minimal, [support building variant 'minimal'])
|
||||
m4_define(jvm_feature_desc_nmt, [include native memory tracking (NMT)])
|
||||
m4_define(jvm_feature_desc_opt_size, [optimize the JVM library for size])
|
||||
m4_define(jvm_feature_desc_parallelgc, [include the parallel garbage collector])
|
||||
m4_define(jvm_feature_desc_serialgc, [include the serial garbage collector])
|
||||
@@ -443,7 +442,7 @@ AC_DEFUN([JVM_FEATURES_PREPARE_VARIANT],
|
||||
JVM_FEATURES_VARIANT_FILTER="compiler2 jvmci link-time-opt opt-size"
|
||||
elif test "x$variant" = "xminimal"; then
|
||||
JVM_FEATURES_VARIANT_FILTER="cds compiler2 dtrace epsilongc g1gc \
|
||||
jfr jni-check jvmci jvmti management nmt parallelgc services \
|
||||
jfr jni-check jvmci jvmti management parallelgc services \
|
||||
shenandoahgc vm-structs zgc"
|
||||
if test "x$OPENJDK_TARGET_CPU" = xarm ; then
|
||||
JVM_FEATURES_VARIANT_FILTER="$JVM_FEATURES_VARIANT_FILTER opt-size"
|
||||
@@ -538,10 +537,6 @@ AC_DEFUN([JVM_FEATURES_VERIFY],
|
||||
AC_MSG_ERROR([Specified JVM feature 'jvmti' requires feature 'services' for variant '$variant'])
|
||||
fi
|
||||
|
||||
if JVM_FEATURES_IS_ACTIVE(management) && ! JVM_FEATURES_IS_ACTIVE(nmt); then
|
||||
AC_MSG_ERROR([Specified JVM feature 'management' requires feature 'nmt' for variant '$variant'])
|
||||
fi
|
||||
|
||||
# For backwards compatibility, disable a feature "globally" if one variant
|
||||
# is missing the feature.
|
||||
if ! JVM_FEATURES_IS_ACTIVE(cds); then
|
||||
|
||||
@@ -239,7 +239,7 @@ VERSION_DOCS_API_SINCE := @VERSION_DOCS_API_SINCE@
|
||||
JDK_SOURCE_TARGET_VERSION := @JDK_SOURCE_TARGET_VERSION@
|
||||
|
||||
# Convenience CFLAGS settings for passing version information into native programs.
|
||||
VERSION_CFLAGS := \
|
||||
VERSION_CFLAGS = \
|
||||
-DVERSION_FEATURE=$(VERSION_FEATURE) \
|
||||
-DVERSION_INTERIM=$(VERSION_INTERIM) \
|
||||
-DVERSION_UPDATE=$(VERSION_UPDATE) \
|
||||
@@ -371,6 +371,9 @@ BUILD_JDK:=@BUILD_JDK@
|
||||
CREATE_BUILDJDK:=@CREATE_BUILDJDK@
|
||||
EXTERNAL_BUILDJDK:=@EXTERNAL_BUILDJDK@
|
||||
|
||||
# Whether the boot jdk jar supports --date=TIMESTAMP
|
||||
BOOT_JDK_JAR_SUPPORTS_DATE:=@BOOT_JDK_JAR_SUPPORTS_DATE@
|
||||
|
||||
# When compiling Java source to be run by the boot jdk
|
||||
# use these extra flags, eg -source 6 -target 6
|
||||
BOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@
|
||||
@@ -416,7 +419,7 @@ GTEST_FRAMEWORK_SRC := @GTEST_FRAMEWORK_SRC@
|
||||
|
||||
# Source file for cacerts
|
||||
CACERTS_FILE=@CACERTS_FILE@
|
||||
# Source folder for user provided cacerts PEM files
|
||||
# Source folder for user provided cacerts PEM files
|
||||
CACERTS_SRC=@CACERTS_SRC@
|
||||
|
||||
# Enable unlimited crypto policy
|
||||
@@ -707,6 +710,7 @@ CODESIGN:=@CODESIGN@
|
||||
CP:=@CP@
|
||||
CUT:=@CUT@
|
||||
DATE:=@DATE@
|
||||
IS_GNU_DATE:=@IS_GNU_DATE@
|
||||
DIFF:=@DIFF@
|
||||
DIRNAME:=@DIRNAME@
|
||||
DSYMUTIL:=@DSYMUTIL@
|
||||
@@ -925,7 +929,12 @@ JDK_MACOSX_CONTENTS_DIR=$(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR)
|
||||
JRE_MACOSX_CONTENTS_DIR=$(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR)
|
||||
|
||||
# Bundle names
|
||||
BASE_NAME := $(VERSION_SHORT)+$(VERSION_BUILD)_$(OPENJDK_TARGET_BUNDLE_PLATFORM)
|
||||
ifneq ($(VERSION_BUILD), )
|
||||
BASE_NAME := $(VERSION_SHORT)+$(VERSION_BUILD)_$(OPENJDK_TARGET_BUNDLE_PLATFORM)
|
||||
else
|
||||
BASE_NAME := $(VERSION_SHORT)_$(OPENJDK_TARGET_BUNDLE_PLATFORM)
|
||||
endif
|
||||
|
||||
ifeq ($(DEBUG_LEVEL), fastdebug)
|
||||
DEBUG_PART := -debug
|
||||
else ifneq ($(DEBUG_LEVEL), release)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -234,7 +234,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
|
||||
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
if test -n "$XCODEBUILD"; then
|
||||
# On Mac OS X, default toolchain to clang after Xcode 5
|
||||
XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version 2>&1 | $HEAD -n 1`
|
||||
XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version | $HEAD -n 1`
|
||||
$ECHO "$XCODE_VERSION_OUTPUT" | $GREP "Xcode " > /dev/null
|
||||
if test $? -ne 0; then
|
||||
AC_MSG_NOTICE([xcodebuild output: $XCODE_VERSION_OUTPUT])
|
||||
|
||||
@@ -103,6 +103,7 @@ AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
|
||||
vc/auxiliary/build/vcvarsx86_amd64.bat vc/auxiliary/build/vcvars64.bat"
|
||||
elif test "x$TARGET_CPU" = xaarch64; then
|
||||
# for host x86-64, target aarch64
|
||||
# aarch64 requires Visual Studio 16.8 or higher
|
||||
VCVARSFILES="vc/auxiliary/build/vcvarsamd64_arm64.bat \
|
||||
vc/auxiliary/build/vcvarsx86_arm64.bat"
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -236,13 +236,15 @@ AC_DEFUN([UTIL_GET_MATCHING_VALUES],
|
||||
# $2: input date/time string
|
||||
AC_DEFUN([UTIL_GET_EPOCH_TIMESTAMP],
|
||||
[
|
||||
timestamp=$($DATE --utc --date=$2 +"%s" 2> /dev/null)
|
||||
if test "x$timestamp" = x; then
|
||||
# GNU date format did not work, try BSD date options
|
||||
timestamp=$($DATE -j -f "%F %T" "$2" "+%s" 2> /dev/null)
|
||||
if test "x$IS_GNU_DATE" = xyes; then
|
||||
# GNU date
|
||||
timestamp=$($DATE --utc --date=$2 +"%s" 2> /dev/null)
|
||||
else
|
||||
# BSD date
|
||||
timestamp=$($DATE -u -j -f "%F %T" "$2" "+%s" 2> /dev/null)
|
||||
if test "x$timestamp" = x; then
|
||||
# Perhaps the time was missing
|
||||
timestamp=$($DATE -j -f "%F %T" "$2 00:00:00" "+%s" 2> /dev/null)
|
||||
timestamp=$($DATE -u -j -f "%F %T" "$2 00:00:00" "+%s" 2> /dev/null)
|
||||
# If this did not work, we give up and return the empty string
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -193,7 +193,7 @@ define SetupJarArchiveBody
|
||||
$1_UPDATE_CONTENTS=\
|
||||
if [ "`$(WC) -l $$($1_BIN)/_the.$$($1_JARNAME)_contents | $(AWK) '{ print $$$$1 }'`" -gt "0" ]; then \
|
||||
$(ECHO) " updating" `$(WC) -l $$($1_BIN)/_the.$$($1_JARNAME)_contents | $(AWK) '{ print $$$$1 }'` files && \
|
||||
$$($1_JAR_CMD) $$($1_JAR_UPDATE_OPTIONS) $$@ @$$($1_BIN)/_the.$$($1_JARNAME)_contents; \
|
||||
$$($1_JAR_CMD) --update $$($1_JAR_OPTIONS) --file $$@ @$$($1_BIN)/_the.$$($1_JARNAME)_contents; \
|
||||
fi $$(NEWLINE)
|
||||
# The s-variants of the above macros are used when the jar is created from scratch.
|
||||
# NOTICE: please leave the parentheses space separated otherwise the AIX build will break!
|
||||
@@ -212,25 +212,27 @@ define SetupJarArchiveBody
|
||||
| $(SED) 's|$$(src)/|-C $$(src) |g' >> \
|
||||
$$($1_BIN)/_the.$$($1_JARNAME)_contents) $$(NEWLINE) )
|
||||
endif
|
||||
$1_SUPDATE_CONTENTS=$$($1_JAR_CMD) $$($1_JAR_UPDATE_OPTIONS) $$@ @$$($1_BIN)/_the.$$($1_JARNAME)_contents $$(NEWLINE)
|
||||
$1_SUPDATE_CONTENTS=$$($1_JAR_CMD) --update $$($1_JAR_OPTIONS) --file $$@ @$$($1_BIN)/_the.$$($1_JARNAME)_contents $$(NEWLINE)
|
||||
|
||||
# Use a slightly shorter name for logging, but with enough path to identify this jar.
|
||||
$1_NAME:=$$(subst $$(OUTPUTDIR)/,,$$($1_JAR))
|
||||
|
||||
ifneq (,$$($1_CHECK_COMPRESS_JAR))
|
||||
$1_JAR_CREATE_OPTIONS := c0fm
|
||||
$1_JAR_UPDATE_OPTIONS := u0f
|
||||
ifeq ($(COMPRESS_JARS), true)
|
||||
$1_JAR_CREATE_OPTIONS := cfm
|
||||
$1_JAR_UPDATE_OPTIONS := uf
|
||||
# If reproducible build and the boot jdk jar supports --date option
|
||||
# then specify the --date using SOURCE_DATE in ISO-8601
|
||||
$1_JAR_OPTIONS :=
|
||||
ifeq ($$(ENABLE_REPRODUCIBLE_BUILD), true)
|
||||
ifeq ($$(BOOT_JDK_JAR_SUPPORTS_DATE), true)
|
||||
$1_JAR_OPTIONS += --date $(SOURCE_DATE_ISO_8601)
|
||||
endif
|
||||
endif
|
||||
ifneq (,$$($1_CHECK_COMPRESS_JAR))
|
||||
ifneq ($(COMPRESS_JARS), true)
|
||||
$1_JAR_OPTIONS += --no-compress
|
||||
endif
|
||||
else
|
||||
$1_JAR_CREATE_OPTIONS := cfm
|
||||
$1_JAR_UPDATE_OPTIONS := uf
|
||||
endif
|
||||
|
||||
# Include all variables of significance in the vardeps file
|
||||
$1_VARDEPS := $$($1_JAR_CMD) $$($1_JAR_CREATE_OPTIONS) $$($1_MANIFEST) \
|
||||
$1_VARDEPS := $$($1_JAR_CMD) $$($1_JAR_OPTIONS) $$($1_MANIFEST) \
|
||||
$$($1_JARMAIN) $$($1_EXTRA_MANIFEST_ATTR) $$($1_ORIG_DEPS) $$($1_SRCS) \
|
||||
$$($1_INCLUDES) $$($1_EXCLUDES) $$($1_EXCLUDE_FILES) $$($1_EXTRA_FILES)
|
||||
$1_VARDEPS_FILE := $$(call DependOnVariable, $1_VARDEPS, $$($1_BIN)/_the.$$($1_JARNAME).vardeps)
|
||||
@@ -255,7 +257,7 @@ define SetupJarArchiveBody
|
||||
$$(if $$($1_EXTRA_MANIFEST_ATTR), \
|
||||
$(PRINTF) "$$($1_EXTRA_MANIFEST_ATTR)\n" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \
|
||||
$(ECHO) Creating $$($1_NAME) $$(NEWLINE) \
|
||||
$$($1_JAR_CMD) $$($1_JAR_CREATE_OPTIONS) $$@ $$($1_MANIFEST_FILE) $$(NEWLINE) \
|
||||
$$($1_JAR_CMD) --create $$($1_JAR_OPTIONS) --file $$@ --manifest $$($1_MANIFEST_FILE) $$(NEWLINE) \
|
||||
$$($1_SCAPTURE_CONTENTS) \
|
||||
$$($1_SCAPTURE_METAINF) \
|
||||
$$($1_SUPDATE_CONTENTS) \
|
||||
|
||||
@@ -1165,19 +1165,12 @@ var getJibProfilesDependencies = function (input, common) {
|
||||
jmh: {
|
||||
organization: common.organization,
|
||||
ext: "tar.gz",
|
||||
revision: "1.33+1.0"
|
||||
revision: "1.34+1.0"
|
||||
},
|
||||
|
||||
jcov: {
|
||||
// Use custom build of JCov
|
||||
// See CODETOOLS-7902734 for more info.
|
||||
// server: "jpg",
|
||||
// product: "jcov",
|
||||
// version: "3.0",
|
||||
// build_number: "b07",
|
||||
// file: "bundles/jcov-3_0.zip",
|
||||
organization: common.organization,
|
||||
revision: "3.0-9-jdk-asm+1.0",
|
||||
revision: "3.0-12-jdk-asm+1.0",
|
||||
ext: "zip",
|
||||
environment_name: "JCOV_HOME",
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2016, 2021, 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.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -158,6 +158,7 @@ JVM_IsSupportedJNIVersion
|
||||
JVM_IsThreadAlive
|
||||
JVM_IsVMGeneratedMethodIx
|
||||
JVM_LatestUserDefinedLoader
|
||||
JVM_LoadZipLibrary
|
||||
JVM_LoadLibrary
|
||||
JVM_LookupDefineClass
|
||||
JVM_LookupLambdaProxyClassFromArchive
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -284,6 +284,10 @@ innerclass innerClass java/security/KeyStore$Entry outerClass java/security/KeyS
|
||||
innerclass innerClass java/security/KeyStore$Entry$Attribute outerClass java/security/KeyStore$Entry innerClassName Attribute flags 609
|
||||
method name engineGetAttributes descriptor (Ljava/lang/String;)Ljava/util/Set; flags 1 signature (Ljava/lang/String;)Ljava/util/Set<Ljava/security/KeyStore$Entry$Attribute;>;
|
||||
|
||||
class name java/security/Provider
|
||||
-method name getServices descriptor ()Ljava/util/Set;
|
||||
method name getServices descriptor ()Ljava/util/Set; flags 1 signature ()Ljava/util/Set<Ljava/security/Provider$Service;>;
|
||||
|
||||
class name java/security/SecureRandomParameters
|
||||
header extends java/lang/Object flags 601
|
||||
|
||||
@@ -389,6 +393,16 @@ header extends java/util/AbstractSet implements java/util/Set,java/lang/Cloneabl
|
||||
innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
|
||||
innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
|
||||
|
||||
class name java/util/Hashtable
|
||||
header extends java/util/Dictionary implements java/util/Map,java/lang/Cloneable,java/io/Serializable flags 21 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/Dictionary<TK;TV;>;Ljava/util/Map<TK;TV;>;Ljava/lang/Cloneable;Ljava/io/Serializable;
|
||||
innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
|
||||
innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
|
||||
|
||||
class name java/util/IdentityHashMap
|
||||
header extends java/util/AbstractMap implements java/util/Map,java/io/Serializable,java/lang/Cloneable flags 21 signature <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/AbstractMap<TK;TV;>;Ljava/util/Map<TK;TV;>;Ljava/io/Serializable;Ljava/lang/Cloneable;
|
||||
innerclass innerClass java/util/Map$Entry outerClass java/util/Map innerClassName Entry flags 609
|
||||
innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/ObjectInputStream innerClassName GetField flags 409
|
||||
|
||||
class name java/util/Locale$IsoCountryCode
|
||||
header extends java/lang/Enum nestHost java/util/Locale sealed true flags 4421 signature Ljava/lang/Enum<Ljava/util/Locale$IsoCountryCode;>;
|
||||
innerclass innerClass java/util/Locale$IsoCountryCode outerClass java/util/Locale innerClassName IsoCountryCode flags 4409
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Blocks-13.0.0.txt
|
||||
# Date: 2019-07-10, 19:06:00 GMT [KW]
|
||||
# Copyright (c) 2019 Unicode, Inc.
|
||||
# Blocks-14.0.0.txt
|
||||
# Date: 2021-01-22, 23:29:00 GMT [KW]
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Unicode Character Database
|
||||
@@ -52,6 +52,7 @@
|
||||
0800..083F; Samaritan
|
||||
0840..085F; Mandaic
|
||||
0860..086F; Syriac Supplement
|
||||
0870..089F; Arabic Extended-B
|
||||
08A0..08FF; Arabic Extended-A
|
||||
0900..097F; Devanagari
|
||||
0980..09FF; Bengali
|
||||
@@ -215,7 +216,9 @@ FFF0..FFFF; Specials
|
||||
104B0..104FF; Osage
|
||||
10500..1052F; Elbasan
|
||||
10530..1056F; Caucasian Albanian
|
||||
10570..105BF; Vithkuqi
|
||||
10600..1077F; Linear A
|
||||
10780..107BF; Latin Extended-F
|
||||
10800..1083F; Cypriot Syllabary
|
||||
10840..1085F; Imperial Aramaic
|
||||
10860..1087F; Palmyrene
|
||||
@@ -240,6 +243,7 @@ FFF0..FFFF; Specials
|
||||
10E80..10EBF; Yezidi
|
||||
10F00..10F2F; Old Sogdian
|
||||
10F30..10F6F; Sogdian
|
||||
10F70..10FAF; Old Uyghur
|
||||
10FB0..10FDF; Chorasmian
|
||||
10FE0..10FFF; Elymaic
|
||||
11000..1107F; Brahmi
|
||||
@@ -259,13 +263,14 @@ FFF0..FFFF; Specials
|
||||
11600..1165F; Modi
|
||||
11660..1167F; Mongolian Supplement
|
||||
11680..116CF; Takri
|
||||
11700..1173F; Ahom
|
||||
11700..1174F; Ahom
|
||||
11800..1184F; Dogra
|
||||
118A0..118FF; Warang Citi
|
||||
11900..1195F; Dives Akuru
|
||||
119A0..119FF; Nandinagari
|
||||
11A00..11A4F; Zanabazar Square
|
||||
11A50..11AAF; Soyombo
|
||||
11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A
|
||||
11AC0..11AFF; Pau Cin Hau
|
||||
11C00..11C6F; Bhaiksuki
|
||||
11C70..11CBF; Marchen
|
||||
@@ -277,11 +282,13 @@ FFF0..FFFF; Specials
|
||||
12000..123FF; Cuneiform
|
||||
12400..1247F; Cuneiform Numbers and Punctuation
|
||||
12480..1254F; Early Dynastic Cuneiform
|
||||
12F90..12FFF; Cypro-Minoan
|
||||
13000..1342F; Egyptian Hieroglyphs
|
||||
13430..1343F; Egyptian Hieroglyph Format Controls
|
||||
14400..1467F; Anatolian Hieroglyphs
|
||||
16800..16A3F; Bamum Supplement
|
||||
16A40..16A6F; Mro
|
||||
16A70..16ACF; Tangsa
|
||||
16AD0..16AFF; Bassa Vah
|
||||
16B00..16B8F; Pahawh Hmong
|
||||
16E40..16E9F; Medefaidrin
|
||||
@@ -290,13 +297,15 @@ FFF0..FFFF; Specials
|
||||
17000..187FF; Tangut
|
||||
18800..18AFF; Tangut Components
|
||||
18B00..18CFF; Khitan Small Script
|
||||
18D00..18D8F; Tangut Supplement
|
||||
18D00..18D7F; Tangut Supplement
|
||||
1AFF0..1AFFF; Kana Extended-B
|
||||
1B000..1B0FF; Kana Supplement
|
||||
1B100..1B12F; Kana Extended-A
|
||||
1B130..1B16F; Small Kana Extension
|
||||
1B170..1B2FF; Nushu
|
||||
1BC00..1BC9F; Duployan
|
||||
1BCA0..1BCAF; Shorthand Format Controls
|
||||
1CF00..1CFCF; Znamenny Musical Notation
|
||||
1D000..1D0FF; Byzantine Musical Symbols
|
||||
1D100..1D1FF; Musical Symbols
|
||||
1D200..1D24F; Ancient Greek Musical Notation
|
||||
@@ -305,9 +314,12 @@ FFF0..FFFF; Specials
|
||||
1D360..1D37F; Counting Rod Numerals
|
||||
1D400..1D7FF; Mathematical Alphanumeric Symbols
|
||||
1D800..1DAAF; Sutton SignWriting
|
||||
1DF00..1DFFF; Latin Extended-G
|
||||
1E000..1E02F; Glagolitic Supplement
|
||||
1E100..1E14F; Nyiakeng Puachue Hmong
|
||||
1E290..1E2BF; Toto
|
||||
1E2C0..1E2FF; Wancho
|
||||
1E7E0..1E7FF; Ethiopic Extended-B
|
||||
1E800..1E8DF; Mende Kikakui
|
||||
1E900..1E95F; Adlam
|
||||
1EC70..1ECBF; Indic Siyaq Numbers
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
# PropList-13.0.0.txt
|
||||
# Date: 2019-11-27, 03:13:28 GMT
|
||||
# Copyright (c) 2019 Unicode, Inc.
|
||||
# PropList-14.0.0.txt
|
||||
# Date: 2021-08-12, 23:13:05 GMT
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
@@ -54,6 +54,7 @@
|
||||
2E1A ; Dash # Pd HYPHEN WITH DIAERESIS
|
||||
2E3A..2E3B ; Dash # Pd [2] TWO-EM DASH..THREE-EM DASH
|
||||
2E40 ; Dash # Pd DOUBLE HYPHEN
|
||||
2E5D ; Dash # Pd OBLIQUE HYPHEN
|
||||
301C ; Dash # Pd WAVE DASH
|
||||
3030 ; Dash # Pd WAVY DASH
|
||||
30A0 ; Dash # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
|
||||
@@ -63,7 +64,7 @@ FE63 ; Dash # Pd SMALL HYPHEN-MINUS
|
||||
FF0D ; Dash # Pd FULLWIDTH HYPHEN-MINUS
|
||||
10EAD ; Dash # Pd YEZIDI HYPHENATION MARK
|
||||
|
||||
# Total code points: 29
|
||||
# Total code points: 30
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -126,7 +127,7 @@ FF63 ; Quotation_Mark # Pe HALFWIDTH RIGHT CORNER BRACKET
|
||||
05C3 ; Terminal_Punctuation # Po HEBREW PUNCTUATION SOF PASUQ
|
||||
060C ; Terminal_Punctuation # Po ARABIC COMMA
|
||||
061B ; Terminal_Punctuation # Po ARABIC SEMICOLON
|
||||
061E..061F ; Terminal_Punctuation # Po [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
|
||||
061D..061F ; Terminal_Punctuation # Po [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
|
||||
06D4 ; Terminal_Punctuation # Po ARABIC FULL STOP
|
||||
0700..070A ; Terminal_Punctuation # Po [11] SYRIAC END OF PARAGRAPH..SYRIAC CONTRACTION
|
||||
070C ; Terminal_Punctuation # Po SYRIAC HARKLEAN METOBELUS
|
||||
@@ -150,6 +151,7 @@ FF63 ; Quotation_Mark # Pe HALFWIDTH RIGHT CORNER BRACKET
|
||||
1AA8..1AAB ; Terminal_Punctuation # Po [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU
|
||||
1B5A..1B5B ; Terminal_Punctuation # Po [2] BALINESE PANTI..BALINESE PAMADA
|
||||
1B5D..1B5F ; Terminal_Punctuation # Po [3] BALINESE CARIK PAMUNGKAH..BALINESE CARIK PAREREN
|
||||
1B7D..1B7E ; Terminal_Punctuation # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
|
||||
1C3B..1C3F ; Terminal_Punctuation # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
|
||||
1C7E..1C7F ; Terminal_Punctuation # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
|
||||
203C..203D ; Terminal_Punctuation # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
|
||||
@@ -159,6 +161,7 @@ FF63 ; Quotation_Mark # Pe HALFWIDTH RIGHT CORNER BRACKET
|
||||
2E41 ; Terminal_Punctuation # Po REVERSED COMMA
|
||||
2E4C ; Terminal_Punctuation # Po MEDIEVAL COMMA
|
||||
2E4E..2E4F ; Terminal_Punctuation # Po [2] PUNCTUS ELEVATUS MARK..CORNISH VERSE DIVIDER
|
||||
2E53..2E54 ; Terminal_Punctuation # Po [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK
|
||||
3001..3002 ; Terminal_Punctuation # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
|
||||
A4FE..A4FF ; Terminal_Punctuation # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
|
||||
A60D..A60F ; Terminal_Punctuation # Po [3] VAI COMMA..VAI QUESTION MARK
|
||||
@@ -189,6 +192,7 @@ FF64 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC COMMA
|
||||
10B3A..10B3F ; Terminal_Punctuation # Po [6] TINY TWO DOTS OVER ONE DOT PUNCTUATION..LARGE ONE RING OVER TWO RINGS PUNCTUATION
|
||||
10B99..10B9C ; Terminal_Punctuation # Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
|
||||
10F55..10F59 ; Terminal_Punctuation # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
|
||||
10F86..10F89 ; Terminal_Punctuation # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
|
||||
11047..1104D ; Terminal_Punctuation # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
|
||||
110BE..110C1 ; Terminal_Punctuation # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
|
||||
11141..11143 ; Terminal_Punctuation # Po [3] CHAKMA DANDA..CHAKMA QUESTION MARK
|
||||
@@ -220,7 +224,7 @@ FF64 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC COMMA
|
||||
1BC9F ; Terminal_Punctuation # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
|
||||
1DA87..1DA8A ; Terminal_Punctuation # Po [4] SIGNWRITING COMMA..SIGNWRITING COLON
|
||||
|
||||
# Total code points: 267
|
||||
# Total code points: 276
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -600,6 +604,7 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
|
||||
1A6D..1A72 ; Other_Alphabetic # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
|
||||
1A73..1A74 ; Other_Alphabetic # Mn [2] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN MAI KANG
|
||||
1ABF..1AC0 ; Other_Alphabetic # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
|
||||
1ACC..1ACE ; Other_Alphabetic # Mn [3] COMBINING LATIN SMALL LETTER INSULAR G..COMBINING LATIN SMALL LETTER INSULAR T
|
||||
1B00..1B03 ; Other_Alphabetic # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
|
||||
1B04 ; Other_Alphabetic # Mc BALINESE SIGN BISAH
|
||||
1B35 ; Other_Alphabetic # Mc BALINESE VOWEL SIGN TEDUNG
|
||||
@@ -686,10 +691,12 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
|
||||
11001 ; Other_Alphabetic # Mn BRAHMI SIGN ANUSVARA
|
||||
11002 ; Other_Alphabetic # Mc BRAHMI SIGN VISARGA
|
||||
11038..11045 ; Other_Alphabetic # Mn [14] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN AU
|
||||
11073..11074 ; Other_Alphabetic # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
|
||||
11082 ; Other_Alphabetic # Mc KAITHI SIGN VISARGA
|
||||
110B0..110B2 ; Other_Alphabetic # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
|
||||
110B3..110B6 ; Other_Alphabetic # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
|
||||
110B7..110B8 ; Other_Alphabetic # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
|
||||
110C2 ; Other_Alphabetic # Mn KAITHI VOWEL SIGN VOCALIC R
|
||||
11100..11102 ; Other_Alphabetic # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
|
||||
11127..1112B ; Other_Alphabetic # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
|
||||
1112C ; Other_Alphabetic # Mc CHAKMA VOWEL SIGN E
|
||||
@@ -815,7 +822,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
|
||||
1F150..1F169 ; Other_Alphabetic # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
|
||||
1F170..1F189 ; Other_Alphabetic # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
|
||||
|
||||
# Total code points: 1398
|
||||
# Total code points: 1404
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -824,7 +831,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
|
||||
3021..3029 ; Ideographic # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
|
||||
3038..303A ; Ideographic # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
|
||||
3400..4DBF ; Ideographic # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
|
||||
4E00..9FFC ; Ideographic # Lo [20989] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFC
|
||||
4E00..9FFF ; Ideographic # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
|
||||
F900..FA6D ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
|
||||
FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
|
||||
16FE4 ; Ideographic # Mn KHITAN SMALL SCRIPT FILLER
|
||||
@@ -832,15 +839,15 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
|
||||
18800..18CD5 ; Ideographic # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
|
||||
18D00..18D08 ; Ideographic # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
|
||||
1B170..1B2FB ; Ideographic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
|
||||
20000..2A6DD ; Ideographic # Lo [42718] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DD
|
||||
2A700..2B734 ; Ideographic # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
|
||||
20000..2A6DF ; Ideographic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
|
||||
2A700..2B738 ; Ideographic # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
|
||||
2B740..2B81D ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
|
||||
2B820..2CEA1 ; Ideographic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
|
||||
2CEB0..2EBE0 ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
|
||||
2F800..2FA1D ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
|
||||
30000..3134A ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
|
||||
|
||||
# Total code points: 101652
|
||||
# Total code points: 101661
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -885,6 +892,9 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
|
||||
07EB..07F3 ; Diacritic # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
|
||||
07F4..07F5 ; Diacritic # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
|
||||
0818..0819 ; Diacritic # Mn [2] SAMARITAN MARK OCCLUSION..SAMARITAN MARK DAGESH
|
||||
0898..089F ; Diacritic # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
|
||||
08C9 ; Diacritic # Lm ARABIC SMALL FARSI YEH
|
||||
08CA..08D2 ; Diacritic # Mn [9] ARABIC SMALL HIGH FARSI YEH..ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW
|
||||
08E3..08FE ; Diacritic # Mn [28] ARABIC TURNED DAMMA BELOW..ARABIC DAMMA WITH DOT
|
||||
093C ; Diacritic # Mn DEVANAGARI SIGN NUKTA
|
||||
094D ; Diacritic # Mn DEVANAGARI SIGN VIRAMA
|
||||
@@ -901,6 +911,7 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
|
||||
0B4D ; Diacritic # Mn ORIYA SIGN VIRAMA
|
||||
0B55 ; Diacritic # Mn ORIYA SIGN OVERLINE
|
||||
0BCD ; Diacritic # Mn TAMIL SIGN VIRAMA
|
||||
0C3C ; Diacritic # Mn TELUGU SIGN NUKTA
|
||||
0C4D ; Diacritic # Mn TELUGU SIGN VIRAMA
|
||||
0CBC ; Diacritic # Mn KANNADA SIGN NUKTA
|
||||
0CCD ; Diacritic # Mn KANNADA SIGN VIRAMA
|
||||
@@ -928,12 +939,16 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
|
||||
108F ; Diacritic # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
|
||||
109A..109B ; Diacritic # Mc [2] MYANMAR SIGN KHAMTI TONE-1..MYANMAR SIGN KHAMTI TONE-3
|
||||
135D..135F ; Diacritic # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
|
||||
1714 ; Diacritic # Mn TAGALOG SIGN VIRAMA
|
||||
1715 ; Diacritic # Mc TAGALOG SIGN PAMUDPOD
|
||||
17C9..17D3 ; Diacritic # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
|
||||
17DD ; Diacritic # Mn KHMER SIGN ATTHACAN
|
||||
1939..193B ; Diacritic # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
|
||||
1A75..1A7C ; Diacritic # Mn [8] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN-LUE KARAN
|
||||
1A7F ; Diacritic # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
|
||||
1AB0..1ABD ; Diacritic # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
|
||||
1ABE ; Diacritic # Me COMBINING PARENTHESES OVERLAY
|
||||
1AC1..1ACB ; Diacritic # Mn [11] COMBINING LEFT PARENTHESIS ABOVE LEFT..COMBINING TRIPLE ACUTE ACCENT
|
||||
1B34 ; Diacritic # Mn BALINESE SIGN REREKAN
|
||||
1B44 ; Diacritic # Mc BALINESE ADEG ADEG
|
||||
1B6B..1B73 ; Diacritic # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
|
||||
@@ -952,8 +967,7 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
|
||||
1CF8..1CF9 ; Diacritic # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
|
||||
1D2C..1D6A ; Diacritic # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
|
||||
1DC4..1DCF ; Diacritic # Mn [12] COMBINING MACRON-ACUTE..COMBINING ZIGZAG BELOW
|
||||
1DF5..1DF9 ; Diacritic # Mn [5] COMBINING UP TACK ABOVE..COMBINING WIDE INVERTED BRIDGE BELOW
|
||||
1DFD..1DFF ; Diacritic # Mn [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
|
||||
1DF5..1DFF ; Diacritic # Mn [11] COMBINING UP TACK ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
|
||||
1FBD ; Diacritic # Sk GREEK KORONIS
|
||||
1FBF..1FC1 ; Diacritic # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
|
||||
1FCD..1FCF ; Diacritic # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
|
||||
@@ -1008,10 +1022,16 @@ FF70 ; Diacritic # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND
|
||||
FF9E..FF9F ; Diacritic # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
|
||||
FFE3 ; Diacritic # Sk FULLWIDTH MACRON
|
||||
102E0 ; Diacritic # Mn COPTIC EPACT THOUSANDS MARK
|
||||
10780..10785 ; Diacritic # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
|
||||
10787..107B0 ; Diacritic # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
|
||||
107B2..107BA ; Diacritic # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
|
||||
10AE5..10AE6 ; Diacritic # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
|
||||
10D22..10D23 ; Diacritic # Lo [2] HANIFI ROHINGYA MARK SAKIN..HANIFI ROHINGYA MARK NA KHONNA
|
||||
10D24..10D27 ; Diacritic # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
|
||||
10F46..10F50 ; Diacritic # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
|
||||
10F82..10F85 ; Diacritic # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
|
||||
11046 ; Diacritic # Mn BRAHMI VIRAMA
|
||||
11070 ; Diacritic # Mn BRAHMI SIGN OLD TAMIL VIRAMA
|
||||
110B9..110BA ; Diacritic # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
|
||||
11133..11134 ; Diacritic # Mn [2] CHAKMA VIRAMA..CHAKMA MAAYYAA
|
||||
11173 ; Diacritic # Mn MAHAJANI SIGN NUKTA
|
||||
@@ -1049,18 +1069,24 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
|
||||
16F8F..16F92 ; Diacritic # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
|
||||
16F93..16F9F ; Diacritic # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
|
||||
16FF0..16FF1 ; Diacritic # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
|
||||
1AFF0..1AFF3 ; Diacritic # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
|
||||
1AFF5..1AFFB ; Diacritic # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
|
||||
1AFFD..1AFFE ; Diacritic # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
|
||||
1CF00..1CF2D ; Diacritic # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
|
||||
1CF30..1CF46 ; Diacritic # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
|
||||
1D167..1D169 ; Diacritic # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
|
||||
1D16D..1D172 ; Diacritic # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
|
||||
1D17B..1D182 ; Diacritic # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
|
||||
1D185..1D18B ; Diacritic # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
|
||||
1D1AA..1D1AD ; Diacritic # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
|
||||
1E130..1E136 ; Diacritic # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
|
||||
1E2AE ; Diacritic # Mn TOTO SIGN RISING TONE
|
||||
1E2EC..1E2EF ; Diacritic # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
|
||||
1E8D0..1E8D6 ; Diacritic # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
|
||||
1E944..1E946 ; Diacritic # Mn [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
|
||||
1E948..1E94A ; Diacritic # Mn [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA
|
||||
|
||||
# Total code points: 882
|
||||
# Total code points: 1064
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1088,6 +1114,7 @@ AA70 ; Extender # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
|
||||
AADD ; Extender # Lm TAI VIET SYMBOL SAM
|
||||
AAF3..AAF4 ; Extender # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
|
||||
FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
|
||||
10781..10782 ; Extender # Lm [2] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
|
||||
1135D ; Extender # Lo GRANTHA SIGN PLUTA
|
||||
115C6..115C8 ; Extender # Po [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
|
||||
11A98 ; Extender # Mn SOYOMBO GEMINATION MARK
|
||||
@@ -1097,7 +1124,7 @@ FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND
|
||||
1E13C..1E13D ; Extender # Lm [2] NYIAKENG PUACHUE HMONG SIGN XW XW..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
|
||||
1E944..1E946 ; Extender # Mn [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
|
||||
|
||||
# Total code points: 48
|
||||
# Total code points: 50
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1121,8 +1148,12 @@ A69C..A69D ; Other_Lowercase # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..M
|
||||
A770 ; Other_Lowercase # Lm MODIFIER LETTER US
|
||||
A7F8..A7F9 ; Other_Lowercase # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
|
||||
AB5C..AB5F ; Other_Lowercase # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
|
||||
10780 ; Other_Lowercase # Lm MODIFIER LETTER SMALL CAPITAL AA
|
||||
10783..10785 ; Other_Lowercase # Lm [3] MODIFIER LETTER SMALL AE..MODIFIER LETTER SMALL B WITH HOOK
|
||||
10787..107B0 ; Other_Lowercase # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
|
||||
107B2..107BA ; Other_Lowercase # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
|
||||
|
||||
# Total code points: 189
|
||||
# Total code points: 244
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1211,7 +1242,7 @@ E0020..E007F ; Other_Grapheme_Extend # Cf [96] TAG SPACE..CANCEL TAG
|
||||
# ================================================
|
||||
|
||||
3400..4DBF ; Unified_Ideograph # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
|
||||
4E00..9FFC ; Unified_Ideograph # Lo [20989] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFC
|
||||
4E00..9FFF ; Unified_Ideograph # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
|
||||
FA0E..FA0F ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
|
||||
FA11 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA11
|
||||
FA13..FA14 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
|
||||
@@ -1219,14 +1250,14 @@ FA1F ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA1F
|
||||
FA21 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA21
|
||||
FA23..FA24 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
|
||||
FA27..FA29 ; Unified_Ideograph # Lo [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
|
||||
20000..2A6DD ; Unified_Ideograph # Lo [42718] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DD
|
||||
2A700..2B734 ; Unified_Ideograph # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
|
||||
20000..2A6DF ; Unified_Ideograph # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
|
||||
2A700..2B738 ; Unified_Ideograph # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
|
||||
2B740..2B81D ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
|
||||
2B820..2CEA1 ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
|
||||
2CEB0..2EBE0 ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
|
||||
30000..3134A ; Unified_Ideograph # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
|
||||
|
||||
# Total code points: 92856
|
||||
# Total code points: 92865
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1291,8 +1322,9 @@ E0001 ; Deprecated # Cf LANGUAGE TAG
|
||||
1D62A..1D62B ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF ITALIC SMALL I..MATHEMATICAL SANS-SERIF ITALIC SMALL J
|
||||
1D65E..1D65F ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
|
||||
1D692..1D693 ; Soft_Dotted # L& [2] MATHEMATICAL MONOSPACE SMALL I..MATHEMATICAL MONOSPACE SMALL J
|
||||
1DF1A ; Soft_Dotted # L& LATIN SMALL LETTER I WITH STROKE AND RETROFLEX HOOK
|
||||
|
||||
# Total code points: 46
|
||||
# Total code points: 47
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1330,7 +1362,7 @@ AABB..AABC ; Logical_Order_Exception # Lo [2] TAI VIET VOWEL AUE..TAI VIET
|
||||
002E ; Sentence_Terminal # Po FULL STOP
|
||||
003F ; Sentence_Terminal # Po QUESTION MARK
|
||||
0589 ; Sentence_Terminal # Po ARMENIAN FULL STOP
|
||||
061E..061F ; Sentence_Terminal # Po [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
|
||||
061D..061F ; Sentence_Terminal # Po [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
|
||||
06D4 ; Sentence_Terminal # Po ARABIC FULL STOP
|
||||
0700..0702 ; Sentence_Terminal # Po [3] SYRIAC END OF PARAGRAPH..SYRIAC SUBLINEAR FULL STOP
|
||||
07F9 ; Sentence_Terminal # Po NKO EXCLAMATION MARK
|
||||
@@ -1349,12 +1381,14 @@ AABB..AABC ; Logical_Order_Exception # Lo [2] TAI VIET VOWEL AUE..TAI VIET
|
||||
1AA8..1AAB ; Sentence_Terminal # Po [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU
|
||||
1B5A..1B5B ; Sentence_Terminal # Po [2] BALINESE PANTI..BALINESE PAMADA
|
||||
1B5E..1B5F ; Sentence_Terminal # Po [2] BALINESE CARIK SIKI..BALINESE CARIK PAREREN
|
||||
1B7D..1B7E ; Sentence_Terminal # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
|
||||
1C3B..1C3C ; Sentence_Terminal # Po [2] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION NYET THYOOM TA-ROL
|
||||
1C7E..1C7F ; Sentence_Terminal # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
|
||||
203C..203D ; Sentence_Terminal # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
|
||||
2047..2049 ; Sentence_Terminal # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
|
||||
2E2E ; Sentence_Terminal # Po REVERSED QUESTION MARK
|
||||
2E3C ; Sentence_Terminal # Po STENOGRAPHIC FULL STOP
|
||||
2E53..2E54 ; Sentence_Terminal # Po [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK
|
||||
3002 ; Sentence_Terminal # Po IDEOGRAPHIC FULL STOP
|
||||
A4FF ; Sentence_Terminal # Po LISU PUNCTUATION FULL STOP
|
||||
A60E..A60F ; Sentence_Terminal # Po [2] VAI FULL STOP..VAI QUESTION MARK
|
||||
@@ -1375,6 +1409,7 @@ FF1F ; Sentence_Terminal # Po FULLWIDTH QUESTION MARK
|
||||
FF61 ; Sentence_Terminal # Po HALFWIDTH IDEOGRAPHIC FULL STOP
|
||||
10A56..10A57 ; Sentence_Terminal # Po [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA
|
||||
10F55..10F59 ; Sentence_Terminal # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
|
||||
10F86..10F89 ; Sentence_Terminal # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
|
||||
11047..11048 ; Sentence_Terminal # Po [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
|
||||
110BE..110C1 ; Sentence_Terminal # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
|
||||
11141..11143 ; Sentence_Terminal # Po [3] CHAKMA DANDA..CHAKMA QUESTION MARK
|
||||
@@ -1403,15 +1438,16 @@ FF61 ; Sentence_Terminal # Po HALFWIDTH IDEOGRAPHIC FULL STOP
|
||||
1BC9F ; Sentence_Terminal # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
|
||||
1DA88 ; Sentence_Terminal # Po SIGNWRITING FULL STOP
|
||||
|
||||
# Total code points: 143
|
||||
# Total code points: 152
|
||||
|
||||
# ================================================
|
||||
|
||||
180B..180D ; Variation_Selector # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
|
||||
180F ; Variation_Selector # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
|
||||
FE00..FE0F ; Variation_Selector # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
|
||||
E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
|
||||
|
||||
# Total code points: 259
|
||||
# Total code points: 260
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1644,8 +1680,17 @@ E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S
|
||||
2E42 ; Pattern_Syntax # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
|
||||
2E43..2E4F ; Pattern_Syntax # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
|
||||
2E50..2E51 ; Pattern_Syntax # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
|
||||
2E52 ; Pattern_Syntax # Po TIRONIAN SIGN CAPITAL ET
|
||||
2E53..2E7F ; Pattern_Syntax # Cn [45] <reserved-2E53>..<reserved-2E7F>
|
||||
2E52..2E54 ; Pattern_Syntax # Po [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
|
||||
2E55 ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH STROKE
|
||||
2E56 ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH STROKE
|
||||
2E57 ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE
|
||||
2E58 ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE
|
||||
2E59 ; Pattern_Syntax # Ps TOP HALF LEFT PARENTHESIS
|
||||
2E5A ; Pattern_Syntax # Pe TOP HALF RIGHT PARENTHESIS
|
||||
2E5B ; Pattern_Syntax # Ps BOTTOM HALF LEFT PARENTHESIS
|
||||
2E5C ; Pattern_Syntax # Pe BOTTOM HALF RIGHT PARENTHESIS
|
||||
2E5D ; Pattern_Syntax # Pd OBLIQUE HYPHEN
|
||||
2E5E..2E7F ; Pattern_Syntax # Cn [34] <reserved-2E5E>..<reserved-2E7F>
|
||||
3001..3003 ; Pattern_Syntax # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
|
||||
3008 ; Pattern_Syntax # Ps LEFT ANGLE BRACKET
|
||||
3009 ; Pattern_Syntax # Pe RIGHT ANGLE BRACKET
|
||||
@@ -1682,11 +1727,12 @@ FE45..FE46 ; Pattern_Syntax # Po [2] SESAME DOT..WHITE SESAME DOT
|
||||
0600..0605 ; Prepended_Concatenation_Mark # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
|
||||
06DD ; Prepended_Concatenation_Mark # Cf ARABIC END OF AYAH
|
||||
070F ; Prepended_Concatenation_Mark # Cf SYRIAC ABBREVIATION MARK
|
||||
0890..0891 ; Prepended_Concatenation_Mark # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
|
||||
08E2 ; Prepended_Concatenation_Mark # Cf ARABIC DISPUTED END OF AYAH
|
||||
110BD ; Prepended_Concatenation_Mark # Cf KAITHI NUMBER SIGN
|
||||
110CD ; Prepended_Concatenation_Mark # Cf KAITHI NUMBER SIGN ABOVE
|
||||
|
||||
# Total code points: 11
|
||||
# Total code points: 13
|
||||
|
||||
# ================================================
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# PropertyValueAliases-13.0.0.txt
|
||||
# Date: 2019-11-13, 21:52:10 GMT
|
||||
# Copyright (c) 2019 Unicode, Inc.
|
||||
# PropertyValueAliases-14.0.0.txt
|
||||
# Date: 2021-05-10, 21:08:53 GMT
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
@@ -89,6 +89,7 @@ age; 11.0 ; V11_0
|
||||
age; 12.0 ; V12_0
|
||||
age; 12.1 ; V12_1
|
||||
age; 13.0 ; V13_0
|
||||
age; 14.0 ; V14_0
|
||||
age; NA ; Unassigned
|
||||
|
||||
# Alphabetic (Alpha)
|
||||
@@ -160,6 +161,7 @@ blk; Ancient_Greek_Numbers ; Ancient_Greek_Numbers
|
||||
blk; Ancient_Symbols ; Ancient_Symbols
|
||||
blk; Arabic ; Arabic
|
||||
blk; Arabic_Ext_A ; Arabic_Extended_A
|
||||
blk; Arabic_Ext_B ; Arabic_Extended_B
|
||||
blk; Arabic_Math ; Arabic_Mathematical_Alphabetic_Symbols
|
||||
blk; Arabic_PF_A ; Arabic_Presentation_Forms_A ; Arabic_Presentation_Forms-A
|
||||
blk; Arabic_PF_B ; Arabic_Presentation_Forms_B
|
||||
@@ -216,6 +218,7 @@ blk; Cuneiform ; Cuneiform
|
||||
blk; Cuneiform_Numbers ; Cuneiform_Numbers_And_Punctuation
|
||||
blk; Currency_Symbols ; Currency_Symbols
|
||||
blk; Cypriot_Syllabary ; Cypriot_Syllabary
|
||||
blk; Cypro_Minoan ; Cypro_Minoan
|
||||
blk; Cyrillic ; Cyrillic
|
||||
blk; Cyrillic_Ext_A ; Cyrillic_Extended_A
|
||||
blk; Cyrillic_Ext_B ; Cyrillic_Extended_B
|
||||
@@ -246,6 +249,7 @@ blk; Enclosed_Ideographic_Sup ; Enclosed_Ideographic_Supplement
|
||||
blk; Ethiopic ; Ethiopic
|
||||
blk; Ethiopic_Ext ; Ethiopic_Extended
|
||||
blk; Ethiopic_Ext_A ; Ethiopic_Extended_A
|
||||
blk; Ethiopic_Ext_B ; Ethiopic_Extended_B
|
||||
blk; Ethiopic_Sup ; Ethiopic_Supplement
|
||||
blk; Geometric_Shapes ; Geometric_Shapes
|
||||
blk; Geometric_Shapes_Ext ; Geometric_Shapes_Extended
|
||||
@@ -285,6 +289,7 @@ blk; Jamo_Ext_B ; Hangul_Jamo_Extended_B
|
||||
blk; Javanese ; Javanese
|
||||
blk; Kaithi ; Kaithi
|
||||
blk; Kana_Ext_A ; Kana_Extended_A
|
||||
blk; Kana_Ext_B ; Kana_Extended_B
|
||||
blk; Kana_Sup ; Kana_Supplement
|
||||
blk; Kanbun ; Kanbun
|
||||
blk; Kangxi ; Kangxi_Radicals
|
||||
@@ -306,6 +311,8 @@ blk; Latin_Ext_B ; Latin_Extended_B
|
||||
blk; Latin_Ext_C ; Latin_Extended_C
|
||||
blk; Latin_Ext_D ; Latin_Extended_D
|
||||
blk; Latin_Ext_E ; Latin_Extended_E
|
||||
blk; Latin_Ext_F ; Latin_Extended_F
|
||||
blk; Latin_Ext_G ; Latin_Extended_G
|
||||
blk; Lepcha ; Lepcha
|
||||
blk; Letterlike_Symbols ; Letterlike_Symbols
|
||||
blk; Limbu ; Limbu
|
||||
@@ -372,6 +379,7 @@ blk; Old_Persian ; Old_Persian
|
||||
blk; Old_Sogdian ; Old_Sogdian
|
||||
blk; Old_South_Arabian ; Old_South_Arabian
|
||||
blk; Old_Turkic ; Old_Turkic
|
||||
blk; Old_Uyghur ; Old_Uyghur
|
||||
blk; Oriya ; Oriya
|
||||
blk; Ornamental_Dingbats ; Ornamental_Dingbats
|
||||
blk; Osage ; Osage
|
||||
@@ -433,6 +441,7 @@ blk; Tai_Xuan_Jing ; Tai_Xuan_Jing_Symbols
|
||||
blk; Takri ; Takri
|
||||
blk; Tamil ; Tamil
|
||||
blk; Tamil_Sup ; Tamil_Supplement
|
||||
blk; Tangsa ; Tangsa
|
||||
blk; Tangut ; Tangut
|
||||
blk; Tangut_Components ; Tangut_Components
|
||||
blk; Tangut_Sup ; Tangut_Supplement
|
||||
@@ -442,13 +451,16 @@ blk; Thai ; Thai
|
||||
blk; Tibetan ; Tibetan
|
||||
blk; Tifinagh ; Tifinagh
|
||||
blk; Tirhuta ; Tirhuta
|
||||
blk; Toto ; Toto
|
||||
blk; Transport_And_Map ; Transport_And_Map_Symbols
|
||||
blk; UCAS ; Unified_Canadian_Aboriginal_Syllabics; Canadian_Syllabics
|
||||
blk; UCAS_Ext ; Unified_Canadian_Aboriginal_Syllabics_Extended
|
||||
blk; UCAS_Ext_A ; Unified_Canadian_Aboriginal_Syllabics_Extended_A
|
||||
blk; Ugaritic ; Ugaritic
|
||||
blk; Vai ; Vai
|
||||
blk; Vedic_Ext ; Vedic_Extensions
|
||||
blk; Vertical_Forms ; Vertical_Forms
|
||||
blk; Vithkuqi ; Vithkuqi
|
||||
blk; VS ; Variation_Selectors
|
||||
blk; VS_Sup ; Variation_Selectors_Supplement
|
||||
blk; Wancho ; Wancho
|
||||
@@ -458,6 +470,7 @@ blk; Yi_Radicals ; Yi_Radicals
|
||||
blk; Yi_Syllables ; Yi_Syllables
|
||||
blk; Yijing ; Yijing_Hexagram_Symbols
|
||||
blk; Zanabazar_Square ; Zanabazar_Square
|
||||
blk; Znamenny_Music ; Znamenny_Musical_Notation
|
||||
|
||||
# Canonical_Combining_Class (ccc)
|
||||
|
||||
@@ -1032,6 +1045,8 @@ jg ; Taw ; Taw
|
||||
jg ; Teh_Marbuta ; Teh_Marbuta
|
||||
jg ; Teh_Marbuta_Goal ; Hamza_On_Heh_Goal
|
||||
jg ; Teth ; Teth
|
||||
jg ; Thin_Yeh ; Thin_Yeh
|
||||
jg ; Vertical_Tail ; Vertical_Tail
|
||||
jg ; Waw ; Waw
|
||||
jg ; Yeh ; Yeh
|
||||
jg ; Yeh_Barree ; Yeh_Barree
|
||||
@@ -1262,6 +1277,7 @@ sc ; Cham ; Cham
|
||||
sc ; Cher ; Cherokee
|
||||
sc ; Chrs ; Chorasmian
|
||||
sc ; Copt ; Coptic ; Qaac
|
||||
sc ; Cpmn ; Cypro_Minoan
|
||||
sc ; Cprt ; Cypriot
|
||||
sc ; Cyrl ; Cyrillic
|
||||
sc ; Deva ; Devanagari
|
||||
@@ -1341,6 +1357,7 @@ sc ; Orkh ; Old_Turkic
|
||||
sc ; Orya ; Oriya
|
||||
sc ; Osge ; Osage
|
||||
sc ; Osma ; Osmanya
|
||||
sc ; Ougr ; Old_Uyghur
|
||||
sc ; Palm ; Palmyrene
|
||||
sc ; Pauc ; Pau_Cin_Hau
|
||||
sc ; Perm ; Old_Permic
|
||||
@@ -1383,8 +1400,11 @@ sc ; Thaa ; Thaana
|
||||
sc ; Thai ; Thai
|
||||
sc ; Tibt ; Tibetan
|
||||
sc ; Tirh ; Tirhuta
|
||||
sc ; Tnsa ; Tangsa
|
||||
sc ; Toto ; Toto
|
||||
sc ; Ugar ; Ugaritic
|
||||
sc ; Vaii ; Vai
|
||||
sc ; Vith ; Vithkuqi
|
||||
sc ; Wara ; Warang_Citi
|
||||
sc ; Wcho ; Wancho
|
||||
sc ; Xpeo ; Old_Persian
|
||||
|
||||
16
make/data/unicodedata/ReadMe.txt
Normal file
16
make/data/unicodedata/ReadMe.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
# Unicode Character Database
|
||||
# Date: 2021-09-10, 17:22:00 GMT [KW]
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see https://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# For documentation, see the following:
|
||||
# NamesList.html
|
||||
# UAX #38, "Unicode Han Database (Unihan)"
|
||||
# UAX #44, "Unicode Character Database"
|
||||
# UTS #51, "Unicode Emoji"
|
||||
#
|
||||
# The UAXes and UTS #51 can be accessed at https://www.unicode.org/versions/Unicode14.0.0/
|
||||
|
||||
This directory contains the final data files
|
||||
for the Unicode Character Database, for Version 14.0.0 of the Unicode Standard.
|
||||
@@ -1,16 +1,16 @@
|
||||
# Scripts-13.0.0.txt
|
||||
# Date: 2020-01-22, 00:07:43 GMT
|
||||
# Copyright (c) 2020 Unicode, Inc.
|
||||
# Scripts-14.0.0.txt
|
||||
# Date: 2021-07-10, 00:35:31 GMT
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Unicode Character Database
|
||||
# For documentation, see http://www.unicode.org/reports/tr44/
|
||||
# For more information, see:
|
||||
# UAX #24, Unicode Script Property: http://www.unicode.org/reports/tr24/
|
||||
# UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/
|
||||
# Especially the sections:
|
||||
# http://www.unicode.org/reports/tr24/#Assignment_Script_Values
|
||||
# http://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
|
||||
# https://www.unicode.org/reports/tr24/#Assignment_Script_Values
|
||||
# https://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
|
||||
#
|
||||
|
||||
# ================================================
|
||||
@@ -154,7 +154,7 @@
|
||||
208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
|
||||
208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
|
||||
208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
|
||||
20A0..20BF ; Common # Sc [32] EURO-CURRENCY SIGN..BITCOIN SIGN
|
||||
20A0..20C0 ; Common # Sc [33] EURO-CURRENCY SIGN..SOM SIGN
|
||||
2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
|
||||
2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
|
||||
2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
|
||||
@@ -347,7 +347,16 @@
|
||||
2E42 ; Common # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
|
||||
2E43..2E4F ; Common # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
|
||||
2E50..2E51 ; Common # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
|
||||
2E52 ; Common # Po TIRONIAN SIGN CAPITAL ET
|
||||
2E52..2E54 ; Common # Po [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
|
||||
2E55 ; Common # Ps LEFT SQUARE BRACKET WITH STROKE
|
||||
2E56 ; Common # Pe RIGHT SQUARE BRACKET WITH STROKE
|
||||
2E57 ; Common # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE
|
||||
2E58 ; Common # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE
|
||||
2E59 ; Common # Ps TOP HALF LEFT PARENTHESIS
|
||||
2E5A ; Common # Pe TOP HALF RIGHT PARENTHESIS
|
||||
2E5B ; Common # Ps BOTTOM HALF LEFT PARENTHESIS
|
||||
2E5C ; Common # Pe BOTTOM HALF RIGHT PARENTHESIS
|
||||
2E5D ; Common # Pd OBLIQUE HYPHEN
|
||||
2FF0..2FFB ; Common # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
|
||||
3000 ; Common # Zs IDEOGRAPHIC SPACE
|
||||
3001..3003 ; Common # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
|
||||
@@ -511,9 +520,8 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
|
||||
10190..1019C ; Common # So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
|
||||
101D0..101FC ; Common # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
|
||||
102E1..102FB ; Common # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
|
||||
16FE2 ; Common # Po OLD CHINESE HOOK MARK
|
||||
16FE3 ; Common # Lm OLD CHINESE ITERATION MARK
|
||||
1BCA0..1BCA3 ; Common # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
|
||||
1CF50..1CFC3 ; Common # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
|
||||
1D000..1D0F5 ; Common # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
|
||||
1D100..1D126 ; Common # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
|
||||
1D129..1D164 ; Common # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
|
||||
@@ -523,7 +531,7 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
|
||||
1D173..1D17A ; Common # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
|
||||
1D183..1D184 ; Common # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
|
||||
1D18C..1D1A9 ; Common # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
|
||||
1D1AE..1D1E8 ; Common # So [59] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KIEVAN FLAT SIGN
|
||||
1D1AE..1D1EA ; Common # So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
|
||||
1D2E0..1D2F3 ; Common # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
|
||||
1D300..1D356 ; Common # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
|
||||
1D360..1D378 ; Common # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
|
||||
@@ -593,35 +601,36 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
|
||||
1F300..1F3FA ; Common # So [251] CYCLONE..AMPHORA
|
||||
1F3FB..1F3FF ; Common # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
|
||||
1F400..1F6D7 ; Common # So [728] RAT..ELEVATOR
|
||||
1F6E0..1F6EC ; Common # So [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
|
||||
1F6DD..1F6EC ; Common # So [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
|
||||
1F6F0..1F6FC ; Common # So [13] SATELLITE..ROLLER SKATE
|
||||
1F700..1F773 ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
|
||||
1F780..1F7D8 ; Common # So [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
|
||||
1F7E0..1F7EB ; Common # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
|
||||
1F7F0 ; Common # So HEAVY EQUALS SIGN
|
||||
1F800..1F80B ; Common # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
|
||||
1F810..1F847 ; Common # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
|
||||
1F850..1F859 ; Common # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
|
||||
1F860..1F887 ; Common # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
|
||||
1F890..1F8AD ; Common # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
|
||||
1F8B0..1F8B1 ; Common # So [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
|
||||
1F900..1F978 ; Common # So [121] CIRCLED CROSS FORMEE WITH FOUR DOTS..DISGUISED FACE
|
||||
1F97A..1F9CB ; Common # So [82] FACE WITH PLEADING EYES..BUBBLE TEA
|
||||
1F9CD..1FA53 ; Common # So [135] STANDING PERSON..BLACK CHESS KNIGHT-BISHOP
|
||||
1F900..1FA53 ; Common # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
|
||||
1FA60..1FA6D ; Common # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
|
||||
1FA70..1FA74 ; Common # So [5] BALLET SHOES..THONG SANDAL
|
||||
1FA78..1FA7A ; Common # So [3] DROP OF BLOOD..STETHOSCOPE
|
||||
1FA78..1FA7C ; Common # So [5] DROP OF BLOOD..CRUTCH
|
||||
1FA80..1FA86 ; Common # So [7] YO-YO..NESTING DOLLS
|
||||
1FA90..1FAA8 ; Common # So [25] RINGED PLANET..ROCK
|
||||
1FAB0..1FAB6 ; Common # So [7] FLY..FEATHER
|
||||
1FAC0..1FAC2 ; Common # So [3] ANATOMICAL HEART..PEOPLE HUGGING
|
||||
1FAD0..1FAD6 ; Common # So [7] BLUEBERRIES..TEAPOT
|
||||
1FA90..1FAAC ; Common # So [29] RINGED PLANET..HAMSA
|
||||
1FAB0..1FABA ; Common # So [11] FLY..NEST WITH EGGS
|
||||
1FAC0..1FAC5 ; Common # So [6] ANATOMICAL HEART..PERSON WITH CROWN
|
||||
1FAD0..1FAD9 ; Common # So [10] BLUEBERRIES..JAR
|
||||
1FAE0..1FAE7 ; Common # So [8] MELTING FACE..BUBBLES
|
||||
1FAF0..1FAF6 ; Common # So [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
|
||||
1FB00..1FB92 ; Common # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
|
||||
1FB94..1FBCA ; Common # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
|
||||
1FBF0..1FBF9 ; Common # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
|
||||
E0001 ; Common # Cf LANGUAGE TAG
|
||||
E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
|
||||
|
||||
# Total code points: 8087
|
||||
# Total code points: 8252
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -664,8 +673,11 @@ A770 ; Latin # Lm MODIFIER LETTER US
|
||||
A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
|
||||
A78B..A78E ; Latin # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
|
||||
A78F ; Latin # Lo LATIN LETTER SINOLOGICAL DOT
|
||||
A790..A7BF ; Latin # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
|
||||
A7C2..A7CA ; Latin # L& [9] LATIN CAPITAL LETTER ANGLICANA W..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
|
||||
A790..A7CA ; Latin # L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
|
||||
A7D0..A7D1 ; Latin # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
|
||||
A7D3 ; Latin # L& LATIN SMALL LETTER DOUBLE THORN
|
||||
A7D5..A7D9 ; Latin # L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
|
||||
A7F2..A7F4 ; Latin # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
|
||||
A7F5..A7F6 ; Latin # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
|
||||
A7F7 ; Latin # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
|
||||
A7F8..A7F9 ; Latin # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
|
||||
@@ -679,8 +691,14 @@ AB69 ; Latin # Lm MODIFIER LETTER SMALL TURNED W
|
||||
FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
|
||||
FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
|
||||
FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
|
||||
10780..10785 ; Latin # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
|
||||
10787..107B0 ; Latin # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
|
||||
107B2..107BA ; Latin # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
|
||||
1DF00..1DF09 ; Latin # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
|
||||
1DF0A ; Latin # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
|
||||
1DF0B..1DF1E ; Latin # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
|
||||
|
||||
# Total code points: 1374
|
||||
# Total code points: 1475
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -820,7 +838,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
|
||||
060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
|
||||
0610..061A ; Arabic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
|
||||
061C ; Arabic # Cf ARABIC LETTER MARK
|
||||
061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK
|
||||
061D..061E ; Arabic # Po [2] ARABIC END OF TEXT MARK..ARABIC TRIPLE DOT PUNCTUATION MARK
|
||||
0620..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
|
||||
0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
|
||||
0656..065F ; Arabic # Mn [10] ARABIC SUBSCRIPT ALEF..ARABIC WAVY HAMZA BELOW
|
||||
@@ -843,18 +861,25 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
|
||||
06FD..06FE ; Arabic # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
|
||||
06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
|
||||
0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
|
||||
08A0..08B4 ; Arabic # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
|
||||
08B6..08C7 ; Arabic # Lo [18] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
|
||||
08D3..08E1 ; Arabic # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
|
||||
0870..0887 ; Arabic # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
|
||||
0888 ; Arabic # Sk ARABIC RAISED ROUND DOT
|
||||
0889..088E ; Arabic # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
|
||||
0890..0891 ; Arabic # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
|
||||
0898..089F ; Arabic # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
|
||||
08A0..08C8 ; Arabic # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
|
||||
08C9 ; Arabic # Lm ARABIC SMALL FARSI YEH
|
||||
08CA..08E1 ; Arabic # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
|
||||
08E3..08FF ; Arabic # Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
|
||||
FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
|
||||
FBB2..FBC1 ; Arabic # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
|
||||
FBB2..FBC2 ; Arabic # Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
|
||||
FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
|
||||
FD40..FD4F ; Arabic # So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
|
||||
FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
|
||||
FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
|
||||
FDCF ; Arabic # So ARABIC LIGATURE SALAAMUHU ALAYNAA
|
||||
FDF0..FDFB ; Arabic # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
|
||||
FDFC ; Arabic # Sc RIAL SIGN
|
||||
FDFD ; Arabic # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
|
||||
FDFD..FDFF ; Arabic # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
|
||||
FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
|
||||
FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
|
||||
10E60..10E7E ; Arabic # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
|
||||
@@ -893,7 +918,7 @@ FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
|
||||
1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
|
||||
1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
|
||||
|
||||
# Total code points: 1291
|
||||
# Total code points: 1365
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1113,6 +1138,7 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
|
||||
0C0E..0C10 ; Telugu # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
|
||||
0C12..0C28 ; Telugu # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
|
||||
0C2A..0C39 ; Telugu # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
|
||||
0C3C ; Telugu # Mn TELUGU SIGN NUKTA
|
||||
0C3D ; Telugu # Lo TELUGU SIGN AVAGRAHA
|
||||
0C3E..0C40 ; Telugu # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
|
||||
0C41..0C44 ; Telugu # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
|
||||
@@ -1120,6 +1146,7 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
|
||||
0C4A..0C4D ; Telugu # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
|
||||
0C55..0C56 ; Telugu # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
|
||||
0C58..0C5A ; Telugu # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
|
||||
0C5D ; Telugu # Lo TELUGU LETTER NAKAARA POLLU
|
||||
0C60..0C61 ; Telugu # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
|
||||
0C62..0C63 ; Telugu # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
|
||||
0C66..0C6F ; Telugu # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
|
||||
@@ -1127,7 +1154,7 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
|
||||
0C78..0C7E ; Telugu # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
|
||||
0C7F ; Telugu # So TELUGU SIGN TUUMU
|
||||
|
||||
# Total code points: 98
|
||||
# Total code points: 100
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1150,13 +1177,13 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
|
||||
0CCA..0CCB ; Kannada # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
|
||||
0CCC..0CCD ; Kannada # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
|
||||
0CD5..0CD6 ; Kannada # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
|
||||
0CDE ; Kannada # Lo KANNADA LETTER FA
|
||||
0CDD..0CDE ; Kannada # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
|
||||
0CE0..0CE1 ; Kannada # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
|
||||
0CE2..0CE3 ; Kannada # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
|
||||
0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
|
||||
0CF1..0CF2 ; Kannada # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
|
||||
|
||||
# Total code points: 89
|
||||
# Total code points: 90
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1411,8 +1438,12 @@ AB09..AB0E ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DD
|
||||
AB11..AB16 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
|
||||
AB20..AB26 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
|
||||
AB28..AB2E ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
|
||||
1E7E0..1E7E6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
|
||||
1E7E8..1E7EB ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
|
||||
1E7ED..1E7EE ; Ethiopic # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
|
||||
1E7F0..1E7FE ; Ethiopic # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
|
||||
|
||||
# Total code points: 495
|
||||
# Total code points: 523
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1430,8 +1461,9 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
|
||||
166E ; Canadian_Aboriginal # Po CANADIAN SYLLABICS FULL STOP
|
||||
166F..167F ; Canadian_Aboriginal # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
|
||||
18B0..18F5 ; Canadian_Aboriginal # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
|
||||
11AB0..11ABF ; Canadian_Aboriginal # Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
|
||||
|
||||
# Total code points: 710
|
||||
# Total code points: 726
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1480,6 +1512,7 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
|
||||
1807..180A ; Mongolian # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
|
||||
180B..180D ; Mongolian # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
|
||||
180E ; Mongolian # Cf MONGOLIAN VOWEL SEPARATOR
|
||||
180F ; Mongolian # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
|
||||
1810..1819 ; Mongolian # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
|
||||
1820..1842 ; Mongolian # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
|
||||
1843 ; Mongolian # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
|
||||
@@ -1491,18 +1524,18 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
|
||||
18AA ; Mongolian # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
|
||||
11660..1166C ; Mongolian # Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
|
||||
|
||||
# Total code points: 167
|
||||
# Total code points: 168
|
||||
|
||||
# ================================================
|
||||
|
||||
3041..3096 ; Hiragana # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
|
||||
309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
|
||||
309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI
|
||||
1B001..1B11E ; Hiragana # Lo [286] HIRAGANA LETTER ARCHAIC YE..HENTAIGANA LETTER N-MU-MO-2
|
||||
1B001..1B11F ; Hiragana # Lo [287] HIRAGANA LETTER ARCHAIC YE..HIRAGANA LETTER ARCHAIC WU
|
||||
1B150..1B152 ; Hiragana # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
|
||||
1F200 ; Hiragana # So SQUARE HIRAGANA HOKA
|
||||
|
||||
# Total code points: 379
|
||||
# Total code points: 380
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1514,10 +1547,14 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
|
||||
3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
|
||||
FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
|
||||
FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
|
||||
1AFF0..1AFF3 ; Katakana # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
|
||||
1AFF5..1AFFB ; Katakana # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
|
||||
1AFFD..1AFFE ; Katakana # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
|
||||
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
|
||||
1B120..1B122 ; Katakana # Lo [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU
|
||||
1B164..1B167 ; Katakana # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
|
||||
|
||||
# Total code points: 304
|
||||
# Total code points: 320
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1538,19 +1575,21 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
|
||||
3038..303A ; Han # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
|
||||
303B ; Han # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
|
||||
3400..4DBF ; Han # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
|
||||
4E00..9FFC ; Han # Lo [20989] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFC
|
||||
4E00..9FFF ; Han # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
|
||||
F900..FA6D ; Han # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
|
||||
FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
|
||||
16FE2 ; Han # Po OLD CHINESE HOOK MARK
|
||||
16FE3 ; Han # Lm OLD CHINESE ITERATION MARK
|
||||
16FF0..16FF1 ; Han # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
|
||||
20000..2A6DD ; Han # Lo [42718] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DD
|
||||
2A700..2B734 ; Han # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
|
||||
20000..2A6DF ; Han # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
|
||||
2A700..2B738 ; Han # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
|
||||
2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
|
||||
2B820..2CEA1 ; Han # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
|
||||
2CEB0..2EBE0 ; Han # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
|
||||
2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
|
||||
30000..3134A ; Han # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
|
||||
|
||||
# Total code points: 94204
|
||||
# Total code points: 94215
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1593,15 +1632,14 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
|
||||
0951..0954 ; Inherited # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
|
||||
1AB0..1ABD ; Inherited # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
|
||||
1ABE ; Inherited # Me COMBINING PARENTHESES OVERLAY
|
||||
1ABF..1AC0 ; Inherited # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
|
||||
1ABF..1ACE ; Inherited # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
|
||||
1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
|
||||
1CD4..1CE0 ; Inherited # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
|
||||
1CE2..1CE8 ; Inherited # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
|
||||
1CED ; Inherited # Mn VEDIC SIGN TIRYAK
|
||||
1CF4 ; Inherited # Mn VEDIC TONE CANDRA ABOVE
|
||||
1CF8..1CF9 ; Inherited # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
|
||||
1DC0..1DF9 ; Inherited # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
|
||||
1DFB..1DFF ; Inherited # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
|
||||
1DC0..1DFF ; Inherited # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
|
||||
200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
|
||||
20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
|
||||
20DD..20E0 ; Inherited # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
|
||||
@@ -1615,26 +1653,30 @@ FE20..FE2D ; Inherited # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CON
|
||||
101FD ; Inherited # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
|
||||
102E0 ; Inherited # Mn COPTIC EPACT THOUSANDS MARK
|
||||
1133B ; Inherited # Mn COMBINING BINDU BELOW
|
||||
1CF00..1CF2D ; Inherited # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
|
||||
1CF30..1CF46 ; Inherited # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
|
||||
1D167..1D169 ; Inherited # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
|
||||
1D17B..1D182 ; Inherited # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
|
||||
1D185..1D18B ; Inherited # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
|
||||
1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
|
||||
E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
|
||||
|
||||
# Total code points: 573
|
||||
# Total code points: 657
|
||||
|
||||
# ================================================
|
||||
|
||||
1700..170C ; Tagalog # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
|
||||
170E..1711 ; Tagalog # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
|
||||
1700..1711 ; Tagalog # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
|
||||
1712..1714 ; Tagalog # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
|
||||
1715 ; Tagalog # Mc TAGALOG SIGN PAMUDPOD
|
||||
171F ; Tagalog # Lo TAGALOG LETTER ARCHAIC RA
|
||||
|
||||
# Total code points: 20
|
||||
# Total code points: 23
|
||||
|
||||
# ================================================
|
||||
|
||||
1720..1731 ; Hanunoo # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
|
||||
1732..1734 ; Hanunoo # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
|
||||
1732..1733 ; Hanunoo # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
|
||||
1734 ; Hanunoo # Mc HANUNOO SIGN PAMUDPOD
|
||||
|
||||
# Total code points: 21
|
||||
|
||||
@@ -1762,15 +1804,14 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
|
||||
|
||||
# ================================================
|
||||
|
||||
2C00..2C2E ; Glagolitic # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
|
||||
2C30..2C5E ; Glagolitic # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
|
||||
2C00..2C5F ; Glagolitic # L& [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
|
||||
1E000..1E006 ; Glagolitic # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
|
||||
1E008..1E018 ; Glagolitic # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
|
||||
1E01B..1E021 ; Glagolitic # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
|
||||
1E023..1E024 ; Glagolitic # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
|
||||
1E026..1E02A ; Glagolitic # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
|
||||
|
||||
# Total code points: 132
|
||||
# Total code points: 134
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -1836,14 +1877,15 @@ A82C ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
|
||||
1B3D..1B41 ; Balinese # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
|
||||
1B42 ; Balinese # Mn BALINESE VOWEL SIGN PEPET
|
||||
1B43..1B44 ; Balinese # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
|
||||
1B45..1B4B ; Balinese # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
|
||||
1B45..1B4C ; Balinese # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
|
||||
1B50..1B59 ; Balinese # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
|
||||
1B5A..1B60 ; Balinese # Po [7] BALINESE PANTI..BALINESE PAMENENG
|
||||
1B61..1B6A ; Balinese # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
|
||||
1B6B..1B73 ; Balinese # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
|
||||
1B74..1B7C ; Balinese # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
|
||||
1B7D..1B7E ; Balinese # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
|
||||
|
||||
# Total code points: 121
|
||||
# Total code points: 124
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -2178,9 +2220,10 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
110BB..110BC ; Kaithi # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
|
||||
110BD ; Kaithi # Cf KAITHI NUMBER SIGN
|
||||
110BE..110C1 ; Kaithi # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
|
||||
110C2 ; Kaithi # Mn KAITHI VOWEL SIGN VOCALIC R
|
||||
110CD ; Kaithi # Cf KAITHI NUMBER SIGN ABOVE
|
||||
|
||||
# Total code points: 67
|
||||
# Total code points: 68
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -2207,9 +2250,13 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
11047..1104D ; Brahmi # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
|
||||
11052..11065 ; Brahmi # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
|
||||
11066..1106F ; Brahmi # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
|
||||
11070 ; Brahmi # Mn BRAHMI SIGN OLD TAMIL VIRAMA
|
||||
11071..11072 ; Brahmi # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
|
||||
11073..11074 ; Brahmi # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
|
||||
11075 ; Brahmi # Lo BRAHMI LETTER OLD TAMIL LLA
|
||||
1107F ; Brahmi # Mn BRAHMI NUMBER JOINER
|
||||
|
||||
# Total code points: 109
|
||||
# Total code points: 115
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -2301,9 +2348,10 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
116B6 ; Takri # Mc TAKRI SIGN VIRAMA
|
||||
116B7 ; Takri # Mn TAKRI SIGN NUKTA
|
||||
116B8 ; Takri # Lo TAKRI LETTER ARCHAIC KHA
|
||||
116B9 ; Takri # Po TAKRI ABBREVIATION SIGN
|
||||
116C0..116C9 ; Takri # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
|
||||
|
||||
# Total code points: 67
|
||||
# Total code points: 68
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -2561,8 +2609,9 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
1173A..1173B ; Ahom # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
|
||||
1173C..1173E ; Ahom # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
|
||||
1173F ; Ahom # So AHOM SYMBOL VI
|
||||
11740..11746 ; Ahom # Lo [7] AHOM LETTER CA..AHOM LETTER LLA
|
||||
|
||||
# Total code points: 58
|
||||
# Total code points: 65
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -2897,4 +2946,46 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
|
||||
|
||||
# Total code points: 47
|
||||
|
||||
# ================================================
|
||||
|
||||
12F90..12FF0 ; Cypro_Minoan # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
|
||||
12FF1..12FF2 ; Cypro_Minoan # Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
|
||||
|
||||
# Total code points: 99
|
||||
|
||||
# ================================================
|
||||
|
||||
10F70..10F81 ; Old_Uyghur # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
|
||||
10F82..10F85 ; Old_Uyghur # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
|
||||
10F86..10F89 ; Old_Uyghur # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
|
||||
|
||||
# Total code points: 26
|
||||
|
||||
# ================================================
|
||||
|
||||
16A70..16ABE ; Tangsa # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
|
||||
16AC0..16AC9 ; Tangsa # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
|
||||
|
||||
# Total code points: 89
|
||||
|
||||
# ================================================
|
||||
|
||||
1E290..1E2AD ; Toto # Lo [30] TOTO LETTER PA..TOTO LETTER A
|
||||
1E2AE ; Toto # Mn TOTO SIGN RISING TONE
|
||||
|
||||
# Total code points: 31
|
||||
|
||||
# ================================================
|
||||
|
||||
10570..1057A ; Vithkuqi # L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
|
||||
1057C..1058A ; Vithkuqi # L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
|
||||
1058C..10592 ; Vithkuqi # L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
|
||||
10594..10595 ; Vithkuqi # L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
|
||||
10597..105A1 ; Vithkuqi # L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
|
||||
105A3..105B1 ; Vithkuqi # L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
|
||||
105B3..105B9 ; Vithkuqi # L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
|
||||
105BB..105BC ; Vithkuqi # L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
|
||||
|
||||
# Total code points: 70
|
||||
|
||||
# EOF
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# SpecialCasing-13.0.0.txt
|
||||
# Date: 2019-09-08, 23:31:24 GMT
|
||||
# Copyright (c) 2019 Unicode, Inc.
|
||||
# SpecialCasing-14.0.0.txt
|
||||
# Date: 2021-03-08, 19:35:55 GMT
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
13.0.0
|
||||
@@ -1,6 +1,6 @@
|
||||
# GraphemeBreakProperty-13.0.0.txt
|
||||
# Date: 2019-10-21, 14:30:35 GMT
|
||||
# Copyright (c) 2019 Unicode, Inc.
|
||||
# GraphemeBreakProperty-14.0.0.txt
|
||||
# Date: 2021-08-12, 23:13:02 GMT
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
@@ -21,6 +21,7 @@
|
||||
0600..0605 ; Prepend # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
|
||||
06DD ; Prepend # Cf ARABIC END OF AYAH
|
||||
070F ; Prepend # Cf SYRIAC ABBREVIATION MARK
|
||||
0890..0891 ; Prepend # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
|
||||
08E2 ; Prepend # Cf ARABIC DISPUTED END OF AYAH
|
||||
0D4E ; Prepend # Lo MALAYALAM LETTER DOT REPH
|
||||
110BD ; Prepend # Cf KAITHI NUMBER SIGN
|
||||
@@ -32,7 +33,7 @@
|
||||
11A84..11A89 ; Prepend # Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA
|
||||
11D46 ; Prepend # Lo MASARAM GONDI REPHA
|
||||
|
||||
# Total code points: 24
|
||||
# Total code points: 26
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -104,7 +105,8 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
|
||||
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
|
||||
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
|
||||
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
|
||||
08D3..08E1 ; Extend # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
|
||||
0898..089F ; Extend # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
|
||||
08CA..08E1 ; Extend # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
|
||||
08E3..0902 ; Extend # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
|
||||
093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
|
||||
093C ; Extend # Mn DEVANAGARI SIGN NUKTA
|
||||
@@ -151,6 +153,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
|
||||
0BD7 ; Extend # Mc TAMIL AU LENGTH MARK
|
||||
0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
|
||||
0C04 ; Extend # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
|
||||
0C3C ; Extend # Mn TELUGU SIGN NUKTA
|
||||
0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
|
||||
0C46..0C48 ; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
|
||||
0C4A..0C4D ; Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
|
||||
@@ -206,7 +209,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
|
||||
109D ; Extend # Mn MYANMAR VOWEL SIGN AITON AI
|
||||
135D..135F ; Extend # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
|
||||
1712..1714 ; Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
|
||||
1732..1734 ; Extend # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
|
||||
1732..1733 ; Extend # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
|
||||
1752..1753 ; Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
|
||||
1772..1773 ; Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
|
||||
17B4..17B5 ; Extend # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
|
||||
@@ -215,6 +218,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
|
||||
17C9..17D3 ; Extend # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
|
||||
17DD ; Extend # Mn KHMER SIGN ATTHACAN
|
||||
180B..180D ; Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
|
||||
180F ; Extend # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
|
||||
1885..1886 ; Extend # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
|
||||
18A9 ; Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA
|
||||
1920..1922 ; Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
|
||||
@@ -232,7 +236,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
|
||||
1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
|
||||
1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
|
||||
1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
|
||||
1ABF..1AC0 ; Extend # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
|
||||
1ABF..1ACE ; Extend # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
|
||||
1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
|
||||
1B34 ; Extend # Mn BALINESE SIGN REREKAN
|
||||
1B35 ; Extend # Mc BALINESE VOWEL SIGN TEDUNG
|
||||
@@ -256,8 +260,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
|
||||
1CED ; Extend # Mn VEDIC SIGN TIRYAK
|
||||
1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
|
||||
1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
|
||||
1DC0..1DF9 ; Extend # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
|
||||
1DFB..1DFF ; Extend # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
|
||||
1DC0..1DFF ; Extend # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
|
||||
200C ; Extend # Cf ZERO WIDTH NON-JOINER
|
||||
20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
|
||||
20DD..20E0 ; Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
|
||||
@@ -322,11 +325,15 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
||||
10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
|
||||
10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
|
||||
10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
|
||||
10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
|
||||
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
|
||||
11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
|
||||
11070 ; Extend # Mn BRAHMI SIGN OLD TAMIL VIRAMA
|
||||
11073..11074 ; Extend # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
|
||||
1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
|
||||
110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
|
||||
110B9..110BA ; Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
|
||||
110C2 ; Extend # Mn KAITHI VOWEL SIGN VOCALIC R
|
||||
11100..11102 ; Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
|
||||
11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
|
||||
1112D..11134 ; Extend # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
|
||||
@@ -412,6 +419,8 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
||||
16F8F..16F92 ; Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
|
||||
16FE4 ; Extend # Mn KHITAN SMALL SCRIPT FILLER
|
||||
1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
|
||||
1CF00..1CF2D ; Extend # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
|
||||
1CF30..1CF46 ; Extend # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
|
||||
1D165 ; Extend # Mc MUSICAL SYMBOL COMBINING STEM
|
||||
1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
|
||||
1D16E..1D172 ; Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
|
||||
@@ -431,6 +440,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
||||
1E023..1E024 ; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
|
||||
1E026..1E02A ; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
|
||||
1E130..1E136 ; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
|
||||
1E2AE ; Extend # Mn TOTO SIGN RISING TONE
|
||||
1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
|
||||
1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
|
||||
1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
|
||||
@@ -438,7 +448,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
|
||||
E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
|
||||
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
|
||||
|
||||
# Total code points: 1984
|
||||
# Total code points: 2095
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -495,6 +505,8 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
|
||||
103B..103C ; SpacingMark # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
|
||||
1056..1057 ; SpacingMark # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
|
||||
1084 ; SpacingMark # Mc MYANMAR VOWEL SIGN SHAN E
|
||||
1715 ; SpacingMark # Mc TAGALOG SIGN PAMUDPOD
|
||||
1734 ; SpacingMark # Mc HANUNOO SIGN PAMUDPOD
|
||||
17B6 ; SpacingMark # Mc KHMER VOWEL SIGN AA
|
||||
17BE..17C5 ; SpacingMark # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
|
||||
17C7..17C8 ; SpacingMark # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
|
||||
@@ -579,7 +591,6 @@ ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK
|
||||
116AC ; SpacingMark # Mc TAKRI SIGN VISARGA
|
||||
116AE..116AF ; SpacingMark # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
|
||||
116B6 ; SpacingMark # Mc TAKRI SIGN VIRAMA
|
||||
11720..11721 ; SpacingMark # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
|
||||
11726 ; SpacingMark # Mc AHOM VOWEL SIGN E
|
||||
1182C..1182E ; SpacingMark # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
|
||||
11838 ; SpacingMark # Mc DOGRA SIGN VISARGA
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# GraphemeBreakTest-13.0.0.txt
|
||||
# Date: 2019-11-15, 19:49:10 GMT
|
||||
# Copyright (c) 2019 Unicode, Inc.
|
||||
# GraphemeBreakTest-14.0.0.txt
|
||||
# Date: 2021-03-08, 06:22:32 GMT
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# emoji-data.txt
|
||||
# Date: 2020-01-28, 20:52:38 GMT
|
||||
# Copyright (c) 2020 Unicode, Inc.
|
||||
# emoji-data-14.0.0.txt
|
||||
# Date: 2021-08-26, 17:22:22 GMT
|
||||
# Copyright (c) 2021 Unicode, Inc.
|
||||
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Emoji Data for UTS #51
|
||||
# Version: 13.0
|
||||
# Used with Emoji Version 14.0 and subsequent minor revisions (if any)
|
||||
#
|
||||
# For documentation and usage, see http://www.unicode.org/reports/tr51
|
||||
#
|
||||
@@ -22,7 +22,7 @@
|
||||
# All omitted code points have Emoji=No
|
||||
# @missing: 0000..10FFFF ; Emoji ; No
|
||||
|
||||
0023 ; Emoji # E0.0 [1] (#️) number sign
|
||||
0023 ; Emoji # E0.0 [1] (#️) hash sign
|
||||
002A ; Emoji # E0.0 [1] (*️) asterisk
|
||||
0030..0039 ; Emoji # E0.0 [10] (0️..9️) digit zero..digit nine
|
||||
00A9 ; Emoji # E0.6 [1] (©️) copyright
|
||||
@@ -119,8 +119,8 @@
|
||||
2747 ; Emoji # E0.6 [1] (❇️) sparkle
|
||||
274C ; Emoji # E0.6 [1] (❌) cross mark
|
||||
274E ; Emoji # E0.6 [1] (❎) cross mark button
|
||||
2753..2755 ; Emoji # E0.6 [3] (❓..❕) question mark..white exclamation mark
|
||||
2757 ; Emoji # E0.6 [1] (❗) exclamation mark
|
||||
2753..2755 ; Emoji # E0.6 [3] (❓..❕) red question mark..white exclamation mark
|
||||
2757 ; Emoji # E0.6 [1] (❗) red exclamation mark
|
||||
2763 ; Emoji # E1.0 [1] (❣️) heart exclamation
|
||||
2764 ; Emoji # E0.6 [1] (❤️) red heart
|
||||
2795..2797 ; Emoji # E0.6 [3] (➕..➗) plus..divide
|
||||
@@ -239,7 +239,7 @@
|
||||
1F509 ; Emoji # E1.0 [1] (🔉) speaker medium volume
|
||||
1F50A..1F514 ; Emoji # E0.6 [11] (🔊..🔔) speaker high volume..bell
|
||||
1F515 ; Emoji # E1.0 [1] (🔕) bell with slash
|
||||
1F516..1F52B ; Emoji # E0.6 [22] (🔖..🔫) bookmark..pistol
|
||||
1F516..1F52B ; Emoji # E0.6 [22] (🔖..🔫) bookmark..water pistol
|
||||
1F52C..1F52D ; Emoji # E1.0 [2] (🔬..🔭) microscope..telescope
|
||||
1F52E..1F53D ; Emoji # E0.6 [16] (🔮..🔽) crystal ball..downwards button
|
||||
1F549..1F54A ; Emoji # E0.7 [2] (🕉️..🕊️) om..dove
|
||||
@@ -294,7 +294,7 @@
|
||||
1F62E..1F62F ; Emoji # E1.0 [2] (😮..😯) face with open mouth..hushed face
|
||||
1F630..1F633 ; Emoji # E0.6 [4] (😰..😳) anxious face with sweat..flushed face
|
||||
1F634 ; Emoji # E1.0 [1] (😴) sleeping face
|
||||
1F635 ; Emoji # E0.6 [1] (😵) dizzy face
|
||||
1F635 ; Emoji # E0.6 [1] (😵) face with crossed-out eyes
|
||||
1F636 ; Emoji # E1.0 [1] (😶) face without mouth
|
||||
1F637..1F640 ; Emoji # E0.6 [10] (😷..🙀) face with medical mask..weary cat
|
||||
1F641..1F644 ; Emoji # E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
|
||||
@@ -341,6 +341,7 @@
|
||||
1F6D1..1F6D2 ; Emoji # E3.0 [2] (🛑..🛒) stop sign..shopping cart
|
||||
1F6D5 ; Emoji # E12.0 [1] (🛕) hindu temple
|
||||
1F6D6..1F6D7 ; Emoji # E13.0 [2] (🛖..🛗) hut..elevator
|
||||
1F6DD..1F6DF ; Emoji # E14.0 [3] (🛝..🛟) playground slide..ring buoy
|
||||
1F6E0..1F6E5 ; Emoji # E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
|
||||
1F6E9 ; Emoji # E0.7 [1] (🛩️) small airplane
|
||||
1F6EB..1F6EC ; Emoji # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
|
||||
@@ -352,6 +353,7 @@
|
||||
1F6FA ; Emoji # E12.0 [1] (🛺) auto rickshaw
|
||||
1F6FB..1F6FC ; Emoji # E13.0 [2] (🛻..🛼) pickup truck..roller skate
|
||||
1F7E0..1F7EB ; Emoji # E12.0 [12] (🟠..🟫) orange circle..brown square
|
||||
1F7F0 ; Emoji # E14.0 [1] (🟰) heavy equals sign
|
||||
1F90C ; Emoji # E13.0 [1] (🤌) pinched fingers
|
||||
1F90D..1F90F ; Emoji # E12.0 [3] (🤍..🤏) white heart..pinching hand
|
||||
1F910..1F918 ; Emoji # E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns
|
||||
@@ -375,6 +377,7 @@
|
||||
1F972 ; Emoji # E13.0 [1] (🥲) smiling face with tear
|
||||
1F973..1F976 ; Emoji # E11.0 [4] (🥳..🥶) partying face..cold face
|
||||
1F977..1F978 ; Emoji # E13.0 [2] (🥷..🥸) ninja..disguised face
|
||||
1F979 ; Emoji # E14.0 [1] (🥹) face holding back tears
|
||||
1F97A ; Emoji # E11.0 [1] (🥺) pleading face
|
||||
1F97B ; Emoji # E12.0 [1] (🥻) sari
|
||||
1F97C..1F97F ; Emoji # E11.0 [4] (🥼..🥿) lab coat..flat shoe
|
||||
@@ -392,21 +395,29 @@
|
||||
1F9C1..1F9C2 ; Emoji # E11.0 [2] (🧁..🧂) cupcake..salt
|
||||
1F9C3..1F9CA ; Emoji # E12.0 [8] (🧃..🧊) beverage box..ice
|
||||
1F9CB ; Emoji # E13.0 [1] (🧋) bubble tea
|
||||
1F9CC ; Emoji # E14.0 [1] (🧌) troll
|
||||
1F9CD..1F9CF ; Emoji # E12.0 [3] (🧍..🧏) person standing..deaf person
|
||||
1F9D0..1F9E6 ; Emoji # E5.0 [23] (🧐..🧦) face with monocle..socks
|
||||
1F9E7..1F9FF ; Emoji # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
|
||||
1FA70..1FA73 ; Emoji # E12.0 [4] (🩰..🩳) ballet shoes..shorts
|
||||
1FA74 ; Emoji # E13.0 [1] (🩴) thong sandal
|
||||
1FA78..1FA7A ; Emoji # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
|
||||
1FA7B..1FA7C ; Emoji # E14.0 [2] (🩻..🩼) x-ray..crutch
|
||||
1FA80..1FA82 ; Emoji # E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Emoji # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA90..1FA95 ; Emoji # E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Emoji # E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAC ; Emoji # E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
1FAB0..1FAB6 ; Emoji # E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABA ; Emoji # E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FAC0..1FAC2 ; Emoji # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FAC5 ; Emoji # E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAD0..1FAD6 ; Emoji # E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAD9 ; Emoji # E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FAE0..1FAE7 ; Emoji # E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAF0..1FAF6 ; Emoji # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
|
||||
# Total elements: 1367
|
||||
# Total elements: 1404
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -438,8 +449,8 @@
|
||||
2728 ; Emoji_Presentation # E0.6 [1] (✨) sparkles
|
||||
274C ; Emoji_Presentation # E0.6 [1] (❌) cross mark
|
||||
274E ; Emoji_Presentation # E0.6 [1] (❎) cross mark button
|
||||
2753..2755 ; Emoji_Presentation # E0.6 [3] (❓..❕) question mark..white exclamation mark
|
||||
2757 ; Emoji_Presentation # E0.6 [1] (❗) exclamation mark
|
||||
2753..2755 ; Emoji_Presentation # E0.6 [3] (❓..❕) red question mark..white exclamation mark
|
||||
2757 ; Emoji_Presentation # E0.6 [1] (❗) red exclamation mark
|
||||
2795..2797 ; Emoji_Presentation # E0.6 [3] (➕..➗) plus..divide
|
||||
27B0 ; Emoji_Presentation # E0.6 [1] (➰) curly loop
|
||||
27BF ; Emoji_Presentation # E1.0 [1] (➿) double curly loop
|
||||
@@ -533,7 +544,7 @@
|
||||
1F509 ; Emoji_Presentation # E1.0 [1] (🔉) speaker medium volume
|
||||
1F50A..1F514 ; Emoji_Presentation # E0.6 [11] (🔊..🔔) speaker high volume..bell
|
||||
1F515 ; Emoji_Presentation # E1.0 [1] (🔕) bell with slash
|
||||
1F516..1F52B ; Emoji_Presentation # E0.6 [22] (🔖..🔫) bookmark..pistol
|
||||
1F516..1F52B ; Emoji_Presentation # E0.6 [22] (🔖..🔫) bookmark..water pistol
|
||||
1F52C..1F52D ; Emoji_Presentation # E1.0 [2] (🔬..🔭) microscope..telescope
|
||||
1F52E..1F53D ; Emoji_Presentation # E0.6 [16] (🔮..🔽) crystal ball..downwards button
|
||||
1F54B..1F54E ; Emoji_Presentation # E1.0 [4] (🕋..🕎) kaaba..menorah
|
||||
@@ -569,7 +580,7 @@
|
||||
1F62E..1F62F ; Emoji_Presentation # E1.0 [2] (😮..😯) face with open mouth..hushed face
|
||||
1F630..1F633 ; Emoji_Presentation # E0.6 [4] (😰..😳) anxious face with sweat..flushed face
|
||||
1F634 ; Emoji_Presentation # E1.0 [1] (😴) sleeping face
|
||||
1F635 ; Emoji_Presentation # E0.6 [1] (😵) dizzy face
|
||||
1F635 ; Emoji_Presentation # E0.6 [1] (😵) face with crossed-out eyes
|
||||
1F636 ; Emoji_Presentation # E1.0 [1] (😶) face without mouth
|
||||
1F637..1F640 ; Emoji_Presentation # E0.6 [10] (😷..🙀) face with medical mask..weary cat
|
||||
1F641..1F644 ; Emoji_Presentation # E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
|
||||
@@ -614,6 +625,7 @@
|
||||
1F6D1..1F6D2 ; Emoji_Presentation # E3.0 [2] (🛑..🛒) stop sign..shopping cart
|
||||
1F6D5 ; Emoji_Presentation # E12.0 [1] (🛕) hindu temple
|
||||
1F6D6..1F6D7 ; Emoji_Presentation # E13.0 [2] (🛖..🛗) hut..elevator
|
||||
1F6DD..1F6DF ; Emoji_Presentation # E14.0 [3] (🛝..🛟) playground slide..ring buoy
|
||||
1F6EB..1F6EC ; Emoji_Presentation # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
|
||||
1F6F4..1F6F6 ; Emoji_Presentation # E3.0 [3] (🛴..🛶) kick scooter..canoe
|
||||
1F6F7..1F6F8 ; Emoji_Presentation # E5.0 [2] (🛷..🛸) sled..flying saucer
|
||||
@@ -621,6 +633,7 @@
|
||||
1F6FA ; Emoji_Presentation # E12.0 [1] (🛺) auto rickshaw
|
||||
1F6FB..1F6FC ; Emoji_Presentation # E13.0 [2] (🛻..🛼) pickup truck..roller skate
|
||||
1F7E0..1F7EB ; Emoji_Presentation # E12.0 [12] (🟠..🟫) orange circle..brown square
|
||||
1F7F0 ; Emoji_Presentation # E14.0 [1] (🟰) heavy equals sign
|
||||
1F90C ; Emoji_Presentation # E13.0 [1] (🤌) pinched fingers
|
||||
1F90D..1F90F ; Emoji_Presentation # E12.0 [3] (🤍..🤏) white heart..pinching hand
|
||||
1F910..1F918 ; Emoji_Presentation # E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns
|
||||
@@ -644,6 +657,7 @@
|
||||
1F972 ; Emoji_Presentation # E13.0 [1] (🥲) smiling face with tear
|
||||
1F973..1F976 ; Emoji_Presentation # E11.0 [4] (🥳..🥶) partying face..cold face
|
||||
1F977..1F978 ; Emoji_Presentation # E13.0 [2] (🥷..🥸) ninja..disguised face
|
||||
1F979 ; Emoji_Presentation # E14.0 [1] (🥹) face holding back tears
|
||||
1F97A ; Emoji_Presentation # E11.0 [1] (🥺) pleading face
|
||||
1F97B ; Emoji_Presentation # E12.0 [1] (🥻) sari
|
||||
1F97C..1F97F ; Emoji_Presentation # E11.0 [4] (🥼..🥿) lab coat..flat shoe
|
||||
@@ -661,21 +675,29 @@
|
||||
1F9C1..1F9C2 ; Emoji_Presentation # E11.0 [2] (🧁..🧂) cupcake..salt
|
||||
1F9C3..1F9CA ; Emoji_Presentation # E12.0 [8] (🧃..🧊) beverage box..ice
|
||||
1F9CB ; Emoji_Presentation # E13.0 [1] (🧋) bubble tea
|
||||
1F9CC ; Emoji_Presentation # E14.0 [1] (🧌) troll
|
||||
1F9CD..1F9CF ; Emoji_Presentation # E12.0 [3] (🧍..🧏) person standing..deaf person
|
||||
1F9D0..1F9E6 ; Emoji_Presentation # E5.0 [23] (🧐..🧦) face with monocle..socks
|
||||
1F9E7..1F9FF ; Emoji_Presentation # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
|
||||
1FA70..1FA73 ; Emoji_Presentation # E12.0 [4] (🩰..🩳) ballet shoes..shorts
|
||||
1FA74 ; Emoji_Presentation # E13.0 [1] (🩴) thong sandal
|
||||
1FA78..1FA7A ; Emoji_Presentation # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
|
||||
1FA7B..1FA7C ; Emoji_Presentation # E14.0 [2] (🩻..🩼) x-ray..crutch
|
||||
1FA80..1FA82 ; Emoji_Presentation # E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Emoji_Presentation # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA90..1FA95 ; Emoji_Presentation # E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Emoji_Presentation # E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAC ; Emoji_Presentation # E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
1FAB0..1FAB6 ; Emoji_Presentation # E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABA ; Emoji_Presentation # E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FAC0..1FAC2 ; Emoji_Presentation # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FAC5 ; Emoji_Presentation # E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAD0..1FAD6 ; Emoji_Presentation # E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAD9 ; Emoji_Presentation # E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FAE0..1FAE7 ; Emoji_Presentation # E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAF0..1FAF6 ; Emoji_Presentation # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
|
||||
# Total elements: 1148
|
||||
# Total elements: 1185
|
||||
|
||||
# ================================================
|
||||
|
||||
@@ -738,15 +760,17 @@
|
||||
1F9BB ; Emoji_Modifier_Base # E12.0 [1] (🦻) ear with hearing aid
|
||||
1F9CD..1F9CF ; Emoji_Modifier_Base # E12.0 [3] (🧍..🧏) person standing..deaf person
|
||||
1F9D1..1F9DD ; Emoji_Modifier_Base # E5.0 [13] (🧑..🧝) person..elf
|
||||
1FAC3..1FAC5 ; Emoji_Modifier_Base # E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAF0..1FAF6 ; Emoji_Modifier_Base # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
|
||||
# Total elements: 122
|
||||
# Total elements: 132
|
||||
|
||||
# ================================================
|
||||
|
||||
# All omitted code points have Emoji_Component=No
|
||||
# @missing: 0000..10FFFF ; Emoji_Component ; No
|
||||
|
||||
0023 ; Emoji_Component # E0.0 [1] (#️) number sign
|
||||
0023 ; Emoji_Component # E0.0 [1] (#️) hash sign
|
||||
002A ; Emoji_Component # E0.0 [1] (*️) asterisk
|
||||
0030..0039 ; Emoji_Component # E0.0 [10] (0️..9️) digit zero..digit nine
|
||||
200D ; Emoji_Component # E0.0 [1] () zero width joiner
|
||||
@@ -902,8 +926,8 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
||||
2747 ; Extended_Pictographic# E0.6 [1] (❇️) sparkle
|
||||
274C ; Extended_Pictographic# E0.6 [1] (❌) cross mark
|
||||
274E ; Extended_Pictographic# E0.6 [1] (❎) cross mark button
|
||||
2753..2755 ; Extended_Pictographic# E0.6 [3] (❓..❕) question mark..white exclamation mark
|
||||
2757 ; Extended_Pictographic# E0.6 [1] (❗) exclamation mark
|
||||
2753..2755 ; Extended_Pictographic# E0.6 [3] (❓..❕) red question mark..white exclamation mark
|
||||
2757 ; Extended_Pictographic# E0.6 [1] (❗) red exclamation mark
|
||||
2763 ; Extended_Pictographic# E1.0 [1] (❣️) heart exclamation
|
||||
2764 ; Extended_Pictographic# E0.6 [1] (❤️) red heart
|
||||
2765..2767 ; Extended_Pictographic# E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET
|
||||
@@ -1041,7 +1065,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
||||
1F509 ; Extended_Pictographic# E1.0 [1] (🔉) speaker medium volume
|
||||
1F50A..1F514 ; Extended_Pictographic# E0.6 [11] (🔊..🔔) speaker high volume..bell
|
||||
1F515 ; Extended_Pictographic# E1.0 [1] (🔕) bell with slash
|
||||
1F516..1F52B ; Extended_Pictographic# E0.6 [22] (🔖..🔫) bookmark..pistol
|
||||
1F516..1F52B ; Extended_Pictographic# E0.6 [22] (🔖..🔫) bookmark..water pistol
|
||||
1F52C..1F52D ; Extended_Pictographic# E1.0 [2] (🔬..🔭) microscope..telescope
|
||||
1F52E..1F53D ; Extended_Pictographic# E0.6 [16] (🔮..🔽) crystal ball..downwards button
|
||||
1F546..1F548 ; Extended_Pictographic# E0.0 [3] (🕆..🕈) WHITE LATIN CROSS..CELTIC CROSS
|
||||
@@ -1117,7 +1141,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
||||
1F62E..1F62F ; Extended_Pictographic# E1.0 [2] (😮..😯) face with open mouth..hushed face
|
||||
1F630..1F633 ; Extended_Pictographic# E0.6 [4] (😰..😳) anxious face with sweat..flushed face
|
||||
1F634 ; Extended_Pictographic# E1.0 [1] (😴) sleeping face
|
||||
1F635 ; Extended_Pictographic# E0.6 [1] (😵) dizzy face
|
||||
1F635 ; Extended_Pictographic# E0.6 [1] (😵) face with crossed-out eyes
|
||||
1F636 ; Extended_Pictographic# E1.0 [1] (😶) face without mouth
|
||||
1F637..1F640 ; Extended_Pictographic# E0.6 [10] (😷..🙀) face with medical mask..weary cat
|
||||
1F641..1F644 ; Extended_Pictographic# E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
|
||||
@@ -1166,7 +1190,8 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
||||
1F6D3..1F6D4 ; Extended_Pictographic# E0.0 [2] (🛓..🛔) STUPA..PAGODA
|
||||
1F6D5 ; Extended_Pictographic# E12.0 [1] (🛕) hindu temple
|
||||
1F6D6..1F6D7 ; Extended_Pictographic# E13.0 [2] (🛖..🛗) hut..elevator
|
||||
1F6D8..1F6DF ; Extended_Pictographic# E0.0 [8] (..🛟) <reserved-1F6D8>..<reserved-1F6DF>
|
||||
1F6D8..1F6DC ; Extended_Pictographic# E0.0 [5] (..🛜) <reserved-1F6D8>..<reserved-1F6DC>
|
||||
1F6DD..1F6DF ; Extended_Pictographic# E14.0 [3] (🛝..🛟) playground slide..ring buoy
|
||||
1F6E0..1F6E5 ; Extended_Pictographic# E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
|
||||
1F6E6..1F6E8 ; Extended_Pictographic# E0.0 [3] (🛦..🛨) UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE
|
||||
1F6E9 ; Extended_Pictographic# E0.7 [1] (🛩️) small airplane
|
||||
@@ -1185,7 +1210,9 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
||||
1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) <reserved-1F774>..<reserved-1F77F>
|
||||
1F7D5..1F7DF ; Extended_Pictographic# E0.0 [11] (🟕..) CIRCLED TRIANGLE..<reserved-1F7DF>
|
||||
1F7E0..1F7EB ; Extended_Pictographic# E12.0 [12] (🟠..🟫) orange circle..brown square
|
||||
1F7EC..1F7FF ; Extended_Pictographic# E0.0 [20] (..) <reserved-1F7EC>..<reserved-1F7FF>
|
||||
1F7EC..1F7EF ; Extended_Pictographic# E0.0 [4] (..) <reserved-1F7EC>..<reserved-1F7EF>
|
||||
1F7F0 ; Extended_Pictographic# E14.0 [1] (🟰) heavy equals sign
|
||||
1F7F1..1F7FF ; Extended_Pictographic# E0.0 [15] (..) <reserved-1F7F1>..<reserved-1F7FF>
|
||||
1F80C..1F80F ; Extended_Pictographic# E0.0 [4] (..) <reserved-1F80C>..<reserved-1F80F>
|
||||
1F848..1F84F ; Extended_Pictographic# E0.0 [8] (..) <reserved-1F848>..<reserved-1F84F>
|
||||
1F85A..1F85F ; Extended_Pictographic# E0.0 [6] (..) <reserved-1F85A>..<reserved-1F85F>
|
||||
@@ -1214,7 +1241,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
||||
1F972 ; Extended_Pictographic# E13.0 [1] (🥲) smiling face with tear
|
||||
1F973..1F976 ; Extended_Pictographic# E11.0 [4] (🥳..🥶) partying face..cold face
|
||||
1F977..1F978 ; Extended_Pictographic# E13.0 [2] (🥷..🥸) ninja..disguised face
|
||||
1F979 ; Extended_Pictographic# E0.0 [1] (🥹) <reserved-1F979>
|
||||
1F979 ; Extended_Pictographic# E14.0 [1] (🥹) face holding back tears
|
||||
1F97A ; Extended_Pictographic# E11.0 [1] (🥺) pleading face
|
||||
1F97B ; Extended_Pictographic# E12.0 [1] (🥻) sari
|
||||
1F97C..1F97F ; Extended_Pictographic# E11.0 [4] (🥼..🥿) lab coat..flat shoe
|
||||
@@ -1232,7 +1259,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
||||
1F9C1..1F9C2 ; Extended_Pictographic# E11.0 [2] (🧁..🧂) cupcake..salt
|
||||
1F9C3..1F9CA ; Extended_Pictographic# E12.0 [8] (🧃..🧊) beverage box..ice
|
||||
1F9CB ; Extended_Pictographic# E13.0 [1] (🧋) bubble tea
|
||||
1F9CC ; Extended_Pictographic# E0.0 [1] (🧌) <reserved-1F9CC>
|
||||
1F9CC ; Extended_Pictographic# E14.0 [1] (🧌) troll
|
||||
1F9CD..1F9CF ; Extended_Pictographic# E12.0 [3] (🧍..🧏) person standing..deaf person
|
||||
1F9D0..1F9E6 ; Extended_Pictographic# E5.0 [23] (🧐..🧦) face with monocle..socks
|
||||
1F9E7..1F9FF ; Extended_Pictographic# E11.0 [25] (🧧..🧿) red envelope..nazar amulet
|
||||
@@ -1241,19 +1268,28 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
||||
1FA74 ; Extended_Pictographic# E13.0 [1] (🩴) thong sandal
|
||||
1FA75..1FA77 ; Extended_Pictographic# E0.0 [3] (🩵..🩷) <reserved-1FA75>..<reserved-1FA77>
|
||||
1FA78..1FA7A ; Extended_Pictographic# E12.0 [3] (🩸..🩺) drop of blood..stethoscope
|
||||
1FA7B..1FA7F ; Extended_Pictographic# E0.0 [5] (🩻..) <reserved-1FA7B>..<reserved-1FA7F>
|
||||
1FA7B..1FA7C ; Extended_Pictographic# E14.0 [2] (🩻..🩼) x-ray..crutch
|
||||
1FA7D..1FA7F ; Extended_Pictographic# E0.0 [3] (..) <reserved-1FA7D>..<reserved-1FA7F>
|
||||
1FA80..1FA82 ; Extended_Pictographic# E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Extended_Pictographic# E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA87..1FA8F ; Extended_Pictographic# E0.0 [9] (🪇..) <reserved-1FA87>..<reserved-1FA8F>
|
||||
1FA90..1FA95 ; Extended_Pictographic# E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Extended_Pictographic# E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAF ; Extended_Pictographic# E0.0 [7] (🪩..🪯) <reserved-1FAA9>..<reserved-1FAAF>
|
||||
1FAA9..1FAAC ; Extended_Pictographic# E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
1FAAD..1FAAF ; Extended_Pictographic# E0.0 [3] (🪭..🪯) <reserved-1FAAD>..<reserved-1FAAF>
|
||||
1FAB0..1FAB6 ; Extended_Pictographic# E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABF ; Extended_Pictographic# E0.0 [9] (🪷..🪿) <reserved-1FAB7>..<reserved-1FABF>
|
||||
1FAB7..1FABA ; Extended_Pictographic# E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FABB..1FABF ; Extended_Pictographic# E0.0 [5] (🪻..🪿) <reserved-1FABB>..<reserved-1FABF>
|
||||
1FAC0..1FAC2 ; Extended_Pictographic# E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FACF ; Extended_Pictographic# E0.0 [13] (🫃..🫏) <reserved-1FAC3>..<reserved-1FACF>
|
||||
1FAC3..1FAC5 ; Extended_Pictographic# E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAC6..1FACF ; Extended_Pictographic# E0.0 [10] (..🫏) <reserved-1FAC6>..<reserved-1FACF>
|
||||
1FAD0..1FAD6 ; Extended_Pictographic# E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAFF ; Extended_Pictographic# E0.0 [41] (🫗..) <reserved-1FAD7>..<reserved-1FAFF>
|
||||
1FAD7..1FAD9 ; Extended_Pictographic# E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FADA..1FADF ; Extended_Pictographic# E0.0 [6] (🫚..) <reserved-1FADA>..<reserved-1FADF>
|
||||
1FAE0..1FAE7 ; Extended_Pictographic# E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAE8..1FAEF ; Extended_Pictographic# E0.0 [8] (🫨..) <reserved-1FAE8>..<reserved-1FAEF>
|
||||
1FAF0..1FAF6 ; Extended_Pictographic# E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
1FAF7..1FAFF ; Extended_Pictographic# E0.0 [9] (🫷..) <reserved-1FAF7>..<reserved-1FAFF>
|
||||
1FC00..1FFFD ; Extended_Pictographic# E0.0[1022] (..) <reserved-1FC00>..<reserved-1FFFD>
|
||||
|
||||
# Total elements: 3537
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
# Create a bundle in the build directory, containing what's needed to
|
||||
# build and run JMH microbenchmarks from the OpenJDK build.
|
||||
|
||||
JMH_VERSION=1.33
|
||||
JMH_VERSION=1.34
|
||||
COMMONS_MATH3_VERSION=3.2
|
||||
JOPT_SIMPLE_VERSION=4.6
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -61,6 +61,11 @@ else
|
||||
OPENJDK_TARGET_CPU_VM_VERSION := $(OPENJDK_TARGET_CPU)
|
||||
endif
|
||||
|
||||
ifeq ($(VERSION_BUILD), )
|
||||
# Hotspot cannot handle an empty build number
|
||||
VERSION_BUILD := 0
|
||||
endif
|
||||
|
||||
CFLAGS_VM_VERSION := \
|
||||
$(VERSION_CFLAGS) \
|
||||
-DHOTSPOT_VERSION_STRING='"$(VERSION_STRING)"' \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -130,13 +130,6 @@ ifneq ($(call check-jvm-feature, cds), true)
|
||||
JVM_EXCLUDE_PATTERNS += cds/
|
||||
endif
|
||||
|
||||
ifneq ($(call check-jvm-feature, nmt), true)
|
||||
JVM_CFLAGS_FEATURES += -DINCLUDE_NMT=0
|
||||
JVM_EXCLUDE_FILES += \
|
||||
memBaseline.cpp memReporter.cpp mallocTracker.cpp virtualMemoryTracker.cpp nmtCommon.cpp \
|
||||
memTracker.cpp nmtDCmd.cpp mallocSiteTable.cpp threadStackTracker.cpp
|
||||
endif
|
||||
|
||||
ifneq ($(call check-jvm-feature, g1gc), true)
|
||||
JVM_CFLAGS_FEATURES += -DINCLUDE_G1GC=0
|
||||
JVM_EXCLUDE_PATTERNS += gc/g1
|
||||
|
||||
@@ -29,6 +29,13 @@ default: all
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
|
||||
################################################################################
|
||||
# SedEscape
|
||||
#
|
||||
# Escape special characters for use in SED replacement string
|
||||
################################################################################
|
||||
SedEscape = $(subst !,\!,$(subst \,\\,$1))
|
||||
|
||||
################################################################################
|
||||
# Return the full path to an indexer-specific file fragment.
|
||||
#
|
||||
@@ -78,15 +85,15 @@ define CreateFromTemplate
|
||||
$(SED) -e '/{{INDEXER_EXTENSIONS}}/r $(call GetIndexerFragment,extensions)' \
|
||||
-e '/{{INDEXER_SETTINGS}}/r $(call GetIndexerFragment,settings)' \
|
||||
-e '/{{EXTRA_WORKSPACE_ROOT}}/r $(call GetExtraWorkspaceRoot)' $1 | \
|
||||
$(SED) -e 's!{{TOPDIR}}!$(call FixPath,$(TOPDIR))!g' \
|
||||
-e 's!{{TOPDIR_RELATIVE}}!$(call FixPath,$(strip \
|
||||
$(call RelativePath,$(OUTPUTDIR),$(TOPDIR))))!g' \
|
||||
-e 's!{{WORKSPACE_ROOT}}!$(call FixPath,$(WORKSPACE_ROOT))!g' \
|
||||
-e 's!{{OUTPUTDIR}}!$(call FixPath,$(OUTPUTDIR))!g' \
|
||||
$(SED) -e 's!{{TOPDIR}}!$(call SedEscape,$(call FixPath,$(TOPDIR)))!g' \
|
||||
-e 's!{{TOPDIR_RELATIVE}}!$(call SedEscape,$(call FixPath,$(strip \
|
||||
$(call RelativePath,$(OUTPUTDIR),$(TOPDIR)))))!g' \
|
||||
-e 's!{{WORKSPACE_ROOT}}!$(call SedEscape,$(call FixPath,$(WORKSPACE_ROOT)))!g' \
|
||||
-e 's!{{OUTPUTDIR}}!$(call SedEscape,$(call FixPath,$(OUTPUTDIR)))!g' \
|
||||
-e 's!{{CONF_NAME}}!$(CONF_NAME)!g' \
|
||||
-e 's!{{COMPILER}}!$(call FixPath,$(CXX)) $(SYSROOT_CFLAGS)!g' \
|
||||
-e 's!{{MAKE}}!$(call FixPath,$(MAKE))!g' \
|
||||
-e 's!{{PATH}}!$(call FixPath,$(PATH))!g' \
|
||||
-e 's!{{COMPILER}}!$(call SedEscape,$(call FixPath,$(CXX))) $(SYSROOT_CFLAGS)!g' \
|
||||
-e 's!{{MAKE}}!$(call SedEscape,$(call FixPath,$(MAKE)))!g' \
|
||||
-e 's!{{PATH}}!$(call SedEscape,$(call FixPath,$(PATH)))!g' \
|
||||
-e 's!{{DEBUGENGINENAME}}!$(call DebugEngineName)!g' \
|
||||
-e '/{{INDEXER_EXTENSIONS}}/d' \
|
||||
-e '/{{INDEXER_SETTINGS}}/d' \
|
||||
|
||||
@@ -34,18 +34,22 @@ import java.util.zip.ZipException;
|
||||
import java.util.zip.ZipFile;
|
||||
import java.util.zip.ZipInputStream;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
import java.time.Instant;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* Generate a zip file in a "reproducible" manner from the input zip file.
|
||||
* Standard zip tools rely on OS file list querying whose ordering can vary
|
||||
* by platform architecture, this class ensures the zip entries are ordered
|
||||
* and also supports SOURCE_DATE_EPOCH timestamps.
|
||||
* and also supports SOURCE_DATE_EPOCH timestamps which will set the ZipEntry
|
||||
* local time in UTC.
|
||||
*/
|
||||
public class MakeZipReproducible {
|
||||
String input_file = null;
|
||||
String fname = null;
|
||||
String zname = "";
|
||||
long timestamp = -1L;
|
||||
LocalDateTime timestamp = null;
|
||||
boolean verbose = false;
|
||||
|
||||
// Keep a sorted Set of ZipEntrys to be processed, so that the zip is reproducible
|
||||
@@ -117,7 +121,9 @@ public class MakeZipReproducible {
|
||||
break;
|
||||
case 't':
|
||||
// SOURCE_DATE_EPOCH timestamp specified
|
||||
timestamp = Long.parseLong(args[++count]) * 1000;
|
||||
long epochSeconds = Long.parseLong(args[++count]);
|
||||
Instant instant = Instant.ofEpochSecond(epochSeconds);
|
||||
timestamp = LocalDateTime.ofInstant(instant, ZoneOffset.UTC);
|
||||
break;
|
||||
case 'v':
|
||||
verbose = true;
|
||||
@@ -194,8 +200,8 @@ public class MakeZipReproducible {
|
||||
}
|
||||
|
||||
// Set to specified timestamp if set otherwise leave as original lastModified time
|
||||
if (timestamp != -1L) {
|
||||
entry.setTime(timestamp);
|
||||
if (timestamp != null) {
|
||||
entry.setTimeLocal(timestamp);
|
||||
}
|
||||
|
||||
zos.putNextEntry(entry);
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected,-reference \
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
JAVAC_FLAGS += -XDstringConcat=inline
|
||||
COPY += .icu .dat .spp .nrm content-types.properties \
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected,-reference \
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
COPY += flavormap.properties
|
||||
|
||||
@@ -23,5 +23,5 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected,-reference \
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
@@ -23,5 +23,5 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
DOCLINT += -Xdoclint:all/protected,-reference \
|
||||
DOCLINT += -Xdoclint:all/protected \
|
||||
'-Xdoclint/package:java.*,javax.*'
|
||||
|
||||
@@ -27,4 +27,5 @@ include LauncherCommon.gmk
|
||||
|
||||
$(eval $(call SetupBuildLauncher, rmiregistry, \
|
||||
MAIN_CLASS := sun.rmi.registry.RegistryImpl, \
|
||||
JAVA_ARGS := -Djava.security.manager=allow, \
|
||||
))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash -f
|
||||
|
||||
#
|
||||
# Copyright (c) 2010, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2010, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -23,27 +23,87 @@
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Script to update the Copyright YEAR range in Mercurial sources.
|
||||
# Script to update the Copyright YEAR range in Mercurial & Git sources.
|
||||
# (Originally from xdono, Thanks!)
|
||||
|
||||
awk=awk
|
||||
#------------------------------------------------------------
|
||||
copyright="Copyright (c)"
|
||||
company="Oracle"
|
||||
#------------------------------------------------------------
|
||||
|
||||
awk="awk"
|
||||
|
||||
# Stop on any error
|
||||
set -e
|
||||
|
||||
# To allow total changes counting
|
||||
shopt -s lastpipe
|
||||
|
||||
# Get an absolute path to this script, since that determines the top-level directory.
|
||||
this_script_dir=`dirname $0`
|
||||
this_script_dir=`cd $this_script_dir > /dev/null && pwd`
|
||||
|
||||
# Temp area
|
||||
tmp=/tmp/`basename $0`.${USER}.$$
|
||||
rm -f -r ${tmp}
|
||||
mkdir -p ${tmp}
|
||||
total=0
|
||||
|
||||
# Default or supplied company name
|
||||
if [ "$3" != "" ] ; then
|
||||
company="$3"
|
||||
fi
|
||||
|
||||
# This year or supplied year
|
||||
if [ "$1" != "" ] ; then
|
||||
year="$1"
|
||||
if [ "$2" != "" ] ; then
|
||||
year="$2"
|
||||
else
|
||||
year=`date +%Y`
|
||||
fi
|
||||
|
||||
# VCS select
|
||||
vcs="$1"
|
||||
|
||||
if [ -z "$vcs" ] ; then
|
||||
git_found=false
|
||||
hg_found=false
|
||||
|
||||
[ -d "${this_script_dir}/../../.git" ] && git_found=true
|
||||
[ -d "${this_script_dir}/../../.hg" ] && hg_found=true
|
||||
|
||||
if [ "$git_found" == "true" ] && [ "$hg_found" == "false" ] ; then
|
||||
vcs="git"
|
||||
elif [ "$hg_found" == "true" ] && [ "$git_found" == "false" ] ; then
|
||||
vcs="hg"
|
||||
else
|
||||
echo "Error: could not auto-detect version control system"
|
||||
vcs=""
|
||||
fi
|
||||
fi
|
||||
|
||||
case "$vcs" in
|
||||
"git")
|
||||
echo "Using Git version control system"
|
||||
vcs_status=(git ls-files -m)
|
||||
vcs_list_changesets=(git log --no-merges --since="${year}-01-01T00:00:00Z" --until="${year}-12-31T23:59:59Z" --pretty=tformat:"%H")
|
||||
vcs_changeset_message=(git log -1 --pretty=tformat:"%B") # followed by ${changeset}
|
||||
vcs_changeset_files=(git diff-tree --no-commit-id --name-only -r) # followed by ${changeset}
|
||||
;;
|
||||
|
||||
"hg")
|
||||
echo "Using Mercurial version control system"
|
||||
vcs_status=(hg status)
|
||||
vcs_list_changesets=(hg log --no-merges -v -d "${year}-01-01 to ${year}-12-31" --template '{node}\n')
|
||||
vcs_changeset_message=(hg log -l1 --template '{desc}\n' --rev) # followed by ${changeset}
|
||||
vcs_changeset_files=(hg log -l1 -v --template '{files}\n' --rev) # followed by ${changeset}
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: `basename "$0"` <git|hg> [year [company]]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Return true if it makes sense to edit this file
|
||||
saneFileToCheck()
|
||||
{
|
||||
@@ -68,8 +128,6 @@ updateFile() # file
|
||||
{
|
||||
changed="false"
|
||||
if [ `saneFileToCheck "$1"` = "true" ] ; then
|
||||
copyright="Copyright (c)"
|
||||
company="Oracle"
|
||||
rm -f $1.OLD
|
||||
mv $1 $1.OLD
|
||||
cat $1.OLD | \
|
||||
@@ -94,12 +152,10 @@ updateChangesetFiles() # changeset
|
||||
count=0
|
||||
files=${tmp}/files.$1
|
||||
rm -f ${files}
|
||||
hg log -l1 --rev $1 -v --template '{files}\n' | expand \
|
||||
"${vcs_changeset_files[@]}" "$1" | expand \
|
||||
| ${awk} -F' ' '{for(i=1;i<=NF;i++)print $i}' \
|
||||
> ${files}
|
||||
if [ -f "${files}" -a -s "${files}" ] ; then
|
||||
copyright="Copyright (c)"
|
||||
company="Oracle"
|
||||
fcount=`cat ${files}| wc -l`
|
||||
for i in `cat ${files}` ; do
|
||||
if [ `updateFile "${i}"` = "true" ] ; then
|
||||
@@ -116,8 +172,8 @@ updateChangesetFiles() # changeset
|
||||
printf " ERROR: No files changed in the changeset? Must be a mistake.\n"
|
||||
set -x
|
||||
ls -al ${files}
|
||||
hg log -l1 --rev $1 -v --template '{files}\n'
|
||||
hg log -l1 --rev $1 -v --template '{files}\n' | expand \
|
||||
"${vcs_changeset_files[@]}" "$1"
|
||||
"${vcs_changeset_files[@]}" "$1" | expand \
|
||||
| ${awk} -F' ' '{for(i=1;i<=NF;i++)print $i}'
|
||||
set +x
|
||||
exit 1
|
||||
@@ -126,16 +182,16 @@ updateChangesetFiles() # changeset
|
||||
}
|
||||
|
||||
# Check if repository is clean
|
||||
previous=`hg status|wc -l`
|
||||
previous=`"${vcs_status[@]}"|wc -l`
|
||||
if [ ${previous} -ne 0 ] ; then
|
||||
echo "WARNING: This repository contains previously edited working set files."
|
||||
echo " hg status | wc -l = `hg status | wc -l`"
|
||||
echo " ${vcs_status[*]} | wc -l = `"${vcs_status[@]}" | wc -l`"
|
||||
fi
|
||||
|
||||
# Get all changesets this year
|
||||
all_changesets=${tmp}/all_changesets
|
||||
rm -f ${all_changesets}
|
||||
hg log --no-merges -v -d "${year}-01-01 to ${year}-12-31" --template '{node}\n' > ${all_changesets}
|
||||
"${vcs_list_changesets[@]}" > ${all_changesets}
|
||||
|
||||
# Check changeset to see if it is Copyright only changes, filter changesets
|
||||
if [ -s ${all_changesets} ] ; then
|
||||
@@ -146,7 +202,7 @@ if [ -s ${all_changesets} ] ; then
|
||||
desc=${tmp}/desc.${changeset}
|
||||
rm -f ${desc}
|
||||
echo "------------------------------------------------"
|
||||
hg log -l1 --rev ${changeset} --template '{desc}\n' > ${desc}
|
||||
"${vcs_changeset_message[@]}" "${changeset}" > ${desc}
|
||||
printf "%d: %s\n%s\n" ${index} "${changeset}" "`cat ${desc}|head -1`"
|
||||
if [ "${year}" = "2010" ] ; then
|
||||
if cat ${desc} | fgrep -i "Added tag" > /dev/null ; then
|
||||
@@ -175,18 +231,18 @@ if [ ${total} -gt 0 ] ; then
|
||||
echo "---------------------------------------------"
|
||||
echo "Updated the copyright year on a total of ${total} files."
|
||||
if [ ${previous} -eq 0 ] ; then
|
||||
echo "This count should match the count of modified files in the repository: hg status -m"
|
||||
echo "This count should match the count of modified files in the repository: ${vcs_status[*]}"
|
||||
else
|
||||
echo "WARNING: This repository contained previously edited working set files."
|
||||
fi
|
||||
echo " hg status -m | wc -l = `hg status -m | wc -l`"
|
||||
echo " ${vcs_status[*]} | wc -l = `"${vcs_status[@]}" | wc -l`"
|
||||
else
|
||||
echo "---------------------------------------------"
|
||||
echo "No files were changed"
|
||||
if [ ${previous} -ne 0 ] ; then
|
||||
echo "WARNING: This repository contained previously edited working set files."
|
||||
fi
|
||||
echo " hg status -m | wc -l = `hg status -m | wc -l`"
|
||||
echo " ${vcs_status[*]} | wc -l = `"${vcs_status[@]}" | wc -l`"
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
|
||||
@@ -768,4 +768,13 @@ public class TableDemo extends DemoModule {
|
||||
footerTextField.setDragEnabled(dragEnabled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImageIcon createImageIcon(String filename, String description) {
|
||||
ImageIcon imageIcon = super.createImageIcon(filename, description);
|
||||
AccessibleContext context = imageIcon.getAccessibleContext();
|
||||
if (context!= null) {
|
||||
context.setAccessibleName(description);
|
||||
}
|
||||
return imageIcon;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
// Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
// Copyright (c) 2014, 2021, Red Hat, Inc. All rights reserved.
|
||||
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
//
|
||||
@@ -2732,11 +2732,8 @@ bool is_vector_arith_imm_pattern(Node* n, Node* m) {
|
||||
// Should the matcher clone input 'm' of node 'n'?
|
||||
bool Matcher::pd_clone_node(Node* n, Node* m, Matcher::MStack& mstack) {
|
||||
// ShiftV src (ShiftCntV con)
|
||||
// StoreVector (VectorStoreMask src)
|
||||
// Binary src (Replicate con)
|
||||
if (is_vshift_con_pattern(n, m) ||
|
||||
(UseSVE > 0 && m->Opcode() == Op_VectorStoreMask && n->Opcode() == Op_StoreVector) ||
|
||||
is_vector_arith_imm_pattern(n, m)) {
|
||||
if (is_vshift_con_pattern(n, m) || is_vector_arith_imm_pattern(n, m)) {
|
||||
mstack.push(m, Visit);
|
||||
return true;
|
||||
}
|
||||
@@ -17018,16 +17015,17 @@ instruct string_compress(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
|
||||
iRegI_R0 result, rFlagsReg cr)
|
||||
%{
|
||||
match(Set result (StrCompressedCopy src (Binary dst len)));
|
||||
effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4, USE_KILL src, USE_KILL dst, USE_KILL len, KILL cr);
|
||||
effect(TEMP tmp1, TEMP tmp2, TEMP tmp3, TEMP tmp4,
|
||||
USE_KILL src, USE_KILL dst, USE len, KILL cr);
|
||||
|
||||
format %{ "String Compress $src,$dst -> $result // KILL R1, R2, R3, R4" %}
|
||||
format %{ "String Compress $src,$dst,$len -> $result // KILL $src,$dst" %}
|
||||
ins_encode %{
|
||||
__ char_array_compress($src$$Register, $dst$$Register, $len$$Register,
|
||||
$result$$Register,
|
||||
$tmp1$$FloatRegister, $tmp2$$FloatRegister,
|
||||
$tmp3$$FloatRegister, $tmp4$$FloatRegister,
|
||||
$result$$Register);
|
||||
$tmp3$$FloatRegister, $tmp4$$FloatRegister);
|
||||
%}
|
||||
ins_pipe( pipe_slow );
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
|
||||
// fast byte[] to char[] inflation
|
||||
@@ -17052,22 +17050,43 @@ instruct string_inflate(Universe dummy, iRegP_R0 src, iRegP_R1 dst, iRegI_R2 len
|
||||
|
||||
// encode char[] to byte[] in ISO_8859_1
|
||||
instruct encode_iso_array(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
|
||||
vRegD_V0 Vtmp1, vRegD_V1 Vtmp2,
|
||||
vRegD_V2 Vtmp3, vRegD_V3 Vtmp4,
|
||||
vRegD_V0 vtmp0, vRegD_V1 vtmp1,
|
||||
vRegD_V2 vtmp2, vRegD_V3 vtmp3,
|
||||
iRegI_R0 result, rFlagsReg cr)
|
||||
%{
|
||||
predicate(!((EncodeISOArrayNode*)n)->is_ascii());
|
||||
match(Set result (EncodeISOArray src (Binary dst len)));
|
||||
effect(USE_KILL src, USE_KILL dst, USE_KILL len,
|
||||
KILL Vtmp1, KILL Vtmp2, KILL Vtmp3, KILL Vtmp4, KILL cr);
|
||||
effect(USE_KILL src, USE_KILL dst, USE len,
|
||||
KILL vtmp0, KILL vtmp1, KILL vtmp2, KILL vtmp3, KILL cr);
|
||||
|
||||
format %{ "Encode array $src,$dst,$len -> $result" %}
|
||||
format %{ "Encode ISO array $src,$dst,$len -> $result" %}
|
||||
ins_encode %{
|
||||
__ encode_iso_array($src$$Register, $dst$$Register, $len$$Register,
|
||||
$result$$Register, $Vtmp1$$FloatRegister, $Vtmp2$$FloatRegister,
|
||||
$Vtmp3$$FloatRegister, $Vtmp4$$FloatRegister);
|
||||
$result$$Register, false,
|
||||
$vtmp0$$FloatRegister, $vtmp1$$FloatRegister,
|
||||
$vtmp2$$FloatRegister, $vtmp3$$FloatRegister);
|
||||
%}
|
||||
ins_pipe( pipe_class_memory );
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
instruct encode_ascii_array(iRegP_R2 src, iRegP_R1 dst, iRegI_R3 len,
|
||||
vRegD_V0 vtmp0, vRegD_V1 vtmp1,
|
||||
vRegD_V2 vtmp2, vRegD_V3 vtmp3,
|
||||
iRegI_R0 result, rFlagsReg cr)
|
||||
%{
|
||||
predicate(((EncodeISOArrayNode*)n)->is_ascii());
|
||||
match(Set result (EncodeISOArray src (Binary dst len)));
|
||||
effect(USE_KILL src, USE_KILL dst, USE len,
|
||||
KILL vtmp0, KILL vtmp1, KILL vtmp2, KILL vtmp3, KILL cr);
|
||||
|
||||
format %{ "Encode ASCII array $src,$dst,$len -> $result" %}
|
||||
ins_encode %{
|
||||
__ encode_iso_array($src$$Register, $dst$$Register, $len$$Register,
|
||||
$result$$Register, true,
|
||||
$vtmp0$$FloatRegister, $vtmp1$$FloatRegister,
|
||||
$vtmp2$$FloatRegister, $vtmp3$$FloatRegister);
|
||||
%}
|
||||
ins_pipe(pipe_class_memory);
|
||||
%}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
@@ -411,13 +411,13 @@ instruct storeV_masked_partial(vReg src, vmemA mem, pRegGov pg, pRegGov pgtmp, r
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
|
||||
// maskAll
|
||||
// maskAll (full or partial predicate size)
|
||||
|
||||
instruct vmaskAll_immI(pRegGov dst, immI src) %{
|
||||
predicate(UseSVE > 0);
|
||||
match(Set dst (MaskAll src));
|
||||
ins_cost(SVE_COST);
|
||||
format %{ "sve_ptrue/sve_pfalse $dst\t# mask all (sve) (B/H/S)" %}
|
||||
format %{ "sve_ptrue_lanecnt/sve_pfalse $dst\t# mask all (sve) (B/H/S)" %}
|
||||
ins_encode %{
|
||||
int con = (int)$src$$constant;
|
||||
if (con == 0) {
|
||||
@@ -425,7 +425,8 @@ instruct vmaskAll_immI(pRegGov dst, immI src) %{
|
||||
} else {
|
||||
assert(con == -1, "invalid constant value for mask");
|
||||
BasicType bt = Matcher::vector_element_basic_type(this);
|
||||
__ sve_ptrue(as_PRegister($dst$$reg), __ elemType_to_regVariant(bt));
|
||||
__ sve_ptrue_lanecnt(as_PRegister($dst$$reg), __ elemType_to_regVariant(bt),
|
||||
Matcher::vector_length(this));
|
||||
}
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
@@ -435,14 +436,22 @@ instruct vmaskAllI(pRegGov dst, iRegIorL2I src, vReg tmp, rFlagsReg cr) %{
|
||||
predicate(UseSVE > 0);
|
||||
match(Set dst (MaskAll src));
|
||||
effect(TEMP tmp, KILL cr);
|
||||
ins_cost(2 * SVE_COST);
|
||||
ins_cost(3 * SVE_COST);
|
||||
format %{ "sve_dup $tmp, $src\n\t"
|
||||
"sve_cmpne $dst, $tmp, 0\t# mask all (sve) (B/H/S)" %}
|
||||
"sve_ptrue_lanecnt $dst\n\t"
|
||||
"sve_cmpne $dst, $dst, $tmp, 0\t# mask all (sve) (B/H/S)" %}
|
||||
ins_encode %{
|
||||
BasicType bt = Matcher::vector_element_basic_type(this);
|
||||
Assembler::SIMD_RegVariant size = __ elemType_to_regVariant(bt);
|
||||
uint length_in_bytes = Matcher::vector_length_in_bytes(this);
|
||||
__ sve_dup(as_FloatRegister($tmp$$reg), size, as_Register($src$$reg));
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size, ptrue, as_FloatRegister($tmp$$reg), 0);
|
||||
if (length_in_bytes < MaxVectorSize) {
|
||||
__ sve_ptrue_lanecnt(as_PRegister($dst$$reg), size, Matcher::vector_length(this));
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size,
|
||||
as_PRegister($dst$$reg), as_FloatRegister($tmp$$reg), 0);
|
||||
} else {
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size, ptrue, as_FloatRegister($tmp$$reg), 0);
|
||||
}
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -451,7 +460,7 @@ instruct vmaskAll_immL(pRegGov dst, immL src) %{
|
||||
predicate(UseSVE > 0);
|
||||
match(Set dst (MaskAll src));
|
||||
ins_cost(SVE_COST);
|
||||
format %{ "sve_ptrue/sve_pfalse $dst\t# mask all (sve) (D)" %}
|
||||
format %{ "sve_ptrue_lanecnt/sve_pfalse $dst\t# mask all (sve) (D)" %}
|
||||
ins_encode %{
|
||||
long con = (long)$src$$constant;
|
||||
if (con == 0) {
|
||||
@@ -459,7 +468,8 @@ instruct vmaskAll_immL(pRegGov dst, immL src) %{
|
||||
} else {
|
||||
assert(con == -1, "invalid constant value for mask");
|
||||
BasicType bt = Matcher::vector_element_basic_type(this);
|
||||
__ sve_ptrue(as_PRegister($dst$$reg), __ elemType_to_regVariant(bt));
|
||||
__ sve_ptrue_lanecnt(as_PRegister($dst$$reg), __ elemType_to_regVariant(bt),
|
||||
Matcher::vector_length(this));
|
||||
}
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
@@ -469,14 +479,22 @@ instruct vmaskAllL(pRegGov dst, iRegL src, vReg tmp, rFlagsReg cr) %{
|
||||
predicate(UseSVE > 0);
|
||||
match(Set dst (MaskAll src));
|
||||
effect(TEMP tmp, KILL cr);
|
||||
ins_cost(2 * SVE_COST);
|
||||
ins_cost(3 * SVE_COST);
|
||||
format %{ "sve_dup $tmp, $src\n\t"
|
||||
"sve_cmpne $dst, $tmp, 0\t# mask all (sve) (D)" %}
|
||||
"sve_ptrue_lanecnt $dst\n\t"
|
||||
"sve_cmpne $dst, $dst, $tmp, 0\t# mask all (sve) (D)" %}
|
||||
ins_encode %{
|
||||
BasicType bt = Matcher::vector_element_basic_type(this);
|
||||
Assembler::SIMD_RegVariant size = __ elemType_to_regVariant(bt);
|
||||
uint length_in_bytes = Matcher::vector_length_in_bytes(this);
|
||||
__ sve_dup(as_FloatRegister($tmp$$reg), size, as_Register($src$$reg));
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size, ptrue, as_FloatRegister($tmp$$reg), 0);
|
||||
if (length_in_bytes < MaxVectorSize) {
|
||||
__ sve_ptrue_lanecnt(as_PRegister($dst$$reg), size, Matcher::vector_length(this));
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size,
|
||||
as_PRegister($dst$$reg), as_FloatRegister($tmp$$reg), 0);
|
||||
} else {
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size, ptrue, as_FloatRegister($tmp$$reg), 0);
|
||||
}
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}
|
||||
@@ -3084,6 +3102,7 @@ instruct reduce_maxF_masked(vRegF dst, vRegF src1, vReg src2, pRegGov pg) %{
|
||||
n->in(1)->in(2)->bottom_type()->is_vect()->length_in_bytes() == MaxVectorSize);
|
||||
match(Set dst (MaxReductionV (Binary src1 src2) pg));
|
||||
ins_cost(SVE_COST);
|
||||
effect(TEMP_DEF dst);
|
||||
format %{ "sve_reduce_maxF $dst, $src1, $pg, $src2\t# maxF reduction predicated (sve)" %}
|
||||
ins_encode %{
|
||||
__ sve_fmaxv(as_FloatRegister($dst$$reg), __ S, as_PRegister($pg$$reg), as_FloatRegister($src2$$reg));
|
||||
@@ -3098,6 +3117,7 @@ instruct reduce_maxD_masked(vRegD dst, vRegD src1, vReg src2, pRegGov pg) %{
|
||||
n->in(1)->in(2)->bottom_type()->is_vect()->length_in_bytes() == MaxVectorSize);
|
||||
match(Set dst (MaxReductionV (Binary src1 src2) pg));
|
||||
ins_cost(SVE_COST);
|
||||
effect(TEMP_DEF dst);
|
||||
format %{ "sve_reduce_maxD $dst, $src1, $pg, $src2\t# maxD reduction predicated (sve)" %}
|
||||
ins_encode %{
|
||||
__ sve_fmaxv(as_FloatRegister($dst$$reg), __ D, as_PRegister($pg$$reg), as_FloatRegister($src2$$reg));
|
||||
@@ -3380,6 +3400,7 @@ instruct reduce_minF_masked(vRegF dst, vRegF src1, vReg src2, pRegGov pg) %{
|
||||
n->in(1)->in(2)->bottom_type()->is_vect()->length_in_bytes() == MaxVectorSize);
|
||||
match(Set dst (MinReductionV (Binary src1 src2) pg));
|
||||
ins_cost(SVE_COST);
|
||||
effect(TEMP_DEF dst);
|
||||
format %{ "sve_reduce_minF $dst, $src1, $pg, $src2\t# minF reduction predicated (sve)" %}
|
||||
ins_encode %{
|
||||
__ sve_fminv(as_FloatRegister($dst$$reg), __ S, as_PRegister($pg$$reg), as_FloatRegister($src2$$reg));
|
||||
@@ -3394,6 +3415,7 @@ instruct reduce_minD_masked(vRegD dst, vRegD src1, vReg src2, pRegGov pg) %{
|
||||
n->in(1)->in(2)->bottom_type()->is_vect()->length_in_bytes() == MaxVectorSize);
|
||||
match(Set dst (MinReductionV (Binary src1 src2) pg));
|
||||
ins_cost(SVE_COST);
|
||||
effect(TEMP_DEF dst);
|
||||
format %{ "sve_reduce_minD $dst, $src1, $pg, $src2\t# minD reduction predicated (sve)" %}
|
||||
ins_encode %{
|
||||
__ sve_fminv(as_FloatRegister($dst$$reg), __ D, as_PRegister($pg$$reg), as_FloatRegister($src2$$reg));
|
||||
|
||||
@@ -356,7 +356,7 @@ instruct vmaskAll_imm$1(pRegGov dst, imm$1 src) %{
|
||||
predicate(UseSVE > 0);
|
||||
match(Set dst (MaskAll src));
|
||||
ins_cost(SVE_COST);
|
||||
format %{ "sve_ptrue/sve_pfalse $dst\t# mask all (sve) ($2)" %}
|
||||
format %{ "sve_ptrue_lanecnt/sve_pfalse $dst\t# mask all (sve) ($2)" %}
|
||||
ins_encode %{
|
||||
ifelse($1, `I', int, long) con = (ifelse($1, `I', int, long))$src$$constant;
|
||||
if (con == 0) {
|
||||
@@ -364,7 +364,8 @@ instruct vmaskAll_imm$1(pRegGov dst, imm$1 src) %{
|
||||
} else {
|
||||
assert(con == -1, "invalid constant value for mask");
|
||||
BasicType bt = Matcher::vector_element_basic_type(this);
|
||||
__ sve_ptrue(as_PRegister($dst$$reg), __ elemType_to_regVariant(bt));
|
||||
__ sve_ptrue_lanecnt(as_PRegister($dst$$reg), __ elemType_to_regVariant(bt),
|
||||
Matcher::vector_length(this));
|
||||
}
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
@@ -377,19 +378,27 @@ instruct vmaskAll$1(pRegGov dst, ifelse($1, `I', iRegIorL2I, iRegL) src, vReg tm
|
||||
predicate(UseSVE > 0);
|
||||
match(Set dst (MaskAll src));
|
||||
effect(TEMP tmp, KILL cr);
|
||||
ins_cost(2 * SVE_COST);
|
||||
ins_cost(3 * SVE_COST);
|
||||
format %{ "sve_dup $tmp, $src\n\t"
|
||||
"sve_cmpne $dst, $tmp, 0\t# mask all (sve) ($2)" %}
|
||||
"sve_ptrue_lanecnt $dst\n\t"
|
||||
"sve_cmpne $dst, $dst, $tmp, 0\t# mask all (sve) ($2)" %}
|
||||
ins_encode %{
|
||||
BasicType bt = Matcher::vector_element_basic_type(this);
|
||||
Assembler::SIMD_RegVariant size = __ elemType_to_regVariant(bt);
|
||||
uint length_in_bytes = Matcher::vector_length_in_bytes(this);
|
||||
__ sve_dup(as_FloatRegister($tmp$$reg), size, as_Register($src$$reg));
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size, ptrue, as_FloatRegister($tmp$$reg), 0);
|
||||
if (length_in_bytes < MaxVectorSize) {
|
||||
__ sve_ptrue_lanecnt(as_PRegister($dst$$reg), size, Matcher::vector_length(this));
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size,
|
||||
as_PRegister($dst$$reg), as_FloatRegister($tmp$$reg), 0);
|
||||
} else {
|
||||
__ sve_cmp(Assembler::NE, as_PRegister($dst$$reg), size, ptrue, as_FloatRegister($tmp$$reg), 0);
|
||||
}
|
||||
%}
|
||||
ins_pipe(pipe_slow);
|
||||
%}')dnl
|
||||
dnl
|
||||
// maskAll
|
||||
// maskAll (full or partial predicate size)
|
||||
MASKALL_IMM(I, B/H/S)
|
||||
MASKALL(I, B/H/S)
|
||||
MASKALL_IMM(L, D)
|
||||
@@ -1807,6 +1816,7 @@ instruct reduce_$1$2_masked($5 dst, $5 src1, vReg src2, pRegGov pg) %{
|
||||
n->in(1)->in(2)->bottom_type()->is_vect()->length_in_bytes() == MaxVectorSize);
|
||||
match(Set dst (translit($1, `m', `M')ReductionV (Binary src1 src2) pg));
|
||||
ins_cost(SVE_COST);
|
||||
effect(TEMP_DEF dst);
|
||||
format %{ "sve_reduce_$1$2 $dst, $src1, $pg, $src2\t# $1$2 reduction predicated (sve)" %}
|
||||
ins_encode %{
|
||||
__ sve_f$1v(as_FloatRegister($dst$$reg), __ $4, as_PRegister($pg$$reg), as_FloatRegister($src2$$reg));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -27,6 +27,7 @@
|
||||
#define CPU_AARCH64_ASSEMBLER_AARCH64_HPP
|
||||
|
||||
#include "asm/register.hpp"
|
||||
#include "metaprogramming/enableIf.hpp"
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
@@ -404,18 +405,11 @@ class Address {
|
||||
: _mode(no_mode) { }
|
||||
Address(Register r)
|
||||
: _base(r), _index(noreg), _offset(0), _mode(base_plus_offset), _target(0) { }
|
||||
Address(Register r, int o)
|
||||
: _base(r), _index(noreg), _offset(o), _mode(base_plus_offset), _target(0) { }
|
||||
Address(Register r, long o)
|
||||
: _base(r), _index(noreg), _offset(o), _mode(base_plus_offset), _target(0) { }
|
||||
Address(Register r, long long o)
|
||||
: _base(r), _index(noreg), _offset(o), _mode(base_plus_offset), _target(0) { }
|
||||
Address(Register r, unsigned int o)
|
||||
: _base(r), _index(noreg), _offset(o), _mode(base_plus_offset), _target(0) { }
|
||||
Address(Register r, unsigned long o)
|
||||
: _base(r), _index(noreg), _offset(o), _mode(base_plus_offset), _target(0) { }
|
||||
Address(Register r, unsigned long long o)
|
||||
: _base(r), _index(noreg), _offset(o), _mode(base_plus_offset), _target(0) { }
|
||||
|
||||
template<typename T, ENABLE_IF(std::is_integral<T>::value)>
|
||||
Address(Register r, T o)
|
||||
: _base(r), _index(noreg), _offset(o), _mode(base_plus_offset), _target(0) {}
|
||||
|
||||
Address(Register r, ByteSize disp)
|
||||
: Address(r, in_bytes(disp)) { }
|
||||
Address(Register r, Register r1, extend ext = lsl())
|
||||
@@ -1726,7 +1720,7 @@ void mvnw(Register Rd, Register Rm,
|
||||
|
||||
#define INSN(NAME, op) \
|
||||
void NAME(Register Rn, Register Rm, int imm, Condition cond) { \
|
||||
int regNumber = (Rm == zr ? 31 : (uintptr_t)Rm); \
|
||||
int regNumber = (Rm == zr ? 31 : Rm->encoding()); \
|
||||
conditional_compare(op, 0, 0, 0, Rn, regNumber, imm, cond); \
|
||||
} \
|
||||
\
|
||||
@@ -2424,6 +2418,12 @@ public:
|
||||
INSN(cnt, 0, 0b100000010110, 0); // accepted arrangements: T8B, T16B
|
||||
INSN(uaddlp, 1, 0b100000001010, 2); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
|
||||
INSN(uaddlv, 1, 0b110000001110, 1); // accepted arrangements: T8B, T16B, T4H, T8H, T4S
|
||||
// Zero compare.
|
||||
INSN(cmeq, 0, 0b100000100110, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
INSN(cmge, 1, 0b100000100010, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
INSN(cmgt, 0, 0b100000100010, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
INSN(cmle, 1, 0b100000100110, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
INSN(cmlt, 0, 0b100000101010, 3); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
|
||||
|
||||
#undef INSN
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -26,7 +26,7 @@
|
||||
#ifndef CPU_AARCH64_BYTES_AARCH64_HPP
|
||||
#define CPU_AARCH64_BYTES_AARCH64_HPP
|
||||
|
||||
#include "memory/allocation.hpp"
|
||||
#include "memory/allStatic.hpp"
|
||||
|
||||
class Bytes: AllStatic {
|
||||
public:
|
||||
|
||||
@@ -148,7 +148,7 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
if (index->is_constant()) {
|
||||
LIR_Const *constant = index->as_constant_ptr();
|
||||
if (constant->type() == T_INT) {
|
||||
large_disp += index->as_jint() << shift;
|
||||
large_disp += ((intx)index->as_jint()) << shift;
|
||||
} else {
|
||||
assert(constant->type() == T_LONG, "should be");
|
||||
jlong c = index->as_jlong() << shift;
|
||||
@@ -194,7 +194,7 @@ LIR_Address* LIRGenerator::generate_address(LIR_Opr base, LIR_Opr index,
|
||||
if (large_disp == 0 && index->is_register()) {
|
||||
return new LIR_Address(base, index, type);
|
||||
} else {
|
||||
assert(Address::offset_ok_for_immed(large_disp, 0), "must be");
|
||||
assert(Address::offset_ok_for_immed(large_disp, shift), "failed for large_disp: " INTPTR_FORMAT " and shift %d", large_disp, shift);
|
||||
return new LIR_Address(base, large_disp, type);
|
||||
}
|
||||
}
|
||||
@@ -204,24 +204,7 @@ LIR_Address* LIRGenerator::emit_array_address(LIR_Opr array_opr, LIR_Opr index_o
|
||||
int offset_in_bytes = arrayOopDesc::base_offset_in_bytes(type);
|
||||
int elem_size = type2aelembytes(type);
|
||||
int shift = exact_log2(elem_size);
|
||||
|
||||
LIR_Address* addr;
|
||||
if (index_opr->is_constant()) {
|
||||
addr = new LIR_Address(array_opr,
|
||||
offset_in_bytes + (intx)(index_opr->as_jint()) * elem_size, type);
|
||||
} else {
|
||||
if (offset_in_bytes) {
|
||||
LIR_Opr tmp = new_pointer_register();
|
||||
__ add(array_opr, LIR_OprFact::intConst(offset_in_bytes), tmp);
|
||||
array_opr = tmp;
|
||||
offset_in_bytes = 0;
|
||||
}
|
||||
addr = new LIR_Address(array_opr,
|
||||
index_opr,
|
||||
LIR_Address::scale(type),
|
||||
offset_in_bytes, type);
|
||||
}
|
||||
return addr;
|
||||
return generate_address(array_opr, index_opr, shift, offset_in_bytes, type);
|
||||
}
|
||||
|
||||
LIR_Opr LIRGenerator::load_immediate(int x, BasicType type) {
|
||||
|
||||
@@ -304,7 +304,7 @@ void C1_MacroAssembler::remove_frame(int framesize) {
|
||||
}
|
||||
|
||||
|
||||
void C1_MacroAssembler::verified_entry() {
|
||||
void C1_MacroAssembler::verified_entry(bool breakAtEntry) {
|
||||
// If we have to make this method not-entrant we'll overwrite its
|
||||
// first instruction with a jump. For this action to be legal we
|
||||
// must ensure that this first instruction is a B, BL, NOP, BKPT,
|
||||
|
||||
@@ -1232,3 +1232,39 @@ void C2_MacroAssembler::sve_reduce_integral(int opc, Register dst, BasicType bt,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set elements of the dst predicate to true if the element number is
|
||||
// in the range of [0, lane_cnt), or to false otherwise.
|
||||
void C2_MacroAssembler::sve_ptrue_lanecnt(PRegister dst, SIMD_RegVariant size, int lane_cnt) {
|
||||
assert(size != Q, "invalid size");
|
||||
switch(lane_cnt) {
|
||||
case 1: /* VL1 */
|
||||
case 2: /* VL2 */
|
||||
case 3: /* VL3 */
|
||||
case 4: /* VL4 */
|
||||
case 5: /* VL5 */
|
||||
case 6: /* VL6 */
|
||||
case 7: /* VL7 */
|
||||
case 8: /* VL8 */
|
||||
sve_ptrue(dst, size, lane_cnt);
|
||||
break;
|
||||
case 16:
|
||||
sve_ptrue(dst, size, /* VL16 */ 0b01001);
|
||||
break;
|
||||
case 32:
|
||||
sve_ptrue(dst, size, /* VL32 */ 0b01010);
|
||||
break;
|
||||
case 64:
|
||||
sve_ptrue(dst, size, /* VL64 */ 0b01011);
|
||||
break;
|
||||
case 128:
|
||||
sve_ptrue(dst, size, /* VL128 */ 0b01100);
|
||||
break;
|
||||
case 256:
|
||||
sve_ptrue(dst, size, /* VL256 */ 0b01101);
|
||||
break;
|
||||
default:
|
||||
assert(false, "unsupported");
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,6 +88,10 @@
|
||||
void sve_reduce_integral(int opc, Register dst, BasicType bt, Register src1,
|
||||
FloatRegister src2, PRegister pg, FloatRegister tmp);
|
||||
|
||||
// Set elements of the dst predicate to true if the element number is
|
||||
// in the range of [0, lane_cnt), or to false otherwise.
|
||||
void sve_ptrue_lanecnt(PRegister dst, SIMD_RegVariant size, int lane_cnt);
|
||||
|
||||
// Generate predicate through whilelo, by comparing ZR with an unsigned
|
||||
// immediate. rscratch1 will be clobbered.
|
||||
inline void sve_whilelo_zr_imm(PRegister pd, SIMD_RegVariant size, uint imm) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -52,4 +52,166 @@ static void pd_zero_to_bytes(void* to, size_t count) {
|
||||
(void)memset(to, 0, count);
|
||||
}
|
||||
|
||||
#ifndef _WINDOWS
|
||||
|
||||
#define COPY_SMALL(from, to, count) \
|
||||
{ \
|
||||
long tmp0, tmp1, tmp2, tmp3; \
|
||||
long tmp4, tmp5, tmp6, tmp7; \
|
||||
__asm volatile( \
|
||||
" adr %[t0], 0f;\n" \
|
||||
" add %[t0], %[t0], %[cnt], lsl #5;\n" \
|
||||
" br %[t0];\n" \
|
||||
" .align 5;\n" \
|
||||
"0:" \
|
||||
" b 1f;\n" \
|
||||
" .align 5;\n" \
|
||||
" ldr %[t0], [%[s], #0];\n" \
|
||||
" str %[t0], [%[d], #0];\n" \
|
||||
" b 1f;\n" \
|
||||
" .align 5;\n" \
|
||||
" ldp %[t0], %[t1], [%[s], #0];\n" \
|
||||
" stp %[t0], %[t1], [%[d], #0];\n" \
|
||||
" b 1f;\n" \
|
||||
" .align 5;\n" \
|
||||
" ldp %[t0], %[t1], [%[s], #0];\n" \
|
||||
" ldr %[t2], [%[s], #16];\n" \
|
||||
" stp %[t0], %[t1], [%[d], #0];\n" \
|
||||
" str %[t2], [%[d], #16];\n" \
|
||||
" b 1f;\n" \
|
||||
" .align 5;\n" \
|
||||
" ldp %[t0], %[t1], [%[s], #0];\n" \
|
||||
" ldp %[t2], %[t3], [%[s], #16];\n" \
|
||||
" stp %[t0], %[t1], [%[d], #0];\n" \
|
||||
" stp %[t2], %[t3], [%[d], #16];\n" \
|
||||
" b 1f;\n" \
|
||||
" .align 5;\n" \
|
||||
" ldp %[t0], %[t1], [%[s], #0];\n" \
|
||||
" ldp %[t2], %[t3], [%[s], #16];\n" \
|
||||
" ldr %[t4], [%[s], #32];\n" \
|
||||
" stp %[t0], %[t1], [%[d], #0];\n" \
|
||||
" stp %[t2], %[t3], [%[d], #16];\n" \
|
||||
" str %[t4], [%[d], #32];\n" \
|
||||
" b 1f;\n" \
|
||||
" .align 5;\n" \
|
||||
" ldp %[t0], %[t1], [%[s], #0];\n" \
|
||||
" ldp %[t2], %[t3], [%[s], #16];\n" \
|
||||
" ldp %[t4], %[t5], [%[s], #32];\n" \
|
||||
"2:" \
|
||||
" stp %[t0], %[t1], [%[d], #0];\n" \
|
||||
" stp %[t2], %[t3], [%[d], #16];\n" \
|
||||
" stp %[t4], %[t5], [%[d], #32];\n" \
|
||||
" b 1f;\n" \
|
||||
" .align 5;\n" \
|
||||
" ldr %[t6], [%[s], #0];\n" \
|
||||
" ldp %[t0], %[t1], [%[s], #8];\n" \
|
||||
" ldp %[t2], %[t3], [%[s], #24];\n" \
|
||||
" ldp %[t4], %[t5], [%[s], #40];\n" \
|
||||
" str %[t6], [%[d]], #8;\n" \
|
||||
" b 2b;\n" \
|
||||
" .align 5;\n" \
|
||||
" ldp %[t0], %[t1], [%[s], #0];\n" \
|
||||
" ldp %[t2], %[t3], [%[s], #16];\n" \
|
||||
" ldp %[t4], %[t5], [%[s], #32];\n" \
|
||||
" ldp %[t6], %[t7], [%[s], #48];\n" \
|
||||
" stp %[t0], %[t1], [%[d], #0];\n" \
|
||||
" stp %[t2], %[t3], [%[d], #16];\n" \
|
||||
" stp %[t4], %[t5], [%[d], #32];\n" \
|
||||
" stp %[t6], %[t7], [%[d], #48];\n" \
|
||||
"1:" \
|
||||
\
|
||||
: [s]"+r"(from), [d]"+r"(to), [cnt]"+r"(count), \
|
||||
[t0]"=&r"(tmp0), [t1]"=&r"(tmp1), [t2]"=&r"(tmp2), [t3]"=&r"(tmp3), \
|
||||
[t4]"=&r"(tmp4), [t5]"=&r"(tmp5), [t6]"=&r"(tmp6), [t7]"=&r"(tmp7) \
|
||||
: \
|
||||
: "memory", "cc"); \
|
||||
}
|
||||
|
||||
static void pd_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
__asm volatile( "prfm pldl1strm, [%[s], #0];" :: [s]"r"(from) : "memory");
|
||||
if (__builtin_expect(count <= 8, 1)) {
|
||||
COPY_SMALL(from, to, count);
|
||||
return;
|
||||
}
|
||||
_Copy_conjoint_words(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_disjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
if (__builtin_constant_p(count)) {
|
||||
memcpy(to, from, count * sizeof(HeapWord));
|
||||
return;
|
||||
}
|
||||
__asm volatile( "prfm pldl1strm, [%[s], #0];" :: [s]"r"(from) : "memory");
|
||||
if (__builtin_expect(count <= 8, 1)) {
|
||||
COPY_SMALL(from, to, count);
|
||||
return;
|
||||
}
|
||||
_Copy_disjoint_words(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_disjoint_words_atomic(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
__asm volatile( "prfm pldl1strm, [%[s], #0];" :: [s]"r"(from) : "memory");
|
||||
if (__builtin_expect(count <= 8, 1)) {
|
||||
COPY_SMALL(from, to, count);
|
||||
return;
|
||||
}
|
||||
_Copy_disjoint_words(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_aligned_conjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
pd_conjoint_words(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_aligned_disjoint_words(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
pd_disjoint_words(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_conjoint_bytes(const void* from, void* to, size_t count) {
|
||||
(void)memmove(to, from, count);
|
||||
}
|
||||
|
||||
static void pd_conjoint_bytes_atomic(const void* from, void* to, size_t count) {
|
||||
pd_conjoint_bytes(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_conjoint_jshorts_atomic(const jshort* from, jshort* to, size_t count) {
|
||||
_Copy_conjoint_jshorts_atomic(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_conjoint_jints_atomic(const jint* from, jint* to, size_t count) {
|
||||
_Copy_conjoint_jints_atomic(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_conjoint_jlongs_atomic(const jlong* from, jlong* to, size_t count) {
|
||||
_Copy_conjoint_jlongs_atomic(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_conjoint_oops_atomic(const oop* from, oop* to, size_t count) {
|
||||
assert(BytesPerLong == BytesPerOop, "jlongs and oops must be the same size");
|
||||
_Copy_conjoint_jlongs_atomic((const jlong*)from, (jlong*)to, count);
|
||||
}
|
||||
|
||||
static void pd_arrayof_conjoint_bytes(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
_Copy_arrayof_conjoint_bytes(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_arrayof_conjoint_jshorts(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
_Copy_arrayof_conjoint_jshorts(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_arrayof_conjoint_jints(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
_Copy_arrayof_conjoint_jints(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_arrayof_conjoint_jlongs(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
_Copy_arrayof_conjoint_jlongs(from, to, count);
|
||||
}
|
||||
|
||||
static void pd_arrayof_conjoint_oops(const HeapWord* from, HeapWord* to, size_t count) {
|
||||
assert(!UseCompressedOops, "foo!");
|
||||
assert(BytesPerLong == BytesPerOop, "jlongs and oops must be the same size");
|
||||
_Copy_arrayof_conjoint_jlongs(from, to, count);
|
||||
}
|
||||
#endif // _WINDOWS
|
||||
|
||||
#endif // CPU_AARCH64_COPY_AARCH64_HPP
|
||||
|
||||
@@ -45,7 +45,7 @@ bool ABIDescriptor::is_volatile_reg(FloatRegister reg) const {
|
||||
const ABIDescriptor ForeignGlobals::parse_abi_descriptor_impl(jobject jabi) const {
|
||||
oop abi_oop = JNIHandles::resolve_non_null(jabi);
|
||||
ABIDescriptor abi;
|
||||
const Register (*to_Register)(int) = as_Register;
|
||||
constexpr Register (*to_Register)(int) = as_Register;
|
||||
|
||||
objArrayOop inputStorage = cast<objArrayOop>(abi_oop->obj_field(ABI.inputStorage_offset));
|
||||
loadArray(inputStorage, INTEGER_TYPE, abi._integer_argument_registers, to_Register);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2020, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -358,6 +358,7 @@ frame frame::sender_for_entry_frame(RegisterMap* map) const {
|
||||
assert(map->include_argument_oops(), "should be set by clear");
|
||||
vmassert(jfa->last_Java_pc() != NULL, "not walkable");
|
||||
frame fr(jfa->last_Java_sp(), jfa->last_Java_fp(), jfa->last_Java_pc());
|
||||
fr.set_sp_is_trusted();
|
||||
|
||||
return fr;
|
||||
}
|
||||
@@ -463,12 +464,21 @@ frame frame::sender_for_interpreter_frame(RegisterMap* map) const {
|
||||
//------------------------------------------------------------------------------
|
||||
// frame::sender_for_compiled_frame
|
||||
frame frame::sender_for_compiled_frame(RegisterMap* map) const {
|
||||
// we cannot rely upon the last fp having been saved to the thread
|
||||
// in C2 code but it will have been pushed onto the stack. so we
|
||||
// have to find it relative to the unextended sp
|
||||
// When the sp of a compiled frame is correct, we can get the correct sender sp
|
||||
// by unextended sp + frame size.
|
||||
// For the following two scenarios, the sp of a compiled frame is correct:
|
||||
// a) This compiled frame is built from the anchor.
|
||||
// b) This compiled frame is built from a callee frame, and the callee frame can
|
||||
// calculate its sp correctly.
|
||||
//
|
||||
// For b), if the callee frame is a native code frame (such as leaf call), the sp of
|
||||
// the compiled frame cannot be calculated correctly. There is currently no suitable
|
||||
// solution to solve this problem perfectly. But when PreserveFramePointer is enabled,
|
||||
// we can get the correct sender sp by fp + 2 (that is sender_sp()).
|
||||
|
||||
assert(_cb->frame_size() >= 0, "must have non-zero frame size");
|
||||
intptr_t* l_sender_sp = unextended_sp() + _cb->frame_size();
|
||||
intptr_t* l_sender_sp = (!PreserveFramePointer || _sp_is_trusted) ? unextended_sp() + _cb->frame_size()
|
||||
: sender_sp();
|
||||
intptr_t* unextended_sp = l_sender_sp;
|
||||
|
||||
// the return_address is always the word on the stack
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -124,6 +124,11 @@
|
||||
intptr_t* _unextended_sp;
|
||||
void adjust_unextended_sp();
|
||||
|
||||
// true means _sp value is correct and we can use it to get the sender's sp
|
||||
// of the compiled frame, otherwise, _sp value may be invalid and we can use
|
||||
// _fp to get the sender's sp if PreserveFramePointer is enabled.
|
||||
bool _sp_is_trusted;
|
||||
|
||||
intptr_t* ptr_at_addr(int offset) const {
|
||||
return (intptr_t*) addr_at(offset);
|
||||
}
|
||||
@@ -165,4 +170,6 @@
|
||||
// returns the sending frame, without applying any barriers
|
||||
frame sender_raw(RegisterMap* map) const;
|
||||
|
||||
void set_sp_is_trusted() { _sp_is_trusted = true; }
|
||||
|
||||
#endif // CPU_AARCH64_FRAME_AARCH64_HPP
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -41,6 +41,7 @@ inline frame::frame() {
|
||||
_fp = NULL;
|
||||
_cb = NULL;
|
||||
_deopt_state = unknown;
|
||||
_sp_is_trusted = false;
|
||||
}
|
||||
|
||||
static int spin;
|
||||
@@ -64,6 +65,7 @@ inline void frame::init(intptr_t* sp, intptr_t* fp, address pc) {
|
||||
} else {
|
||||
_deopt_state = not_deoptimized;
|
||||
}
|
||||
_sp_is_trusted = false;
|
||||
}
|
||||
|
||||
inline frame::frame(intptr_t* sp, intptr_t* fp, address pc) {
|
||||
@@ -91,6 +93,7 @@ inline frame::frame(intptr_t* sp, intptr_t* unextended_sp, intptr_t* fp, address
|
||||
} else {
|
||||
_deopt_state = not_deoptimized;
|
||||
}
|
||||
_sp_is_trusted = false;
|
||||
}
|
||||
|
||||
inline frame::frame(intptr_t* sp, intptr_t* fp) {
|
||||
@@ -122,6 +125,7 @@ inline frame::frame(intptr_t* sp, intptr_t* fp) {
|
||||
} else {
|
||||
_deopt_state = not_deoptimized;
|
||||
}
|
||||
_sp_is_trusted = false;
|
||||
}
|
||||
|
||||
// Accessors
|
||||
|
||||
@@ -67,4 +67,6 @@ const bool CCallingConventionRequiresIntsAsLongs = false;
|
||||
#define NOT_R18_RESERVED(code) code
|
||||
#endif
|
||||
|
||||
#define USE_POINTERS_TO_REGISTER_IMPL_ARRAY
|
||||
|
||||
#endif // CPU_AARCH64_GLOBALDEFINITIONS_AARCH64_HPP
|
||||
|
||||
@@ -129,8 +129,17 @@ static inline uint32_t uimm(uint32_t val, int hi, int lo)
|
||||
|
||||
uint64_t replicate(uint64_t bits, int nbits, int count)
|
||||
{
|
||||
assert(count > 0, "must be");
|
||||
assert(nbits > 0, "must be");
|
||||
assert(count * nbits <= 64, "must be");
|
||||
|
||||
// Special case nbits == 64 since the shift below with that nbits value
|
||||
// would result in undefined behavior.
|
||||
if (nbits == 64) {
|
||||
return bits;
|
||||
}
|
||||
|
||||
uint64_t result = 0;
|
||||
// nbits may be 64 in which case we want mask to be -1
|
||||
uint64_t mask = ones(nbits);
|
||||
for (int i = 0; i < count ; i++) {
|
||||
result <<= nbits;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -27,7 +27,7 @@
|
||||
#define CPU_AARCH64_JNITYPES_AARCH64_HPP
|
||||
|
||||
#include "jni.h"
|
||||
#include "memory/allocation.hpp"
|
||||
#include "memory/allStatic.hpp"
|
||||
#include "oops/oop.hpp"
|
||||
|
||||
// This file holds platform-dependent routines used to write primitive jni
|
||||
|
||||
@@ -186,7 +186,7 @@ VMReg CodeInstaller::get_hotspot_reg(jint jvmci_reg, JVMCI_TRAPS) {
|
||||
if (jvmci_reg < RegisterImpl::number_of_registers) {
|
||||
return as_Register(jvmci_reg)->as_VMReg();
|
||||
} else {
|
||||
jint floatRegisterNumber = jvmci_reg - RegisterImpl::number_of_registers_for_jvmci;
|
||||
jint floatRegisterNumber = jvmci_reg - RegisterImpl::number_of_declared_registers;
|
||||
if (floatRegisterNumber >= 0 && floatRegisterNumber < FloatRegisterImpl::number_of_registers) {
|
||||
return as_FloatRegister(floatRegisterNumber)->as_VMReg();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "jvm.h"
|
||||
#include "asm/assembler.hpp"
|
||||
#include "asm/assembler.inline.hpp"
|
||||
#include "ci/ciEnv.hpp"
|
||||
#include "gc/shared/barrierSet.hpp"
|
||||
#include "gc/shared/barrierSetAssembler.hpp"
|
||||
#include "gc/shared/cardTableBarrierSet.hpp"
|
||||
@@ -159,8 +160,7 @@ int MacroAssembler::pd_patch_instruction_size(address branch, address target) {
|
||||
Instruction_aarch64::patch(branch+8, 20, 5, (dest >>= 16) & 0xffff);
|
||||
assert(target_addr_for_insn(branch) == target, "should be");
|
||||
instructions = 3;
|
||||
} else if (Instruction_aarch64::extract(insn, 31, 22) == 0b1011100101 &&
|
||||
Instruction_aarch64::extract(insn, 4, 0) == 0b11111) {
|
||||
} else if (NativeInstruction::is_ldrw_to_zr(address(&insn))) {
|
||||
// nothing to do
|
||||
assert(target == 0, "did not expect to relocate target for polling page load");
|
||||
} else {
|
||||
@@ -283,15 +283,19 @@ address MacroAssembler::target_addr_for_insn(address insn_addr, unsigned insn) {
|
||||
return address(uint64_t(Instruction_aarch64::extract(insns[0], 20, 5))
|
||||
+ (uint64_t(Instruction_aarch64::extract(insns[1], 20, 5)) << 16)
|
||||
+ (uint64_t(Instruction_aarch64::extract(insns[2], 20, 5)) << 32));
|
||||
} else if (Instruction_aarch64::extract(insn, 31, 22) == 0b1011100101 &&
|
||||
Instruction_aarch64::extract(insn, 4, 0) == 0b11111) {
|
||||
return 0;
|
||||
} else {
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
return address(((uint64_t)insn_addr + (offset << 2)));
|
||||
}
|
||||
|
||||
address MacroAssembler::target_addr_for_insn_or_null(address insn_addr, unsigned insn) {
|
||||
if (NativeInstruction::is_ldrw_to_zr(address(&insn))) {
|
||||
return 0;
|
||||
}
|
||||
return MacroAssembler::target_addr_for_insn(insn_addr, insn);
|
||||
}
|
||||
|
||||
void MacroAssembler::safepoint_poll(Label& slow_path, bool at_return, bool acquire, bool in_nmethod) {
|
||||
if (acquire) {
|
||||
lea(rscratch1, Address(rthread, JavaThread::polling_word_offset()));
|
||||
@@ -4923,112 +4927,119 @@ void MacroAssembler::fill_words(Register base, Register cnt, Register value)
|
||||
bind(fini);
|
||||
}
|
||||
|
||||
// Intrinsic for sun/nio/cs/ISO_8859_1$Encoder.implEncodeISOArray and
|
||||
// java/lang/StringUTF16.compress.
|
||||
// Intrinsic for
|
||||
//
|
||||
// - sun/nio/cs/ISO_8859_1$Encoder.implEncodeISOArray
|
||||
// return the number of characters copied.
|
||||
// - java/lang/StringUTF16.compress
|
||||
// return zero (0) if copy fails, otherwise 'len'.
|
||||
//
|
||||
// This version always returns the number of characters copied, and does not
|
||||
// clobber the 'len' register. A successful copy will complete with the post-
|
||||
// condition: 'res' == 'len', while an unsuccessful copy will exit with the
|
||||
// post-condition: 0 <= 'res' < 'len'.
|
||||
//
|
||||
// NOTE: Attempts to use 'ld2' (and 'umaxv' in the ISO part) has proven to
|
||||
// degrade performance (on Ampere Altra - Neoverse N1), to an extent
|
||||
// beyond the acceptable, even though the footprint would be smaller.
|
||||
// Using 'umaxv' in the ASCII-case comes with a small penalty but does
|
||||
// avoid additional bloat.
|
||||
//
|
||||
void MacroAssembler::encode_iso_array(Register src, Register dst,
|
||||
Register len, Register result,
|
||||
FloatRegister Vtmp1, FloatRegister Vtmp2,
|
||||
FloatRegister Vtmp3, FloatRegister Vtmp4)
|
||||
Register len, Register res, bool ascii,
|
||||
FloatRegister vtmp0, FloatRegister vtmp1,
|
||||
FloatRegister vtmp2, FloatRegister vtmp3)
|
||||
{
|
||||
Label DONE, SET_RESULT, NEXT_32, NEXT_32_PRFM, LOOP_8, NEXT_8, LOOP_1, NEXT_1,
|
||||
NEXT_32_START, NEXT_32_PRFM_START;
|
||||
Register tmp1 = rscratch1, tmp2 = rscratch2;
|
||||
Register cnt = res;
|
||||
Register max = rscratch1;
|
||||
Register chk = rscratch2;
|
||||
|
||||
mov(result, len); // Save initial len
|
||||
prfm(Address(src), PLDL1STRM);
|
||||
movw(cnt, len);
|
||||
|
||||
cmp(len, (u1)8); // handle shortest strings first
|
||||
br(LT, LOOP_1);
|
||||
cmp(len, (u1)32);
|
||||
br(LT, NEXT_8);
|
||||
// The following code uses the SIMD 'uzp1' and 'uzp2' instructions
|
||||
// to convert chars to bytes
|
||||
if (SoftwarePrefetchHintDistance >= 0) {
|
||||
ld1(Vtmp1, Vtmp2, Vtmp3, Vtmp4, T8H, src);
|
||||
subs(tmp2, len, SoftwarePrefetchHintDistance/2 + 16);
|
||||
br(LE, NEXT_32_START);
|
||||
b(NEXT_32_PRFM_START);
|
||||
BIND(NEXT_32_PRFM);
|
||||
ld1(Vtmp1, Vtmp2, Vtmp3, Vtmp4, T8H, src);
|
||||
BIND(NEXT_32_PRFM_START);
|
||||
prfm(Address(src, SoftwarePrefetchHintDistance));
|
||||
orr(v4, T16B, Vtmp1, Vtmp2);
|
||||
orr(v5, T16B, Vtmp3, Vtmp4);
|
||||
uzp1(Vtmp1, T16B, Vtmp1, Vtmp2);
|
||||
uzp1(Vtmp3, T16B, Vtmp3, Vtmp4);
|
||||
uzp2(v5, T16B, v4, v5); // high bytes
|
||||
umov(tmp2, v5, D, 1);
|
||||
fmovd(tmp1, v5);
|
||||
orr(tmp1, tmp1, tmp2);
|
||||
cbnz(tmp1, LOOP_8);
|
||||
stpq(Vtmp1, Vtmp3, dst);
|
||||
sub(len, len, 32);
|
||||
add(dst, dst, 32);
|
||||
add(src, src, 64);
|
||||
subs(tmp2, len, SoftwarePrefetchHintDistance/2 + 16);
|
||||
br(GE, NEXT_32_PRFM);
|
||||
cmp(len, (u1)32);
|
||||
br(LT, LOOP_8);
|
||||
BIND(NEXT_32);
|
||||
ld1(Vtmp1, Vtmp2, Vtmp3, Vtmp4, T8H, src);
|
||||
BIND(NEXT_32_START);
|
||||
} else {
|
||||
BIND(NEXT_32);
|
||||
ld1(Vtmp1, Vtmp2, Vtmp3, Vtmp4, T8H, src);
|
||||
}
|
||||
prfm(Address(src, SoftwarePrefetchHintDistance));
|
||||
uzp1(v4, T16B, Vtmp1, Vtmp2);
|
||||
uzp1(v5, T16B, Vtmp3, Vtmp4);
|
||||
orr(Vtmp1, T16B, Vtmp1, Vtmp2);
|
||||
orr(Vtmp3, T16B, Vtmp3, Vtmp4);
|
||||
uzp2(Vtmp1, T16B, Vtmp1, Vtmp3); // high bytes
|
||||
umov(tmp2, Vtmp1, D, 1);
|
||||
fmovd(tmp1, Vtmp1);
|
||||
orr(tmp1, tmp1, tmp2);
|
||||
cbnz(tmp1, LOOP_8);
|
||||
stpq(v4, v5, dst);
|
||||
sub(len, len, 32);
|
||||
add(dst, dst, 32);
|
||||
add(src, src, 64);
|
||||
cmp(len, (u1)32);
|
||||
br(GE, NEXT_32);
|
||||
cbz(len, DONE);
|
||||
#define ASCII(insn) do { if (ascii) { insn; } } while (0)
|
||||
|
||||
BIND(LOOP_8);
|
||||
cmp(len, (u1)8);
|
||||
br(LT, LOOP_1);
|
||||
BIND(NEXT_8);
|
||||
ld1(Vtmp1, T8H, src);
|
||||
uzp1(Vtmp2, T16B, Vtmp1, Vtmp1); // low bytes
|
||||
uzp2(Vtmp3, T16B, Vtmp1, Vtmp1); // high bytes
|
||||
fmovd(tmp1, Vtmp3);
|
||||
cbnz(tmp1, NEXT_1);
|
||||
strd(Vtmp2, dst);
|
||||
Label LOOP_32, DONE_32, FAIL_32;
|
||||
|
||||
sub(len, len, 8);
|
||||
add(dst, dst, 8);
|
||||
add(src, src, 16);
|
||||
cmp(len, (u1)8);
|
||||
br(GE, NEXT_8);
|
||||
BIND(LOOP_32);
|
||||
{
|
||||
cmpw(cnt, 32);
|
||||
br(LT, DONE_32);
|
||||
ld1(vtmp0, vtmp1, vtmp2, vtmp3, T8H, Address(post(src, 64)));
|
||||
// Extract lower bytes.
|
||||
FloatRegister vlo0 = v4;
|
||||
FloatRegister vlo1 = v5;
|
||||
uzp1(vlo0, T16B, vtmp0, vtmp1);
|
||||
uzp1(vlo1, T16B, vtmp2, vtmp3);
|
||||
// Merge bits...
|
||||
orr(vtmp0, T16B, vtmp0, vtmp1);
|
||||
orr(vtmp2, T16B, vtmp2, vtmp3);
|
||||
// Extract merged upper bytes.
|
||||
FloatRegister vhix = vtmp0;
|
||||
uzp2(vhix, T16B, vtmp0, vtmp2);
|
||||
// ISO-check on hi-parts (all zero).
|
||||
// ASCII-check on lo-parts (no sign).
|
||||
FloatRegister vlox = vtmp1; // Merge lower bytes.
|
||||
ASCII(orr(vlox, T16B, vlo0, vlo1));
|
||||
umov(chk, vhix, D, 1); ASCII(cmlt(vlox, T16B, vlox));
|
||||
fmovd(max, vhix); ASCII(umaxv(vlox, T16B, vlox));
|
||||
orr(chk, chk, max); ASCII(umov(max, vlox, B, 0));
|
||||
ASCII(orr(chk, chk, max));
|
||||
cbnz(chk, FAIL_32);
|
||||
subw(cnt, cnt, 32);
|
||||
st1(vlo0, vlo1, T16B, Address(post(dst, 32)));
|
||||
b(LOOP_32);
|
||||
}
|
||||
BIND(FAIL_32);
|
||||
sub(src, src, 64);
|
||||
BIND(DONE_32);
|
||||
|
||||
BIND(LOOP_1);
|
||||
Label LOOP_8, SKIP_8;
|
||||
|
||||
cbz(len, DONE);
|
||||
BIND(NEXT_1);
|
||||
ldrh(tmp1, Address(post(src, 2)));
|
||||
tst(tmp1, 0xff00);
|
||||
br(NE, SET_RESULT);
|
||||
strb(tmp1, Address(post(dst, 1)));
|
||||
subs(len, len, 1);
|
||||
br(GT, NEXT_1);
|
||||
BIND(LOOP_8);
|
||||
{
|
||||
cmpw(cnt, 8);
|
||||
br(LT, SKIP_8);
|
||||
FloatRegister vhi = vtmp0;
|
||||
FloatRegister vlo = vtmp1;
|
||||
ld1(vtmp3, T8H, src);
|
||||
uzp1(vlo, T16B, vtmp3, vtmp3);
|
||||
uzp2(vhi, T16B, vtmp3, vtmp3);
|
||||
// ISO-check on hi-parts (all zero).
|
||||
// ASCII-check on lo-parts (no sign).
|
||||
ASCII(cmlt(vtmp2, T16B, vlo));
|
||||
fmovd(chk, vhi); ASCII(umaxv(vtmp2, T16B, vtmp2));
|
||||
ASCII(umov(max, vtmp2, B, 0));
|
||||
ASCII(orr(chk, chk, max));
|
||||
cbnz(chk, SKIP_8);
|
||||
|
||||
BIND(SET_RESULT);
|
||||
sub(result, result, len); // Return index where we stopped
|
||||
// Return len == 0 if we processed all
|
||||
// characters
|
||||
BIND(DONE);
|
||||
strd(vlo, Address(post(dst, 8)));
|
||||
subw(cnt, cnt, 8);
|
||||
add(src, src, 16);
|
||||
b(LOOP_8);
|
||||
}
|
||||
BIND(SKIP_8);
|
||||
|
||||
#undef ASCII
|
||||
|
||||
Label LOOP, DONE;
|
||||
|
||||
cbz(cnt, DONE);
|
||||
BIND(LOOP);
|
||||
{
|
||||
Register chr = rscratch1;
|
||||
ldrh(chr, Address(post(src, 2)));
|
||||
tst(chr, ascii ? 0xff80 : 0xff00);
|
||||
br(NE, DONE);
|
||||
strb(chr, Address(post(dst, 1)));
|
||||
subs(cnt, cnt, 1);
|
||||
br(GT, LOOP);
|
||||
}
|
||||
BIND(DONE);
|
||||
// Return index where we stopped.
|
||||
subw(res, len, cnt);
|
||||
}
|
||||
|
||||
|
||||
// Inflate byte[] array to char[].
|
||||
address MacroAssembler::byte_array_inflate(Register src, Register dst, Register len,
|
||||
FloatRegister vtmp1, FloatRegister vtmp2,
|
||||
@@ -5136,13 +5147,13 @@ address MacroAssembler::byte_array_inflate(Register src, Register dst, Register
|
||||
|
||||
// Compress char[] array to byte[].
|
||||
void MacroAssembler::char_array_compress(Register src, Register dst, Register len,
|
||||
FloatRegister tmp1Reg, FloatRegister tmp2Reg,
|
||||
FloatRegister tmp3Reg, FloatRegister tmp4Reg,
|
||||
Register result) {
|
||||
encode_iso_array(src, dst, len, result,
|
||||
tmp1Reg, tmp2Reg, tmp3Reg, tmp4Reg);
|
||||
cmp(len, zr);
|
||||
csel(result, result, zr, EQ);
|
||||
Register res,
|
||||
FloatRegister tmp0, FloatRegister tmp1,
|
||||
FloatRegister tmp2, FloatRegister tmp3) {
|
||||
encode_iso_array(src, dst, len, res, false, tmp0, tmp1, tmp2, tmp3);
|
||||
// Adjust result: res == len ? len : 0
|
||||
cmp(len, res);
|
||||
csel(res, res, zr, EQ);
|
||||
}
|
||||
|
||||
// get_thread() can be called anywhere inside generated code so we
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -27,6 +27,7 @@
|
||||
#define CPU_AARCH64_MACROASSEMBLER_AARCH64_HPP
|
||||
|
||||
#include "asm/assembler.inline.hpp"
|
||||
#include "metaprogramming/enableIf.hpp"
|
||||
#include "oops/compressedOops.hpp"
|
||||
#include "runtime/vm_version.hpp"
|
||||
#include "utilities/powerOfTwo.hpp"
|
||||
@@ -493,17 +494,10 @@ public:
|
||||
|
||||
inline void mov(Register dst, address addr) { mov_immediate64(dst, (uint64_t)addr); }
|
||||
|
||||
inline void mov(Register dst, int imm64) { mov_immediate64(dst, (uint64_t)imm64); }
|
||||
inline void mov(Register dst, long imm64) { mov_immediate64(dst, (uint64_t)imm64); }
|
||||
inline void mov(Register dst, long long imm64) { mov_immediate64(dst, (uint64_t)imm64); }
|
||||
inline void mov(Register dst, unsigned int imm64) { mov_immediate64(dst, (uint64_t)imm64); }
|
||||
inline void mov(Register dst, unsigned long imm64) { mov_immediate64(dst, (uint64_t)imm64); }
|
||||
inline void mov(Register dst, unsigned long long imm64) { mov_immediate64(dst, (uint64_t)imm64); }
|
||||
template<typename T, ENABLE_IF(std::is_integral<T>::value)>
|
||||
inline void mov(Register dst, T o) { mov_immediate64(dst, (uint64_t)o); }
|
||||
|
||||
inline void movw(Register dst, uint32_t imm32)
|
||||
{
|
||||
mov_immediate32(dst, imm32);
|
||||
}
|
||||
inline void movw(Register dst, uint32_t imm32) { mov_immediate32(dst, imm32); }
|
||||
|
||||
void mov(Register dst, RegisterOrConstant src) {
|
||||
if (src.is_register())
|
||||
@@ -606,10 +600,15 @@ public:
|
||||
static bool uses_implicit_null_check(void* address);
|
||||
|
||||
static address target_addr_for_insn(address insn_addr, unsigned insn);
|
||||
static address target_addr_for_insn_or_null(address insn_addr, unsigned insn);
|
||||
static address target_addr_for_insn(address insn_addr) {
|
||||
unsigned insn = *(unsigned*)insn_addr;
|
||||
return target_addr_for_insn(insn_addr, insn);
|
||||
}
|
||||
static address target_addr_for_insn_or_null(address insn_addr) {
|
||||
unsigned insn = *(unsigned*)insn_addr;
|
||||
return target_addr_for_insn_or_null(insn_addr, insn);
|
||||
}
|
||||
|
||||
// Required platform-specific helpers for Label::patch_instructions.
|
||||
// They _shadow_ the declarations in AbstractAssembler, which are undefined.
|
||||
@@ -1255,14 +1254,15 @@ public:
|
||||
FloatRegister vtmp3, Register tmp4);
|
||||
|
||||
void char_array_compress(Register src, Register dst, Register len,
|
||||
FloatRegister tmp1Reg, FloatRegister tmp2Reg,
|
||||
FloatRegister tmp3Reg, FloatRegister tmp4Reg,
|
||||
Register result);
|
||||
Register res,
|
||||
FloatRegister vtmp0, FloatRegister vtmp1,
|
||||
FloatRegister vtmp2, FloatRegister vtmp3);
|
||||
|
||||
void encode_iso_array(Register src, Register dst,
|
||||
Register len, Register result,
|
||||
FloatRegister Vtmp1, FloatRegister Vtmp2,
|
||||
FloatRegister Vtmp3, FloatRegister Vtmp4);
|
||||
Register len, Register res, bool ascii,
|
||||
FloatRegister vtmp0, FloatRegister vtmp1,
|
||||
FloatRegister vtmp2, FloatRegister vtmp3);
|
||||
|
||||
void fast_log(FloatRegister vtmp0, FloatRegister vtmp1, FloatRegister vtmp2,
|
||||
FloatRegister vtmp3, FloatRegister vtmp4, FloatRegister vtmp5,
|
||||
FloatRegister tmpC1, FloatRegister tmpC2, FloatRegister tmpC3,
|
||||
|
||||
@@ -297,7 +297,8 @@ void MacroAssembler::fast_log(FloatRegister vtmp0, FloatRegister vtmp1,
|
||||
bind(MAIN);
|
||||
fmovs(tmp3, vtmp5); // int intB0 = AS_INT_BITS(B);
|
||||
mov(tmp5, 0x3FE0);
|
||||
mov(rscratch1, 0xffffe00000000000);
|
||||
uint64_t mask = UCONST64(0xffffe00000000000);
|
||||
mov(rscratch1, mask);
|
||||
andr(tmp2, tmp2, tmp1, LSR, 48); // hiWord & 0x7FF0
|
||||
sub(tmp2, tmp2, tmp5); // tmp2 = hiWord & 0x7FF0 - 0x3FE0
|
||||
scvtfwd(vtmp5, tmp2); // vtmp5 = (double)tmp2;
|
||||
|
||||
@@ -55,9 +55,6 @@
|
||||
// No support for generic vector operands.
|
||||
static const bool supports_generic_vector_operands = false;
|
||||
|
||||
// No support for 48 extra htbl entries in aes-gcm intrinsic
|
||||
static const int htbl_entries = 0;
|
||||
|
||||
static constexpr bool isSimpleConstant64(jlong value) {
|
||||
// Will one (StoreL ConL) be cheaper than two (StoreI ConI)?.
|
||||
// Probably always true, even if a temp register is required.
|
||||
@@ -164,6 +161,6 @@
|
||||
}
|
||||
|
||||
// Implements a variant of EncodeISOArrayNode that encode ASCII only
|
||||
static const bool supports_encode_ascii_array = false;
|
||||
static const bool supports_encode_ascii_array = true;
|
||||
|
||||
#endif // CPU_AARCH64_MATCHER_AARCH64_HPP
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2020, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -315,7 +315,7 @@ void NativeMovRegMem::set_offset(int x) {
|
||||
|
||||
void NativeMovRegMem::verify() {
|
||||
#ifdef ASSERT
|
||||
address dest = MacroAssembler::target_addr_for_insn(instruction_address());
|
||||
address dest = MacroAssembler::target_addr_for_insn_or_null(instruction_address());
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -329,7 +329,7 @@ void NativeJump::check_verified_entry_alignment(address entry, address verified_
|
||||
|
||||
|
||||
address NativeJump::jump_destination() const {
|
||||
address dest = MacroAssembler::target_addr_for_insn(instruction_address());
|
||||
address dest = MacroAssembler::target_addr_for_insn_or_null(instruction_address());
|
||||
|
||||
// We use jump to self as the unresolved address which the inline
|
||||
// cache code (and relocs) know about
|
||||
|
||||
@@ -26,6 +26,10 @@
|
||||
#include "precompiled.hpp"
|
||||
#include "register_aarch64.hpp"
|
||||
|
||||
REGISTER_IMPL_DEFINITION(Register, RegisterImpl, RegisterImpl::number_of_declared_registers);
|
||||
REGISTER_IMPL_DEFINITION(FloatRegister, FloatRegisterImpl, FloatRegisterImpl::number_of_registers);
|
||||
REGISTER_IMPL_DEFINITION(PRegister, PRegisterImpl, PRegisterImpl::number_of_registers);
|
||||
|
||||
const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers *
|
||||
RegisterImpl::max_slots_per_register;
|
||||
|
||||
@@ -38,7 +42,7 @@ const int ConcreteRegisterImpl::max_pr
|
||||
PRegisterImpl::number_of_registers * PRegisterImpl::max_slots_per_register;
|
||||
|
||||
const char* RegisterImpl::name() const {
|
||||
const char* names[number_of_registers] = {
|
||||
static const char *const names[number_of_registers] = {
|
||||
"c_rarg0", "c_rarg1", "c_rarg2", "c_rarg3", "c_rarg4", "c_rarg5", "c_rarg6", "c_rarg7",
|
||||
"rscratch1", "rscratch2",
|
||||
"r10", "r11", "r12", "r13", "r14", "r15", "r16",
|
||||
@@ -50,7 +54,7 @@ const char* RegisterImpl::name() const {
|
||||
}
|
||||
|
||||
const char* FloatRegisterImpl::name() const {
|
||||
const char* names[number_of_registers] = {
|
||||
static const char *const names[number_of_registers] = {
|
||||
"v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7",
|
||||
"v8", "v9", "v10", "v11", "v12", "v13", "v14", "v15",
|
||||
"v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23",
|
||||
@@ -60,7 +64,7 @@ const char* FloatRegisterImpl::name() const {
|
||||
}
|
||||
|
||||
const char* PRegisterImpl::name() const {
|
||||
const char* names[number_of_registers] = {
|
||||
static const char *const names[number_of_registers] = {
|
||||
"p0", "p1", "p2", "p3", "p4", "p5", "p6", "p7",
|
||||
"p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15"
|
||||
};
|
||||
|
||||
@@ -34,42 +34,42 @@ typedef VMRegImpl* VMReg;
|
||||
|
||||
// Use Register as shortcut
|
||||
class RegisterImpl;
|
||||
typedef RegisterImpl* Register;
|
||||
typedef const RegisterImpl* Register;
|
||||
|
||||
inline const Register as_Register(int encoding) {
|
||||
return (Register)(intptr_t) encoding;
|
||||
}
|
||||
inline constexpr Register as_Register(int encoding);
|
||||
|
||||
class RegisterImpl: public AbstractRegisterImpl {
|
||||
public:
|
||||
static constexpr Register first();
|
||||
|
||||
public:
|
||||
enum {
|
||||
number_of_registers = 32,
|
||||
number_of_byte_registers = 32,
|
||||
number_of_registers_for_jvmci = 34, // Including SP and ZR.
|
||||
number_of_declared_registers = 34, // Including SP and ZR.
|
||||
max_slots_per_register = 2
|
||||
};
|
||||
|
||||
// derived registers, offsets, and addresses
|
||||
Register successor() const { return as_Register(encoding() + 1); }
|
||||
const Register successor() const { return this + 1; }
|
||||
|
||||
// construction
|
||||
inline friend const Register as_Register(int encoding);
|
||||
inline friend constexpr Register as_Register(int encoding);
|
||||
|
||||
VMReg as_VMReg();
|
||||
VMReg as_VMReg() const;
|
||||
|
||||
// accessors
|
||||
int encoding() const { assert(is_valid(), "invalid register"); return (intptr_t)this; }
|
||||
bool is_valid() const { return 0 <= (intptr_t)this && (intptr_t)this < number_of_registers; }
|
||||
bool has_byte_register() const { return 0 <= (intptr_t)this && (intptr_t)this < number_of_byte_registers; }
|
||||
int encoding() const { assert(is_valid(), "invalid register"); return encoding_nocheck(); }
|
||||
bool is_valid() const { return (unsigned)encoding_nocheck() < number_of_registers; }
|
||||
const char* name() const;
|
||||
int encoding_nocheck() const { return (intptr_t)this; }
|
||||
int encoding_nocheck() const { return this - first(); }
|
||||
};
|
||||
|
||||
|
||||
REGISTER_IMPL_DECLARATION(Register, RegisterImpl, RegisterImpl::number_of_declared_registers);
|
||||
|
||||
// The integer registers of the aarch64 architecture
|
||||
|
||||
CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1));
|
||||
|
||||
|
||||
CONSTANT_REGISTER_DECLARATION(Register, r0, (0));
|
||||
CONSTANT_REGISTER_DECLARATION(Register, r1, (1));
|
||||
CONSTANT_REGISTER_DECLARATION(Register, r2, (2));
|
||||
@@ -126,15 +126,15 @@ const Register dummy_reg = r31_sp;
|
||||
|
||||
// Use FloatRegister as shortcut
|
||||
class FloatRegisterImpl;
|
||||
typedef FloatRegisterImpl* FloatRegister;
|
||||
typedef const FloatRegisterImpl* FloatRegister;
|
||||
|
||||
inline FloatRegister as_FloatRegister(int encoding) {
|
||||
return (FloatRegister)(intptr_t) encoding;
|
||||
}
|
||||
inline constexpr FloatRegister as_FloatRegister(int encoding);
|
||||
|
||||
// The implementation of floating point registers for the architecture
|
||||
class FloatRegisterImpl: public AbstractRegisterImpl {
|
||||
public:
|
||||
static constexpr FloatRegister first();
|
||||
|
||||
public:
|
||||
enum {
|
||||
number_of_registers = 32,
|
||||
max_slots_per_register = 8,
|
||||
@@ -144,21 +144,25 @@ class FloatRegisterImpl: public AbstractRegisterImpl {
|
||||
};
|
||||
|
||||
// construction
|
||||
inline friend FloatRegister as_FloatRegister(int encoding);
|
||||
inline friend constexpr FloatRegister as_FloatRegister(int encoding);
|
||||
|
||||
VMReg as_VMReg();
|
||||
VMReg as_VMReg() const;
|
||||
|
||||
// derived registers, offsets, and addresses
|
||||
FloatRegister successor() const { return as_FloatRegister((encoding() + 1) % 32); }
|
||||
FloatRegister successor() const {
|
||||
return as_FloatRegister((encoding() + 1) % (unsigned)number_of_registers);
|
||||
}
|
||||
|
||||
// accessors
|
||||
int encoding() const { assert(is_valid(), "invalid register"); return (intptr_t)this; }
|
||||
int encoding_nocheck() const { return (intptr_t)this; }
|
||||
bool is_valid() const { return 0 <= (intptr_t)this && (intptr_t)this < number_of_registers; }
|
||||
int encoding() const { assert(is_valid(), "invalid register"); return encoding_nocheck(); }
|
||||
bool is_valid() const { return (unsigned)encoding_nocheck() < number_of_registers; }
|
||||
const char* name() const;
|
||||
|
||||
int encoding_nocheck() const { return this - first(); }
|
||||
};
|
||||
|
||||
REGISTER_IMPL_DECLARATION(FloatRegister, FloatRegisterImpl, FloatRegisterImpl::number_of_registers);
|
||||
|
||||
|
||||
// The float registers of the AARCH64 architecture
|
||||
|
||||
CONSTANT_REGISTER_DECLARATION(FloatRegister, fnoreg , (-1));
|
||||
@@ -232,13 +236,13 @@ CONSTANT_REGISTER_DECLARATION(FloatRegister, z31 , (31));
|
||||
|
||||
|
||||
class PRegisterImpl;
|
||||
typedef PRegisterImpl* PRegister;
|
||||
inline PRegister as_PRegister(int encoding) {
|
||||
return (PRegister)(intptr_t)encoding;
|
||||
}
|
||||
typedef const PRegisterImpl* PRegister;
|
||||
inline constexpr PRegister as_PRegister(int encoding);
|
||||
|
||||
// The implementation of predicate registers for the architecture
|
||||
class PRegisterImpl: public AbstractRegisterImpl {
|
||||
static constexpr PRegister first();
|
||||
|
||||
public:
|
||||
enum {
|
||||
number_of_registers = 16,
|
||||
@@ -252,21 +256,24 @@ class PRegisterImpl: public AbstractRegisterImpl {
|
||||
};
|
||||
|
||||
// construction
|
||||
inline friend PRegister as_PRegister(int encoding);
|
||||
inline friend constexpr PRegister as_PRegister(int encoding);
|
||||
|
||||
VMReg as_VMReg();
|
||||
VMReg as_VMReg() const;
|
||||
|
||||
// derived registers, offsets, and addresses
|
||||
PRegister successor() const { return as_PRegister(encoding() + 1); }
|
||||
PRegister successor() const { return this + 1; }
|
||||
|
||||
// accessors
|
||||
int encoding() const { assert(is_valid(), "invalid register"); return (intptr_t)this; }
|
||||
int encoding_nocheck() const { return (intptr_t)this; }
|
||||
bool is_valid() const { return 0 <= (intptr_t)this && (intptr_t)this < number_of_registers; }
|
||||
bool is_governing() const { return 0 <= (intptr_t)this && (intptr_t)this < number_of_governing_registers; }
|
||||
int encoding() const { assert(is_valid(), "invalid register"); return encoding_nocheck(); }
|
||||
int encoding_nocheck() const { return this - first(); }
|
||||
bool is_valid() const { return (unsigned)encoding_nocheck() < number_of_registers; }
|
||||
bool is_governing() const { return first() <= this && this - first() < number_of_governing_registers; }
|
||||
const char* name() const;
|
||||
};
|
||||
|
||||
|
||||
REGISTER_IMPL_DECLARATION(PRegister, PRegisterImpl, PRegisterImpl::number_of_registers);
|
||||
|
||||
// The predicate registers of SVE.
|
||||
CONSTANT_REGISTER_DECLARATION(PRegister, pnoreg, (-1));
|
||||
|
||||
|
||||
@@ -1783,13 +1783,14 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
|
||||
// Simple recursive lock?
|
||||
__ ldr(rscratch1, Address(sp, lock_slot_offset * VMRegImpl::stack_slot_size));
|
||||
__ cbz(rscratch1, done);
|
||||
}
|
||||
|
||||
// Must save r0 if if it is live now because cmpxchg must use it
|
||||
if (ret_type != T_FLOAT && ret_type != T_DOUBLE && ret_type != T_VOID) {
|
||||
save_native_result(masm, ret_type, stack_slots);
|
||||
}
|
||||
|
||||
// Must save r0 if if it is live now because cmpxchg must use it
|
||||
if (ret_type != T_FLOAT && ret_type != T_DOUBLE && ret_type != T_VOID) {
|
||||
save_native_result(masm, ret_type, stack_slots);
|
||||
}
|
||||
|
||||
if (!UseHeavyMonitors) {
|
||||
// get address of the stack lock
|
||||
__ lea(r0, Address(sp, lock_slot_offset * VMRegImpl::stack_slot_size));
|
||||
// get old displaced header
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021, Amazon.com Inc. or its affiliates. All rights reserved.
|
||||
* Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2021, Red Hat Inc. All rights reserved.
|
||||
* Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2014, 2022, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -3094,8 +3094,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
// key = c_rarg4
|
||||
// state = c_rarg5 - GHASH.state
|
||||
// subkeyHtbl = c_rarg6 - powers of H
|
||||
// subkeyHtbl_48_entries = c_rarg7 (not used)
|
||||
// counter = [sp, #0] pointer to 16 bytes of CTR
|
||||
// counter = c_rarg7 - 16 bytes of CTR
|
||||
// return - number of processed bytes
|
||||
address generate_galoisCounterMode_AESCrypt() {
|
||||
address ghash_polynomial = __ pc();
|
||||
@@ -3121,10 +3120,7 @@ class StubGenerator: public StubCodeGenerator {
|
||||
|
||||
const Register subkeyHtbl = c_rarg6;
|
||||
|
||||
// Pointer to CTR is passed on the stack before the (fp, lr) pair.
|
||||
const Address counter_mem(sp, 2 * wordSize);
|
||||
const Register counter = c_rarg7;
|
||||
__ ldr(counter, counter_mem);
|
||||
|
||||
const Register keylen = r10;
|
||||
// Save state before entering routine
|
||||
@@ -5341,11 +5337,11 @@ class StubGenerator: public StubCodeGenerator {
|
||||
__ add(str1, str1, wordSize);
|
||||
__ add(str2, str2, wordSize);
|
||||
if (SoftwarePrefetchHintDistance >= 0) {
|
||||
__ align(OptoLoopAlignment);
|
||||
__ bind(LARGE_LOOP_PREFETCH);
|
||||
__ prfm(Address(str1, SoftwarePrefetchHintDistance));
|
||||
__ prfm(Address(str2, SoftwarePrefetchHintDistance));
|
||||
|
||||
__ align(OptoLoopAlignment);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
__ ldp(tmp1, tmp1h, Address(str1, i * 16));
|
||||
__ ldp(tmp2, tmp2h, Address(str2, i * 16));
|
||||
|
||||
@@ -71,7 +71,8 @@ address ProgrammableUpcallHandler::generate_upcall_stub(jobject rec, jobject jab
|
||||
|
||||
// Capture prev stack pointer (stack arguments base)
|
||||
__ add(rscratch1, rfp, 16); // Skip saved FP and LR
|
||||
__ str(rscratch1, Address(sp, layout.stack_args));
|
||||
Address slot = __ legitimize_address(Address(sp, layout.stack_args), wordSize, rscratch2);
|
||||
__ str(rscratch1, slot);
|
||||
|
||||
// Call upcall helper
|
||||
__ ldr(c_rarg0, rec_adr);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2020, Red Hat Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
@@ -197,8 +197,10 @@ void VM_Version::initialize() {
|
||||
}
|
||||
}
|
||||
|
||||
// Neoverse N1
|
||||
if (_cpu == CPU_ARM && (_model == 0xd0c || _model2 == 0xd0c)) {
|
||||
// Neoverse N1, N2 and V1
|
||||
if (_cpu == CPU_ARM && ((_model == 0xd0c || _model2 == 0xd0c)
|
||||
|| (_model == 0xd49 || _model2 == 0xd49)
|
||||
|| (_model == 0xd40 || _model2 == 0xd40))) {
|
||||
if (FLAG_IS_DEFAULT(UseSIMDForMemoryOps)) {
|
||||
FLAG_SET_DEFAULT(UseSIMDForMemoryOps, true);
|
||||
}
|
||||
|
||||
@@ -26,17 +26,17 @@
|
||||
#ifndef CPU_AARCH64_VMREG_AARCH64_INLINE_HPP
|
||||
#define CPU_AARCH64_VMREG_AARCH64_INLINE_HPP
|
||||
|
||||
inline VMReg RegisterImpl::as_VMReg() {
|
||||
inline VMReg RegisterImpl::as_VMReg() const {
|
||||
if( this==noreg ) return VMRegImpl::Bad();
|
||||
return VMRegImpl::as_VMReg(encoding() * RegisterImpl::max_slots_per_register);
|
||||
}
|
||||
|
||||
inline VMReg FloatRegisterImpl::as_VMReg() {
|
||||
inline VMReg FloatRegisterImpl::as_VMReg() const {
|
||||
return VMRegImpl::as_VMReg((encoding() * FloatRegisterImpl::max_slots_per_register) +
|
||||
ConcreteRegisterImpl::max_gpr);
|
||||
}
|
||||
|
||||
inline VMReg PRegisterImpl::as_VMReg() {
|
||||
inline VMReg PRegisterImpl::as_VMReg() const {
|
||||
return VMRegImpl::as_VMReg(encoding() + ConcreteRegisterImpl::max_fpr);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
// Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
//
|
||||
// This code is free software; you can redistribute it and/or modify it
|
||||
@@ -123,9 +123,18 @@ public:
|
||||
};
|
||||
};
|
||||
|
||||
// Assert that the given node is not a var shift.
|
||||
bool assert_not_var_shift(const Node *n);
|
||||
%}
|
||||
|
||||
source %{
|
||||
|
||||
// Assert that the given node is not a var shift.
|
||||
bool assert_not_var_shift(const Node *n) {
|
||||
assert(!n->as_ShiftV()->is_var_shift(), "illegal var shift");
|
||||
return true;
|
||||
}
|
||||
|
||||
#define __ _masm.
|
||||
|
||||
static FloatRegister reg_to_FloatRegister_object(int register_encoding);
|
||||
@@ -10591,7 +10600,7 @@ instruct vneg16B_reg(vecX dst, vecX src) %{
|
||||
ins_pipe( ialu_reg_reg ); // FIXME
|
||||
%}
|
||||
|
||||
// ------------------------------ Shift ---------------------------------------
|
||||
// ------------------------------ ShiftCount ----------------------------------
|
||||
|
||||
instruct vslcntD(vecD dst, iRegI cnt) %{
|
||||
predicate(n->as_Vector()->length_in_bytes() == 8 && VM_Version::has_simd());
|
||||
@@ -10650,6 +10659,8 @@ instruct vsrcntX(vecX dst, iRegI cnt) %{
|
||||
ins_pipe( ialu_reg_reg ); // FIXME
|
||||
%}
|
||||
|
||||
// ------------------------------ LogicalShift --------------------------------
|
||||
|
||||
// Byte vector logical left/right shift based on sign
|
||||
instruct vsh8B_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
@@ -10766,9 +10777,9 @@ instruct vsh2L_reg(vecX dst, vecX src, vecX shift) %{
|
||||
ins_pipe( ialu_reg_reg ); // FIXME
|
||||
%}
|
||||
|
||||
// ------------------------------ LeftShift -----------------------------------
|
||||
// ------------------------------ LogicalLeftShift ----------------------------
|
||||
|
||||
// Byte vector left shift
|
||||
// Byte vector logical left shift
|
||||
instruct vsl8B_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (LShiftVB src shift));
|
||||
@@ -10790,7 +10801,7 @@ instruct vsl16B_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
|
||||
instruct vsl8B_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
predicate(n->as_Vector()->length() == 8 && assert_not_var_shift(n));
|
||||
match(Set dst (LShiftVB src (LShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10806,7 +10817,7 @@ instruct vsl8B_immI(vecD dst, vecD src, immI shift) %{
|
||||
%}
|
||||
|
||||
instruct vsl16B_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
predicate(n->as_Vector()->length() == 16 && assert_not_var_shift(n));
|
||||
match(Set dst (LShiftVB src (LShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10821,11 +10832,10 @@ instruct vsl16B_immI(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe( ialu_reg_reg ); // FIXME
|
||||
%}
|
||||
|
||||
// Shorts/Chars vector logical left/right shift
|
||||
// Shorts/Chars vector logical left shift
|
||||
instruct vsl4S_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (LShiftVS src shift));
|
||||
match(Set dst (URShiftVS src shift));
|
||||
size(4*1);
|
||||
ins_cost(DEFAULT_COST*1); // FIXME
|
||||
expand %{
|
||||
@@ -10836,7 +10846,6 @@ instruct vsl4S_reg(vecD dst, vecD src, vecD shift) %{
|
||||
instruct vsl8S_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (LShiftVS src shift));
|
||||
match(Set dst (URShiftVS src shift));
|
||||
size(4*1);
|
||||
ins_cost(DEFAULT_COST*1); // FIXME
|
||||
expand %{
|
||||
@@ -10845,7 +10854,7 @@ instruct vsl8S_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
|
||||
instruct vsl4S_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
predicate(n->as_Vector()->length() == 4 && assert_not_var_shift(n));
|
||||
match(Set dst (LShiftVS src (LShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10861,7 +10870,7 @@ instruct vsl4S_immI(vecD dst, vecD src, immI shift) %{
|
||||
%}
|
||||
|
||||
instruct vsl8S_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
predicate(n->as_Vector()->length() == 8 && assert_not_var_shift(n));
|
||||
match(Set dst (LShiftVS src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10876,11 +10885,10 @@ instruct vsl8S_immI(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe( ialu_reg_reg ); // FIXME
|
||||
%}
|
||||
|
||||
// Integers vector logical left/right shift
|
||||
// Integers vector logical left shift
|
||||
instruct vsl2I_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 && VM_Version::has_simd());
|
||||
match(Set dst (LShiftVI src shift));
|
||||
match(Set dst (URShiftVI src shift));
|
||||
size(4*1);
|
||||
ins_cost(DEFAULT_COST*1); // FIXME
|
||||
expand %{
|
||||
@@ -10891,7 +10899,6 @@ instruct vsl2I_reg(vecD dst, vecD src, vecD shift) %{
|
||||
instruct vsl4I_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 && VM_Version::has_simd());
|
||||
match(Set dst (LShiftVI src shift));
|
||||
match(Set dst (URShiftVI src shift));
|
||||
size(4*1);
|
||||
ins_cost(DEFAULT_COST*1); // FIXME
|
||||
expand %{
|
||||
@@ -10900,7 +10907,9 @@ instruct vsl4I_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
|
||||
instruct vsl2I_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 && VM_Version::has_simd());
|
||||
predicate(n->as_Vector()->length() == 2 &&
|
||||
VM_Version::has_simd() &&
|
||||
assert_not_var_shift(n));
|
||||
match(Set dst (LShiftVI src (LShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10916,7 +10925,9 @@ instruct vsl2I_immI(vecD dst, vecD src, immI shift) %{
|
||||
%}
|
||||
|
||||
instruct vsl4I_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 && VM_Version::has_simd());
|
||||
predicate(n->as_Vector()->length() == 4 &&
|
||||
VM_Version::has_simd() &&
|
||||
assert_not_var_shift(n));
|
||||
match(Set dst (LShiftVI src (LShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10931,11 +10942,10 @@ instruct vsl4I_immI(vecX dst, vecX src, immI shift) %{
|
||||
ins_pipe( ialu_reg_reg ); // FIXME
|
||||
%}
|
||||
|
||||
// Longs vector logical left/right shift
|
||||
// Longs vector logical left shift
|
||||
instruct vsl2L_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
match(Set dst (LShiftVL src shift));
|
||||
match(Set dst (URShiftVL src shift));
|
||||
size(4*1);
|
||||
ins_cost(DEFAULT_COST*1); // FIXME
|
||||
expand %{
|
||||
@@ -10944,7 +10954,7 @@ instruct vsl2L_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
|
||||
instruct vsl2L_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
predicate(n->as_Vector()->length() == 2 && assert_not_var_shift(n));
|
||||
match(Set dst (LShiftVL src (LShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10965,9 +10975,79 @@ instruct vsl2L_immI(vecX dst, vecX src, immI shift) %{
|
||||
// for negative data because java code convert short value into int with
|
||||
// sign extension before a shift.
|
||||
|
||||
// Right shift with vector shift count on aarch32 SIMD is implemented as left
|
||||
// shift by negative shift count value.
|
||||
//
|
||||
// Method is_var_shift() denotes that vector shift count is a variable shift:
|
||||
// 1) for this case, vector shift count should be negated before conducting
|
||||
// right shifts. E.g., vsrl4S_reg_var rule.
|
||||
// 2) for the opposite case, vector shift count is generated via RShiftCntV
|
||||
// rules and is already negated there. Hence, no negation is needed.
|
||||
// E.g., vsrl4S_reg rule.
|
||||
|
||||
// Chars vector logical right shift
|
||||
instruct vsrl4S_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVS src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST);
|
||||
expand %{
|
||||
vsh4S_reg(dst, src, shift);
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsrl4S_reg_var(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 4 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVS src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.D,$shift.D\n\t! neg packed8B"
|
||||
"VSHL.U16 $dst.D,$src.D,$tmp.D\t! logical right shift packed4S"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = false;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlUI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_16, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsrl8S_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 8 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVS src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST);
|
||||
expand %{
|
||||
vsh8S_reg(dst, src, shift);
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsrl8S_reg_var(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 8 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVS src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.Q,$shift.Q\n\t! neg packed16B"
|
||||
"VSHL.U16 $dst.Q,$src.Q,$tmp.Q\t! logical right shift packed8S"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlUI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_16, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsrl4S_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
predicate(n->as_Vector()->length() == 4 && assert_not_var_shift(n));
|
||||
match(Set dst (URShiftVS src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10983,7 +11063,7 @@ instruct vsrl4S_immI(vecD dst, vecD src, immI shift) %{
|
||||
%}
|
||||
|
||||
instruct vsrl8S_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
predicate(n->as_Vector()->length() == 8 && assert_not_var_shift(n));
|
||||
match(Set dst (URShiftVS src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -10999,8 +11079,78 @@ instruct vsrl8S_immI(vecX dst, vecX src, immI shift) %{
|
||||
%}
|
||||
|
||||
// Integers vector logical right shift
|
||||
instruct vsrl2I_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 &&
|
||||
VM_Version::has_simd() &&
|
||||
!n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVI src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST);
|
||||
expand %{
|
||||
vsh2I_reg(dst, src, shift);
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsrl2I_reg_var(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2 &&
|
||||
VM_Version::has_simd() &&
|
||||
n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVI src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.D,$shift.D\n\t! neg packed8B"
|
||||
"VSHL.U32 $dst.D,$src.D,$tmp.D\t! logical right shift packed2I"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = false;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlUI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_32, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsrl4I_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 &&
|
||||
VM_Version::has_simd() &&
|
||||
!n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVI src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST);
|
||||
expand %{
|
||||
vsh4I_reg(dst, src, shift);
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsrl4I_reg_var(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 4 &&
|
||||
VM_Version::has_simd() &&
|
||||
n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVI src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.Q,$shift.Q\n\t! neg packed16B"
|
||||
"VSHL.U32 $dst.Q,$src.Q,$tmp.Q\t! logical right shift packed4I"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlUI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_32, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsrl2I_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 && VM_Version::has_simd());
|
||||
predicate(n->as_Vector()->length() == 2 &&
|
||||
VM_Version::has_simd() &&
|
||||
assert_not_var_shift(n));
|
||||
match(Set dst (URShiftVI src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11016,7 +11166,9 @@ instruct vsrl2I_immI(vecD dst, vecD src, immI shift) %{
|
||||
%}
|
||||
|
||||
instruct vsrl4I_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 && VM_Version::has_simd());
|
||||
predicate(n->as_Vector()->length() == 4 &&
|
||||
VM_Version::has_simd() &&
|
||||
assert_not_var_shift(n));
|
||||
match(Set dst (URShiftVI src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11032,8 +11184,38 @@ instruct vsrl4I_immI(vecX dst, vecX src, immI shift) %{
|
||||
%}
|
||||
|
||||
// Longs vector logical right shift
|
||||
instruct vsrl2L_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVL src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST);
|
||||
expand %{
|
||||
vsh2L_reg(dst, src, shift);
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsrl2L_reg_var(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (URShiftVL src shift));
|
||||
effect(TEMP tmp, DEF dst, USE src, USE shift);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.Q,$shift.Q\n\t! neg packed16B"
|
||||
"VSHL.U64 $dst.Q,$src.Q,$tmp.Q\t! logical right shift packed2L"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlUI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_64, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsrl2L_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
predicate(n->as_Vector()->length() == 2 && assert_not_var_shift(n));
|
||||
match(Set dst (URShiftVL src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11167,9 +11349,8 @@ instruct vsha2L_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
|
||||
// Byte vector arithmetic right shift
|
||||
|
||||
instruct vsra8B_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
predicate(n->as_Vector()->length() == 8 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVB src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11178,8 +11359,28 @@ instruct vsra8B_reg(vecD dst, vecD src, vecD shift) %{
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsrl16B_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
instruct vsra8B_reg_var(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 8 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVB src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.D,$shift.D\n\t! neg packed8B"
|
||||
"VSHL.S8 $dst.D,$src.D,$tmp.D\t! arithmetic right shift packed8B"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = false;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlSI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsra16B_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 16 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVB src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11188,13 +11389,33 @@ instruct vsrl16B_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsrl8B_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
instruct vsra16B_reg_var(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 16 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVB src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.Q,$shift.Q\n\t! neg packed16B"
|
||||
"VSHL.S8 $dst.Q,$src.Q,$tmp.Q\t! arithmetic right shift packed16B"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlSI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsra8B_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 8 && assert_not_var_shift(n));
|
||||
match(Set dst (RShiftVB src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
format %{
|
||||
"VSHR.S8 $dst.D,$src.D,$shift\t! logical right shift packed8B"
|
||||
"VSHR.S8 $dst.D,$src.D,$shift\t! arithmetic right shift packed8B"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = false;
|
||||
@@ -11204,13 +11425,13 @@ instruct vsrl8B_immI(vecD dst, vecD src, immI shift) %{
|
||||
ins_pipe( ialu_reg_reg ); // FIXME
|
||||
%}
|
||||
|
||||
instruct vsrl16B_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 16);
|
||||
match(Set dst (RShiftVB src shift));
|
||||
instruct vsra16B_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 16 && assert_not_var_shift(n));
|
||||
match(Set dst (RShiftVB src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
format %{
|
||||
"VSHR.S8 $dst.Q,$src.Q,$shift\t! logical right shift packed16B"
|
||||
"VSHR.S8 $dst.Q,$src.Q,$shift\t! arithmetic right shift packed16B"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
@@ -11222,7 +11443,7 @@ instruct vsrl16B_immI(vecX dst, vecX src, immI shift) %{
|
||||
|
||||
// Shorts vector arithmetic right shift
|
||||
instruct vsra4S_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
predicate(n->as_Vector()->length() == 4 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVS src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11231,8 +11452,28 @@ instruct vsra4S_reg(vecD dst, vecD src, vecD shift) %{
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsra4S_reg_var(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 4 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVS src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.D,$shift.D\n\t! neg packed8B"
|
||||
"VSHL.S16 $dst.D,$src.D,$tmp.D\t! arithmetic right shift packed4S"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = false;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlSI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_16, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsra8S_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
predicate(n->as_Vector()->length() == 8 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVS src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11241,13 +11482,33 @@ instruct vsra8S_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsra4S_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
instruct vsra8S_reg_var(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 8 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVS src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.Q,$shift.Q\n\t! neg packed16B"
|
||||
"VSHL.S16 $dst.Q,$src.Q,$tmp.Q\t! arithmetic right shift packed8S"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlSI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_16, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsra4S_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 4 && assert_not_var_shift(n));
|
||||
match(Set dst (RShiftVS src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
format %{
|
||||
"VSHR.S16 $dst.D,$src.D,$shift\t! logical right shift packed4S"
|
||||
"VSHR.S16 $dst.D,$src.D,$shift\t! arithmetic right shift packed4S"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = false;
|
||||
@@ -11258,12 +11519,12 @@ instruct vsra4S_immI(vecD dst, vecD src, immI shift) %{
|
||||
%}
|
||||
|
||||
instruct vsra8S_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 8);
|
||||
match(Set dst (RShiftVS src shift));
|
||||
predicate(n->as_Vector()->length() == 8 && assert_not_var_shift(n));
|
||||
match(Set dst (RShiftVS src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
format %{
|
||||
"VSHR.S16 $dst.Q,$src.Q,$shift\t! logical right shift packed8S"
|
||||
"VSHR.S16 $dst.Q,$src.Q,$shift\t! arithmetic right shift packed8S"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
@@ -11275,7 +11536,7 @@ instruct vsra8S_immI(vecX dst, vecX src, immI shift) %{
|
||||
|
||||
// Integers vector arithmetic right shift
|
||||
instruct vsra2I_reg(vecD dst, vecD src, vecD shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
predicate(n->as_Vector()->length() == 2 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVI src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11284,8 +11545,28 @@ instruct vsra2I_reg(vecD dst, vecD src, vecD shift) %{
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsra2I_reg_var(vecD dst, vecD src, vecD shift, vecD tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVI src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.D,$shift.D\n\t! neg packed8B"
|
||||
"VSHL.S32 $dst.D,$src.D,$tmp.D\t! arithmetic right shift packed2I"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = false;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlSI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_32, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsra4I_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
predicate(n->as_Vector()->length() == 4 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVI src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11294,13 +11575,33 @@ instruct vsra4I_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsra2I_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
instruct vsra4I_reg_var(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 4 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVI src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.Q,$shift.Q\n\t! neg packed16B"
|
||||
"VSHL.S32 $dst.Q,$src.Q,$tmp.Q\t! arithmetic right shift packed4I"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlSI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_32, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsra2I_immI(vecD dst, vecD src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 && assert_not_var_shift(n));
|
||||
match(Set dst (RShiftVI src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
format %{
|
||||
"VSHR.S32 $dst.D,$src.D,$shift\t! logical right shift packed2I"
|
||||
"VSHR.S32 $dst.D,$src.D,$shift\t! arithmetic right shift packed2I"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = false;
|
||||
@@ -11311,12 +11612,12 @@ instruct vsra2I_immI(vecD dst, vecD src, immI shift) %{
|
||||
%}
|
||||
|
||||
instruct vsra4I_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 4);
|
||||
match(Set dst (RShiftVI src shift));
|
||||
predicate(n->as_Vector()->length() == 4 && assert_not_var_shift(n));
|
||||
match(Set dst (RShiftVI src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
format %{
|
||||
"VSHR.S32 $dst.Q,$src.Q,$shift\t! logical right shift packed4I"
|
||||
"VSHR.S32 $dst.Q,$src.Q,$shift\t! arithmetic right shift packed4I"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
@@ -11328,7 +11629,7 @@ instruct vsra4I_immI(vecX dst, vecX src, immI shift) %{
|
||||
|
||||
// Longs vector arithmetic right shift
|
||||
instruct vsra2L_reg(vecX dst, vecX src, vecX shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
predicate(n->as_Vector()->length() == 2 && !n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVL src shift));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
@@ -11337,13 +11638,33 @@ instruct vsra2L_reg(vecX dst, vecX src, vecX shift) %{
|
||||
%}
|
||||
%}
|
||||
|
||||
instruct vsra2L_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 2);
|
||||
instruct vsra2L_reg_var(vecX dst, vecX src, vecX shift, vecX tmp) %{
|
||||
predicate(n->as_Vector()->length() == 2 && n->as_ShiftV()->is_var_shift());
|
||||
match(Set dst (RShiftVL src shift));
|
||||
effect(TEMP tmp);
|
||||
size(4*2);
|
||||
ins_cost(DEFAULT_COST*2);
|
||||
format %{
|
||||
"VNEG.S8 $tmp.Q,$shift.Q\n\t! neg packed16B"
|
||||
"VSHL.S64 $dst.Q,$src.Q,$tmp.Q\t! arithmetic right shift packed2L"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
__ vnegI($tmp$$FloatRegister, $shift$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_8, quad);
|
||||
__ vshlSI($dst$$FloatRegister, $tmp$$FloatRegister, $src$$FloatRegister,
|
||||
MacroAssembler::VELEM_SIZE_64, quad);
|
||||
%}
|
||||
ins_pipe(ialu_reg_reg);
|
||||
%}
|
||||
|
||||
instruct vsra2L_immI(vecX dst, vecX src, immI shift) %{
|
||||
predicate(n->as_Vector()->length() == 2 && assert_not_var_shift(n));
|
||||
match(Set dst (RShiftVL src (RShiftCntV shift)));
|
||||
size(4);
|
||||
ins_cost(DEFAULT_COST); // FIXME
|
||||
format %{
|
||||
"VSHR.S64 $dst.Q,$src.Q,$shift\t! logical right shift packed2L"
|
||||
"VSHR.S64 $dst.Q,$src.Q,$shift\t! arithmetic right shift packed2L"
|
||||
%}
|
||||
ins_encode %{
|
||||
bool quad = true;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -25,7 +25,7 @@
|
||||
#ifndef CPU_ARM_BYTES_ARM_HPP
|
||||
#define CPU_ARM_BYTES_ARM_HPP
|
||||
|
||||
#include "memory/allocation.hpp"
|
||||
#include "memory/allStatic.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
|
||||
#ifndef VM_LITTLE_ENDIAN
|
||||
|
||||
@@ -1680,6 +1680,9 @@ void LIR_Assembler::logic_op(LIR_Code code, LIR_Opr left, LIR_Opr right, LIR_Opr
|
||||
} else {
|
||||
assert(right->is_constant(), "must be");
|
||||
const uint c = (uint)right->as_constant_ptr()->as_jint();
|
||||
if (!Assembler::is_arith_imm_in_range(c)) {
|
||||
BAILOUT("illegal arithmetic operand");
|
||||
}
|
||||
switch (code) {
|
||||
case lir_logic_and: __ and_32(res, lreg, c); break;
|
||||
case lir_logic_or: __ orr_32(res, lreg, c); break;
|
||||
@@ -1820,8 +1823,8 @@ void LIR_Assembler::comp_op(LIR_Condition condition, LIR_Opr opr1, LIR_Opr opr2,
|
||||
__ teq(xhi, yhi);
|
||||
__ teq(xlo, ylo, eq);
|
||||
} else {
|
||||
__ subs(xlo, xlo, ylo);
|
||||
__ sbcs(xhi, xhi, yhi);
|
||||
__ subs(Rtemp, xlo, ylo);
|
||||
__ sbcs(Rtemp, xhi, yhi);
|
||||
}
|
||||
} else {
|
||||
ShouldNotReachHere();
|
||||
|
||||
@@ -69,8 +69,8 @@ void C1_MacroAssembler::remove_frame(int frame_size_in_bytes) {
|
||||
raw_pop(FP, LR);
|
||||
}
|
||||
|
||||
void C1_MacroAssembler::verified_entry() {
|
||||
if (C1Breakpoint) {
|
||||
void C1_MacroAssembler::verified_entry(bool breakAtEntry) {
|
||||
if (breakAtEntry) {
|
||||
breakpoint();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -26,7 +26,7 @@
|
||||
#define CPU_ARM_JNITYPES_ARM_HPP
|
||||
|
||||
#include "jni.h"
|
||||
#include "memory/allocation.hpp"
|
||||
#include "memory/allStatic.hpp"
|
||||
#include "oops/oop.hpp"
|
||||
|
||||
// This file holds platform-dependent routines used to write primitive jni
|
||||
|
||||
@@ -56,9 +56,6 @@
|
||||
// No support for generic vector operands.
|
||||
static const bool supports_generic_vector_operands = false;
|
||||
|
||||
// No support for 48 extra htbl entries in aes-gcm intrinsic
|
||||
static const int htbl_entries = -1;
|
||||
|
||||
static constexpr bool isSimpleConstant64(jlong value) {
|
||||
// Will one (StoreL ConL) be cheaper than two (StoreI ConI)?.
|
||||
return false;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2016 SAP SE. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2022 SAP SE. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -26,7 +26,7 @@
|
||||
#ifndef CPU_PPC_BYTES_PPC_HPP
|
||||
#define CPU_PPC_BYTES_PPC_HPP
|
||||
|
||||
#include "memory/allocation.hpp"
|
||||
#include "memory/allStatic.hpp"
|
||||
|
||||
class Bytes: AllStatic {
|
||||
public:
|
||||
|
||||
@@ -81,8 +81,6 @@ void RangeCheckStub::emit_code(LIR_Assembler* ce) {
|
||||
|
||||
if (_info->deoptimize_on_exception()) {
|
||||
address a = Runtime1::entry_for(Runtime1::predicate_failed_trap_id);
|
||||
// May be used by optimizations like LoopInvariantCodeMotion or RangeCheckEliminator.
|
||||
DEBUG_ONLY( __ untested("RangeCheckStub: predicate_failed_trap_id"); )
|
||||
//__ load_const_optimized(R0, a);
|
||||
__ add_const_optimized(R0, R29_TOC, MacroAssembler::offset_to_global_toc(a));
|
||||
__ mtctr(R0);
|
||||
|
||||
@@ -86,8 +86,8 @@ void C1_MacroAssembler::build_frame(int frame_size_in_bytes, int bang_size_in_by
|
||||
}
|
||||
|
||||
|
||||
void C1_MacroAssembler::verified_entry() {
|
||||
if (C1Breakpoint) illtrap();
|
||||
void C1_MacroAssembler::verified_entry(bool breakAtEntry) {
|
||||
if (breakAtEntry) illtrap();
|
||||
// build frame
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2021 SAP SE. All rights reserved.
|
||||
* Copyright (c) 2000, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2022 SAP SE. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -294,9 +294,57 @@ void frame::patch_pc(Thread* thread, address pc) {
|
||||
}
|
||||
|
||||
bool frame::is_interpreted_frame_valid(JavaThread* thread) const {
|
||||
// Is there anything to do?
|
||||
assert(is_interpreted_frame(), "Not an interpreted frame");
|
||||
return true;
|
||||
// These are reasonable sanity checks
|
||||
if (fp() == 0 || (intptr_t(fp()) & (wordSize-1)) != 0) {
|
||||
return false;
|
||||
}
|
||||
if (sp() == 0 || (intptr_t(sp()) & (wordSize-1)) != 0) {
|
||||
return false;
|
||||
}
|
||||
int min_frame_slots = (abi_minframe_size + ijava_state_size) / sizeof(intptr_t);
|
||||
if (fp() - min_frame_slots < sp()) {
|
||||
return false;
|
||||
}
|
||||
// These are hacks to keep us out of trouble.
|
||||
// The problem with these is that they mask other problems
|
||||
if (fp() <= sp()) { // this attempts to deal with unsigned comparison above
|
||||
return false;
|
||||
}
|
||||
|
||||
// do some validation of frame elements
|
||||
|
||||
// first the method
|
||||
|
||||
Method* m = *interpreter_frame_method_addr();
|
||||
|
||||
// validate the method we'd find in this potential sender
|
||||
if (!Method::is_valid_method(m)) return false;
|
||||
|
||||
// stack frames shouldn't be much larger than max_stack elements
|
||||
// this test requires the use of unextended_sp which is the sp as seen by
|
||||
// the current frame, and not sp which is the "raw" pc which could point
|
||||
// further because of local variables of the callee method inserted after
|
||||
// method arguments
|
||||
if (fp() - unextended_sp() > 1024 + m->max_stack()*Interpreter::stackElementSize) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// validate bci/bcx
|
||||
|
||||
address bcp = interpreter_frame_bcp();
|
||||
if (m->validate_bci_from_bcp(bcp) < 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// validate constantPoolCache*
|
||||
ConstantPoolCache* cp = *interpreter_frame_cache_addr();
|
||||
if (MetaspaceObj::is_valid(cp) == false) return false;
|
||||
|
||||
// validate locals
|
||||
|
||||
address locals = (address) *interpreter_frame_locals_addr();
|
||||
return thread->is_in_stack_range_incl(locals, (address)fp());
|
||||
}
|
||||
|
||||
BasicType frame::interpreter_frame_result(oop* oop_result, jvalue* value_result) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2013 SAP SE. All rights reserved.
|
||||
* Copyright (c) 2002, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2022 SAP SE. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -27,7 +27,7 @@
|
||||
#define CPU_PPC_JNITYPES_PPC_HPP
|
||||
|
||||
#include "jni.h"
|
||||
#include "memory/allocation.hpp"
|
||||
#include "memory/allStatic.hpp"
|
||||
#include "oops/oop.hpp"
|
||||
|
||||
// This file holds platform-dependent routines used to write primitive
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2021 SAP SE. All rights reserved.
|
||||
* Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2022 SAP SE. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -2732,16 +2732,17 @@ void MacroAssembler::compiler_fast_lock_object(ConditionRegister flag, Register
|
||||
|
||||
// Store a non-null value into the box.
|
||||
std(box, BasicLock::displaced_header_offset_in_bytes(), box);
|
||||
beq(flag, cont);
|
||||
|
||||
# ifdef ASSERT
|
||||
// Check for recursive locking.
|
||||
cmpd(flag, current_header, R16_thread);
|
||||
bne(flag, cont);
|
||||
// We have acquired the monitor, check some invariants.
|
||||
addi(/*monitor=*/temp, temp, -ObjectMonitor::owner_offset_in_bytes());
|
||||
// Invariant 1: _recursions should be 0.
|
||||
//assert(ObjectMonitor::recursions_size_in_bytes() == 8, "unexpected size");
|
||||
asm_assert_mem8_is_zero(ObjectMonitor::recursions_offset_in_bytes(), temp,
|
||||
"monitor->_recursions should be 0");
|
||||
# endif
|
||||
|
||||
// Current thread already owns the lock. Just increment recursions.
|
||||
Register recursions = displaced_header;
|
||||
ld(recursions, ObjectMonitor::recursions_offset_in_bytes()-ObjectMonitor::owner_offset_in_bytes(), temp);
|
||||
addi(recursions, recursions, 1);
|
||||
std(recursions, ObjectMonitor::recursions_offset_in_bytes()-ObjectMonitor::owner_offset_in_bytes(), temp);
|
||||
|
||||
#if INCLUDE_RTM_OPT
|
||||
} // use_rtm()
|
||||
@@ -2757,8 +2758,7 @@ void MacroAssembler::compiler_fast_unlock_object(ConditionRegister flag, Registe
|
||||
bool use_rtm) {
|
||||
assert_different_registers(oop, box, temp, displaced_header, current_header);
|
||||
assert(flag != CCR0, "bad condition register");
|
||||
Label cont;
|
||||
Label object_has_monitor;
|
||||
Label cont, object_has_monitor, notRecursive;
|
||||
|
||||
#if INCLUDE_RTM_OPT
|
||||
if (UseRTMForStackLocks && use_rtm) {
|
||||
@@ -2830,11 +2830,16 @@ void MacroAssembler::compiler_fast_unlock_object(ConditionRegister flag, Registe
|
||||
#endif
|
||||
|
||||
ld(displaced_header, ObjectMonitor::recursions_offset_in_bytes(), current_header);
|
||||
xorr(temp, R16_thread, temp); // Will be 0 if we are the owner.
|
||||
orr(temp, temp, displaced_header); // Will be 0 if there are 0 recursions.
|
||||
cmpdi(flag, temp, 0);
|
||||
|
||||
cmpd(flag, temp, R16_thread);
|
||||
bne(flag, cont);
|
||||
|
||||
addic_(displaced_header, displaced_header, -1);
|
||||
blt(CCR0, notRecursive); // Not recursive if negative after decrement.
|
||||
std(displaced_header, ObjectMonitor::recursions_offset_in_bytes(), current_header);
|
||||
b(cont); // flag is already EQ here.
|
||||
|
||||
bind(notRecursive);
|
||||
ld(temp, ObjectMonitor::EntryList_offset_in_bytes(), current_header);
|
||||
ld(displaced_header, ObjectMonitor::cxq_offset_in_bytes(), current_header);
|
||||
orr(temp, temp, displaced_header); // Will be 0 if both are 0.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user