mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-13 21:09:41 +01:00
Compare commits
1174 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38930ae468 | ||
|
|
46c1a1e892 | ||
|
|
70ccdb4c4a | ||
|
|
4cd8847917 | ||
|
|
2a59a55528 | ||
|
|
5d66f7eaaa | ||
|
|
1fce158e64 | ||
|
|
78cace0652 | ||
|
|
ff625db728 | ||
|
|
6a6de28cdc | ||
|
|
7cac44b64e | ||
|
|
8ed680ba77 | ||
|
|
087cf89ed6 | ||
|
|
dcf3accb3d | ||
|
|
3f910ea223 | ||
|
|
b63abe6d47 | ||
|
|
b80a4e3e5b | ||
|
|
55a506f4f6 | ||
|
|
f8499cea0a | ||
|
|
6b5de282db | ||
|
|
547ec254ab | ||
|
|
374a8804ed | ||
|
|
6fbd3cc71a | ||
|
|
4105f380be | ||
|
|
c44a783b40 | ||
|
|
f27d22f842 | ||
|
|
6c81e33a5c | ||
|
|
55aae4be98 | ||
|
|
6409439eb7 | ||
|
|
b3e69e6923 | ||
|
|
765587b170 | ||
|
|
3c99661ae9 | ||
|
|
b647e47be8 | ||
|
|
b2a31b9590 | ||
|
|
42a92d1613 | ||
|
|
90cfb65f1f | ||
|
|
7e9c24f965 | ||
|
|
0ef4d6e031 | ||
|
|
d725714981 | ||
|
|
8236987184 | ||
|
|
e49da806ac | ||
|
|
7d23f18e1e | ||
|
|
c9b7680efe | ||
|
|
8747a213f0 | ||
|
|
4f45f23736 | ||
|
|
d0fd93ab63 | ||
|
|
415a7ccb50 | ||
|
|
790f9d6ecf | ||
|
|
0620440d1f | ||
|
|
dadab8d21e | ||
|
|
25916ab5b2 | ||
|
|
fceb603fcc | ||
|
|
21f9741440 | ||
|
|
6b397e6b2b | ||
|
|
39264ee7d2 | ||
|
|
69c61f7b17 | ||
|
|
60a3f5bc64 | ||
|
|
4b171eda01 | ||
|
|
c759448e0d | ||
|
|
81abd14ca0 | ||
|
|
bcdcfc6278 | ||
|
|
1b8adc04a2 | ||
|
|
f306afc1c0 | ||
|
|
8fbcdf83c0 | ||
|
|
943b5566ce | ||
|
|
387cab5f5b | ||
|
|
288a7e2d1e | ||
|
|
459b08785a | ||
|
|
1ca38d0e9d | ||
|
|
00ae5656cd | ||
|
|
4d96cae462 | ||
|
|
34fa2378f9 | ||
|
|
790cf17df4 | ||
|
|
15f66c32d1 | ||
|
|
eafc1422b3 | ||
|
|
c677e3600a | ||
|
|
76765aa580 | ||
|
|
bd0df2a052 | ||
|
|
1c88b2f8a6 | ||
|
|
7236448766 | ||
|
|
594c9ed01f | ||
|
|
e19bb00950 | ||
|
|
a99f7bac50 | ||
|
|
7426919ce1 | ||
|
|
60e853a371 | ||
|
|
bdbba22ebf | ||
|
|
d213704f9d | ||
|
|
6b1c37ee8c | ||
|
|
6c04fd835e | ||
|
|
0f58116e47 | ||
|
|
d6817a2687 | ||
|
|
bc727bfd3b | ||
|
|
4354c3f6e3 | ||
|
|
8a523bd35c | ||
|
|
2aaeffd621 | ||
|
|
9b96a6a547 | ||
|
|
cfb63b2f47 | ||
|
|
082343e17d | ||
|
|
5f0ecdd12f | ||
|
|
e30875c59b | ||
|
|
086ab1bedc | ||
|
|
0f5ae4499c | ||
|
|
2149457854 | ||
|
|
5475b9302f | ||
|
|
e40b297a75 | ||
|
|
3cee35d8ec | ||
|
|
990254f01a | ||
|
|
4530bba422 | ||
|
|
d578f83f30 | ||
|
|
edb9c14b8c | ||
|
|
50f48a8476 | ||
|
|
4f488daefd | ||
|
|
5585d3e79e | ||
|
|
c94efca695 | ||
|
|
6b434f7272 | ||
|
|
25cce5a312 | ||
|
|
7f55dd4f2f | ||
|
|
b2149dd6c8 | ||
|
|
d8f03e7d34 | ||
|
|
29443cad9a | ||
|
|
52c8ea5a97 | ||
|
|
341b116927 | ||
|
|
6253136ee9 | ||
|
|
d8dbcf3152 | ||
|
|
197a2ddfef | ||
|
|
ad58c1d116 | ||
|
|
2f47ee7bbd | ||
|
|
18ff8e7ca8 | ||
|
|
2032a83d3f | ||
|
|
9e860f3435 | ||
|
|
a63f32a8c8 | ||
|
|
dcf598a1cd | ||
|
|
c89f2d7bff | ||
|
|
d31cf82da2 | ||
|
|
36d9f8ae34 | ||
|
|
996e6846f4 | ||
|
|
4091200de7 | ||
|
|
0b7966e54a | ||
|
|
5d0f0bfb8b | ||
|
|
ba0443d684 | ||
|
|
20f06ceb09 | ||
|
|
8debef1a64 | ||
|
|
8d6035660e | ||
|
|
e794fff22c | ||
|
|
ad9390102d | ||
|
|
83f34e5507 | ||
|
|
7a871160ec | ||
|
|
13c13c7289 | ||
|
|
e005d5df51 | ||
|
|
79bc5884e7 | ||
|
|
308015e275 | ||
|
|
2978ffb9f9 | ||
|
|
fbcb7f3c1d | ||
|
|
f402821a9d | ||
|
|
4fb6b66cf1 | ||
|
|
29a36f3f0e | ||
|
|
e7e3ff02a8 | ||
|
|
8a6b48743d | ||
|
|
56fcf6c052 | ||
|
|
f038343dc2 | ||
|
|
380fa9ec0f | ||
|
|
27f75e71c5 | ||
|
|
2be2e027b0 | ||
|
|
78f8162678 | ||
|
|
45d1edf5dc | ||
|
|
fe2dde0f1a | ||
|
|
76f6f19925 | ||
|
|
2cf8e1ac80 | ||
|
|
faf22e51ad | ||
|
|
d3a7a9549d | ||
|
|
d541bcf943 | ||
|
|
89cea91c48 | ||
|
|
e4e765e34e | ||
|
|
8893530f3a | ||
|
|
e7d899910b | ||
|
|
26d192003f | ||
|
|
416d70bf91 | ||
|
|
9d3e087075 | ||
|
|
8d2e7d667d | ||
|
|
dc061cb0ce | ||
|
|
a23cbf5b96 | ||
|
|
7f34411b42 | ||
|
|
4ae52d7dc1 | ||
|
|
4e539172f6 | ||
|
|
421eed2e07 | ||
|
|
cc6fbb6a7f | ||
|
|
4e52be63fe | ||
|
|
d05dcd3c10 | ||
|
|
aef18fc5a7 | ||
|
|
a46fd793cc | ||
|
|
938af6ca9f | ||
|
|
5ff31e060f | ||
|
|
7b461338a0 | ||
|
|
5f12c03c56 | ||
|
|
07321dec65 | ||
|
|
a2b97ae3ec | ||
|
|
bfa69d72f5 | ||
|
|
9caca0a089 | ||
|
|
793a7d8187 | ||
|
|
ddd8b068ab | ||
|
|
37885fe5f8 | ||
|
|
3e2ae68252 | ||
|
|
cd69c60cc0 | ||
|
|
4b15cdadd3 | ||
|
|
72bfacbd95 | ||
|
|
8c0f3ead78 | ||
|
|
f4e320bfb9 | ||
|
|
700b2220a9 | ||
|
|
dc04ee39aa | ||
|
|
8aa430beb0 | ||
|
|
8aebf28301 | ||
|
|
da3f81559f | ||
|
|
56fe18e375 | ||
|
|
74a99e1e82 | ||
|
|
ff67e1ba9a | ||
|
|
48d4a43c2a | ||
|
|
03b68e9989 | ||
|
|
5020864887 | ||
|
|
5f4195e462 | ||
|
|
a272f0d3a8 | ||
|
|
dd4aaeadd4 | ||
|
|
409201ce7b | ||
|
|
dd661ad390 | ||
|
|
848f2e320b | ||
|
|
3650c6531d | ||
|
|
05d1de7727 | ||
|
|
3c46295767 | ||
|
|
b06c9fed81 | ||
|
|
67a5668b16 | ||
|
|
d6cdfde9d9 | ||
|
|
fb317642d0 | ||
|
|
8ecfee604a | ||
|
|
c50a9c66cc | ||
|
|
114da9bcfc | ||
|
|
4e657281da | ||
|
|
9b31d58b98 | ||
|
|
31eeaafbcf | ||
|
|
d9ebfd3ddd | ||
|
|
3e1462dee5 | ||
|
|
9f76e08bcf | ||
|
|
67ae0dd34b | ||
|
|
6f9ccbbe7f | ||
|
|
800cf36c96 | ||
|
|
8781033c39 | ||
|
|
954e8082f6 | ||
|
|
44091d390c | ||
|
|
f7098831dd | ||
|
|
a82243d887 | ||
|
|
781e5085de | ||
|
|
6b78cf8b99 | ||
|
|
b051a23591 | ||
|
|
178049faf3 | ||
|
|
0b44eecef2 | ||
|
|
ca6e1aecc3 | ||
|
|
f883e6fde8 | ||
|
|
53cf69e562 | ||
|
|
decdeea77d | ||
|
|
4b732c2f61 | ||
|
|
ee5c2301ec | ||
|
|
4f2325cf75 | ||
|
|
16fbd2d7e5 | ||
|
|
6d59271ca9 | ||
|
|
952857e682 | ||
|
|
b07ac51bf3 | ||
|
|
0723dab28b | ||
|
|
5efe4b020a | ||
|
|
d1f800c577 | ||
|
|
3a37d195f3 | ||
|
|
500caf95bd | ||
|
|
9081658837 | ||
|
|
967dd884ac | ||
|
|
7465090acf | ||
|
|
6acc244444 | ||
|
|
85a47f34c6 | ||
|
|
ea24f38417 | ||
|
|
f73daa0e58 | ||
|
|
7efb6ac73a | ||
|
|
a58639094e | ||
|
|
f202d9a6e1 | ||
|
|
15891a2f7f | ||
|
|
8c702dfd66 | ||
|
|
354897da83 | ||
|
|
dc3008a513 | ||
|
|
55676cacc2 | ||
|
|
2f8cdfaaa7 | ||
|
|
4a72da6f6a | ||
|
|
d389c635bc | ||
|
|
f5594e9e8d | ||
|
|
3b924cd4f6 | ||
|
|
9ca5bdcd52 | ||
|
|
6aec7d2ea9 | ||
|
|
473e5b6e54 | ||
|
|
0a2c842e50 | ||
|
|
73e8e582ba | ||
|
|
11a5dc38c7 | ||
|
|
0b8159d689 | ||
|
|
f1847266b7 | ||
|
|
681eb89b31 | ||
|
|
cf4c6b351a | ||
|
|
47f944a908 | ||
|
|
f72a09355f | ||
|
|
7dbcbc13d7 | ||
|
|
dd25f39709 | ||
|
|
b4e9e47b74 | ||
|
|
030a13d8fe | ||
|
|
a2ed00b650 | ||
|
|
198f2427b4 | ||
|
|
824fac8c75 | ||
|
|
c8d87a676a | ||
|
|
f2e5249ea9 | ||
|
|
312e8b696c | ||
|
|
0982a57615 | ||
|
|
1157bba837 | ||
|
|
268b47be93 | ||
|
|
68c4bef974 | ||
|
|
46194466cf | ||
|
|
f9c7b83d22 | ||
|
|
a7da5440dd | ||
|
|
9aab9d4aeb | ||
|
|
b3e23ac700 | ||
|
|
0badccf962 | ||
|
|
4be1a50ed3 | ||
|
|
3b5d6a04dd | ||
|
|
5e0a625580 | ||
|
|
2f2589d2dc | ||
|
|
553a2dfa66 | ||
|
|
21507b2ba7 | ||
|
|
23ab3ee383 | ||
|
|
5ee59847d1 | ||
|
|
212dd5d9b8 | ||
|
|
46cd7f09fc | ||
|
|
31fff5194b | ||
|
|
5fa439fa37 | ||
|
|
f7ccda2b14 | ||
|
|
e4a970d4ed | ||
|
|
ce8564b7f8 | ||
|
|
94a461f4cb | ||
|
|
61181babf1 | ||
|
|
72b75d1adf | ||
|
|
275a0bfb42 | ||
|
|
04d96f9698 | ||
|
|
354177b550 | ||
|
|
67f20d82c9 | ||
|
|
61c259aeb5 | ||
|
|
a70da64c72 | ||
|
|
b17d12c83d | ||
|
|
df345d27f4 | ||
|
|
13c271c69b | ||
|
|
c88ad511d0 | ||
|
|
c46f747070 | ||
|
|
6a6fc9ad3f | ||
|
|
17d35f31a2 | ||
|
|
ecbdf3bb83 | ||
|
|
17e0db945f | ||
|
|
e7c217c72d | ||
|
|
57a4df4e50 | ||
|
|
2fa7dc18d7 | ||
|
|
09010fe0a7 | ||
|
|
614df1958c | ||
|
|
39b23ff0a0 | ||
|
|
c597e8b844 | ||
|
|
fbaf68fa07 | ||
|
|
50d5d6cd86 | ||
|
|
82b15672f3 | ||
|
|
aad69adc7b | ||
|
|
d981bd442b | ||
|
|
71dfa4d2db | ||
|
|
2b84dc567f | ||
|
|
722c67692b | ||
|
|
811c6c0fea | ||
|
|
34b247f068 | ||
|
|
f32326c000 | ||
|
|
2fd86a0f09 | ||
|
|
01829882de | ||
|
|
70ff87882c | ||
|
|
49f97d10c8 | ||
|
|
6f35335489 | ||
|
|
090aa094a7 | ||
|
|
0476ba59fb | ||
|
|
6701ca1be7 | ||
|
|
3f450f06e2 | ||
|
|
798600a691 | ||
|
|
d36d789593 | ||
|
|
4021098c46 | ||
|
|
c5d6131368 | ||
|
|
552a7a0e19 | ||
|
|
9ea7492522 | ||
|
|
40754a9924 | ||
|
|
2f243ad874 | ||
|
|
79ec4bf8d3 | ||
|
|
4aefa80bf1 | ||
|
|
da292a7197 | ||
|
|
f82d6e454b | ||
|
|
0c35627960 | ||
|
|
285d905e09 | ||
|
|
61f89b0025 | ||
|
|
1b49bea0ad | ||
|
|
f031c45430 | ||
|
|
5ee6e7f6ed | ||
|
|
3b8452da93 | ||
|
|
02e741f275 | ||
|
|
57af527fbb | ||
|
|
337fe1437d | ||
|
|
e6ce4c2488 | ||
|
|
cf1252d823 | ||
|
|
e08feb9741 | ||
|
|
91dd5dcbe4 | ||
|
|
606b473fb5 | ||
|
|
a9c275ed18 | ||
|
|
72a1863490 | ||
|
|
3112e3e065 | ||
|
|
9f55075d21 | ||
|
|
5669063091 | ||
|
|
b398e5f491 | ||
|
|
9933a50bf3 | ||
|
|
2ec2e709fd | ||
|
|
2bb798a3ff | ||
|
|
c0b51b7972 | ||
|
|
8109aa4a16 | ||
|
|
ae8aa00398 | ||
|
|
2d180da2de | ||
|
|
f495424a45 | ||
|
|
73aaa40e09 | ||
|
|
15099c9ffe | ||
|
|
5335a75b1c | ||
|
|
981f025a85 | ||
|
|
4f3a9a4392 | ||
|
|
11431a6329 | ||
|
|
19b769a375 | ||
|
|
dffa62753f | ||
|
|
a2d4800aa0 | ||
|
|
3247a31478 | ||
|
|
a1f31b73db | ||
|
|
e3d66c6414 | ||
|
|
220ed00264 | ||
|
|
6644396543 | ||
|
|
a23ea7296a | ||
|
|
1fab872b02 | ||
|
|
21e269f4c2 | ||
|
|
5d486c3a66 | ||
|
|
b4747d3188 | ||
|
|
de73102ff4 | ||
|
|
3cc490850d | ||
|
|
0590d5d822 | ||
|
|
0de2dd962c | ||
|
|
fb9dbf3a88 | ||
|
|
52dd839b3e | ||
|
|
58317112cf | ||
|
|
45da1acf72 | ||
|
|
cb48ba0b84 | ||
|
|
455ba2dcdf | ||
|
|
6a54f22ae0 | ||
|
|
b15aadf61d | ||
|
|
f79090efe7 | ||
|
|
640ed7d08b | ||
|
|
2ba0d5b055 | ||
|
|
532cc3cef8 | ||
|
|
1606eaa0b9 | ||
|
|
74a472983b | ||
|
|
8187896320 | ||
|
|
d9a391aad9 | ||
|
|
31acc39bf9 | ||
|
|
aae30d753f | ||
|
|
a3d528cc30 | ||
|
|
a1442ea7ff | ||
|
|
78f5dc395e | ||
|
|
c0731761a3 | ||
|
|
4a82a1723e | ||
|
|
34719749c5 | ||
|
|
9dff8d691f | ||
|
|
f6cd370370 | ||
|
|
795b53a014 | ||
|
|
c2ff9781c7 | ||
|
|
9298831bab | ||
|
|
b1b8994004 | ||
|
|
1db3e0312e | ||
|
|
76f79d82ad | ||
|
|
a23159ffac | ||
|
|
a2a9e39ec7 | ||
|
|
3f5c0cbbd8 | ||
|
|
253b81dfe8 | ||
|
|
e8974fee90 | ||
|
|
9bf4545843 | ||
|
|
3849600cdd | ||
|
|
dda3b0af66 | ||
|
|
95f5222445 | ||
|
|
1ff1bdc3e6 | ||
|
|
49ee6acaa2 | ||
|
|
b1c4a6ff3f | ||
|
|
e39c4cbfe7 | ||
|
|
956dc037db | ||
|
|
3474623106 | ||
|
|
315de68fc0 | ||
|
|
aa3da7789a | ||
|
|
f05b009ce8 | ||
|
|
1362b9fd1d | ||
|
|
1880943a7f | ||
|
|
d80f5c0265 | ||
|
|
1ad664c0c9 | ||
|
|
347b8afe5b | ||
|
|
5fa8ada075 | ||
|
|
9330abadea | ||
|
|
b5743bd6e9 | ||
|
|
ac1f463988 | ||
|
|
efd43c045a | ||
|
|
34c4172bfe | ||
|
|
3505c577b7 | ||
|
|
74d9cf0fb8 | ||
|
|
91caa3b23f | ||
|
|
1d9a30a4d2 | ||
|
|
928a098209 | ||
|
|
cdc0430126 | ||
|
|
94649662ec | ||
|
|
a393c3b01f | ||
|
|
9c14ecd49b | ||
|
|
e75f92c54d | ||
|
|
22a73d8b7d | ||
|
|
f28432c20a | ||
|
|
122daf56a7 | ||
|
|
997f677fc5 | ||
|
|
0f5687c1eb | ||
|
|
dc2957bef6 | ||
|
|
744c80add4 | ||
|
|
f3c34ce9b6 | ||
|
|
f90394b6fb | ||
|
|
a88e734cac | ||
|
|
2d0b1225eb | ||
|
|
4d2c491b2b | ||
|
|
29488f1216 | ||
|
|
b905401ddc | ||
|
|
7582e6a1eb | ||
|
|
cc8641d33a | ||
|
|
99f0eac1a2 | ||
|
|
87e027e6c7 | ||
|
|
06e37c03fb | ||
|
|
5a8bea5106 | ||
|
|
baa4663714 | ||
|
|
40a81c63b8 | ||
|
|
552c37000d | ||
|
|
31308ae8e4 | ||
|
|
0d7bfcafab | ||
|
|
6483f9c7f8 | ||
|
|
8fc946854c | ||
|
|
7a9585170d | ||
|
|
000b184507 | ||
|
|
92ea783f35 | ||
|
|
26f6b1692a | ||
|
|
e0d2bfab81 | ||
|
|
89fa477ecf | ||
|
|
871bbff9ce | ||
|
|
67464baa7a | ||
|
|
0a521a9457 | ||
|
|
16870a7767 | ||
|
|
2064095b24 | ||
|
|
6a4903d458 | ||
|
|
e7d171eac3 | ||
|
|
d2c931b222 | ||
|
|
ccf03a6e2c | ||
|
|
f0e6f0762b | ||
|
|
34982c7509 | ||
|
|
85e1e1e290 | ||
|
|
ef7000f82e | ||
|
|
b14fec6973 | ||
|
|
36f5b8dd54 | ||
|
|
04950cd846 | ||
|
|
049436370f | ||
|
|
5588717cc4 | ||
|
|
791e25aabf | ||
|
|
e50f766540 | ||
|
|
463acdac66 | ||
|
|
c07de94ae3 | ||
|
|
2f8d598ab1 | ||
|
|
47b467dff2 | ||
|
|
0850f3ec01 | ||
|
|
d90b02d794 | ||
|
|
ec343fa4bc | ||
|
|
349adae76a | ||
|
|
1d59997abe | ||
|
|
ee02298743 | ||
|
|
745c0e3248 | ||
|
|
ecc1d3a67c | ||
|
|
fb6d03b012 | ||
|
|
9330807714 | ||
|
|
eddda26255 | ||
|
|
dd80e77a74 | ||
|
|
5d3228cbb3 | ||
|
|
8ffbb1eee1 | ||
|
|
606d3d6cd1 | ||
|
|
211621e750 | ||
|
|
62267e3f02 | ||
|
|
868fd3b043 | ||
|
|
03b38c0c8d | ||
|
|
59ae4174f0 | ||
|
|
80de0f058a | ||
|
|
7231a4ca3b | ||
|
|
3123299828 | ||
|
|
d9c6682945 | ||
|
|
0320ba0b9e | ||
|
|
af509dd90d | ||
|
|
f2f18a01e5 | ||
|
|
e936f852bf | ||
|
|
9ed3284766 | ||
|
|
16aa57cb4b | ||
|
|
d039601207 | ||
|
|
69e0e018d4 | ||
|
|
b596dd66fa | ||
|
|
569029da79 | ||
|
|
8242c2b3b6 | ||
|
|
70624128b4 | ||
|
|
ed99040266 | ||
|
|
5a8c6c3bf7 | ||
|
|
e7c2dc0b7a | ||
|
|
c0500f7d74 | ||
|
|
4121a03c4c | ||
|
|
71eb016652 | ||
|
|
21883705f7 | ||
|
|
2bba3afabc | ||
|
|
180875046c | ||
|
|
efd62d5c81 | ||
|
|
b9638d0527 | ||
|
|
93225a0b60 | ||
|
|
466eda6ee4 | ||
|
|
f58e193de0 | ||
|
|
6c53645a84 | ||
|
|
8dc49502e3 | ||
|
|
85138023c1 | ||
|
|
210b864811 | ||
|
|
de0532a7ec | ||
|
|
658a01dd3f | ||
|
|
da14ef4113 | ||
|
|
1ffbc44821 | ||
|
|
e64aa947c4 | ||
|
|
9f61f3723c | ||
|
|
50a5499c50 | ||
|
|
7d7cf3f8af | ||
|
|
9f247462f6 | ||
|
|
db6bef2c70 | ||
|
|
6683daa8c7 | ||
|
|
5a1a07a54f | ||
|
|
a6c8f28b4e | ||
|
|
323cfc4f26 | ||
|
|
c60ef2ef3b | ||
|
|
68703b507d | ||
|
|
abed5710b0 | ||
|
|
4d6c508c34 | ||
|
|
df04313221 | ||
|
|
28b2c4aeaf | ||
|
|
2f7409dee4 | ||
|
|
72f1136161 | ||
|
|
e7b4bb5f00 | ||
|
|
a2078f04e8 | ||
|
|
43051c98f3 | ||
|
|
893d1c4148 | ||
|
|
f2c8d25c73 | ||
|
|
59b2212c9d | ||
|
|
36134f31f5 | ||
|
|
9487cedae1 | ||
|
|
a7d5fce367 | ||
|
|
bc9a3dae9e | ||
|
|
cbf1c89d60 | ||
|
|
907d90158a | ||
|
|
f377bd69c3 | ||
|
|
8db7ed98ea | ||
|
|
ce3f3dd8d3 | ||
|
|
69f8b9fce0 | ||
|
|
bb833cb3e5 | ||
|
|
4e2c4fb4bd | ||
|
|
849e0ffb04 | ||
|
|
015a08b3e8 | ||
|
|
e9076296a9 | ||
|
|
8db365aa80 | ||
|
|
454f269528 | ||
|
|
f2143c7bee | ||
|
|
5c6f569aa5 | ||
|
|
9f36c3b7c7 | ||
|
|
1716627be0 | ||
|
|
12fd79632c | ||
|
|
1e36589fc9 | ||
|
|
e9a892dd41 | ||
|
|
6cea928f70 | ||
|
|
98685a4d93 | ||
|
|
6fe817326c | ||
|
|
68e605f7a4 | ||
|
|
491fc45d00 | ||
|
|
bbac59f218 | ||
|
|
7aae40a95f | ||
|
|
0cecb67ae7 | ||
|
|
ab227cb671 | ||
|
|
2c3b8ec969 | ||
|
|
0e63b7609a | ||
|
|
803f241db6 | ||
|
|
85ab3e2820 | ||
|
|
6759fbba86 | ||
|
|
452ff15c37 | ||
|
|
ec8b80fefc | ||
|
|
b0133ca5b4 | ||
|
|
fc59049c53 | ||
|
|
cb4eb96188 | ||
|
|
a0d2321424 | ||
|
|
ec4b93457e | ||
|
|
f0bc3cdc91 | ||
|
|
8eb2e02296 | ||
|
|
5118c7cd7f | ||
|
|
7bcfb5965d | ||
|
|
fddda74b98 | ||
|
|
38f19ad4b7 | ||
|
|
7de6d649be | ||
|
|
8f7e2b9357 | ||
|
|
44dcc74e78 | ||
|
|
1bff9286d7 | ||
|
|
740031d711 | ||
|
|
ecbe1aeb4e | ||
|
|
401e04572a | ||
|
|
8537533873 | ||
|
|
df32a451da | ||
|
|
285a7ec5e3 | ||
|
|
66b3af8b02 | ||
|
|
540b83b6b1 | ||
|
|
429a95440a | ||
|
|
333adf3ae1 | ||
|
|
dacdf4a500 | ||
|
|
caa22f1483 | ||
|
|
49c8929c4a | ||
|
|
d3972610f4 | ||
|
|
c85afdbe86 | ||
|
|
1465cf8909 | ||
|
|
adcd85f803 | ||
|
|
a21aaaa7dc | ||
|
|
418461fae2 | ||
|
|
dd2a864f51 | ||
|
|
3a7c0b423c | ||
|
|
d01291bb6e | ||
|
|
8678995ece | ||
|
|
5a17e28602 | ||
|
|
2531ec2c03 | ||
|
|
f623a9cb53 | ||
|
|
66c2adbaa4 | ||
|
|
92ac5f1b9f | ||
|
|
3ae2c2ca54 | ||
|
|
df2736e9cc | ||
|
|
ffbe5e4f50 | ||
|
|
0408a1adae | ||
|
|
b2ffad7180 | ||
|
|
90e6379916 | ||
|
|
be7b82ffe4 | ||
|
|
107bbcc8f4 | ||
|
|
4fa4c137a2 | ||
|
|
347534f43b | ||
|
|
f3a403d0d4 | ||
|
|
bc7e37f4df | ||
|
|
1b42c56aeb | ||
|
|
92c83c7681 | ||
|
|
7d2872604d | ||
|
|
579cc2111a | ||
|
|
09220bdd58 | ||
|
|
d9d3a81168 | ||
|
|
b99ff1ffeb | ||
|
|
a9d034a33c | ||
|
|
fac7f6fd8a | ||
|
|
fa8846d054 | ||
|
|
eb292c9219 | ||
|
|
8175eb6c0e | ||
|
|
ecacc1fb5f | ||
|
|
b1e7b0352e | ||
|
|
f134b5139a | ||
|
|
3b082d1d69 | ||
|
|
c6c8882d70 | ||
|
|
f60d27c8f6 | ||
|
|
9964ed243c | ||
|
|
1cfe36b8a1 | ||
|
|
72ffb28a4d | ||
|
|
ad3ca8d8f2 | ||
|
|
ed94b2e90b | ||
|
|
7fb9ea225e | ||
|
|
f52b203b13 | ||
|
|
4b983d3b39 | ||
|
|
1c5962a62c | ||
|
|
a75a5f00d6 | ||
|
|
a2201c5ae7 | ||
|
|
0f7dc30816 | ||
|
|
55ef4bc22e | ||
|
|
5c08fa0e79 | ||
|
|
e5e6ca9d62 | ||
|
|
55925534ec | ||
|
|
a7c6406a8f | ||
|
|
1dc1dcab49 | ||
|
|
d1aacc7cdf | ||
|
|
0dac6431d2 | ||
|
|
bc9f364917 | ||
|
|
fb52866502 | ||
|
|
2549cb015c | ||
|
|
7add953cfe | ||
|
|
4fddc7cbee | ||
|
|
b5c0324f6a | ||
|
|
e585263735 | ||
|
|
246d79484d | ||
|
|
118a4cdb15 | ||
|
|
16155a7d48 | ||
|
|
443bd6a8ef | ||
|
|
c5fd243bce | ||
|
|
97fb020199 | ||
|
|
8f0558c530 | ||
|
|
ccd6d11b80 | ||
|
|
ecc1626f21 | ||
|
|
04b0ebb9c1 | ||
|
|
c09e705e04 | ||
|
|
68c9df4110 | ||
|
|
7a442ce178 | ||
|
|
ab5f1cb24b | ||
|
|
67339c0aab | ||
|
|
9315b88d67 | ||
|
|
4f96480e17 | ||
|
|
8fe5a021a3 | ||
|
|
3a72f5c241 | ||
|
|
2437566bc1 | ||
|
|
b760e25337 | ||
|
|
98ab03e7e5 | ||
|
|
a2481b51f8 | ||
|
|
50964694fe | ||
|
|
9148e3b4c1 | ||
|
|
2229fb0a55 | ||
|
|
3600dc716c | ||
|
|
90f6b8301e | ||
|
|
671a2de6c7 | ||
|
|
d80199b403 | ||
|
|
c7f7759bdd | ||
|
|
1a0a9d1a6f | ||
|
|
7633aaa177 | ||
|
|
fe28b4f768 | ||
|
|
6f5e28aca1 | ||
|
|
c63de8e0a8 | ||
|
|
ae6690b302 | ||
|
|
8e3e3658c5 | ||
|
|
ebc51f0813 | ||
|
|
f7bfb9b472 | ||
|
|
7fe650bc36 | ||
|
|
1e22a7ec76 | ||
|
|
043fde10e5 | ||
|
|
c507643efe | ||
|
|
bfec071cbf | ||
|
|
4dcb55b4b5 | ||
|
|
6e86513c3a | ||
|
|
76df5ec473 | ||
|
|
9d02d6ab31 | ||
|
|
1c9496b191 | ||
|
|
b089627fe8 | ||
|
|
6c19542a36 | ||
|
|
adce6fc49a | ||
|
|
7eacf5061e | ||
|
|
ef34d89841 | ||
|
|
5b60edebb8 | ||
|
|
bd1d9eea88 | ||
|
|
59f2891c07 | ||
|
|
02332d6aa7 | ||
|
|
c8006a68d5 | ||
|
|
c8bd8e9a0f | ||
|
|
b6ae33fc2e | ||
|
|
5cdf6e6e08 | ||
|
|
2be5ac062d | ||
|
|
453d1a42b0 | ||
|
|
e98b7ce059 | ||
|
|
f2851186bb | ||
|
|
d40b6daac9 | ||
|
|
2e52e9dff2 | ||
|
|
056f3ea7aa | ||
|
|
b670ed41d6 | ||
|
|
f48920fb62 | ||
|
|
e7058ee0c3 | ||
|
|
3588eee6c0 | ||
|
|
82a7a9f030 | ||
|
|
5fc92453b6 | ||
|
|
e102e38873 | ||
|
|
a8d5a91270 | ||
|
|
ec0853a113 | ||
|
|
4204f82a1a | ||
|
|
5e2a37a5a0 | ||
|
|
6b2595360b | ||
|
|
32addb490d | ||
|
|
4f54397ad8 | ||
|
|
f3455aa584 | ||
|
|
ca37022cf0 | ||
|
|
9c306e4183 | ||
|
|
d7e6943136 | ||
|
|
20563e146d | ||
|
|
e5401e4491 | ||
|
|
b345a7f5f8 | ||
|
|
ac161a1e17 | ||
|
|
42be28cece | ||
|
|
d799afdc04 | ||
|
|
fe4cab6eeb | ||
|
|
ffbeca8c2e | ||
|
|
0b215ddf60 | ||
|
|
297ae75019 | ||
|
|
6caae4568d | ||
|
|
71365ab05c | ||
|
|
c6083c20e5 | ||
|
|
b15796424e | ||
|
|
fc58b54ba3 | ||
|
|
4138ab60c8 | ||
|
|
717114d206 | ||
|
|
8fcf72ddc8 | ||
|
|
929f1f0d78 | ||
|
|
57bd8dc7e1 | ||
|
|
c8a68bace6 | ||
|
|
c03ab32ab5 | ||
|
|
2e7b00b7d5 | ||
|
|
6f9021ff80 | ||
|
|
9f7bdd313a | ||
|
|
f6337de7b6 | ||
|
|
1807fe2b97 | ||
|
|
4cea49cf1c | ||
|
|
2fecfdfb50 | ||
|
|
9e461a5bdd | ||
|
|
0dc0bf82b2 | ||
|
|
ff12384283 | ||
|
|
fb095c0504 | ||
|
|
646224fc01 | ||
|
|
062847f5cd | ||
|
|
2928b8143b | ||
|
|
4b1e242299 | ||
|
|
1d67e1d25c | ||
|
|
eee15b163e | ||
|
|
b6aabd98fc | ||
|
|
b56f92d23b | ||
|
|
3ca95fc7a6 | ||
|
|
2c0b584b2d | ||
|
|
165244b534 | ||
|
|
2cd5cbcaca | ||
|
|
44aa1a1519 | ||
|
|
4350001c77 | ||
|
|
3dd5cb3c26 | ||
|
|
fc36794c8e | ||
|
|
513053fd42 | ||
|
|
6858434567 | ||
|
|
463af2bb25 | ||
|
|
c3552d0201 | ||
|
|
38e8cbedc6 | ||
|
|
c8a7806d4f | ||
|
|
a1e4e3ec94 | ||
|
|
875eea0ac0 | ||
|
|
3020470ba9 | ||
|
|
69530c282e | ||
|
|
d9b194669c | ||
|
|
092df72269 | ||
|
|
e786504157 | ||
|
|
c39e794a3a | ||
|
|
459a0ea703 | ||
|
|
3477036199 | ||
|
|
b427ee34cb | ||
|
|
92fbd1ca18 | ||
|
|
d9f838f739 | ||
|
|
545b7e4f62 | ||
|
|
68141df565 | ||
|
|
597abb5082 | ||
|
|
da33a7de28 | ||
|
|
6b814bb3fc | ||
|
|
9812da470c | ||
|
|
659ca734bb | ||
|
|
63c98ed888 | ||
|
|
ddc444d7b2 | ||
|
|
edb7cf2a91 | ||
|
|
355534b206 | ||
|
|
ddfbf23583 | ||
|
|
de1b872a4e | ||
|
|
28aaf9add2 | ||
|
|
46533a9546 | ||
|
|
b2e851f920 | ||
|
|
647d4a829d | ||
|
|
370ae84e73 | ||
|
|
a4ef2ba11d | ||
|
|
5e24b7bc99 | ||
|
|
d487d2b19e | ||
|
|
646d12c63f | ||
|
|
3eca12f7b7 | ||
|
|
77dfe98c4e | ||
|
|
ae1dc3db15 | ||
|
|
b0419018b0 | ||
|
|
8166ad7ece | ||
|
|
4e22cb6970 | ||
|
|
e0a15fc51d | ||
|
|
ebdad848b8 | ||
|
|
f284d2a3b2 | ||
|
|
79a295755e | ||
|
|
367e60a438 | ||
|
|
51a345480a | ||
|
|
54e427219c | ||
|
|
c8b6411661 | ||
|
|
4b2e9eb231 | ||
|
|
f7ea37f1b9 | ||
|
|
6ee252719c | ||
|
|
3927ae9832 | ||
|
|
9ce33168b1 | ||
|
|
14ea0be212 | ||
|
|
8174b8b497 | ||
|
|
441ef80eda | ||
|
|
d971ab32c3 | ||
|
|
f76aa54270 | ||
|
|
9f4b8c2379 | ||
|
|
710733eaa5 | ||
|
|
6358686351 | ||
|
|
d1de009d84 | ||
|
|
9b311f9a7b | ||
|
|
e1f54b3780 | ||
|
|
db6b4110da | ||
|
|
6b53043eea | ||
|
|
4a2921184f | ||
|
|
29440e8636 | ||
|
|
756eea5eec | ||
|
|
d46ed5c358 | ||
|
|
ab464bccd1 | ||
|
|
3d9b153464 | ||
|
|
83e7d32161 | ||
|
|
b6b71da22d | ||
|
|
e4e8777d6b | ||
|
|
fdfb7acee2 | ||
|
|
50a610e81c | ||
|
|
003c0aae4a | ||
|
|
fe4ebb456f | ||
|
|
803014e138 | ||
|
|
1d328ffab8 | ||
|
|
e80aebd528 | ||
|
|
09ef78ff9e | ||
|
|
63d86bcfda | ||
|
|
deaa5d9446 | ||
|
|
5f00e2cd20 | ||
|
|
ca45a0c6cc | ||
|
|
309cfe4fd1 | ||
|
|
87d8424968 | ||
|
|
39d8c22579 | ||
|
|
1833c872a0 | ||
|
|
7861fdb862 | ||
|
|
b4ad1bd707 | ||
|
|
aba715ae04 | ||
|
|
f47678e4ab | ||
|
|
bef3a59d4c | ||
|
|
969313d8cc | ||
|
|
3735e1a4b2 | ||
|
|
83dafe98b2 | ||
|
|
14ecb7850f | ||
|
|
9da2b45a82 | ||
|
|
b0c44a6c6e | ||
|
|
3cc7c78362 | ||
|
|
bdd62705f2 | ||
|
|
b640b025c8 | ||
|
|
8ab0a4d7a9 | ||
|
|
3c4879eb9a | ||
|
|
d9929c525b | ||
|
|
86e3d89e57 | ||
|
|
3ae3654210 | ||
|
|
790bc3042d | ||
|
|
168e2b0ff2 | ||
|
|
37306315b2 | ||
|
|
26c780da72 | ||
|
|
2697216f3a | ||
|
|
aa6165d767 | ||
|
|
fc7983c405 | ||
|
|
136ad92f3d | ||
|
|
e2c297b29f | ||
|
|
4bdcbbe0b6 | ||
|
|
8bb4a8ec15 | ||
|
|
d41b0a77b2 | ||
|
|
e4f977c0a1 | ||
|
|
827a25e39d | ||
|
|
b6db0aad85 | ||
|
|
33a47ac00d | ||
|
|
1437ee2bae | ||
|
|
cd9045f4e8 | ||
|
|
f0ef7211c5 | ||
|
|
ec7f8bf1cb | ||
|
|
5e6c038292 | ||
|
|
a16656700d | ||
|
|
f1c6258165 | ||
|
|
29241c7694 | ||
|
|
95008ab775 | ||
|
|
630d73eb0a | ||
|
|
cac629a070 | ||
|
|
48d3ec1660 | ||
|
|
99706867d4 | ||
|
|
b9c79ae213 | ||
|
|
70202307c0 | ||
|
|
615777b6da | ||
|
|
a3cdb4dcfb | ||
|
|
fe1d1630dc | ||
|
|
befe056b42 | ||
|
|
6804a4e8ef | ||
|
|
2cb9d9610e | ||
|
|
b298e3e210 | ||
|
|
7ecbd27b2f | ||
|
|
3715f48dfe | ||
|
|
ea4f164aae | ||
|
|
b00baea4a1 | ||
|
|
64b449dd2a | ||
|
|
ae4e755124 | ||
|
|
45f8e241e3 | ||
|
|
f1f86e9fa2 | ||
|
|
38dff2ce4b | ||
|
|
36a04a49a7 | ||
|
|
1c42f2e0d3 | ||
|
|
1e49d39e6b | ||
|
|
f5cc909878 | ||
|
|
189c383d48 | ||
|
|
0e5cf24bb3 | ||
|
|
18c2b3a604 | ||
|
|
aeb1b5f21c | ||
|
|
3b50ea9003 | ||
|
|
f092fd7939 | ||
|
|
540f1f640a | ||
|
|
6b68aa3dcb | ||
|
|
3630a38b8f | ||
|
|
e2b3310cb6 | ||
|
|
ffcb07d286 | ||
|
|
6d08d079f0 | ||
|
|
0c7e3a5aaf | ||
|
|
4e01039ec9 | ||
|
|
449d7efefd | ||
|
|
c2fe3112f6 | ||
|
|
609c288c72 | ||
|
|
897278fce0 | ||
|
|
09fd47bcef | ||
|
|
1dce4ceddd | ||
|
|
b4ae1216b3 | ||
|
|
873a9176c7 | ||
|
|
f7be937495 | ||
|
|
eba63ce088 | ||
|
|
16436dc54d | ||
|
|
9d9f5afb8e | ||
|
|
b2066f470b | ||
|
|
95dc5f8473 | ||
|
|
8ad3454b18 | ||
|
|
02a6cd7914 | ||
|
|
c3732ffc5d | ||
|
|
a44852b8fe | ||
|
|
7f530b42c8 | ||
|
|
e91ae90285 | ||
|
|
2703662478 | ||
|
|
3916f38bd4 | ||
|
|
1bdca97b29 | ||
|
|
e2a366414c | ||
|
|
f7cbc30ff9 | ||
|
|
b4be323f02 | ||
|
|
2720870af6 | ||
|
|
5a843be073 | ||
|
|
1dce7af76f | ||
|
|
9620b88f07 | ||
|
|
29aa2aecb4 | ||
|
|
1267284a6f | ||
|
|
07198ddeda | ||
|
|
3f961d6062 | ||
|
|
74ee57a572 | ||
|
|
d44be8e3a0 | ||
|
|
a0b0fb42fd | ||
|
|
ef9b3891fc | ||
|
|
9d7b3f41e0 | ||
|
|
86ac930e55 | ||
|
|
f521ab4f1a | ||
|
|
b6c292d65d | ||
|
|
762ea5875b | ||
|
|
3a96c0f73d | ||
|
|
6aa1d81c2f | ||
|
|
7690c18be2 | ||
|
|
9e5e0e9d44 | ||
|
|
f8d7c817f6 | ||
|
|
705c4c6b85 | ||
|
|
85148f4cf0 | ||
|
|
3a5617e9f7 | ||
|
|
c201c739e4 | ||
|
|
7d7546ef37 | ||
|
|
07ef2f8f38 | ||
|
|
ac061d0424 | ||
|
|
a82afd549a | ||
|
|
6a55242693 | ||
|
|
18f3386a98 | ||
|
|
4db94beee6 | ||
|
|
ac0b8d6ebe |
17
.hgtags
17
.hgtags
@@ -8,3 +8,20 @@ bee4731164a06ddece1297ae58db24aca6a1c626 jdk7-b30
|
||||
cd8b8f500face60d1566d850857a7fccadbd383a jdk7-b31
|
||||
a9f1805e3ba9ca520cad199d522c84af5433e85a jdk7-b32
|
||||
6838c1a3296aaa3572364d2ce7d70826cee96286 jdk7-b33
|
||||
90cf935adb353bb0af4b46fb0677e841fd24c000 jdk7-b34
|
||||
6d909d5803e3a22850e6c4e5a75b888742ee7e20 jdk7-b35
|
||||
d718a441936196b93d8bc9f084933af9a4c2a350 jdk7-b36
|
||||
c2036bf76829c03b99108fffab52e20910a9be4f jdk7-b37
|
||||
a2879b2837f5a4c87e9542efe69ef138194af8ff jdk7-b38
|
||||
126f365cec6c3c2c72de934fa1c64b5f082b55b5 jdk7-b39
|
||||
3c53424bbe3bb77e01b468b4b0140deec33e11fc jdk7-b40
|
||||
3cb2a607c347934f8e7e86f840a094c28b08d9ea jdk7-b41
|
||||
caf58ffa084568990cbb3441f9ae188e36b31770 jdk7-b42
|
||||
41bd0a702bc8ec6feebd725a63e7c3227f82ab11 jdk7-b43
|
||||
5843778bda89b1d5ac8e1aa05e26930ac90b3145 jdk7-b44
|
||||
54dffad0bf066791a2793305875250c395011d5f jdk7-b45
|
||||
04b2620edc72de93671646e4720c5992c74ac8b5 jdk7-b46
|
||||
0c4657194eec95c08ba478aee9cfc3c295e41657 jdk7-b47
|
||||
1bf51a4c2627c2f0e0cbcc2cf0421bdb37f1f2b2 jdk7-b48
|
||||
6b84b04a80afe23262377c60913eebfc898f14c4 jdk7-b49
|
||||
5da0e6b9f4f18ef483c977337214b12ee0e1fc8f jdk7-b50
|
||||
|
||||
@@ -8,3 +8,20 @@ cbc8ad9dd0e085a607427ea35411990982f19a36 jdk7-b25
|
||||
3300a35a0bd56d695b92fe0b34f03ebbfc939064 jdk7-b31
|
||||
64da805be725721bf2004e7409a0d7a16fc8ddbc jdk7-b32
|
||||
bb1ef4ee3d2c8cbf43a37d372325a7952be590b9 jdk7-b33
|
||||
46a989ab932992b2084b946eeb322fa99b9fee6c jdk7-b34
|
||||
143c1abedb7d3095eff0f9ee5fec9bf48e3490fc jdk7-b35
|
||||
4b4f5fea8d7d0743f0c30d91fcd9bf9d96e5d2ad jdk7-b36
|
||||
744554f5a3290e11c71cd2ddb1aff49e431f9ed0 jdk7-b37
|
||||
cc47a76899ed33a2c513cb688348244c9b5a1288 jdk7-b38
|
||||
ab523b49de1fc73fefe6855ce1e0349bdbd7af29 jdk7-b39
|
||||
44be42de6693063fb191989bf0e188de2fa51e7c jdk7-b40
|
||||
541bdc5ad32fc33255944d0a044ad992f3d915e8 jdk7-b41
|
||||
94052b87287303527125026fe4b2698cf867ea83 jdk7-b42
|
||||
848e684279d2ba42577d9621d5b2e5af3823d12d jdk7-b43
|
||||
a395e3aac4744cc9033fcd819fad1239a45add52 jdk7-b44
|
||||
99846f001ca214015578d593802d26e27246a802 jdk7-b45
|
||||
e8a2a4d187773a62f3309b0fa265c13425bc2258 jdk7-b46
|
||||
d7744e86dedc21a8ecf6bdb73eb191b8eaf5b0da jdk7-b47
|
||||
4ae9f4bfdb98f65bd957e3fe72471b320150b38e jdk7-b48
|
||||
aee93a8992d2389121eb610c00a86196f3e2b9b0 jdk7-b49
|
||||
5111e13e44e542fe945b47ab154546daec36737d jdk7-b50
|
||||
|
||||
2
Makefile
2
Makefile
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1995-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1995-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
</head>
|
||||
<body style="background-color:lightcyan">
|
||||
<!-- ====================================================== -->
|
||||
+ <table width="100%">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td align="center">
|
||||
<img alt="OpenJDK"
|
||||
@@ -39,6 +39,11 @@
|
||||
<li><a href="#introduction">Introduction</a></li>
|
||||
<li><a href="#MBE">Minimum Build Environments</a></li>
|
||||
<li><a href="#SDBE">Specific Developer Build Environments</a></li>
|
||||
<ul>
|
||||
<li><a href="#fedora">Fedora Linux</a> </li>
|
||||
<li><a href="#centos">CentOS Linux</a> </li>
|
||||
<li><a href="#ubuntu">Ubuntu Linux</a> </li>
|
||||
</ul>
|
||||
<li><a href="#directories">Source Directory Structure</a> </li>
|
||||
<li><a href="#building">Build Information</a>
|
||||
<ul>
|
||||
@@ -93,7 +98,8 @@
|
||||
<h2><a name="MBE">Minimum Build Environments</a></h2>
|
||||
<blockquote>
|
||||
This file often describes specific requirements for what we call the
|
||||
"minimum build environments" (MBE) for the JDK.
|
||||
"minimum build environments" (MBE) for this
|
||||
specific release of the JDK,
|
||||
Building with the MBE will generate the most compatible
|
||||
bits that install on, and run correctly on, the most variations
|
||||
of the same base OS and hardware architecture.
|
||||
@@ -111,22 +117,22 @@
|
||||
<tr>
|
||||
<th>Base OS and Architecture</th>
|
||||
<th>OS</th>
|
||||
<th>Compiler</th>
|
||||
<th>C/C++ Compiler</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Linux X86 (32bit)</td>
|
||||
<td>Red Hat Enterprise Linux 4 </td>
|
||||
<td>Linux X86 (32-bit)</td>
|
||||
<td>Fedora 9</td>
|
||||
<td>gcc 4 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Linux X64 (64bit)</td>
|
||||
<td>Red Hat Enterprise Linux 4 </td>
|
||||
<td>Linux X64 (64-bit)</td>
|
||||
<td>Fedora 9</td>
|
||||
<td>gcc 4 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Solaris SPARC (32bit)</td>
|
||||
<td>Solaris SPARC (32-bit)</td>
|
||||
<td>Solaris 10 + patches
|
||||
<br>
|
||||
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
|
||||
@@ -135,7 +141,7 @@
|
||||
<td>Sun Studio 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Solaris SPARCV9 (64bit)</td>
|
||||
<td>Solaris SPARCV9 (64-bit)</td>
|
||||
<td>Solaris 10 + patches
|
||||
<br>
|
||||
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
|
||||
@@ -144,7 +150,7 @@
|
||||
<td>Sun Studio 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Solaris X86 (32bit)</td>
|
||||
<td>Solaris X86 (32-bit)</td>
|
||||
<td>Solaris 10 + patches
|
||||
<br>
|
||||
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
|
||||
@@ -153,7 +159,7 @@
|
||||
<td>Sun Studio 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Solaris X64 (64bit)</td>
|
||||
<td>Solaris X64 (64-bit)</td>
|
||||
<td>Solaris 10 + patches
|
||||
<br>
|
||||
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
|
||||
@@ -162,17 +168,28 @@
|
||||
<td>Sun Studio 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows X86 (32bit)</td>
|
||||
<td>Windows X86 (32-bit)</td>
|
||||
<td>Windows XP</td>
|
||||
<td>Microsoft Visual Studio .NET 2003 Professional</td>
|
||||
<td>Microsoft Visual Studio C++ 2008 Standard Edition</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Windows X64 (64bit)</td>
|
||||
<td>Windows X64 (64-bit)</td>
|
||||
<td>Windows Server 2003 - Enterprise x64 Edition</td>
|
||||
<td>Microsoft Platform SDK - April 2005</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>
|
||||
These same sources do indeed build on many more systems than the
|
||||
above older generation systems, again the above is just a minimum.
|
||||
<p>
|
||||
Compilation problems with newer or different C/C++ compilers is a
|
||||
common problem.
|
||||
Similarly, compilation problems related to changes to the
|
||||
<tt>/usr/include</tt> or system header files is also a
|
||||
common problem with newer or unreleased OS versions.
|
||||
Please report these types of problems as bugs so that they
|
||||
can be dealt with accordingly.
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<hr>
|
||||
@@ -182,14 +199,64 @@
|
||||
we will try to provide what information we have available to us.
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<h3><a name="fedora">Fedora</a></h3>
|
||||
<h3><a name="fedora">Fedora 9</a></h3>
|
||||
<blockquote>
|
||||
TBD
|
||||
After installing
|
||||
<a href="http://www.fedoraproject.org/">Fedora 9</a>
|
||||
you need to make sure you have
|
||||
the "Software Development" bundle installed, plus the
|
||||
following packages:
|
||||
<blockquote>
|
||||
<ul>
|
||||
<li>cups devel: Cups Development Package</li>
|
||||
<li>freetype 2.3+ devel: Freetype 2.3 Development Package</li>
|
||||
<li>hg: Mercurial, if you need to clone or manage source repositories</li>
|
||||
<li>ksh: May be needed when using <tt>webrev</tt></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
Always a good idea to do a complete Software Update/Refresh
|
||||
after you get all the packages installed.
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<h3><a name="debian">Debian</a></h3>
|
||||
<h3><a name="centos">CentOS 5.2</a></h3>
|
||||
<blockquote>
|
||||
TBD
|
||||
After installing
|
||||
<a href="http://www.centos.org/">CentOS 5.2</a>
|
||||
you need to make sure you have
|
||||
the following Development bundles installed:
|
||||
<blockquote>
|
||||
<ul>
|
||||
<li>Development Libraries</li>
|
||||
<li>Development Tools</li>
|
||||
<li>Java Development</li>
|
||||
<li>X Software Development</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
Plus the following packages:
|
||||
<blockquote>
|
||||
<ul>
|
||||
<li>cups devel: Cups Development Package</li>
|
||||
<li>alsa devel: Alsa Development Package</li>
|
||||
<li>ant: Ant Package</li>
|
||||
<li>Xi devel: libXi.so Development Package</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<p>
|
||||
The freetype 2.3 packages don't seem to be available,
|
||||
but the freetype 2.3 sources can be downloaded, built,
|
||||
and installed easily enough from
|
||||
<a href="http://downloads.sourceforge.net/freetype">
|
||||
the freetype site</a>.
|
||||
Build and install with something like:
|
||||
<blockquote>
|
||||
<tt>./configure && make && sudo -u root make install</tt>
|
||||
</blockquote>
|
||||
<p>
|
||||
Mercurial packages could not be found easily, but a Google
|
||||
search should find ones, and they usually include Python if
|
||||
it's needed.
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<h3><a name="ubuntu">Ubuntu</a></h3>
|
||||
@@ -433,7 +500,7 @@
|
||||
not work due to a lack of support for MS-DOS drive letter paths
|
||||
like <tt>C:/</tt> or <tt>C:\</tt>.
|
||||
Use a 3.80 version, or find a newer
|
||||
version that has this problem fixed, like 3.82.
|
||||
version that has this problem fixed.
|
||||
The older 3.80 version of make.exe can be downloaded with this
|
||||
<a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank">
|
||||
link</a>.
|
||||
@@ -520,8 +587,8 @@
|
||||
</li>
|
||||
<li>
|
||||
Install
|
||||
<a href="#ant">Ant</a>, set
|
||||
<tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
|
||||
<a href="#ant">Ant</a>,
|
||||
make sure it is in your PATH.
|
||||
</li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
@@ -537,7 +604,7 @@
|
||||
Approximately 1.4 GB of free disk
|
||||
space is needed for a 32-bit build.
|
||||
<p>
|
||||
If you are building the 64bit version, you should
|
||||
If you are building the 64-bit version, you should
|
||||
run the command "isainfo -v" to verify that you have a
|
||||
64-bit installation, it should say <tt>sparcv9</tt> or
|
||||
<tt>amd64</tt>.
|
||||
@@ -585,8 +652,8 @@
|
||||
</li>
|
||||
<li>
|
||||
Install
|
||||
<a href="#ant">Ant</a>, set
|
||||
<tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
|
||||
<a href="#ant">Ant</a>,
|
||||
make sure it is in your PATH.
|
||||
</li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
@@ -595,11 +662,11 @@
|
||||
<h3><a name="windows">Basic Windows System Setup</a></h3>
|
||||
<blockquote>
|
||||
<strong>i586 only:</strong>
|
||||
The minimum recommended hardware for building the 32bit or X86
|
||||
The minimum recommended hardware for building the 32-bit or X86
|
||||
Windows version is an Pentium class processor or better, at least
|
||||
512 MB of RAM, and approximately 600 MB of free disk space.
|
||||
<strong>
|
||||
NOTE: The Windows 2000 build machines need to use the
|
||||
NOTE: The Windows build machines need to use the
|
||||
file system NTFS.
|
||||
Build machines formatted to FAT32 will not work
|
||||
because FAT32 doesn't support case-sensitivity in file names.
|
||||
@@ -664,7 +731,10 @@
|
||||
</li>
|
||||
<li>
|
||||
Install the
|
||||
<a href="#msvc">Microsoft Visual Studio .NET 2003 Professional</a> or the
|
||||
<a href="#msvc">Microsoft Visual Studio Compilers</a> (32-bit).
|
||||
</li>
|
||||
<li>
|
||||
Install the
|
||||
<a href="#mssdk">Microsoft Platform SDK</a>.
|
||||
</li>
|
||||
<li>
|
||||
@@ -677,7 +747,8 @@
|
||||
</li>
|
||||
<li>
|
||||
Install
|
||||
<a href="#ant">Ant</a>, set
|
||||
<a href="#ant">Ant</a>,
|
||||
make sure it is in your PATH and set
|
||||
<tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
|
||||
</li>
|
||||
</ol>
|
||||
@@ -732,7 +803,9 @@
|
||||
you must first download and install the appropriate
|
||||
binary plug bundles for the OpenJDK, go to the
|
||||
<a href="http://openjdk.java.net" target="_blank">OpenJDK</a> site and select
|
||||
the "<b>Bundles(7)</b>" link and download the binaryplugs for
|
||||
the
|
||||
"<b>Bundles(7)</b>"
|
||||
link and download the binaryplugs for
|
||||
your particular platform.
|
||||
The file downloaded is a jar file that must be extracted by running
|
||||
the jar file with:
|
||||
@@ -766,16 +839,14 @@
|
||||
<blockquote>
|
||||
All OpenJDK builds require access to least Ant 1.6.5.
|
||||
The Ant tool is available from the
|
||||
<a href="http://ant.apache.org/antlibs/bindownload.cgi" target="_blank">
|
||||
<a href="http://ant.apache.org" target="_blank">
|
||||
Ant download site</a>.
|
||||
You should always set
|
||||
You should always make sure <tt>ant</tt> is in your PATH, and
|
||||
on Windows you may also need to set
|
||||
<tt><a href="#ANT_HOME">ANT_HOME</a></tt>
|
||||
to point to the location of
|
||||
the Ant installation, this is the directory pathname
|
||||
that contains a <tt>bin and lib</tt>.
|
||||
It's also a good idea to also place its <tt>bin</tt> directory
|
||||
in the <tt>PATH</tt> environment variable, although it's
|
||||
not absolutely required.
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
|
||||
@@ -807,25 +878,9 @@
|
||||
<blockquote>
|
||||
<strong><a name="gcc">Linux gcc/binutils</a></strong>
|
||||
<blockquote>
|
||||
The GNU gcc compiler version should be 3.2.2 or newer.
|
||||
The binutils package should be 2.11.93.0.2-11 or newer.
|
||||
The GNU gcc compiler version should be 4 or newer.
|
||||
The compiler used should be the default compiler installed
|
||||
in <tt>/usr/bin</tt>.
|
||||
<p>
|
||||
Older Linux systems may require a gcc and bunutils update.
|
||||
The Redhat Enterprise Advanced Server 2.1 update 2 system
|
||||
is one of these systems.
|
||||
RedHat Linux users can obtain this binutils package from
|
||||
<a href="http://www.redhat.com"
|
||||
target="_blank">Redhat web site</a>.
|
||||
You will need to remove the default compiler and binutils
|
||||
packages and install the required packages
|
||||
into the default location on the system.
|
||||
However if you have a new video card driver, like
|
||||
Geforce 4 it is best to use
|
||||
the same compiler as the kernel was built with to
|
||||
build the new video card driver module.
|
||||
So you should build the modules before making this change.
|
||||
</blockquote>
|
||||
<strong><a name="studio">Solaris: Sun Studio</a></strong>
|
||||
<blockquote>
|
||||
@@ -848,19 +903,20 @@
|
||||
are also an option, although these compilers have not
|
||||
been extensively used yet.
|
||||
</blockquote>
|
||||
<strong><a name="msvc">Windows i586: Microsoft Visual Studio .NET 2003 Professional</a></strong>
|
||||
<strong><a name="msvc">Windows i586: Microsoft Visual Studio Compilers</a></strong>
|
||||
<blockquote>
|
||||
The 32-bit OpenJDK Windows build
|
||||
requires Microsoft Visual Studio .NET 2003 (VS2003) Professional
|
||||
requires
|
||||
Microsoft Visual Studio C++ 2008 (VS2008) Standard
|
||||
Edition compiler.
|
||||
The compiler and other tools are expected to reside
|
||||
in the location defined by the variable <tt>VS71COMNTOOLS</tt> which
|
||||
is set by the Microsoft Visual Studio .NET installer.
|
||||
in the location defined by the variable
|
||||
<tt>VS90COMNTOOLS</tt> which
|
||||
is set by the Microsoft Visual Studio installer.
|
||||
<p>
|
||||
Once the compiler is installed,
|
||||
it is recommended that you run <tt>VCVARS32.BAT</tt>
|
||||
to set the compiler environment variables
|
||||
<tt>MSVCDIR</tt>,
|
||||
<tt>INCLUDE</tt>,
|
||||
<tt>LIB</tt>, and
|
||||
<tt>PATH</tt>
|
||||
@@ -868,11 +924,12 @@
|
||||
OpenJDK.
|
||||
The above environment variables <b>MUST</b> be set.
|
||||
<p>
|
||||
The Microsoft Visual Studio .NET 2005 (VS2005) compiler
|
||||
will not work at this time due to the new runtime dll
|
||||
and the manifest requirements.
|
||||
<b>WARNING:</b> Make sure you check out the
|
||||
<a href="#cygwin">CYGWIN link.exe WARNING</a>.
|
||||
The path <tt>/usr/bin</tt> must be after the path to the
|
||||
Visual Studio product.
|
||||
</blockquote>
|
||||
<strong><a name="mssdk">Windows X64: Microsoft Platform SDK April 2005</a></strong>
|
||||
<strong><a name="mssdk">Windows: Microsoft Platform SDK</a></strong>
|
||||
<blockquote>
|
||||
On <b>X64</b>, the Microsoft Platform Software
|
||||
Development Kit (SDK), April 2005 Edition compiler,
|
||||
@@ -893,10 +950,9 @@
|
||||
OpenJDK.
|
||||
The above environment variables <b>MUST</b> be set.
|
||||
<p>
|
||||
Note that this compiler may say it's version is a
|
||||
Microsoft Visual Studio .NET 2005 (VS2005), but be careful,
|
||||
it will not match the official VS2005 product.
|
||||
This Platform SDK compiler is only used on X64 builds.
|
||||
This Platform SDK compiler is only used on X64 builds
|
||||
but other parts of the Platform SDK may be used
|
||||
for the X86 builds.
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
@@ -1079,6 +1135,7 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Binary Name</td>
|
||||
<td>Category</td>
|
||||
<td>Package</td>
|
||||
<td>Description</td>
|
||||
</tr>
|
||||
@@ -1087,50 +1144,59 @@
|
||||
<tr>
|
||||
<td>ar.exe</td>
|
||||
<td>Devel</td>
|
||||
<td>binutils: The GNU assembler, linker and binary
|
||||
<td>binutils</td>
|
||||
<td>The GNU assembler, linker and binary
|
||||
utilities</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>make.exe</td>
|
||||
<td>Devel</td>
|
||||
<td>make: The GNU version of the 'make' utility<br>
|
||||
<td>make</td>
|
||||
<td>The GNU version of the 'make' utility built for CYGWIN.<br>
|
||||
<b>NOTE</b>: See <a href="#gmake">the GNU make section</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>m4.exe</td>
|
||||
<td>Interpreters</td>
|
||||
<td>m4: GNU implementation of the traditional Unix macro
|
||||
<td>m4</td>
|
||||
<td>GNU implementation of the traditional Unix macro
|
||||
processor</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cpio.exe</td>
|
||||
<td>Utils</td>
|
||||
<td>cpio: A program to manage archives of files</td>
|
||||
<td>cpio</td>
|
||||
<td>A program to manage archives of files</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>gawk.exe</td>
|
||||
<td>Utils</td>
|
||||
<td>awk: Pattern-directed scanning and processing language</td>
|
||||
<td>awk</td>
|
||||
<td>Pattern-directed scanning and processing language</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>file.exe</td>
|
||||
<td>Utils</td>
|
||||
<td>file: Determines file type using 'magic' numbers</td>
|
||||
<td>file</td>
|
||||
<td>Determines file type using 'magic' numbers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>zip.exe</td>
|
||||
<td>Archive</td>
|
||||
<td>zip: Package and compress (archive) files</td>
|
||||
<td>zip</td>
|
||||
<td>Package and compress (archive) files</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>unzip.exe</td>
|
||||
<td>Archive</td>
|
||||
<td>unzip: Extract compressed files in a ZIP archive</td>
|
||||
<td>unzip</td>
|
||||
<td>Extract compressed files in a ZIP archive</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>free.exe</td>
|
||||
<td>Procps</td>
|
||||
<td>free: Display amount of free and used memory in the system</td>
|
||||
<td>System</td>
|
||||
<td>procps</td>
|
||||
<td>Display amount of free and used memory in the system</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1144,6 +1210,13 @@
|
||||
section on
|
||||
<a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
|
||||
BLODA (applications that interfere with CYGWIN)</a>.
|
||||
<p>
|
||||
<b>WARNING:</b>
|
||||
Be very careful with <b><tt>link.exe</tt></b>, it will conflict
|
||||
with the Visual Studio version. You need the Visual Studio
|
||||
version of <tt>link.exe</tt>, not the CYGWIN one.
|
||||
So it's important that the Visual Studio paths in PATH preceed
|
||||
the CYGWIN path <tt>/usr/bin</tt>.
|
||||
</blockquote>
|
||||
<strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
|
||||
<blockquote>
|
||||
@@ -1164,37 +1237,37 @@
|
||||
<strong><a name="msvcrt"><tt>MSVCRT.DLL</tt></a></strong>
|
||||
<blockquote>
|
||||
<strong>i586 only:</strong>
|
||||
The OpenJDK 32bit build requires access to
|
||||
<tt>MSVCRT.DLL</tt> version 6.00.8337.0 or newer.
|
||||
The OpenJDK 32-bit build requires access to a redistributable
|
||||
<tt>MSVCRT.DLL</tt>.
|
||||
If the <tt>MSVCRT.DLL</tt> is not installed in
|
||||
the system32 directory set the
|
||||
<a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
|
||||
variable to the location.
|
||||
variable to the location of this file.
|
||||
<p>
|
||||
<strong>X64 only:</strong>
|
||||
The OpenJDK 64bit build requires access to
|
||||
<tt>MSVCRT.DLL</tt> version 7.0.3790.0 or newer, which is
|
||||
The OpenJDK 64-bit build requires access to a redistributable
|
||||
<tt>MSVCRT.DLL</tt>, which is
|
||||
usually supplied by the
|
||||
<a href="#mssdk">Platform SDK</a>.
|
||||
If it is not available from the Platform SDK,
|
||||
set the
|
||||
<a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
|
||||
variable to the location.
|
||||
variable to the location of this file.
|
||||
</blockquote>
|
||||
<strong><tt><a name="msvcr71">MSVCR71.DLL</a></tt></strong>
|
||||
<strong><tt><a name="msvcr90">MSVCR90.DLL</a></tt></strong>
|
||||
<blockquote>
|
||||
<strong>i586 only:</strong>
|
||||
The
|
||||
OpenJDK
|
||||
build requires access to
|
||||
MSVCR71.DLL version 7.10.3052.4 or newer which should be
|
||||
build requires access to a redistributable
|
||||
<tt>MSVCR90.DLL</tt> which should be
|
||||
supplied by the
|
||||
<a href="#msvc">Visual Studio product</a>
|
||||
If the <tt>MSVCR71.DLL</tt> is not available from the
|
||||
<a href="#msvc">Visual Studio product</a>.
|
||||
If the <tt>MSVCR90.DLL</tt> is not available from the
|
||||
Visual Studio product
|
||||
set the
|
||||
<a href="#ALT_MSVCR71_DLL_PATH"><tt>ALT_MSVCR71_DLL_PATH</tt></a>
|
||||
variable to the location.
|
||||
<a href="#ALT_MSVCR90_DLL_PATH"><tt>ALT_MSVCR90_DLL_PATH</tt></a>
|
||||
variable to the location of this file.
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
@@ -1282,13 +1355,38 @@
|
||||
document) that can impact the build are:
|
||||
<blockquote>
|
||||
<dl>
|
||||
<dt><a name="ALT_BINARY_PLUGS_PATH"><tt>ALT_BINARY_PLUGS_PATH</tt></a></dt>
|
||||
<dt><a name="path"><tt>PATH</tt></a> </dt>
|
||||
<dd>Typically you want to set the <tt>PATH</tt> to include:
|
||||
<ul>
|
||||
<li>The location of the GNU make binary</li>
|
||||
<li>The location of the Bootstrap JDK <tt>java</tt>
|
||||
(see <a href="#bootjdk">Bootstrap JDK</a>)</li>
|
||||
<li>The location of the C/C++ compilers
|
||||
(see <a href="#compilers"><tt>compilers</tt></a>)</li>
|
||||
<li>The location or locations for the Unix command utilities
|
||||
(e.g. <tt>/usr/bin</tt>)</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt><tt>MILESTONE</tt> </dt>
|
||||
<dd>
|
||||
The location of the binary plugs installation.
|
||||
See <a href="#binaryplugs">Binary Plugs</a> for more information.
|
||||
You should always have a local copy of a
|
||||
recent Binary Plugs install image
|
||||
and set this variable to that location.
|
||||
The milestone name for the build (<i>e.g.</i>"beta").
|
||||
The default value is "internal".
|
||||
</dd>
|
||||
<dt><tt>BUILD_NUMBER</tt> </dt>
|
||||
<dd>
|
||||
The build number for the build (<i>e.g.</i> "b27").
|
||||
The default value is "b00".
|
||||
</dd>
|
||||
<dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt>
|
||||
<dd>The <tt>ARCH_DATA_MODEL</tt> variable
|
||||
is used to specify whether the build is to generate 32-bit or 64-bit
|
||||
binaries.
|
||||
The Solaris build supports either 32-bit or 64-bit builds, but
|
||||
Windows and Linux will support only one, depending on the specific
|
||||
OS being used.
|
||||
Normally, setting this variable is only necessary on Solaris.
|
||||
Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries,
|
||||
or to <tt>64</tt> for generating 64-bit binaries.
|
||||
</dd>
|
||||
<dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt>
|
||||
<dd>
|
||||
@@ -1297,25 +1395,89 @@
|
||||
You should always install your own local Bootstrap JDK and
|
||||
always set <tt>ALT_BOOTDIR</tt> explicitly.
|
||||
</dd>
|
||||
<dt><a name="ALT_BUILD_BINARY_PLUGS_PATH"><tt>ALT_BUILD_BINARY_PLUGS_PATH</tt></a></dt>
|
||||
<dt><a name="ALT_BINARY_PLUGS_PATH"><tt>ALT_BINARY_PLUGS_PATH</tt></a></dt>
|
||||
<dd>
|
||||
These are useful in managing builds on multiple platforms.
|
||||
The default network location for all of the binary plug images
|
||||
for all platforms.
|
||||
If <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
|
||||
is not set, this directory will be used and should contain
|
||||
the following directories:
|
||||
<tt>solaris-sparc</tt>,
|
||||
<tt>solaris-i586</tt>,
|
||||
<tt>solaris-sparcv9</tt>,
|
||||
<tt>solaris-amd64</tt>,
|
||||
<tt>linux-i586</tt>,
|
||||
<tt>linux-amd64</tt>,
|
||||
<tt>windows-i586</tt>,
|
||||
and
|
||||
<tt>windows-amd64</tt>.
|
||||
Where each of these directories contain the binary plugs image
|
||||
for that platform.
|
||||
The location of the binary plugs installation.
|
||||
See <a href="#binaryplugs">Binary Plugs</a> for more information.
|
||||
You should always have a local copy of a
|
||||
recent Binary Plugs install image
|
||||
and set this variable to that location.
|
||||
</dd>
|
||||
<dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The location of a previously built JDK installation.
|
||||
See <a href="#importjdk">Optional Import JDK</a> for more information.
|
||||
</dd>
|
||||
<dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt>
|
||||
<dd>
|
||||
An override for specifying the (absolute) path of where the
|
||||
build output is to go.
|
||||
The default output directory will be build/<i>platform</i>.
|
||||
</dd>
|
||||
<dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt>
|
||||
<dd>
|
||||
The location of the C/C++ compiler.
|
||||
The default varies depending on the platform.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt>
|
||||
<dd>
|
||||
The location of the <a href="#cacerts">cacerts</a> file.
|
||||
The default will refer to
|
||||
<tt>jdk/src/share/lib/security/cacerts</tt>.
|
||||
</dd>
|
||||
<dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt>
|
||||
<dd>
|
||||
The location of the CUPS header files.
|
||||
See <a href="#cups">CUPS information</a> for more information.
|
||||
If this path does not exist the fallback path is
|
||||
<tt>/usr/include</tt>.
|
||||
</dd>
|
||||
<dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The location of the FreeType shared library.
|
||||
See <a href="#freetype">FreeType information</a> for details.
|
||||
</dd>
|
||||
<dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The location of the FreeType header files.
|
||||
See <a href="#freetype">FreeType information</a> for details.
|
||||
</dd>
|
||||
<dt><a name="ALT_JDK_DEVTOOLS_PATH"><tt>ALT_JDK_DEVTOOLS_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The default root location of the devtools.
|
||||
The default value is
|
||||
<tt>$(ALT_SLASH_JAVA)/devtools</tt>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
The location of tools like the
|
||||
<a href="#zip"><tt>zip</tt> and <tt>unzip</tt></a>
|
||||
binaries, but might also contain the GNU make utility
|
||||
(<tt><i>gmake</i></tt>).
|
||||
So this area is a bit of a grab bag, especially on Windows.
|
||||
The default value depends on the platform and
|
||||
Unix Commands being used.
|
||||
On Linux the default will be
|
||||
<tt>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</tt>,
|
||||
on Solaris
|
||||
<tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>,
|
||||
and on Windows with CYGWIN
|
||||
<tt>/usr/bin</tt>.
|
||||
</dd>
|
||||
<dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
|
||||
<dd>
|
||||
<strong>Solaris only:</strong>
|
||||
An override for specifying where the Unix CCS
|
||||
command set are located.
|
||||
The default location is <tt>/usr/ccs/bin</tt>
|
||||
</dd>
|
||||
<dt><a name="ALT_SLASH_JAVA"><tt>ALT_SLASH_JAVA</tt></a></dt>
|
||||
<dd>
|
||||
The default root location for many of the ALT path locations
|
||||
of the following ALT variables.
|
||||
The default value is
|
||||
<tt>"/java"</tt> on Solaris and Linux,
|
||||
<tt>"J:"</tt> on Windows.
|
||||
</dd>
|
||||
<dt><a name="ALT_BUILD_JDK_IMPORT_PATH"><tt>ALT_BUILD_JDK_IMPORT_PATH</tt></a></dt>
|
||||
<dd>
|
||||
@@ -1337,166 +1499,57 @@
|
||||
Where each of these directories contain the import JDK image
|
||||
for that platform.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt>
|
||||
<dt><a name="ALT_BUILD_BINARY_PLUGS_PATH"><tt>ALT_BUILD_BINARY_PLUGS_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The location of the <a href="#cacerts">cacerts</a> file.
|
||||
The default will refer to
|
||||
<tt>jdk/src/share/lib/security/cacerts</tt>.
|
||||
These are useful in managing builds on multiple platforms.
|
||||
The default network location for all of the binary plug images
|
||||
for all platforms.
|
||||
If <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
|
||||
is not set, this directory will be used and should contain
|
||||
the following directories:
|
||||
<tt>solaris-sparc</tt>,
|
||||
<tt>solaris-i586</tt>,
|
||||
<tt>solaris-sparcv9</tt>,
|
||||
<tt>solaris-amd64</tt>,
|
||||
<tt>linux-i586</tt>,
|
||||
<tt>linux-amd64</tt>,
|
||||
<tt>windows-i586</tt>,
|
||||
and
|
||||
<tt>windows-amd64</tt>.
|
||||
Where each of these directories contain the binary plugs image
|
||||
for that platform.
|
||||
</dd>
|
||||
<dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt>
|
||||
<dt><strong>Windows specific:</strong></dt>
|
||||
<dd>
|
||||
The location of the C/C++ compiler.
|
||||
The default varies depending on the platform.
|
||||
</dd>
|
||||
<dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt>
|
||||
<dd>
|
||||
The location of the CUPS header files.
|
||||
See <a href="#cups">CUPS information</a> for more information.
|
||||
If this path does not exist the fallback path is
|
||||
<tt>/usr/include</tt>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
The location of tools like the
|
||||
<a href="#zip"><tt>zip</tt> and <tt>unzip</tt></a>
|
||||
binaries, but might also contain the GNU make utility
|
||||
(<tt><i>gmake</i></tt>).
|
||||
So this area is a bit of a grab bag, especially on Windows.
|
||||
The default value depends on the platform and
|
||||
Unix Commands being used.
|
||||
On Linux the default will be
|
||||
<tt>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</tt>,
|
||||
on Solaris
|
||||
<tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>,
|
||||
on Windows with MKS
|
||||
<tt>%SYSTEMDRIVE%/UTILS</tt>,
|
||||
and on Windows with CYGWIN
|
||||
<tt>/usr/bin</tt>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
<strong>Windows Only:</strong>
|
||||
The location of the
|
||||
<a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
|
||||
The default will be to try and use the DirectX environment
|
||||
variable <tt>DXSDK_DIR</tt>,
|
||||
failing that, look in <tt>C:/DXSDK</tt>.
|
||||
</dd>
|
||||
<dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The location of the FreeType header files.
|
||||
See <a href="#freetype">FreeType information</a> for details.
|
||||
</dd>
|
||||
<dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The location of the FreeType shared library.
|
||||
See <a href="#freetype">FreeType information</a> for details.
|
||||
</dd>
|
||||
<dt><a name="ALT_JDK_DEVTOOLS_PATH"><tt>ALT_JDK_DEVTOOLS_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The default root location of the devtools.
|
||||
The default value is
|
||||
<tt>$(ALT_SLASH_JAVA)/devtools</tt>.
|
||||
</dd>
|
||||
<dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt>
|
||||
<dd>
|
||||
The location of a previously built JDK installation.
|
||||
See <a href="#importjdk">Optional Import JDK</a> for more information.
|
||||
</dd>
|
||||
<dt><a name="ALT_MSDEVTOOLS_PATH"><tt>ALT_MSDEVTOOLS_PATH</tt></a> </dt>
|
||||
<dd>
|
||||
<strong>Windows Only:</strong>
|
||||
The location of the Microsoft Visual Studio .NET 2003
|
||||
tools 'bin' directory.
|
||||
The default is usually derived from
|
||||
<a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_MSVCR71_DLL_PATH">ALT_MSVCR71_DLL_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
<strong>Windows i586 only:</strong>
|
||||
The location of the
|
||||
<a href="#msvcr71"><tt>MSVCR71.DLL</tt></a>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_MSVCRT_DLL_PATH">ALT_MSVCRT_DLL_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
<strong>Windows Only:</strong>
|
||||
The location of the
|
||||
<a href="#msvcrt"><tt>MSVCRT.DLL</tt></a>.
|
||||
</dd>
|
||||
<dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt>
|
||||
<dd>
|
||||
An override for specifying the (absolute) path of where the
|
||||
build output is to go.
|
||||
The default output directory will be build/<i>platform</i>.
|
||||
</dd>
|
||||
<dt><a name="ALT_SLASHJAVA"><tt>ALT_SLASHJAVA</tt></a></dt>
|
||||
<dd>
|
||||
The default root location for many of the ALT path locations
|
||||
of the following ALT variables.
|
||||
The default value is
|
||||
<tt>"/java"</tt> on Solaris and Linux,
|
||||
<tt>"J:"</tt> on Windows.
|
||||
</dd>
|
||||
<dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
|
||||
<dd>
|
||||
<strong>Solaris only:</strong>
|
||||
An override for specifying where the Unix CCS
|
||||
command set are located.
|
||||
The default location is <tt>/usr/ccs/bin</tt>
|
||||
</dd>
|
||||
<dt><a name="ALT_UNIXCOMMAND_PATH"><tt>ALT_UNIXCOMMAND_PATH</tt></a> </dt>
|
||||
<dd>
|
||||
An override for specifying where the
|
||||
Unix command set are located.
|
||||
The default location varies depending on the platform,
|
||||
<tt>"%SYSTEMDRIVE%/MKSNT"</tt> or
|
||||
<tt>$(ROOTDIR)</tt> on Windows with MKS, otherwise it's
|
||||
<tt>"/bin"</tt> or <tt>/usr/bin</tt>.
|
||||
</dd>
|
||||
<dt><a name="ALT_USRBIN_PATH"><tt>ALT_USRBIN_PATH</tt></a></dt>
|
||||
<dd>
|
||||
An override for specifying where the
|
||||
Unix <tt>/usr/bin</tt> commands are located. You usually do not need
|
||||
to set this variable: the default location is <tt>/usr/bin</tt>)
|
||||
</dd>
|
||||
<dt><a name="ANT_HOME"><tt>ANT_HOME</tt></a></dt>
|
||||
<dd>
|
||||
The location of the Ant installation.
|
||||
See <a href="#ant">Ant</a> for more information.
|
||||
You should always set <tt>ANT_HOME</tt> explicitly.
|
||||
</dd>
|
||||
<dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt>
|
||||
<dd>The <tt>ARCH_DATA_MODEL</tt> variable
|
||||
is used to specify whether the build is to generate 32-bit or 64-bit
|
||||
binaries.
|
||||
The Solaris build supports either 32-bit or 64-bit builds, but
|
||||
Windows and Linux will support only one, depending on the specific
|
||||
OS being used.
|
||||
Normally, setting this variable is only necessary on Solaris.
|
||||
Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries,
|
||||
or to <tt>64</tt> for generating 64-bit binaries.
|
||||
</dd>
|
||||
<dt><tt>BUILD_NUMBER</tt> </dt>
|
||||
<dd>
|
||||
The build number for the build (<i>e.g.</i> "b27").
|
||||
The default value is "b00".
|
||||
</dd>
|
||||
<dt><tt>MILESTONE</tt> </dt>
|
||||
<dd>
|
||||
The milestone name for the build (<i>e.g.</i>"beta").
|
||||
The default value is "internal".
|
||||
</dd>
|
||||
<dt><a name="path"><tt>PATH</tt></a> </dt>
|
||||
<dd>Typically you want to set the <tt>PATH</tt> to include:
|
||||
<ul>
|
||||
<li>The location of the GNU make binary</li>
|
||||
<li>The location of the Bootstrap JDK <tt>java</tt>
|
||||
(see <a href="#bootjdk">Bootstrap JDK</a>)</li>
|
||||
<li>The location of the C/C++ compilers
|
||||
(see <a href="#compilers"><tt>compilers</tt></a>)</li>
|
||||
<li>The location or locations for the Unix command utilities
|
||||
(e.g. <tt>/usr/bin</tt>)</li>
|
||||
</ul>
|
||||
<dl>
|
||||
<dt><a name="ALT_MSDEVTOOLS_PATH"><tt>ALT_MSDEVTOOLS_PATH</tt></a> </dt>
|
||||
<dd>
|
||||
The location of the
|
||||
Microsoft Visual Studio
|
||||
tools 'bin' directory.
|
||||
The default is usually derived from
|
||||
<a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
The location of the
|
||||
<a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
|
||||
The default will be to try and use the DirectX environment
|
||||
variable <tt>DXSDK_DIR</tt>,
|
||||
failing that, look in <tt>C:/DXSDK</tt>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_MSVCRT_DLL_PATH">ALT_MSVCRT_DLL_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
The location of the
|
||||
<a href="#msvcrt"><tt>MSVCRT.DLL</tt></a>.
|
||||
</dd>
|
||||
<dt><tt><a name="ALT_MSVCR90_DLL_PATH">ALT_MSVCR90_DLL_PATH</a></tt> </dt>
|
||||
<dd>
|
||||
<strong>i586 only:</strong>
|
||||
The location of the
|
||||
<a href="#msvcr90"><tt>MSVCR90.DLL</tt></a>.
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
</blockquote>
|
||||
@@ -1584,8 +1637,8 @@
|
||||
This is caused by a missing libstdc++.a library.
|
||||
This is installed as part of a specific package
|
||||
(e.g. libstdc++.so.devel.386).
|
||||
By default some 64bit Linux versions (e.g. Fedora)
|
||||
only install the 64bit version of the libstdc++ package.
|
||||
By default some 64-bit Linux versions (e.g. Fedora)
|
||||
only install the 64-bit version of the libstdc++ package.
|
||||
Various parts of the JDK build require a static
|
||||
link of the C++ runtime libraries to allow for maximum
|
||||
portability of the built images.
|
||||
|
||||
@@ -8,3 +8,20 @@ c0252adbb2abbfdd6c35595429ac6fbdd98e20ac jdk7-b30
|
||||
ef6af34d75a7b44e77083f1d4ee47631fa09d3b4 jdk7-b31
|
||||
80a0f46a6203e727012bd579fe38a609b83decce jdk7-b32
|
||||
6a5b9d2f8b20de54e3bfe33cd12bd0793caedc4e jdk7-b33
|
||||
0a812b9824e5d17b073765d1505594b49ff88a10 jdk7-b34
|
||||
3867c4d14a5bfdbb37c97b4874ccb0ee5343111c jdk7-b35
|
||||
0723891eb8d1c27e67c54163af0b4cea05a4e036 jdk7-b36
|
||||
59d5848bdedebe91cc2753acce78911bcb4a66db jdk7-b37
|
||||
08be802754b0296c91a7713b6d85a015dbcd5349 jdk7-b38
|
||||
55078b6661e286e90387d1d9950bd865f5cc436e jdk7-b39
|
||||
184e21992f47a8d730df1adc5b21a108f3125489 jdk7-b40
|
||||
c90eeda9594ed2983403e2049aed8d503126c62e jdk7-b41
|
||||
ccd6a16502e0650d91d85c4b86be05cbcd461a87 jdk7-b42
|
||||
9cd740d48a4855321d69f137a7109c00bcda76be jdk7-b43
|
||||
9803dac7254041b30ca65e3852d4c566b9757c3b jdk7-b44
|
||||
68814aa5b44b1f16931a97e7cd4028c70eb9586b jdk7-b45
|
||||
1691dbfc08f8ee3f4e23a1ff30cdff920718696c jdk7-b46
|
||||
167ad0164301f318b069a947e1c9c07ed667748a jdk7-b47
|
||||
0be222241fd405e48915647facfaa176621b39b9 jdk7-b48
|
||||
d70978bc64bc7a04be7797ab0dcd9b7b1b3a6bff jdk7-b49
|
||||
0edbd0074b02b42b2b83cc47cb391d4869b7a8ec jdk7-b50
|
||||
|
||||
@@ -112,8 +112,6 @@ ifndef TARGET_JAVA
|
||||
TARGET_JAVA = java
|
||||
endif
|
||||
|
||||
NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
|
||||
|
||||
SELF = $(lastword $(MAKEFILE_LIST))
|
||||
|
||||
# for jdk, we generate the following:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2003-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2002-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2003-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2003-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2003-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2002-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1997-2002 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1997-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1999-2009 Sun Microsystems, 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
|
||||
@@ -58,11 +58,24 @@ PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
|
||||
|
||||
# The following DLL's are considered MS runtime libraries and should
|
||||
# not to be REBASEd, see deploy/make/common/Release.gmk.
|
||||
# msvcrt.dll, msvcr71.dll: Microsoft runtimes
|
||||
# msvcrt.dll, msvcrnn.dll [msvcr71 or msvcr80 or msvcr90] : Microsoft runtimes
|
||||
MS_RUNTIME_LIBRARIES = msvcrt.dll
|
||||
MSVCRNN_DLL =
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ifeq ($(COMPILER_VERSION), VS2003)
|
||||
MS_RUNTIME_LIBRARIES += msvcr71.dll
|
||||
MSVCRNN_DLL = msvcr71.dll
|
||||
MSVCPNN_DLL = msvcp71.dll
|
||||
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
|
||||
endif
|
||||
ifeq ($(COMPILER_VERSION), VS2005)
|
||||
MSVCRNN_DLL = msvcr80.dll
|
||||
MSVCPNN_DLL = msvcp80.dll
|
||||
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
|
||||
endif
|
||||
ifeq ($(COMPILER_VERSION), VS2008)
|
||||
MSVCRNN_DLL = msvcr90.dll
|
||||
MSVCPNN_DLL = msvcp90.dll
|
||||
MS_RUNTIME_LIBRARIES += $(MSVCRNN_DLL)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -148,6 +161,20 @@ ifeq ($(CC_VERSION),msvc)
|
||||
CC_LOWER_OPT = -O1
|
||||
endif
|
||||
endif
|
||||
ifeq ($(COMPILER_VERSION), VS2008)
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
GX_OPTION = -EHsc
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
CC_HIGHEST_OPT = -O2
|
||||
CC_HIGHER_OPT = -O1
|
||||
CC_LOWER_OPT = -O1
|
||||
else
|
||||
CC_HIGHEST_OPT = -O2
|
||||
CC_HIGHER_OPT = -O1
|
||||
CC_LOWER_OPT = -O1
|
||||
endif
|
||||
endif
|
||||
CC_NO_OPT = -Od
|
||||
else # CC_VERSION
|
||||
# GCC not supported, but left for historical reference...
|
||||
@@ -179,7 +206,7 @@ endif
|
||||
# -MTd Use static debug version (better than -MDd, no runtime issues)
|
||||
# -D_DEBUG Change use of malloc/free/etc to use special debug ones (-MTd)
|
||||
#
|
||||
# NOTE: We also will use /D _STATIC_CPPLIB so we don't need msvcp71.dll
|
||||
# NOTE: We also will use /D _STATIC_CPPLIB so we don't need msvcpnn.dll
|
||||
#
|
||||
ifeq ($(MS_RUNTIME_STATIC),true)
|
||||
MS_RUNTIME_OPTION=-MT
|
||||
@@ -217,7 +244,7 @@ ifeq ($(CC_VERSION),msvc)
|
||||
# -YX -Fp/.../foobar.pch Use precompiled headers (try someday?)
|
||||
# -nologo Don't print out startup message
|
||||
# /D _STATIC_CPPLIB
|
||||
# Use static link for the C++ runtime (so msvcp71.dll not needed)
|
||||
# Use static link for the C++ runtime (so msvcpnn.dll not needed)
|
||||
#
|
||||
CFLAGS_COMMON += -Zi -nologo
|
||||
CFLAGS_OPT = $(POPT)
|
||||
|
||||
@@ -191,14 +191,18 @@ $(JAVA_SOURCE_LIST) : source_list_prime resources $(FILES_class)
|
||||
# Make sure all newer sources are compiled (in a batch)
|
||||
classes : $(CLASSES_INIT) .delete.classlist .compile.classlist
|
||||
|
||||
# Use this javac option to force it to favor the sourcepath file classes
|
||||
# rather than any bootclasspath classes.
|
||||
JAVAC_PREFER_SOURCE = -Xprefer:source
|
||||
|
||||
.compile.classlist : $(JAVA_SOURCE_LIST)
|
||||
@$(MKDIR) -p $(CLASSDESTDIR)
|
||||
@if [ `$(CAT) $(JAVA_SOURCE_LIST) | $(WC) -l` -ge 1 ] ; then \
|
||||
$(ECHO) "# Java sources to be compiled: (listed in file $(JAVA_SOURCE_LIST))"; \
|
||||
$(CAT) $(JAVA_SOURCE_LIST); \
|
||||
$(ECHO) "# Running javac:"; \
|
||||
$(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
|
||||
$(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
|
||||
$(ECHO) $(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
|
||||
$(JAVAC_CMD) $(JAVAC_PREFER_SOURCE) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$(JAVA_SOURCE_LIST); \
|
||||
fi
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2005-2009 Sun Microsystems, 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
|
||||
@@ -47,24 +47,17 @@ ifeq ($(PLATFORM), windows)
|
||||
# unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
|
||||
NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
|
||||
|
||||
# Compiler version and type (Always get word after "Version")
|
||||
CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')
|
||||
|
||||
# SDK-64 and MSVC6 put REBASE.EXE in a different places - go figure...
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$8}')
|
||||
LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
|
||||
CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$5}')
|
||||
CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
|
||||
REQUIRED_CCTYPE = Optimizing
|
||||
REQUIRED_CC_VER = 13.10.3077
|
||||
REQUIRED_LINK_VER = 7.10.3077
|
||||
ifeq ($(CC_MAJORVER), 12)
|
||||
# This should be: CC_VER=12.00.8168 LINK_VER=6.00.8447
|
||||
COMPILER_NAME=Visual C++ 6.0 Professional + VC6-SP 3
|
||||
COMPILER_VERSION=VC6
|
||||
REBASE = $(COMPILER_PATH)rebase
|
||||
MTL = $(COMPILER_PATH)midl
|
||||
endif
|
||||
ifeq ($(CC_MAJORVER), 13)
|
||||
# This should be: CC_VER=13.10.3077 LINK_VER=7.10.3077
|
||||
REQUIRED_CC_VER = 13.10.3077
|
||||
REQUIRED_LINK_VER = 7.10.3077
|
||||
COMPILER_NAME=Visual Studio .NET 2003 Professional C++
|
||||
COMPILER_VERSION=VS2003
|
||||
REBASE = $(COMPILER_PATH)../../Common7/Tools/Bin/rebase
|
||||
@@ -74,9 +67,10 @@ ifeq ($(PLATFORM), windows)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(CC_MAJORVER), 14)
|
||||
# This should be: CC_VER=14.00.0000 LINK_VER=8.00.0000
|
||||
# NOTE: This compiler has not been tried yet on 32bit systems
|
||||
COMPILER_NAME=Visual Studio .NET 2005
|
||||
# This should be: CC_VER=14.00.50727.42 LINK_VER=8.00.50727.42
|
||||
REQUIRED_CC_VER = 14.00.50727.42
|
||||
REQUIRED_LINK_VER = 8.00.50727.42
|
||||
COMPILER_NAME=Visual Studio 8
|
||||
COMPILER_VERSION=VS2005
|
||||
REBASE = $(COMPILER_PATH)../../Common8/Tools/Bin/rebase
|
||||
MTL = $(COMPILER_PATH)../../Common8/Tools/Bin/midl
|
||||
@@ -84,10 +78,22 @@ ifeq ($(PLATFORM), windows)
|
||||
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(CC_MAJORVER), 15)
|
||||
# This should be: CC_VER=15.00.21022.08 LINK_VER=9.00.21022.08
|
||||
REQUIRED_CC_VER = 15.00.21022.08
|
||||
REQUIRED_LINK_VER = 9.00.21022.08
|
||||
COMPILER_NAME=Visual Studio 9
|
||||
COMPILER_VERSION=VS2008
|
||||
#rebase and midl moved out of Visual Studio into the SDK:
|
||||
REBASE = $(MSDEVTOOLS_PATH)/rebase
|
||||
MTL = $(MSDEVTOOLS_PATH)/midl.exe
|
||||
ifndef COMPILER_PATH
|
||||
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$7}')
|
||||
# else ARCH_DATA_MODEL is 64
|
||||
LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
|
||||
CC_TYPE := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(NAWK) '{print $$4}')
|
||||
CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
|
||||
CC_MINORVER :=$(call MinorVersion,$(CC_VER))
|
||||
CC_MICROVER :=$(call MicroVersion,$(CC_VER))
|
||||
@@ -122,9 +128,19 @@ ifeq ($(PLATFORM), windows)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
# This will cause problems if ALT_COMPILER_PATH is defined to ""
|
||||
# which is a directive to use the PATH.
|
||||
REBASE = $(COMPILER_PATH)../REBASE
|
||||
ifeq ($(CC_MAJORVER), 15)
|
||||
# This should be: CC_VER=15.00.21022.8 LINK_VER=9.00.21022.8
|
||||
REQUIRED_CC_VER = 15.00.21022.8
|
||||
REQUIRED_LINK_VER = 9.00.21022.8
|
||||
COMPILER_NAME=Windows SDK 6.1 Visual Studio 9
|
||||
COMPILER_VERSION=VS2008
|
||||
RC = $(MSSDK61)/bin/x64/rc
|
||||
REBASE = $(MSSDK61/bin/x64/rebase
|
||||
else
|
||||
# This will cause problems if ALT_COMPILER_PATH is defined to ""
|
||||
# which is a directive to use the PATH.
|
||||
REBASE = $(COMPILER_PATH)../REBASE
|
||||
endif
|
||||
ifndef COMPILER_PATH
|
||||
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2005-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -104,6 +104,9 @@ ifeq ($(COMPILER_WARNINGS_FATAL), true)
|
||||
JAVACFLAGS += -Werror
|
||||
endif
|
||||
|
||||
NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
|
||||
JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS)
|
||||
|
||||
# Add the source level (currently all source is 1.5, should this be 1.6?)
|
||||
LANGUAGE_VERSION = -source 1.5
|
||||
JAVACFLAGS += $(LANGUAGE_VERSION)
|
||||
@@ -117,7 +120,7 @@ JAVACFLAGS += -classpath $(BOOTDIR)/lib/tools.jar
|
||||
JAVACFLAGS += $(OTHER_JAVACFLAGS)
|
||||
|
||||
# Needed for javah
|
||||
JAVAHFLAGS += -bootclasspath $(CLASSBINDIR)
|
||||
JAVAHFLAGS += -classpath $(CLASSBINDIR)
|
||||
|
||||
# Langtools
|
||||
ifdef LANGTOOLS_DIST
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2005-2009 Sun Microsystems, 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
|
||||
@@ -67,16 +67,6 @@ ifeq ($(PLATFORM),windows)
|
||||
UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
|
||||
endif
|
||||
|
||||
# Utilities ant and findbugs
|
||||
ifndef ANT_HOME
|
||||
ANT_HOME = $(JDK_DEVTOOLS_DIR)/share/ant/latest
|
||||
endif
|
||||
ANT = $(ANT_HOME)/bin/ant
|
||||
ifndef FINDBUGS_HOME
|
||||
FINDBUGS_HOME = $(JDK_DEVTOOLS_DIR)/share/findbugs/latest
|
||||
endif
|
||||
FINDBUGS = $(FINDBUGS_HOME)/bin/findbugs
|
||||
|
||||
# Utilities
|
||||
ADB = $(UTILS_COMMAND_PATH)adb
|
||||
AR = $(UTILS_CCS_BIN_PATH)ar
|
||||
|
||||
@@ -282,13 +282,27 @@ endif
|
||||
|
||||
# Compilers for 64bit are from SDK
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
ifneq ($(_ms_sdk),)
|
||||
xMSSDK61 :="C:/Program Files/Microsoft SDKs/Windows/v6.1/"
|
||||
MSSDK61 :=$(call FullPath,$(xMSSDK61))
|
||||
xVS2008 :="C:/Program Files (x86)/Microsoft Visual Studio 9.0/"
|
||||
_vs2008 :=$(call FullPath,$(xVS2008))
|
||||
ifneq ($(_vs2008),)
|
||||
ifeq ($(ARCH), ia64)
|
||||
_compiler_bin :=$(_ms_sdk)/Bin/Win64
|
||||
_compiler_bin :=$(_vs2008)/VC/Bin/x86_ia64
|
||||
endif
|
||||
ifeq ($(ARCH), amd64)
|
||||
_compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH)
|
||||
_redist_sdk :=$(_ms_sdk)/redist/win64/AMD64
|
||||
_compiler_bin :=$(_vs2008)/VC/Bin/$(ARCH)
|
||||
_redist_sdk :=$(MSSDK61)/VC/redist
|
||||
endif
|
||||
else
|
||||
ifneq ($(_ms_sdk),)
|
||||
ifeq ($(ARCH), ia64)
|
||||
_compiler_bin :=$(_ms_sdk)/Bin/Win64
|
||||
endif
|
||||
ifeq ($(ARCH), amd64)
|
||||
_compiler_bin :=$(_ms_sdk)/Bin/Win64/x86/$(ARCH)
|
||||
_redist_sdk :=$(_ms_sdk)/redist/win64/AMD64
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2005-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2000-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!echo "This is not a shell script"
|
||||
#############################################################################
|
||||
#
|
||||
# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2006-2009 Sun Microsystems, 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
|
||||
@@ -93,23 +93,13 @@ jdk_import="${ALT_JDK_IMPORT_PATH}"
|
||||
jdk_devtools="${slashjava}/devtools"
|
||||
share="${jdk_devtools}/share"
|
||||
|
||||
# Needed for langtools, maybe other parts of the build
|
||||
ANT_HOME="${share}/ant/latest"
|
||||
export ANT_HOME
|
||||
FINDBUGS_HOME="${share}/findbugs/latest"
|
||||
export FINDBUGS_HOME
|
||||
|
||||
# The 3 bin directories in common to all platforms
|
||||
sharebin="${share}/bin"
|
||||
antbin="${ANT_HOME}/bin"
|
||||
findbugsbin="${FINDBUGS_HOME}/bin"
|
||||
|
||||
# Check input
|
||||
dirMustExist "${bootdir}" ALT_BOOTDIR
|
||||
dirMustExist "${slashjava}" ALT_SLASH_JAVA
|
||||
dirMustExist "${jdk_import}" ALT_JDK_IMPORT_PATH
|
||||
dirMustExist "${ANT_HOME}" ANT_HOME
|
||||
dirMustExist "${FINDBUGS_HOME}" FINDBUGS_HOME
|
||||
|
||||
# Uses 'uname -s', but only expect SunOS or Linux, assume Windows otherwise.
|
||||
osname=`uname -s`
|
||||
@@ -133,7 +123,7 @@ if [ "${osname}" = SunOS ] ; then
|
||||
ALT_COMPILER_PATH="${compiler_path}"
|
||||
export ALT_COMPILER_PATH
|
||||
dirMustExist "${compiler_path}" ALT_COMPILER_PATH
|
||||
path4sdk=${compiler_path}:${sharebin}:${antbin}:${findbugsbin}
|
||||
path4sdk=${compiler_path}:${sharebin}
|
||||
|
||||
# Add basic solaris system paths
|
||||
path4sdk=${path4sdk}:/usr/ccs/bin:/usr/ccs/lib:/usr/bin:/bin:/usr/sfw/bin
|
||||
@@ -170,7 +160,7 @@ elif [ "${osname}" = Linux ] ; then
|
||||
ALT_COMPILER_PATH="${compiler_path}"
|
||||
export ALT_COMPILER_PATH
|
||||
dirMustExist "${compiler_path}" ALT_COMPILER_PATH
|
||||
path4sdk=${compiler_path}:${sharebin}:${antbin}:${findbugsbin}
|
||||
path4sdk=${compiler_path}:${sharebin}
|
||||
|
||||
# Add basic paths
|
||||
path4sdk=${path4sdk}:/usr/bin:/bin:/usr/sbin:/sbin
|
||||
@@ -211,7 +201,7 @@ else
|
||||
dosname="${mkshome}/mksnt/dosname -s"
|
||||
# Most unix utilities are in the mksnt directory of ROOTDIR
|
||||
unixcommand_path="${mkshome}/mksnt"
|
||||
path4sdk="${sharebin};${antbin};${findbugsbin};${unixcommand_path}"
|
||||
path4sdk="${sharebin};${unixcommand_path}"
|
||||
dirMustExist "${unixcommand_path}" ALT_UNIXCOMMAND_PATH
|
||||
devtools_path="${jdk_devtools}/win32/bin"
|
||||
path4sdk="${devtools_path};${path4sdk}"
|
||||
@@ -229,7 +219,7 @@ else
|
||||
dosname="/usr/bin/cygpath -a -m -s"
|
||||
# Most unix utilities are in the /usr/bin
|
||||
unixcommand_path="/usr/bin"
|
||||
path4sdk="${sharebin};${antbin};${findbugsbin};${unixcommand_path}"
|
||||
path4sdk="${sharebin};${unixcommand_path}"
|
||||
dirMustExist "${unixcommand_path}" ALT_UNIXCOMMAND_PATH
|
||||
# Find GNU make
|
||||
make="${unixcommand_path}/make.exe"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1997-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1997-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2000-2009 Sun Microsystems, 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
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// have any questions.
|
||||
//
|
||||
|
||||
#include "afxres.h"
|
||||
#include "windows.h"
|
||||
|
||||
// Need 2 defines so macro argument to XSTR will get expanded before quoting.
|
||||
#define XSTR(x) STR(x)
|
||||
|
||||
@@ -8,3 +8,20 @@ d1605aabd0a15ecf93787c47de63073c33fba52d jdk7-b30
|
||||
9c2ecc2ffb125f14fab3857fe7689598956348a0 jdk7-b31
|
||||
b727c32788a906c04839516ae7443a085185a300 jdk7-b32
|
||||
585535ec8a14adafa6bfea65d6975e29094c8cec jdk7-b33
|
||||
5251a9cd8eb8743eee647365bee1c8afdc131556 jdk7-b34
|
||||
5fa96a5a7e76da7c8dad12486293a0456c2c116c jdk7-b35
|
||||
e91159f921a58af3698e6479ea1fc5818da66d09 jdk7-b36
|
||||
9ee9cf798b59e7d51f8c0a686959f313867a55d6 jdk7-b37
|
||||
d9bc824aa078573829bb66572af847e26e1bd12e jdk7-b38
|
||||
49ca90d77f34571b0757ebfcb8a7848ef2696b88 jdk7-b39
|
||||
81a0cbe3b28460ce836109934ece03db7afaf9cc jdk7-b40
|
||||
f9d938ede1960d18cb7cf23c645b026519c1a678 jdk7-b41
|
||||
ad8c8ca4ab0f4c86e74c061958f44a8f4a930f2c jdk7-b42
|
||||
fc6a5ae3fef5ebacfa896dbb3ae37715e388e282 jdk7-b43
|
||||
809e899c638bd9b21836abf9d09ab2a30ff3900b jdk7-b44
|
||||
945bf754069766e76873c53102fae48abf04cf5b jdk7-b45
|
||||
16bb38eeda35b46268eefa4c1f829eb086e0ca46 jdk7-b46
|
||||
fcb923bad68e2b10380a030ea83a723f4dc3d4d6 jdk7-b47
|
||||
bcb33806d186561c781992e5f4d8a90bb033f9f0 jdk7-b48
|
||||
8b22ccb5aba2c6c11bddf6488a7bb7ef5b4bf2be jdk7-b49
|
||||
dae503d9f04c1a11e182dbf7f770509c28dc0609 jdk7-b50
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
REM
|
||||
REM Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
REM Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
REM
|
||||
REM This code is free software; you can redistribute it and/or modify it
|
||||
|
||||
@@ -8,4 +8,4 @@ FIND=$MKS_HOME/find
|
||||
SED=$MKS_HOME/sed
|
||||
SORT=$MKS_HOME/sort
|
||||
|
||||
$CD ../src/share/classes; $FIND sun/jvm/hotspot \( -name SCCS -prune \) -o -type d -print | $SED -e 's/\//./g' | $SORT > ../../../make/pkglist.txt
|
||||
$CD ../src/share/classes; $FIND sun/jvm/hotspot com/sun/java/swing -type d -print | $SED -e 's/\//./g' | $SORT > ../../../make/pkglist.txt
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
Copyright 2002-2008 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
REM
|
||||
REM Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
REM Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
REM
|
||||
REM This code is free software; you can redistribute it and/or modify it
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2002-2008 Sun Microsystems, 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
REM
|
||||
REM Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
|
||||
REM Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
REM
|
||||
REM This code is free software; you can redistribute it and/or modify it
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2003-2008 Sun Microsystems, 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
REM
|
||||
REM Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
|
||||
REM Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
REM
|
||||
REM This code is free software; you can redistribute it and/or modify it
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2003-2008 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2003-2009 Sun Microsystems, 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
|
||||
@@ -238,8 +238,8 @@ struct FileMapHeader {
|
||||
// Ignore the rest of the FileMapHeader. We don't need those fields here.
|
||||
};
|
||||
|
||||
static bool read_int(struct ps_prochandle* ph, uintptr_t addr, int* pvalue) {
|
||||
int i;
|
||||
static bool read_jboolean(struct ps_prochandle* ph, uintptr_t addr, jboolean* pvalue) {
|
||||
jboolean i;
|
||||
if (ps_pdread(ph, (psaddr_t) addr, &i, sizeof(i)) == PS_OK) {
|
||||
*pvalue = i;
|
||||
return true;
|
||||
@@ -295,7 +295,7 @@ static bool init_classsharing_workaround(struct ps_prochandle* ph) {
|
||||
int fd = -1, m = 0;
|
||||
uintptr_t base = 0, useSharedSpacesAddr = 0;
|
||||
uintptr_t sharedArchivePathAddrAddr = 0, sharedArchivePathAddr = 0;
|
||||
int useSharedSpaces = 0;
|
||||
jboolean useSharedSpaces = 0;
|
||||
map_info* mi = 0;
|
||||
|
||||
memset(classes_jsa, 0, sizeof(classes_jsa));
|
||||
@@ -306,12 +306,15 @@ static bool init_classsharing_workaround(struct ps_prochandle* ph) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (read_int(ph, useSharedSpacesAddr, &useSharedSpaces) != true) {
|
||||
// Hotspot vm types are not exported to build this library. So
|
||||
// using equivalent type jboolean to read the value of
|
||||
// UseSharedSpaces which is same as hotspot type "bool".
|
||||
if (read_jboolean(ph, useSharedSpacesAddr, &useSharedSpaces) != true) {
|
||||
print_debug("can't read the value of 'UseSharedSpaces' flag\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (useSharedSpaces == 0) {
|
||||
if ((int)useSharedSpaces == 0) {
|
||||
print_debug("UseSharedSpaces is false, assuming -Xshare:off!\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2002-2009 Sun Microsystems, 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
|
||||
@@ -502,8 +502,8 @@ struct FileMapHeader {
|
||||
};
|
||||
|
||||
static bool
|
||||
read_int(struct ps_prochandle* ph, psaddr_t addr, int* pvalue) {
|
||||
int i;
|
||||
read_jboolean(struct ps_prochandle* ph, psaddr_t addr, jboolean* pvalue) {
|
||||
jboolean i;
|
||||
if (ps_pread(ph, addr, &i, sizeof(i)) == PS_OK) {
|
||||
*pvalue = i;
|
||||
return true;
|
||||
@@ -575,10 +575,13 @@ init_classsharing_workaround(void *cd, const prmap_t* pmap, const char* obj_name
|
||||
}
|
||||
|
||||
// read the value of the flag "UseSharedSpaces"
|
||||
int value = 0;
|
||||
if (read_int(ph, useSharedSpacesAddr, &value) != true) {
|
||||
// Since hotspot types are not available to build this library. So
|
||||
// equivalent type "jboolean" is used to read the value of "UseSharedSpaces"
|
||||
// which is same as hotspot type "bool".
|
||||
jboolean value = 0;
|
||||
if (read_jboolean(ph, useSharedSpacesAddr, &value) != true) {
|
||||
THROW_NEW_DEBUGGER_EXCEPTION_("can't read 'UseSharedSpaces' flag", 1);
|
||||
} else if (value == 0) {
|
||||
} else if ((int)value == 0) {
|
||||
print_debug("UseSharedSpaces is false, assuming -Xshare:off!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2000-2008 Sun Microsystems, 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
|
||||
@@ -39,9 +39,9 @@ import sun.jvm.hotspot.utilities.*;
|
||||
<P> Encoding: </P>
|
||||
<PRE>
|
||||
bits:
|
||||
Where: [15]
|
||||
Type: [14..12]
|
||||
Offset: [11..0]
|
||||
Type: [3..0]
|
||||
Where: [4]
|
||||
Offset: [31..5]
|
||||
</PRE>
|
||||
*/
|
||||
|
||||
@@ -69,6 +69,7 @@ public class Location {
|
||||
// Location::Type constants
|
||||
TYPE_NORMAL = db.lookupIntConstant("Location::normal").intValue();
|
||||
TYPE_OOP = db.lookupIntConstant("Location::oop").intValue();
|
||||
TYPE_NARROWOOP = db.lookupIntConstant("Location::narrowoop").intValue();
|
||||
TYPE_INT_IN_LONG = db.lookupIntConstant("Location::int_in_long").intValue();
|
||||
TYPE_LNG = db.lookupIntConstant("Location::lng").intValue();
|
||||
TYPE_FLOAT_IN_DBL = db.lookupIntConstant("Location::float_in_dbl").intValue();
|
||||
@@ -115,6 +116,8 @@ public class Location {
|
||||
public static final Type NORMAL = new Type("normal");
|
||||
/** Oop (please GC me!) */
|
||||
public static final Type OOP = new Type("oop");
|
||||
/** NarrowOop (please GC me!) */
|
||||
public static final Type NARROWOOP = new Type("narrowoop");
|
||||
/** Long held in one register */
|
||||
public static final Type INT_IN_LONG = new Type("int_in_long");
|
||||
/** Long held in one register */
|
||||
@@ -142,6 +145,8 @@ public class Location {
|
||||
return TYPE_NORMAL;
|
||||
} else if (this == OOP) {
|
||||
return TYPE_OOP;
|
||||
} else if (this == NARROWOOP) {
|
||||
return TYPE_NARROWOOP;
|
||||
} else if (this == INT_IN_LONG) {
|
||||
return TYPE_INT_IN_LONG;
|
||||
} else if (this == LNG) {
|
||||
@@ -170,6 +175,7 @@ public class Location {
|
||||
// constants in Type enum
|
||||
private static int TYPE_NORMAL;
|
||||
private static int TYPE_OOP;
|
||||
private static int TYPE_NARROWOOP;
|
||||
private static int TYPE_INT_IN_LONG;
|
||||
private static int TYPE_LNG;
|
||||
private static int TYPE_FLOAT_IN_DBL;
|
||||
@@ -185,7 +191,7 @@ public class Location {
|
||||
Location(Where where, Type type, int offset) {
|
||||
setWhere(where);
|
||||
setType(type);
|
||||
setOffset(offset & 0x0000FFFF);
|
||||
setOffset(offset);
|
||||
}
|
||||
|
||||
public Where getWhere() {
|
||||
@@ -205,6 +211,8 @@ public class Location {
|
||||
return Type.NORMAL;
|
||||
} else if (type == TYPE_OOP) {
|
||||
return Type.OOP;
|
||||
} else if (type == TYPE_NARROWOOP) {
|
||||
return Type.NARROWOOP;
|
||||
} else if (type == TYPE_INT_IN_LONG) {
|
||||
return Type.INT_IN_LONG;
|
||||
} else if (type == TYPE_LNG) {
|
||||
@@ -238,6 +246,10 @@ public class Location {
|
||||
return getType() == Type.OOP;
|
||||
}
|
||||
|
||||
public boolean holdsNarrowOop() {
|
||||
return getType() == Type.NARROWOOP;
|
||||
}
|
||||
|
||||
public boolean holdsInt() {
|
||||
return getType() == Type.INT_IN_LONG;
|
||||
}
|
||||
@@ -266,7 +278,7 @@ public class Location {
|
||||
if (Assert.ASSERTS_ENABLED) {
|
||||
Assert.that(getWhere() == Where.ON_STACK, "wrong Where");
|
||||
}
|
||||
return getOffset() << VM.getVM().getLogAddressSize();
|
||||
return getOffset() * (int)VM.getVM().getIntSize();
|
||||
}
|
||||
|
||||
public int getRegisterNumber() {
|
||||
@@ -296,6 +308,8 @@ public class Location {
|
||||
if (type == Type.NORMAL) {
|
||||
} else if (type == Type.OOP) {
|
||||
tty.print(",oop");
|
||||
} else if (type == Type.NARROWOOP) {
|
||||
tty.print(",narrowoop");
|
||||
} else if (type == Type.INT_IN_LONG) {
|
||||
tty.print(",int");
|
||||
} else if (type == Type.LNG) {
|
||||
@@ -314,26 +328,26 @@ public class Location {
|
||||
|
||||
/** Serialization of debugging information */
|
||||
public Location(DebugInfoReadStream stream) {
|
||||
value = (0x0000FFFF & stream.readInt());
|
||||
value = stream.readInt();
|
||||
}
|
||||
|
||||
// FIXME: not yet implementable
|
||||
// void write_on(DebugInfoWriteStream* stream);
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
// Internals only below this point
|
||||
//
|
||||
|
||||
private void setWhere(Where where) {
|
||||
value |= (where.getValue() << WHERE_SHIFT);
|
||||
value |= ((where.getValue() << WHERE_SHIFT) & WHERE_MASK);
|
||||
}
|
||||
|
||||
private void setType(Type type) {
|
||||
value |= (type.getValue() << TYPE_SHIFT);
|
||||
value |= ((type.getValue() << TYPE_SHIFT) & TYPE_MASK);
|
||||
}
|
||||
|
||||
private void setOffset(int offset) {
|
||||
value |= (offset << OFFSET_SHIFT);
|
||||
value |= ((offset << OFFSET_SHIFT) & OFFSET_MASK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2000-2008 Sun Microsystems, 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
|
||||
@@ -206,6 +206,16 @@ public class CompiledVFrame extends JavaVFrame {
|
||||
Assert.that( loc.isRegister(), "ints always saved to stack in 1 word" );
|
||||
}
|
||||
return new StackValue(valueAddr.getJLongAt(0) & 0xFFFFFFFF);
|
||||
} else if (loc.holdsNarrowOop()) { // Holds an narrow oop?
|
||||
if (loc.isRegister() && VM.getVM().isBigEndian()) {
|
||||
// The callee has no clue whether the register holds an narrow oop,
|
||||
// long or is unused. He always saves a long. Here we know
|
||||
// a long was saved, but we only want an narrow oop back. Narrow the
|
||||
// saved long to the narrow oop that the JVM wants.
|
||||
return new StackValue(valueAddr.getCompOopHandleAt(VM.getVM().getIntSize()));
|
||||
} else {
|
||||
return new StackValue(valueAddr.getCompOopHandleAt(0));
|
||||
}
|
||||
} else if( loc.holdsOop() ) { // Holds an oop?
|
||||
return new StackValue(valueAddr.getOopHandleAt(0));
|
||||
} else if( loc.holdsDouble() ) {
|
||||
|
||||
@@ -621,6 +621,11 @@ public class VM {
|
||||
return bytes;
|
||||
}
|
||||
|
||||
/** Returns true if this is a isBigEndian, false otherwise */
|
||||
public boolean isBigEndian() {
|
||||
return isBigEndian;
|
||||
}
|
||||
|
||||
/** Returns true if this is a "core" build, false if either C1 or C2
|
||||
is present */
|
||||
public boolean isCore() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2003-2008 Sun Microsystems, 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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 2003-2008 Sun Microsystems, 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
|
||||
|
||||
@@ -1135,6 +1135,8 @@ public class HTMLGenerator implements /* imports */ ClassConstants {
|
||||
buf.append("normal");
|
||||
} else if (type == Location.Type.OOP) {
|
||||
buf.append("oop");
|
||||
} else if (type == Location.Type.NARROWOOP) {
|
||||
buf.append("narrowoop");
|
||||
} else if (type == Location.Type.INT_IN_LONG) {
|
||||
buf.append("int");
|
||||
} else if (type == Location.Type.LNG) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#
|
||||
#
|
||||
# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
@@ -19,7 +19,7 @@
|
||||
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
||||
# CA 95054 USA or visit www.sun.com if you need additional information or
|
||||
# have any questions.
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# This file format must remain compatible with both
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 2006-2009 Sun Microsystems, 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
|
||||
@@ -33,7 +33,7 @@
|
||||
# Don't put quotes (fail windows build).
|
||||
HOTSPOT_VM_COPYRIGHT=Copyright 2008
|
||||
|
||||
HS_MAJOR_VER=14
|
||||
HS_MAJOR_VER=15
|
||||
HS_MINOR_VER=0
|
||||
HS_BUILD_NUMBER=03
|
||||
|
||||
|
||||
@@ -295,3 +295,9 @@ jprt.test.targets = \
|
||||
${jprt.my.windows.i586.test.targets}, \
|
||||
${jprt.my.windows.x64.test.targets}
|
||||
|
||||
# The default test/Makefile targets that should be run
|
||||
|
||||
# Example:
|
||||
# jprt.make.rule.test.targets=*-*-*-packtest
|
||||
#jprt.make.rule.test.targets=*-product-*-packtest
|
||||
|
||||
|
||||
@@ -7,5 +7,13 @@
|
||||
#
|
||||
# adlc-updater <file> <source-dir> <target-dir>
|
||||
#
|
||||
[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
|
||||
( [ -f $3/$1 ]; echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
|
||||
fix_lines() {
|
||||
# repair bare #line directives in $1 to refer to $2
|
||||
awk < $1 > $1+ '
|
||||
/^#line 999999$/ {print "#line " (NR+1) " \"" F2 "\""; next}
|
||||
{print}
|
||||
' F2=$2
|
||||
mv $1+ $1
|
||||
}
|
||||
[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \
|
||||
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1999-2009 Sun Microsystems, 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
|
||||
@@ -54,13 +54,15 @@ VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_I = ${Src_Dirs} $(GENERATED)
|
||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||
|
||||
# Force assertions on.
|
||||
SYSDEFS += -DASSERT
|
||||
# set flags for adlc compilation
|
||||
CPPFLAGS = $(SYSDEFS) $(INCLUDES)
|
||||
|
||||
# Force assertions on.
|
||||
CPPFLAGS += -DASSERT
|
||||
|
||||
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
||||
# Suppress warnings (for now)
|
||||
CFLAGS_WARN = -w
|
||||
# Compiler warnings are treated as errors
|
||||
CFLAGS_WARN = -Werror
|
||||
CFLAGS += $(CFLAGS_WARN)
|
||||
|
||||
OBJECTNAMES = \
|
||||
@@ -125,7 +127,15 @@ $(GENERATEDFILES): refresh_adfiles
|
||||
# Note that product files are updated via "mv", which is atomic.
|
||||
TEMPDIR := $(OUTDIR)/mktmp$(shell echo $$$$)
|
||||
|
||||
ADLCFLAGS = -q -T
|
||||
# Pass -D flags into ADLC.
|
||||
ADLCFLAGS += $(SYSDEFS)
|
||||
|
||||
# Note "+="; it is a hook so flags.make can add more flags, like -g or -DFOO.
|
||||
ADLCFLAGS += -q -T
|
||||
|
||||
# Normally, debugging is done directly on the ad_<arch>*.cpp files.
|
||||
# But -g will put #line directives in those files pointing back to <arch>.ad.
|
||||
#ADLCFLAGS += -g
|
||||
|
||||
ifdef LP64
|
||||
ADLCFLAGS += -D_LP64
|
||||
@@ -140,6 +150,8 @@ endif
|
||||
#
|
||||
ADLC_UPDATER_DIRECTORY = $(GAMMADIR)/make/$(OS)
|
||||
ADLC_UPDATER = adlc_updater
|
||||
$(ADLC_UPDATER): $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER)
|
||||
$(QUIETLY) cp $< $@; chmod +x $@
|
||||
|
||||
# This action refreshes all generated adlc files simultaneously.
|
||||
# The way it works is this:
|
||||
@@ -149,9 +161,8 @@ ADLC_UPDATER = adlc_updater
|
||||
# 4) call $(ADLC_UPDATER) on each generated adlc file. It will selectively update changed or missing files.
|
||||
# 5) If we actually updated any files, echo a notice.
|
||||
#
|
||||
refresh_adfiles: $(EXEC) $(SOURCE.AD)
|
||||
refresh_adfiles: $(EXEC) $(SOURCE.AD) $(ADLC_UPDATER)
|
||||
@rm -rf $(TEMPDIR); mkdir $(TEMPDIR)
|
||||
$(QUIETLY) [ -f $(ADLC_UPDATER) ] || ( cp $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) . ; chmod +x $(ADLC_UPDATER) )
|
||||
$(QUIETLY) $(EXEC) $(ADLCFLAGS) $(SOURCE.AD) \
|
||||
-c$(TEMPDIR)/ad_$(Platform_arch_model).cpp -h$(TEMPDIR)/ad_$(Platform_arch_model).hpp -a$(TEMPDIR)/dfa_$(Platform_arch_model).cpp -v$(TEMPDIR)/adGlobals_$(Platform_arch_model).hpp \
|
||||
|| { rm -rf $(TEMPDIR); exit 1; }
|
||||
@@ -174,7 +185,15 @@ refresh_adfiles: $(EXEC) $(SOURCE.AD)
|
||||
# #########################################################################
|
||||
|
||||
$(SOURCE.AD): $(SOURCES.AD)
|
||||
$(QUIETLY) cat $(SOURCES.AD) > $(SOURCE.AD)
|
||||
$(QUIETLY) $(PROCESS_AD_FILES) $(SOURCES.AD) > $(SOURCE.AD)
|
||||
|
||||
#PROCESS_AD_FILES = cat
|
||||
# Pass through #line directives, in case user enables -g option above:
|
||||
PROCESS_AD_FILES = awk '{ \
|
||||
if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \
|
||||
if (need_lineno && $$0 !~ /\/\//) \
|
||||
{ print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \
|
||||
print }'
|
||||
|
||||
$(OUTDIR)/%.o: %.cpp
|
||||
@echo Compiling $<
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1999-2009 Sun Microsystems, 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
|
||||
@@ -131,6 +131,14 @@ endif
|
||||
# Enable linker optimization
|
||||
LFLAGS += -Xlinker -O1
|
||||
|
||||
# If this is a --hash-style=gnu system, use --hash-style=both
|
||||
# The gnu .hash section won't work on some Linux systems like SuSE 10.
|
||||
_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | grep -- '--hash-style=gnu')
|
||||
ifneq ($(_HAS_HASH_STYLE_GNU),)
|
||||
LDFLAGS_HASH_STYLE = -Wl,--hash-style=both
|
||||
endif
|
||||
LFLAGS += $(LDFLAGS_HASH_STYLE)
|
||||
|
||||
# Use $(MAPFLAG:FILENAME=real_file_name) to specify a map file.
|
||||
MAPFLAG = -Xlinker --version-script=FILENAME
|
||||
|
||||
|
||||
@@ -41,8 +41,9 @@ GENERATED = $(TOPDIR)/../generated
|
||||
SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
|
||||
|
||||
# gnumake 3.78.1 does not accept the *s that
|
||||
# are in AGENT_ALLFILES, so use the shell to expand them
|
||||
AGENT_ALLFILES := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_ALLFILES))
|
||||
# are in AGENT_FILES1 and AGENT_FILES2, so use the shell to expand them
|
||||
AGENT_FILES1 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES1))
|
||||
AGENT_FILES2 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES2))
|
||||
|
||||
SA_CLASSDIR = $(GENERATED)/saclasses
|
||||
|
||||
@@ -58,7 +59,7 @@ all:
|
||||
$(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
|
||||
fi
|
||||
|
||||
$(GENERATED)/sa-jdi.jar: $(AGENT_ALLFILES)
|
||||
$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
|
||||
$(QUIETLY) echo "Making $@"
|
||||
$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
|
||||
echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
|
||||
@@ -72,9 +73,18 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_ALLFILES)
|
||||
$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
|
||||
mkdir -p $(SA_CLASSDIR); \
|
||||
fi
|
||||
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) $(AGENT_ALLFILES)
|
||||
|
||||
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1)
|
||||
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2)
|
||||
|
||||
$(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
||||
$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
|
||||
$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
|
||||
$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
|
||||
$(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
|
||||
$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/*
|
||||
$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/
|
||||
$(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/
|
||||
$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ .
|
||||
$(QUIETLY) $(REMOTE) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
|
||||
$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext
|
||||
|
||||
@@ -64,6 +64,7 @@ Include_DBs/GC = $(VM)/includeDB_gc \
|
||||
$(VM)/gc_implementation/includeDB_gc_parallelScavenge \
|
||||
$(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \
|
||||
$(VM)/gc_implementation/includeDB_gc_parNew \
|
||||
$(VM)/gc_implementation/includeDB_gc_g1 \
|
||||
$(VM)/gc_implementation/includeDB_gc_serial \
|
||||
$(VM)/gc_implementation/includeDB_gc_shared
|
||||
|
||||
@@ -84,9 +85,9 @@ Incremental_Lists = $(Cached_db)
|
||||
|
||||
AD_Dir = $(GENERATED)/adfiles
|
||||
ADLC = $(AD_Dir)/adlc
|
||||
AD_Spec = $(GAMMADIR)/src/cpu/$(Platform_arch)/vm/$(Platform_arch).ad
|
||||
AD_Spec = $(GAMMADIR)/src/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad
|
||||
AD_Src = $(GAMMADIR)/src/share/vm/adlc
|
||||
AD_Names = ad_$(Platform_arch).hpp ad_$(Platform_arch).cpp
|
||||
AD_Names = ad_$(Platform_arch_model).hpp ad_$(Platform_arch_model).cpp
|
||||
AD_Files = $(AD_Names:%=$(AD_Dir)/%)
|
||||
|
||||
# AD_Files_If_Required/COMPILER1 = ad_stuff
|
||||
|
||||
@@ -33,40 +33,23 @@
|
||||
|
||||
AGENT_SRC_DIR = $(AGENT_DIR)/src/share/classes
|
||||
|
||||
AGENT_ALLFILES = \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/DebugServer.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/HelloWorld.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/HotSpotAgent.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/HotSpotSolarisVtblAccess.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/HotSpotTypeDataBase.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/LinuxVtblAccess.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/ObjectHistogram.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/RMIHelper.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/StackTrace.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/TestDebugger.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/Win32VtblAccess.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/Immediate.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/ImmediateOrRegister.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/Operand.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/Register.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/amd64/AMD64Register.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/amd64/AMD64Registers.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/ia64/IA64Register.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/ia64/IA64Registers.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/sparc/SPARCArgument.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/sparc/SPARCRegister.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/sparc/SPARCRegisterType.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/sparc/SPARCRegisters.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/x86/X86Register.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/x86/X86RegisterPart.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/x86/X86Registers.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/x86/X86SegmentRegister.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/x86/X86SegmentRegisters.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/bugspot/BugSpotAgent.java \
|
||||
# Splitted the set of files into two sets because on linux plaform
|
||||
# listing or compiling all the files results in 'Argument list too long' error.
|
||||
|
||||
AGENT_FILES1 = \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/amd64/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/ia64/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/sparc/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/x86/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/bugspot/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/bugspot/tree/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/c1/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/code/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/compiler/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/amd64/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/basic/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/basic/x86/*.java \
|
||||
@@ -75,7 +58,6 @@ $(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dbx/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dbx/sparc/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dbx/x86/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dummy/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/amd64/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/ia64/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/amd64/*.java \
|
||||
@@ -107,7 +89,10 @@ $(AGENT_SRC_DIR)/sun/jvm/hotspot/interpreter/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/jdi/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/livejvm/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/memory/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/oops/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/oops/*.java
|
||||
|
||||
|
||||
AGENT_FILES2 = \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/amd64/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/ia64/*.java \
|
||||
@@ -127,7 +112,17 @@ $(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/win32_x86/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/x86/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/tools/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/tools/jcore/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/tools/soql/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/types/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/types/basic/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/memo/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/action/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/classbrowser/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/table/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/tree/*.java \
|
||||
$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/treetable/*.java \
|
||||
$(AGENT_SRC_DIR)/com/sun/java/swing/action/*.java \
|
||||
$(AGENT_SRC_DIR)/com/sun/java/swing/ui/*.java
|
||||
|
||||
@@ -7,5 +7,13 @@
|
||||
#
|
||||
# adlc-updater <file> <source-dir> <target-dir>
|
||||
#
|
||||
[ -f $3/$1 ] && cmp -s $2/$1 $3/$1 || \
|
||||
( [ -f $3/$1 ]; echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
|
||||
fix_lines() {
|
||||
# repair bare #line directives in $1 to refer to $2
|
||||
awk < $1 > $1+ '
|
||||
/^#line 999999$/ {print "#line " (NR+1) " \"" F2 "\""; next}
|
||||
{print}
|
||||
' F2=$2
|
||||
mv $1+ $1
|
||||
}
|
||||
[ -f $3/$1 ] && (fix_lines $2/$1 $3/$1; cmp -s $2/$1 $3/$1) || \
|
||||
( [ -f $3/$1 ] && echo Updating $3/$1 ; touch $2/made-change ; mv $2/$1 $3/$1 )
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
|
||||
# Copyright 1997-2009 Sun Microsystems, 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
|
||||
@@ -54,10 +54,12 @@ VPATH += $(Src_Dirs_V:%=%:)
|
||||
Src_Dirs_I = ${Src_Dirs} $(GENERATED)
|
||||
INCLUDES += $(Src_Dirs_I:%=-I%)
|
||||
|
||||
# Force assertions on.
|
||||
SYSDEFS += -DASSERT
|
||||
# set flags for adlc compilation
|
||||
CPPFLAGS = $(SYSDEFS) $(INCLUDES)
|
||||
|
||||
# Force assertions on.
|
||||
CPPFLAGS += -DASSERT
|
||||
|
||||
ifndef USE_GCC
|
||||
# We need libCstd.so for adlc
|
||||
CFLAGS += -library=Cstd -g
|
||||
@@ -65,6 +67,8 @@ ifndef USE_GCC
|
||||
endif
|
||||
|
||||
# CFLAGS_WARN holds compiler options to suppress/enable warnings.
|
||||
# Compiler warnings are treated as errors
|
||||
CFLAGS_WARN = +w -errwarn
|
||||
CFLAGS += $(CFLAGS_WARN)
|
||||
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
@@ -141,7 +145,15 @@ $(GENERATEDFILES): refresh_adfiles
|
||||
# Note that product files are updated via "mv", which is atomic.
|
||||
TEMPDIR := $(OUTDIR)/mktmp$(shell echo $$$$)
|
||||
|
||||
ADLCFLAGS = -q -T
|
||||
# Pass -D flags into ADLC.
|
||||
ADLCFLAGS += $(SYSDEFS)
|
||||
|
||||
# Note "+="; it is a hook so flags.make can add more flags, like -g or -DFOO.
|
||||
ADLCFLAGS += -q -T
|
||||
|
||||
# Normally, debugging is done directly on the ad_<arch>*.cpp files.
|
||||
# But -g will put #line directives in those files pointing back to <arch>.ad.
|
||||
#ADLCFLAGS += -g
|
||||
|
||||
ifdef LP64
|
||||
ADLCFLAGS += -D_LP64
|
||||
@@ -156,6 +168,8 @@ endif
|
||||
#
|
||||
ADLC_UPDATER_DIRECTORY = $(GAMMADIR)/make/$(OS)
|
||||
ADLC_UPDATER = adlc_updater
|
||||
$(ADLC_UPDATER): $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER)
|
||||
$(QUIETLY) cp $< $@; chmod +x $@
|
||||
|
||||
# This action refreshes all generated adlc files simultaneously.
|
||||
# The way it works is this:
|
||||
@@ -165,9 +179,8 @@ ADLC_UPDATER = adlc_updater
|
||||
# 4) call $(ADLC_UPDATER) on each generated adlc file. It will selectively update changed or missing files.
|
||||
# 5) If we actually updated any files, echo a notice.
|
||||
#
|
||||
refresh_adfiles: $(EXEC) $(SOURCE.AD)
|
||||
refresh_adfiles: $(EXEC) $(SOURCE.AD) $(ADLC_UPDATER)
|
||||
@rm -rf $(TEMPDIR); mkdir $(TEMPDIR)
|
||||
$(QUIETLY) [ -f $(ADLC_UPDATER) ] || ( cp $(ADLC_UPDATER_DIRECTORY)/$(ADLC_UPDATER) . ; chmod +x $(ADLC_UPDATER) )
|
||||
$(QUIETLY) $(EXEC) $(ADLCFLAGS) $(SOURCE.AD) \
|
||||
-c$(TEMPDIR)/ad_$(Platform_arch_model).cpp -h$(TEMPDIR)/ad_$(Platform_arch_model).hpp -a$(TEMPDIR)/dfa_$(Platform_arch_model).cpp -v$(TEMPDIR)/adGlobals_$(Platform_arch_model).hpp \
|
||||
|| { rm -rf $(TEMPDIR); exit 1; }
|
||||
@@ -190,7 +203,15 @@ refresh_adfiles: $(EXEC) $(SOURCE.AD)
|
||||
# #########################################################################
|
||||
|
||||
$(SOURCE.AD): $(SOURCES.AD)
|
||||
$(QUIETLY) cat $(SOURCES.AD) > $(SOURCE.AD)
|
||||
$(QUIETLY) $(PROCESS_AD_FILES) $(SOURCES.AD) > $(SOURCE.AD)
|
||||
|
||||
#PROCESS_AD_FILES = cat
|
||||
# Pass through #line directives, in case user enables -g option above:
|
||||
PROCESS_AD_FILES = awk '{ \
|
||||
if (CUR_FN != FILENAME) { CUR_FN=FILENAME; NR_BASE=NR-1; need_lineno=1 } \
|
||||
if (need_lineno && $$0 !~ /\/\//) \
|
||||
{ print "\n\n\#line " (NR-NR_BASE) " \"" FILENAME "\""; need_lineno=0 }; \
|
||||
print }'
|
||||
|
||||
$(OUTDIR)/%.o: %.cpp
|
||||
@echo Compiling $<
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
CFLAGS += -DVM_LITTLE_ENDIAN
|
||||
|
||||
# Not included in includeDB because it has no dependencies
|
||||
# Obj_Files += solaris_amd64.o
|
||||
Obj_Files += solaris_x86_64.o
|
||||
|
||||
#
|
||||
@@ -38,8 +37,6 @@ ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
|
||||
# _lwp_create_interpose must have a frame
|
||||
OPT_CFLAGS/os_solaris_x86_64.o = -xO1
|
||||
# force C++ interpreter to be full optimization
|
||||
#OPT_CFLAGS/interpret.o = -fast -O4
|
||||
|
||||
# Temporary until SS10 C++ compiler is fixed
|
||||
OPT_CFLAGS/generateOptoStub.o = -xO2
|
||||
@@ -51,8 +48,6 @@ ifeq ("${Platform_compiler}", "gcc")
|
||||
# gcc
|
||||
# The serviceability agent relies on frame pointer (%rbp) to walk thread stack
|
||||
CFLAGS += -fno-omit-frame-pointer
|
||||
# force C++ interpreter to be full optimization
|
||||
#OPT_CFLAGS/interpret.o = -O3
|
||||
|
||||
else
|
||||
# error
|
||||
|
||||
@@ -30,7 +30,7 @@ DEBUG_CFLAGS/BYFILE = $(DEBUG_CFLAGS/$@)$(DEBUG_CFLAGS/DEFAULT$(DEBUG_CFLAGS/$@)
|
||||
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
|
||||
ifeq ($(COMPILER_REV),5.8)
|
||||
ifeq ($(COMPILER_REV_NUMERIC),508)
|
||||
# SS11 SEGV when compiling with -g and -xarch=v8, using different backend
|
||||
DEBUG_CFLAGS/compileBroker.o = $(DEBUG_CFLAGS) -xO0
|
||||
DEBUG_CFLAGS/jvmtiTagMap.o = $(DEBUG_CFLAGS) -xO0
|
||||
|
||||
@@ -87,17 +87,16 @@ ifneq ("${ISA}","${BUILDARCH}")
|
||||
|
||||
XLIBJVM_DB = 64/$(LIBJVM_DB)
|
||||
XLIBJVM_DTRACE = 64/$(LIBJVM_DTRACE)
|
||||
XARCH = $(subst sparcv9,v9,$(shell echo $(ISA)))
|
||||
|
||||
$(XLIBJVM_DB): $(DTRACE_SRCDIR)/$(JVM_DB).c $(JVMOFFS).h $(LIBJVM_DB_MAPFILE)
|
||||
@echo Making $@
|
||||
$(QUIETLY) mkdir -p 64/ ; \
|
||||
$(CC) $(SYMFLAG) $(ARCHFLAG/$(XARCH)) -D$(TYPE) -I. -I$(GENERATED) \
|
||||
$(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. -I$(GENERATED) \
|
||||
$(SHARED_FLAG) $(LFLAGS_JVM_DB) -o $@ $(DTRACE_SRCDIR)/$(JVM_DB).c -lc
|
||||
$(XLIBJVM_DTRACE): $(DTRACE_SRCDIR)/$(JVM_DTRACE).c $(DTRACE_SRCDIR)/$(JVM_DTRACE).h $(LIBJVM_DTRACE_MAPFILE)
|
||||
@echo Making $@
|
||||
$(QUIETLY) mkdir -p 64/ ; \
|
||||
$(CC) $(SYMFLAG) $(ARCHFLAG/$(XARCH)) -D$(TYPE) -I. \
|
||||
$(CC) $(SYMFLAG) $(ARCHFLAG/$(ISA)) -D$(TYPE) -I. \
|
||||
$(SHARED_FLAG) $(LFLAGS_JVM_DTRACE) -o $@ $(DTRACE_SRCDIR)/$(JVM_DTRACE).c -lc -lthread -ldoor
|
||||
endif # ifneq ("${ISA}","${BUILDARCH}")
|
||||
|
||||
@@ -116,27 +115,25 @@ $(GENOFFS): $(DTRACE_SRCDIR)/$(GENOFFS)Main.c lib$(GENOFFS).so
|
||||
$(QUIETLY) $(LINK.CC) -z nodefs -o $@ $(DTRACE_SRCDIR)/$(GENOFFS)Main.c \
|
||||
./lib$(GENOFFS).so
|
||||
|
||||
# $@.tmp is created first. It's to avoid empty $(JVMOFFS).h produced in error case.
|
||||
CONDITIONALLY_UPDATE_JVMOFFS_TARGET = \
|
||||
cmp -s $@ $@.tmp; \
|
||||
case $$? in \
|
||||
0) rm -f $@.tmp;; \
|
||||
*) rm -f $@ && mv $@.tmp $@ && echo Updated $@;; \
|
||||
esac
|
||||
|
||||
# $@.tmp is created first to avoid an empty $(JVMOFFS).h if an error occurs.
|
||||
$(JVMOFFS).h: $(GENOFFS)
|
||||
$(QUIETLY) LD_LIBRARY_PATH=. ./$(GENOFFS) -header > $@.tmp ; \
|
||||
if [ `diff $@.tmp $@ > /dev/null 2>&1; echo $$?` -ne 0 ] ; \
|
||||
then rm -f $@; mv $@.tmp $@; echo Updated $@ ; \
|
||||
else rm -f $@.tmp; \
|
||||
fi
|
||||
$(QUIETLY) LD_LIBRARY_PATH=. ./$(GENOFFS) -header > $@.tmp
|
||||
$(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
|
||||
|
||||
$(JVMOFFS)Index.h: $(GENOFFS)
|
||||
$(QUIETLY) LD_LIBRARY_PATH=. ./$(GENOFFS) -index > $@.tmp ; \
|
||||
if [ `diff $@.tmp $@ > /dev/null 2>&1; echo $$?` -ne 0 ] ; \
|
||||
then rm -f $@; mv $@.tmp $@; echo Updated $@ ; \
|
||||
else rm -f $@.tmp; \
|
||||
fi
|
||||
$(QUIETLY) LD_LIBRARY_PATH=. ./$(GENOFFS) -index > $@.tmp
|
||||
$(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
|
||||
|
||||
$(JVMOFFS).cpp: $(GENOFFS) $(JVMOFFS).h $(JVMOFFS)Index.h
|
||||
$(QUIETLY) LD_LIBRARY_PATH=. ./$(GENOFFS) -table > $@.tmp ; \
|
||||
if [ `diff $@.tmp $@ > /dev/null 2>&1; echo $$?` -ne 0 ] ; \
|
||||
then rm -f $@; mv $@.tmp $@; echo Updated $@ ; \
|
||||
else rm -f $@.tmp; \
|
||||
fi
|
||||
$(QUIETLY) LD_LIBRARY_PATH=. ./$(GENOFFS) -table > $@.tmp
|
||||
$(QUIETLY) $(CONDITIONALLY_UPDATE_JVMOFFS_TARGET)
|
||||
|
||||
$(JVMOFFS.o): $(JVMOFFS).h $(JVMOFFS).cpp
|
||||
$(QUIETLY) $(CCC) -c -I. -o $@ $(ARCHFLAG) -D$(TYPE) $(JVMOFFS).cpp
|
||||
|
||||
@@ -37,7 +37,7 @@ ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
OPT_CFLAGS/SLOWER = -xO2
|
||||
|
||||
# Problem with SS12 compiler, dtrace doesn't like the .o files (bug 6693876)
|
||||
ifeq ($(COMPILER_REV), 5.9)
|
||||
ifeq ($(COMPILER_REV_NUMERIC), 509)
|
||||
# To avoid jvm98 crash
|
||||
OPT_CFLAGS/instanceKlass.o = $(OPT_CFLAGS/SLOWER)
|
||||
# Not clear this workaround could be skipped in some cases.
|
||||
@@ -46,47 +46,41 @@ ifeq ($(COMPILER_REV), 5.9)
|
||||
OPT_CFLAGS/jni.o = $(OPT_CFLAGS/SLOWER)
|
||||
endif
|
||||
|
||||
ifeq ($(COMPILER_REV), 5.5)
|
||||
ifeq ($(COMPILER_REV_NUMERIC), 505)
|
||||
# CC 5.5 has bug 4908364 with -xO4 (Fixed in 5.6)
|
||||
OPT_CFLAGS/library_call.o = $(OPT_CFLAGS/SLOWER)
|
||||
endif # COMPILER_REV == 5.5
|
||||
endif # COMPILER_REV_NUMERIC == 505
|
||||
|
||||
ifeq ($(shell expr $(COMPILER_REV) \<= 5.4), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \<= 504), 1)
|
||||
# Compilation of *_<arch>.cpp can take an hour or more at O3. Use O2
|
||||
# See comments at top of sparc.make.
|
||||
OPT_CFLAGS/ad_$(Platform_arch).o = $(OPT_CFLAGS/SLOWER)
|
||||
OPT_CFLAGS/dfa_$(Platform_arch).o = $(OPT_CFLAGS/SLOWER)
|
||||
endif # COMPILER_REV <= 5.4
|
||||
OPT_CFLAGS/ad_$(Platform_arch_model).o = $(OPT_CFLAGS/SLOWER)
|
||||
OPT_CFLAGS/dfa_$(Platform_arch_model).o = $(OPT_CFLAGS/SLOWER)
|
||||
endif # COMPILER_REV_NUMERIC <= 504
|
||||
|
||||
ifeq (${COMPILER_REV}, 5.0)
|
||||
# Avoid a compiler bug caused by using -xO<level> -g<level>
|
||||
# Since the bug also occurs with -xO0, use an innocuous value (must not be null)
|
||||
OPT_CFLAGS/c1_LIROptimizer_i486.o = -c
|
||||
endif
|
||||
|
||||
ifeq ($(shell expr $(COMPILER_REV) \< 5.5), 1)
|
||||
# Same problem with Solaris/x86 compiler (both 5.0 and 5.2) on ad_i486.cpp.
|
||||
# CC build time is also too long for ad_i486_{gen,misc}.o
|
||||
OPT_CFLAGS/ad_i486.o = -c
|
||||
OPT_CFLAGS/ad_i486_gen.o = -c
|
||||
OPT_CFLAGS/ad_i486_misc.o = -c
|
||||
ifeq ($(Platform_arch), i486)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \< 505), 1)
|
||||
# Same problem with Solaris/x86 compiler (both 5.0 and 5.2) on ad_x86_{32,64}.cpp.
|
||||
# CC build time is also too long for ad_$(Platform_arch_model)_{gen,misc}.o
|
||||
OPT_CFLAGS/ad_$(Platform_arch_model).o = -c
|
||||
OPT_CFLAGS/ad_$(Platform_arch_model)_gen.o = -c
|
||||
OPT_CFLAGS/ad_$(Platform_arch_model)_misc.o = -c
|
||||
ifeq ($(Platform_arch), x86)
|
||||
# Same problem for the wrapper roosts: jni.o jvm.o
|
||||
OPT_CFLAGS/jni.o = -c
|
||||
OPT_CFLAGS/jvm.o = -c
|
||||
# Same problem in parse2.o (probably the Big Switch over bytecodes)
|
||||
OPT_CFLAGS/parse2.o = -c
|
||||
endif # Platform_arch == i486
|
||||
endif # Platform_arch == x86
|
||||
endif
|
||||
|
||||
# Frame size > 100k if we allow inlining via -g0!
|
||||
DEBUG_CFLAGS/bytecodeInterpreter.o = -g
|
||||
DEBUG_CFLAGS/bytecodeInterpreterWithChecks.o = -g
|
||||
ifeq ($(Platform_arch), i486)
|
||||
ifeq ($(Platform_arch), x86)
|
||||
# ube explodes on x86
|
||||
OPT_CFLAGS/bytecodeInterpreter.o = -xO1
|
||||
OPT_CFLAGS/bytecodeInterpreterWithChecks.o = -xO1
|
||||
endif # Platform_arch == i486
|
||||
endif # Platform_arch == x86
|
||||
|
||||
endif # Platform_compiler == sparcWorks
|
||||
|
||||
|
||||
@@ -35,17 +35,13 @@ Obj_Files += solaris_x86_32.o
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
|
||||
# _lwp_create_interpose must have a frame
|
||||
OPT_CFLAGS/os_solaris_i486.o = -xO1
|
||||
# force C++ interpreter to be full optimization
|
||||
OPT_CFLAGS/interpret.o = -fast -O4
|
||||
OPT_CFLAGS/os_solaris_x86.o = -xO1
|
||||
else
|
||||
|
||||
ifeq ("${Platform_compiler}", "gcc")
|
||||
# gcc
|
||||
# _lwp_create_interpose must have a frame
|
||||
OPT_CFLAGS/os_solaris_i486.o = -fno-omit-frame-pointer
|
||||
# force C++ interpreter to be full optimization
|
||||
OPT_CFLAGS/interpret.o = -O3
|
||||
OPT_CFLAGS/os_solaris_x86.o = -fno-omit-frame-pointer
|
||||
#
|
||||
else
|
||||
# error
|
||||
@@ -57,7 +53,7 @@ endif
|
||||
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
# ILD is gone as of SS11 (5.8), not supported in SS10 (5.7)
|
||||
ifeq ($(shell expr $(COMPILER_REV) \< 5.7), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \< 507), 1)
|
||||
#
|
||||
# Bug in ild causes it to fail randomly. Until we get a fix we can't
|
||||
# use ild.
|
||||
|
||||
@@ -30,7 +30,7 @@ DEBUG_CFLAGS/BYFILE = $(DEBUG_CFLAGS/$@)$(DEBUG_CFLAGS/DEFAULT$(DEBUG_CFLAGS/$@)
|
||||
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
|
||||
ifeq ($(COMPILER_REV),5.8)
|
||||
ifeq ($(COMPILER_REV_NUMERIC),508)
|
||||
# SS11 SEGV when compiling with -g and -xarch=v8, using different backend
|
||||
DEBUG_CFLAGS/compileBroker.o = $(DEBUG_CFLAGS) -xO0
|
||||
DEBUG_CFLAGS/jvmtiTagMap.o = $(DEBUG_CFLAGS) -xO0
|
||||
|
||||
@@ -33,7 +33,7 @@ OPT_CFLAGS/BYFILE = $(OPT_CFLAGS/$@)$(OPT_CFLAGS/DEFAULT$(OPT_CFLAGS/$@))
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
|
||||
# Problem with SS12 compiler, dtrace doesn't like the .o files (bug 6693876)
|
||||
ifeq ($(COMPILER_REV),5.9)
|
||||
ifeq ($(COMPILER_REV_NUMERIC),509)
|
||||
# Not clear this workaround could be skipped in some cases.
|
||||
OPT_CFLAGS/vmGCOperations.o = $(OPT_CFLAGS/SLOWER) -g
|
||||
OPT_CFLAGS/java.o = $(OPT_CFLAGS/SLOWER) -g
|
||||
@@ -41,9 +41,9 @@ ifeq ($(COMPILER_REV),5.9)
|
||||
endif
|
||||
|
||||
# Workaround SS11 bug 6345274 (all platforms) (Fixed in SS11 patch and SS12)
|
||||
ifeq ($(COMPILER_REV),5.8))
|
||||
ifeq ($(COMPILER_REV_NUMERIC),508))
|
||||
OPT_CFLAGS/ciTypeFlow.o = $(OPT_CFLAGS/O2)
|
||||
endif # COMPILER_REV == 5.8
|
||||
endif # COMPILER_REV_NUMERIC == 508
|
||||
|
||||
endif # Platform_compiler == sparcWorks
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ endif
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
|
||||
# Problem with SS12 compiler, dtrace doesn't like the .o files (bug 6693876)
|
||||
ifeq ($(COMPILER_REV),5.9)
|
||||
ifeq ($(COMPILER_REV_NUMERIC),509)
|
||||
# Not clear this workaround could be skipped in some cases.
|
||||
OPT_CFLAGS/vmGCOperations.o = $(OPT_CFLAGS/SLOWER) -g
|
||||
OPT_CFLAGS/java.o = $(OPT_CFLAGS/SLOWER) -g
|
||||
@@ -49,9 +49,9 @@ ifeq ($(COMPILER_REV),5.9)
|
||||
endif
|
||||
|
||||
# Workaround SS11 bug 6345274 (all platforms) (Fixed in SS11 patch and SS12)
|
||||
ifeq ($(COMPILER_REV),5.8)
|
||||
ifeq ($(COMPILER_REV_NUMERIC),508)
|
||||
OPT_CFLAGS/ciTypeFlow.o = $(OPT_CFLAGS/O2)
|
||||
endif # COMPILER_REV == 5.8
|
||||
endif # COMPILER_REV_NUMERIC == 508
|
||||
|
||||
endif # Platform_compiler == sparcWorks
|
||||
|
||||
|
||||
5450
hotspot/make/solaris/makefiles/reorder_COMPILER1_amd64
Normal file
5450
hotspot/make/solaris/makefiles/reorder_COMPILER1_amd64
Normal file
File diff suppressed because it is too large
Load Diff
@@ -8,20 +8,20 @@ text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: arguments.o;
|
||||
text: .text%__1cQAgentLibraryList2t6M_v_: arguments.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_AllocTable.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_AllocTable.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_AllocTable_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_AllocTable_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_AllocTable_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_AllocTable_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_CacheLocals.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_CacheLocals.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_CacheLocals_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_CacheLocals_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_CacheLocals_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_CacheLocals_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Canonicalizer.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Canonicalizer.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_CodeGenerator.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_CodeGenerator.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_CodeGenerator_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_CodeGenerator_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_CodeGenerator_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_CodeGenerator_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Compilation.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Compilation.o;
|
||||
text: .text%__1cMelapsedTimer2t6M_v_: c1_Compilation.o;
|
||||
@@ -29,9 +29,9 @@ text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Compiler.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Compiler.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_FrameMap.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_FrameMap.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_FrameMap_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_FrameMap_i486.o;
|
||||
text: .text%__1cKc1_RegMask2t6M_v_: c1_FrameMap_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_FrameMap_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_FrameMap_x86.o;
|
||||
text: .text%__1cKc1_RegMask2t6M_v_: c1_FrameMap_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_GraphBuilder.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_GraphBuilder.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_IR.o;
|
||||
@@ -43,41 +43,41 @@ text: .text%__1cFRInfo2t6M_v_: c1_InstructionPrinter.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Items.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Items.o;
|
||||
text: .text%__1cIHintItem2t6MpnJValueType_i_v_: c1_Items.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Items_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Items_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Items_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Items_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIR.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIR.o;
|
||||
text: .text%__1cLLIR_OprFactHillegal6F_pnLLIR_OprDesc__: c1_LIR.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIRAssembler.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIRAssembler.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIRAssembler_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIRAssembler_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIRAssembler_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIRAssembler_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIREmitter.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIREmitter.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIROptimizer.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIROptimizer.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Loops.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Loops.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_MacroAssembler_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_MacroAssembler_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_MacroAssembler_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_MacroAssembler_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Optimizer.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Optimizer.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_RInfo.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_RInfo.o;
|
||||
text: .text%__1cKc1_RegMask2t6M_v_: c1_RInfo.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_RInfo_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_RInfo_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_RInfo_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_RInfo_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_RegAlloc.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_RegAlloc.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_RegAlloc_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_RegAlloc_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_RegAlloc_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_RegAlloc_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Runtime1.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Runtime1.o;
|
||||
text: .text%__1cIiEntries2t6M_v_;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Runtime1_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Runtime1_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_Runtime1_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_Runtime1_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_ScanBlocks.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_ScanBlocks.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_ValueMap.o;
|
||||
@@ -105,8 +105,8 @@ text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: fprofiler.o;
|
||||
text: .text%__1cMelapsedTimer2t6M_v_: fprofiler.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: frame.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: frame.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: frame_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: frame_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: frame_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: frame_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: genCollectedHeap.o;
|
||||
text: .text%__1cTAssertIsPermClosure2t6M_v_: genCollectedHeap.o;
|
||||
text: .text%__1cRAlwaysTrueClosure2t6M_v_: genCollectedHeap.o;
|
||||
@@ -117,8 +117,8 @@ text: .text%__1cNCellTypeStateImake_top6F_0_: generateOopMap.o;
|
||||
text: .text%__1cMelapsedTimer2t6M_v_: generateOopMap.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: interpreter.o;
|
||||
text: .text%__1cKEntryPoint2t6M_v_;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: interpreter_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: interpreter_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: interpreter_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: interpreter_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: java.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: java.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: jvmtiEnvBase.o;
|
||||
@@ -151,16 +151,16 @@ text: .text%__1cNGrowableArray4CpnKMemoryPool__2t6Mii_v_: memoryService.o;
|
||||
text: .text%__1cNGrowableArray4CpnNMemoryManager__2t6Mii_v_: memoryService.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: methodOop.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: methodOop.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: nativeInst_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: nativeInst_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: nativeInst_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: nativeInst_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: nmethod.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: nmethod.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: oopMap.o;
|
||||
text: .text%__1cQDoNothingClosure2t6M_v_: oopMap.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: os_solaris.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: os_solaris.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: os_solaris_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: os_solaris_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: os_solaris_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: os_solaris_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: parGCAllocBuffer.o;
|
||||
text: .text%__1cMarrayOopDescLheader_size6FnJBasicType__i_: parGCAllocBuffer.o;
|
||||
text: .text%__1cRalign_object_size6Fi_i_: parGCAllocBuffer.o;
|
||||
@@ -181,8 +181,8 @@ text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: runtimeService.o;
|
||||
text: .text%__1cJTimeStamp2t6M_v_: runtimeService.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: safepoint.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: safepoint.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: safepoint_solaris_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: safepoint_solaris_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: safepoint_solaris_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: safepoint_solaris_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: sharedHeap.o;
|
||||
text: .text%__1cTAssertIsPermClosure2t6M_v_: sharedHeap.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: sharedRuntime.o;
|
||||
@@ -197,10 +197,10 @@ text: .text%__1cFRInfo2t6M_v_: vmStructs.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vm_version.o;
|
||||
text: .text%__1cTAbstract_VM_VersionKvm_release6F_pkc_;
|
||||
text: .text%__1cTAbstract_VM_VersionXinternal_vm_info_string6F_pkc_;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vtableStubs_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: vtableStubs_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIROptimizer_i486.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIROptimizer_i486.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: vtableStubs_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: vtableStubs_x86.o;
|
||||
text: .text%__1cU__STATIC_CONSTRUCTOR6F_v_: c1_LIROptimizer_x86.o;
|
||||
text: .text%__1cFRInfo2t6M_v_: c1_LIROptimizer_x86.o;
|
||||
text: .text%JNI_CreateJavaVM;
|
||||
text: .text%__1cCosVatomic_xchg_bootstrap6Fipoi_i_;
|
||||
text: .text%__1cHThreadsJcreate_vm6FpnOJavaVMInitArgs_pi_i_;
|
||||
@@ -279,7 +279,7 @@ text: .text%__1cSThreadLocalStorageEinit6F_v_;
|
||||
text: .text%__1cSThreadLocalStorageHpd_init6F_v_;
|
||||
text: .text%__1cCosbDallocate_thread_local_storage6F_i_;
|
||||
text: .text%__1cSThreadLocalStoragebCgenerate_code_for_get_thread6F_v_;
|
||||
text: .text%__1cRAllocateTLSOffset6F_v_: threadLS_solaris_i486.o;
|
||||
text: .text%__1cRAllocateTLSOffset6F_v_: threadLS_solaris_x86.o;
|
||||
text: .text%__1cPvm_init_globals6F_v_;
|
||||
text: .text%__1cScheck_ThreadShadow6F_v_;
|
||||
text: .text%__1cRcheck_basic_types6F_v_;
|
||||
@@ -463,7 +463,7 @@ text: .text%__1cKMemoryPoolImax_size6kM_I_: memoryPool.o;
|
||||
text: .text%__1cXresource_allocate_bytes6FI_pc_;
|
||||
text: .text%__1cKCodeBuffer2t6MpCi_v_;
|
||||
text: .text%__1cRAbstractAssembler2t6MpnKCodeBuffer__v_;
|
||||
text: .text%__1cYVM_Version_StubGeneratorTgenerate_getPsrInfo6M_pC_: vm_version_i486.o;
|
||||
text: .text%__1cYVM_Version_StubGeneratorTgenerate_getPsrInfo6M_pC_: vm_version_x86.o;
|
||||
text: .text%__1cMStubCodeMark2t6MpnRStubCodeGenerator_pkc4_v_;
|
||||
text: .text%__1cRStubCodeGeneratorLstub_prolog6MpnMStubCodeDesc__v_;
|
||||
text: .text%__1cJAssemblerFpushl6MpnMRegisterImpl__v_;
|
||||
@@ -497,14 +497,14 @@ text: .text%__1cFVTuneNregister_stub6FpkcpC3_v_;
|
||||
text: .text%__1cFForteNregister_stub6FpkcpC3_v_;
|
||||
text: .text%__1cKVM_VersionWget_processor_features6F_v_;
|
||||
text: .text%__1cCosMsupports_sse6F_i_;
|
||||
text: .text%__1cVcheck_for_sse_support6F_v_: os_solaris_i486.o;
|
||||
text: .text%__1cVcheck_for_sse_support6F_v_: os_solaris_x86.o;
|
||||
text: .text%jio_snprintf;
|
||||
text: .text%jio_vsnprintf;
|
||||
text: .text%__1cPlocal_vsnprintf6FpcIpkcpv_i_;
|
||||
text: .text%__1cSstubRoutines_init16F_v_;
|
||||
text: .text%__1cMStubRoutinesLinitialize16F_v_;
|
||||
text: .text%__1cWStubGenerator_generate6FpnKCodeBuffer_i_v_;
|
||||
text: .text%__1cNStubGeneratorbAgenerate_forward_exception6M_pC_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorbAgenerate_forward_exception6M_pC_: stubGenerator_x86.o;
|
||||
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpCpnMRegisterImpl__v_;
|
||||
text: .text%__1cOMacroAssemblerMcall_VM_leaf6MpCi_v_;
|
||||
text: .text%__1cOMacroAssemblerRcall_VM_leaf_base6MpCi_v_;
|
||||
@@ -525,7 +525,7 @@ text: .text%__1cJAssemblerEleal6MpnMRegisterImpl_nHAddress__v_;
|
||||
text: .text%__1cJAssemblerEmovl6MnHAddress_i_v_;
|
||||
text: .text%__1cOMacroAssemblerKverify_oop6MpnMRegisterImpl_pkc_v_;
|
||||
text: .text%__1cJAssemblerDjmp6MpnMRegisterImpl_nJrelocInfoJrelocType__v_;
|
||||
text: .text%__1cNStubGeneratorSgenerate_call_stub6MrpC_1_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorSgenerate_call_stub6MrpC_1_: stubGenerator_x86.o;
|
||||
text: .text%__1cOMacroAssemblerFenter6M_v_;
|
||||
text: .text%__1cJAssemblerEsubl6MpnMRegisterImpl_i_v_;
|
||||
text: .text%__1cJAssemblerFtestl6MpnMRegisterImpl_2_v_;
|
||||
@@ -534,14 +534,14 @@ text: .text%__1cJAssemblerEcall6MpnMRegisterImpl_nJrelocInfoJrelocType__v_;
|
||||
text: .text%__1cJAssemblerEcmpl6MpnMRegisterImpl_i_v_;
|
||||
text: .text%__1cJAssemblerGfstp_s6MnHAddress__v_;
|
||||
text: .text%__1cJAssemblerGfstp_d6MnHAddress__v_;
|
||||
text: .text%__1cNStubGeneratorYgenerate_catch_exception6M_pC_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorYgenerate_catch_exception6M_pC_: stubGenerator_x86.o;
|
||||
text: .text%__1cJAssemblerDjmp6MpCnJrelocInfoJrelocType__v_;
|
||||
text: .text%__1cNStubGeneratorUgenerate_atomic_xchg6M_pC_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorUgenerate_atomic_xchg6M_pC_: stubGenerator_x86.o;
|
||||
text: .text%__1cJAssemblerExchg6MpnMRegisterImpl_nHAddress__v_;
|
||||
text: .text%__1cJAssemblerGpushad6M_v_;
|
||||
text: .text%__1cJAssemblerFpopad6M_v_;
|
||||
text: .text%__1cNStubGeneratorYgenerate_get_previous_fp6M_pC_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorUgenerate_d2i_wrapper6MpC_1_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorYgenerate_get_previous_fp6M_pC_: stubGenerator_x86.o;
|
||||
text: .text%__1cNStubGeneratorUgenerate_d2i_wrapper6MpC_1_: stubGenerator_x86.o;
|
||||
text: .text%__1cOMacroAssemblerOpush_FPU_state6M_v_;
|
||||
text: .text%__1cJAssemblerGfnsave6MnHAddress__v_;
|
||||
text: .text%__1cJAssemblerFfwait6M_v_;
|
||||
@@ -552,7 +552,7 @@ text: .text%__1cJAssemblerFffree6Mi_v_;
|
||||
text: .text%__1cJAssemblerLemit_farith6Miii_v_;
|
||||
text: .text%__1cOMacroAssemblerNpop_FPU_state6M_v_;
|
||||
text: .text%__1cJAssemblerGfrstor6MnHAddress__v_;
|
||||
text: .text%__1cNStubGeneratorUcreate_control_words6M_v_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorUcreate_control_words6M_v_: stubGenerator_x86.o;
|
||||
text: .text%__1cJTraceTime2T6M_v_;
|
||||
text: .text%__1cNcarSpace_init6F_v_;
|
||||
text: .text%__1cICarSpaceEinit6F_v_;
|
||||
@@ -773,7 +773,7 @@ text: .text%__1cUInterpreterGeneratorVgenerate_counter_incr6MpnFLabel_22_v_;
|
||||
text: .text%__1cJAssemblerEaddl6MpnMRegisterImpl_2_v_;
|
||||
text: .text%__1cJAssemblerEcmpl6MpnMRegisterImpl_nHAddress__v_;
|
||||
text: .text%__1cbCAbstractInterpreterGeneratorXbang_stack_shadow_pages6Mi_v_;
|
||||
text: .text%__1cOMacroAssemblerWbang_stack_with_offset6Mi_v_: interp_masm_i486.o;
|
||||
text: .text%__1cOMacroAssemblerWbang_stack_with_offset6Mi_v_: interp_masm_x86.o;
|
||||
text: .text%__1cZInterpreterMacroAssemblerTnotify_method_entry6M_v_;
|
||||
text: .text%__1cUInterpreterGeneratorZgenerate_counter_overflow6MpC_v_;
|
||||
text: .text%__1cJAssemblerEnegl6MpnMRegisterImpl__v_;
|
||||
@@ -785,7 +785,7 @@ text: .text%__1cJAssemblerDorl6MpnMRegisterImpl_nHAddress__v_;
|
||||
text: .text%__1cUInterpreterGeneratorUgenerate_empty_entry6M_pC_;
|
||||
text: .text%__1cUInterpreterGeneratorXgenerate_accessor_entry6M_pC_;
|
||||
text: .text%__1cJAssemblerEshrl6MpnMRegisterImpl_i_v_;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: interpreter_i486.o;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: interpreter_x86.o;
|
||||
text: .text%__1cOMacroAssemblerQload_signed_byte6MpnMRegisterImpl_nHAddress__i_;
|
||||
text: .text%__1cJAssemblerGmovsxb6MpnMRegisterImpl_nHAddress__v_;
|
||||
text: .text%__1cOMacroAssemblerQload_signed_word6MpnMRegisterImpl_nHAddress__i_;
|
||||
@@ -982,7 +982,7 @@ text: .text%__1cNTemplateTableJfloat_cmp6Fii_v_;
|
||||
text: .text%__1cOMacroAssemblerIfcmp2int6MpnMRegisterImpl_i_v_;
|
||||
text: .text%__1cNTemplateTableKdouble_cmp6Fi_v_;
|
||||
text: .text%__1cNTemplateTableHif_0cmp6Fn0AJCondition__v_;
|
||||
text: .text%__1cFj_not6FnNTemplateTableJCondition__nJAssemblerJCondition__: templateTable_i486.o;
|
||||
text: .text%__1cFj_not6FnNTemplateTableJCondition__nJAssemblerJCondition__: templateTable_x86.o;
|
||||
text: .text%__1cNTemplateTableGbranch6Fii_v_;
|
||||
text: .text%__1cZInterpreterMacroAssemblerUprofile_taken_branch6MpnMRegisterImpl_2_v_;
|
||||
text: .text%__1cZInterpreterMacroAssemblerNdispatch_only6MnITosState__v_;
|
||||
@@ -1488,7 +1488,7 @@ text: .text%__1cKSharedInfoLset_regName6F_v_;
|
||||
text: .text%__1cIRegAllocYinit_register_allocation6F_v_;
|
||||
text: .text%__1cIFrameMapEinit6F_v_;
|
||||
text: .text%__1cKc1_RegMaskKinit_masks6Fi_v_;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_FrameMap_i486.o;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_FrameMap_x86.o;
|
||||
text: .text%__1cNc1_AllocTableLinit_tables6F_v_;
|
||||
text: .text%__1cIFrameMapOfirst_register6F_pnMRegisterImpl__;
|
||||
text: .text%__1cIFrameMapLcpu_reg2rnr6FpnMRegisterImpl__i_;
|
||||
@@ -1502,7 +1502,7 @@ text: .text%__1cKCodeBuffer2t6MiiiiiipnKBufferBlob_pnJrelocInfo_pnORelocateBuffe
|
||||
text: .text%__1cKCodeBufferQalloc_relocation6MI_v_;
|
||||
text: .text%__1cJOopMapSet2t6M_v_;
|
||||
text: .text%__1cJAssemblerEsubl6MnHAddress_i_v_;
|
||||
text: .text%__1cTsave_live_registers6FpnOMacroAssembler_i_pnGOopMap__: c1_Runtime1_i486.o;
|
||||
text: .text%__1cTsave_live_registers6FpnOMacroAssembler_i_pnGOopMap__: c1_Runtime1_x86.o;
|
||||
text: .text%__1cJAssemblerGfldenv6MnHAddress__v_;
|
||||
text: .text%__1cGOopMap2t6Mii_v_;
|
||||
text: .text%__1cGOopMapQset_callee_saved6MnHOptoRegEName_ii2_v_;
|
||||
@@ -1564,10 +1564,10 @@ text: .text%__1cNStubAssemblerHcall_RT6MpnMRegisterImpl_2pCi_i_;
|
||||
text: .text%__1cJStubFrame2T6M_v_;
|
||||
text: .text%__1cIRuntime1Ygenerate_exception_throw6FpnNStubAssembler_pCpnMRegisterImpl__pnJOopMapSet__;
|
||||
text: .text%__1cOMacroAssemblerLtlab_refill6MrnFLabel_22_v_;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: assembler_i486.o;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: assembler_x86.o;
|
||||
text: .text%__1cOMacroAssemblerNeden_allocate6MpnMRegisterImpl_2i2rnFLabel__v_;
|
||||
text: .text%__1cOMacroAssemblerLverify_tlab6M_v_;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: c1_Runtime1_i486.o;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: c1_Runtime1_x86.o;
|
||||
text: .text%__1cOMacroAssemblerNtlab_allocate6MpnMRegisterImpl_2i22rnFLabel__v_;
|
||||
text: .text%__1cRC1_MacroAssemblerRinitialize_object6MpnMRegisterImpl_22i22_v_;
|
||||
text: .text%__1cRC1_MacroAssemblerRinitialize_header6MpnMRegisterImpl_22_v_;
|
||||
@@ -1581,7 +1581,7 @@ text: .text%__1cIiEntries2t6Miiii_v_;
|
||||
text: .text%__1cRNativeGeneralJumpQjump_destination6kM_pC_;
|
||||
text: .text%__1cJAssemblerOlocate_operand6FpCn0AMWhichOperand__1_;
|
||||
text: .text%__1cIRuntime1Rgenerate_patching6FpnNStubAssembler_pC_pnJOopMapSet__;
|
||||
text: .text%__1cWrestore_live_registers6FpnOMacroAssembler__v_: c1_Runtime1_i486.o;
|
||||
text: .text%__1cWrestore_live_registers6FpnOMacroAssembler__v_: c1_Runtime1_x86.o;
|
||||
text: .text%__1cNSafepointBlobGcreate6FpnKCodeBuffer_pnJOopMapSet_i_p0_;
|
||||
text: .text%__1cNSafepointBlob2n6FII_pv_;
|
||||
text: .text%__1cNSafepointBlob2t6MpnKCodeBuffer_ipnJOopMapSet_i_v_;
|
||||
@@ -1778,8 +1778,8 @@ text: .text%__1cYsun_reflect_ConstantPoolPcompute_offsets6F_v_;
|
||||
text: .text%__1cZsun_misc_AtomicLongCSImplPcompute_offsets6F_v_;
|
||||
text: .text%__1cSstubRoutines_init26F_v_;
|
||||
text: .text%__1cMStubRoutinesLinitialize26F_v_;
|
||||
text: .text%__1cNStubGeneratorYgenerate_throw_exception6MpkcpCi_3_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorTgenerate_verify_oop6M_pC_: stubGenerator_i486.o;
|
||||
text: .text%__1cNStubGeneratorYgenerate_throw_exception6MpkcpCi_3_: stubGenerator_x86.o;
|
||||
text: .text%__1cNStubGeneratorTgenerate_verify_oop6M_pC_: stubGenerator_x86.o;
|
||||
text: .text%__1cJAssemblerEincl6MnHAddress__v_;
|
||||
text: .text%__1cHThreadsDadd6FpnKJavaThread_i_v_;
|
||||
text: .text%__1cNThreadServiceKadd_thread6FpnKJavaThread_i_v_;
|
||||
@@ -3074,11 +3074,11 @@ text: .text%__1cEItemRget_jint_constant6kM_i_;
|
||||
text: .text%__1cLLIR_EmitterRarithmetic_op_int6MnJBytecodesECode_pnLLIR_OprDesc_44nFRInfo__v_;
|
||||
text: .text%__1cLLIR_EmitterNarithmetic_op6MnJBytecodesECode_pnLLIR_OprDesc_44inFRInfo_pnMCodeEmitInfo__v_;
|
||||
text: .text%__1cLLIR_EmitterYstrength_reduce_multiply6MpnLLIR_OprDesc_i22_i_;
|
||||
text: .text%__1cILIR_ListHreg2reg6MnFRInfo_1nJBasicType__v_: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cILIR_ListHreg2reg6MnFRInfo_1nJBasicType__v_: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cILIR_ListKshift_left6MpnLLIR_OprDesc_222_v_;
|
||||
text: .text%__1cILIR_ListDsub6MpnLLIR_OprDesc_22pnMCodeEmitInfo__v_: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cILIR_ListDsub6MpnLLIR_OprDesc_22pnMCodeEmitInfo__v_: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cIValueGenWcan_inline_as_constant6MpnEItem__i_;
|
||||
text: .text%__1cIRegAllocPget_register_rc6kMnFRInfo__i_;
|
||||
text: .text%__1cLGetRefCountGdo_cpu6Mi_v_: c1_RegAlloc.o;
|
||||
@@ -3098,7 +3098,7 @@ text: .text%__1cMLIR_OpBranch2t6Mn0ANLIR_Condition_pnICodeStub_pnMCodeEmitInfo__
|
||||
text: .text%__1cLLIR_EmitterMindexed_load6MnFRInfo_nJBasicType_pnLLIR_OprDesc_4pnMCodeEmitInfo__v_;
|
||||
text: .text%__1cLLIR_EmitterNarray_address6MpnLLIR_OprDesc_2inJBasicType__pnLLIR_Address__;
|
||||
text: .text%__1cLLIR_AddressFscale6FnJBasicType__n0AFScale__;
|
||||
text: .text%__1cILIR_ListEmove6MpnLLIR_Address_pnLLIR_OprDesc_pnMCodeEmitInfo__v_: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cILIR_ListEmove6MpnLLIR_Address_pnLLIR_OprDesc_pnMCodeEmitInfo__v_: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cIRegAllocNoops_in_spill6kM_pnIintStack__;
|
||||
text: .text%__1cIRegAllocRoops_in_registers6kM_pnPRInfoCollection__;
|
||||
text: .text%__1cIValueGenbDsafepoint_poll_needs_register6F_i_;
|
||||
@@ -3137,9 +3137,9 @@ text: .text%__1cHLIR_Op1Fvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cPRegisterManagerElock6MnFRInfo__v_;
|
||||
text: .text%__1cHLIR_Op2Fvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cMLIR_OpBranchFvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cORangeCheckStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cQLIR_OpVisitStateGappend6MnFRInfo__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cORangeCheckStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cQLIR_OpVisitStateGappend6MnFRInfo__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNc1_AllocTableFmerge6Mp0_v_;
|
||||
text: .text%__1cGLIR_OpFvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cQLIR_LocalCachingXcache_locals_for_blocks6MpnJBlockList_pnPRegisterManager_i_pnMLocalMapping__;
|
||||
@@ -3201,7 +3201,7 @@ text: .text%__1cJLabelListIindex_of6kMkpnFLabel__i_: c1_LIROptimizer.o;
|
||||
text: .text%__1cRLIR_PeepholeStateYset_disable_optimization6Mi_v_;
|
||||
text: .text%__1cLLIR_OpLabelJemit_code6MpnVLIR_AbstractAssembler__v_;
|
||||
text: .text%__1cNLIR_OptimizerMemit_opLabel6MpnLLIR_OpLabel__v_;
|
||||
text: .text%__1cNLIR_OptimizerFvisit6M_v_: c1_LIROptimizer_i486.o;
|
||||
text: .text%__1cNLIR_OptimizerFvisit6M_v_: c1_LIROptimizer_x86.o;
|
||||
text: .text%__1cHLIR_Op0Jemit_code6MpnVLIR_AbstractAssembler__v_;
|
||||
text: .text%__1cNLIR_OptimizerIemit_op06MpnHLIR_Op0__v_;
|
||||
text: .text%__1cHLIR_Op2Jemit_code6MpnVLIR_AbstractAssembler__v_;
|
||||
@@ -3225,7 +3225,7 @@ text: .text%__1cNLIR_OptimizerRreplace_stack_opr6MpnLLIR_OprDesc__2_;
|
||||
text: .text%__1cNLIR_OptimizerNoptimize_move6MpnHLIR_Op1_rpnLLIR_OprDesc_5_i_;
|
||||
text: .text%__1cRLIR_PeepholeStatebFequivalent_register_or_constant6MpnLLIR_OprDesc__2_;
|
||||
text: .text%__1cRLIR_PeepholeStateOequivalent_opr6MpnLLIR_OprDesc__2_;
|
||||
text: .text%__1cNLIR_OptimizerKmaybe_opto6MpnLLIR_OprDesc_2_2_: c1_LIROptimizer_i486.o;
|
||||
text: .text%__1cNLIR_OptimizerKmaybe_opto6MpnLLIR_OprDesc_2_2_: c1_LIROptimizer_x86.o;
|
||||
text: .text%__1cNLIR_OptimizerMis_cache_reg6MpnLLIR_OprDesc__i_;
|
||||
text: .text%__1cMLocalMappingMis_cache_reg6kMpnLLIR_OprDesc__i_;
|
||||
text: .text%__1cMLocalMappingMis_cache_reg6kMnFRInfo__i_;
|
||||
@@ -3294,13 +3294,13 @@ text: .text%__1cNLIR_AssemblerVsetup_locals_at_entry6M_v_;
|
||||
text: .text%__1cIFrameMapYsignature_type_array_for6FpknIciMethod__pnNBasicTypeList__;
|
||||
text: .text%__1cIFrameMapScalling_convention6FpknIciMethod_pnIintArray__pnRCallingConvention__;
|
||||
text: .text%__1cIFrameMapScalling_convention6FirknOBasicTypeArray_pnIintArray__pnRCallingConvention__;
|
||||
text: .text%__1cIintArray2t6Mki1_v_: c1_FrameMap_i486.o;
|
||||
text: .text%__1cIintArray2t6Mki1_v_: c1_FrameMap_x86.o;
|
||||
text: .text%__1cIFrameMapRname_for_argument6Fi_i_;
|
||||
text: .text%__1cIFrameMapSfp_offset_for_name6kMiii_i_;
|
||||
text: .text%__1cIFrameMapPnum_local_names6kM_i_;
|
||||
text: .text%__1cIFrameMapNlocal_to_slot6kMii_i_;
|
||||
text: .text%__1cIFrameMapSfp_offset_for_slot6kMi_i_;
|
||||
text: .text%__1cQArgumentLocation2t6Mci_v_: c1_FrameMap_i486.o;
|
||||
text: .text%__1cQArgumentLocation2t6Mci_v_: c1_FrameMap_x86.o;
|
||||
text: .text%__1cQArgumentLocationSset_stack_location6Mi_v_;
|
||||
text: .text%__1cIFrameMapQaddress_for_name6kMiii_nHAddress__;
|
||||
text: .text%__1cIFrameMapQmake_new_address6kMi_nHAddress__;
|
||||
@@ -3321,12 +3321,12 @@ text: .text%__1cNLIR_AssemblerbIadd_debug_info_for_null_check_here6MpnMCodeEmitI
|
||||
text: .text%__1cNLIR_AssemblerLcode_offset6kM_i_;
|
||||
text: .text%__1cNLIR_AssemblerbDadd_debug_info_for_null_check6MipnMCodeEmitInfo__v_;
|
||||
text: .text%__1cNLIR_AssemblerOemit_code_stub6MpnICodeStub__v_;
|
||||
text: .text%__1cVImplicitNullCheckStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cVImplicitNullCheckStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerCpc6kM_pC_;
|
||||
text: .text%__1cICodeStubLset_code_pc6MpC_v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cICodeStubMis_call_stub6kM_i_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cICodeStubLset_code_pc6MpC_v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cICodeStubMis_call_stub6kM_i_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNCodeStubArrayIindex_of6kMkpnICodeStub__i_: c1_LIRAssembler.o;
|
||||
text: .text%__1cORangeCheckStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cORangeCheckStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerOsafepoint_poll6MnFRInfo_pnMCodeEmitInfo__v_;
|
||||
text: .text%__1cNLIR_AssemblerZadd_debug_info_for_branch6MpnMCodeEmitInfo__v_;
|
||||
text: .text%__1cPpoll_RelocationEtype6M_nJrelocInfoJrelocType__: codeBlob.o;
|
||||
@@ -3396,7 +3396,7 @@ text: .text%__1cNLIR_AssemblerWemit_exception_handler6M_i_;
|
||||
text: .text%__1cRC1_MacroAssemblerRexception_handler6Mii_v_;
|
||||
text: .text%__1cNLIR_AssemblerPemit_call_stubs6M_v_;
|
||||
text: .text%__1cNLIR_AssemblerbCmaybe_adjust_stack_alignment6MpnIciMethod__v_;
|
||||
text: .text%__1cKreal_index6FpnIFrameMap_i_i_: c1_LIRAssembler_i486.o;
|
||||
text: .text%__1cKreal_index6FpnIFrameMap_i_i_: c1_LIRAssembler_x86.o;
|
||||
text: .text%__1cLCompilationbEgenerate_exception_range_table6M_v_;
|
||||
text: .text%__1cOExceptionScopeGequals6kMp0_i_;
|
||||
text: .text%__1cLCompilationbBadd_exception_range_entries6MiipnOExceptionScope_ip2pi_v_;
|
||||
@@ -3582,10 +3582,10 @@ text: .text%__1cLNewInstanceOas_NewInstance6M_p0_: c1_Instruction.o;
|
||||
text: .text%__1cIValueGenQexceptionPcRInfo6F_nFRInfo__;
|
||||
text: .text%__1cILIR_ListPthrow_exception6MnFRInfo_1pnMCodeEmitInfo__v_: c1_CodeGenerator.o;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_CodeGenerator.o;
|
||||
text: .text%__1cPNewInstanceStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cPNewInstanceStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cOLIR_OpJavaCallFvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cQLIR_OpVisitStateGappend6MnFRInfo__v_: c1_LIR.o;
|
||||
text: .text%__1cOStaticCallStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cOStaticCallStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cIFrameMapWcaller_save_cpu_reg_at6Fi_pnLLIR_OprDesc__;
|
||||
text: .text%__1cLInstructionLas_NewArray6M_pnINewArray__: c1_Instruction.o;
|
||||
text: .text%__1cIVoidTypeDtag6kM_nIValueTag__: c1_ValueType.o;
|
||||
@@ -3604,12 +3604,12 @@ text: .text%__1cOoop_RelocationJpack_data6M_i_;
|
||||
text: .text%__1cNLIR_AssemblerPpatching_epilog6MpnMPatchingStub_nHLIR_Op1NLIR_PatchCode_pnMRegisterImpl_pnMCodeEmitInfo__v_;
|
||||
text: .text%__1cMPatchingStubHinstall6MpnOMacroAssembler_nHLIR_Op1NLIR_PatchCode_pnMRegisterImpl_pnMCodeEmitInfo__v_: c1_LIRAssembler.o;
|
||||
text: .text%__1cNLIR_AssemblerUappend_patching_stub6MpnMPatchingStub__v_;
|
||||
text: .text%__1cPNewInstanceStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cPNewInstanceStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerJemit_call6MpnOLIR_OpJavaCall__v_;
|
||||
text: .text%__1cNLIR_AssemblerKalign_call6MnILIR_Code__v_;
|
||||
text: .text%__1cICodeStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cOStaticCallStubLset_code_pc6MpC_v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cOStaticCallStubMis_call_stub6kM_i_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cICodeStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cOStaticCallStubLset_code_pc6MpC_v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cOStaticCallStubMis_call_stub6kM_i_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerEcall6MpCnJrelocInfoJrelocType_pnMCodeEmitInfo__v_;
|
||||
text: .text%__1cbBopt_virtual_call_RelocationEtype6M_nJrelocInfoJrelocType__: relocInfo.o;
|
||||
text: .text%__1cKRelocationJpack_data6M_i_: relocInfo.o;
|
||||
@@ -4010,15 +4010,15 @@ text: .text%__1cJTypeCheckPinput_values_do6MpFppnLInstruction__v_v_: c1_GraphBui
|
||||
text: .text%__1cQNullCheckVisitorNdo_InstanceOf6MpnKInstanceOf__v_;
|
||||
text: .text%__1cQNullCheckVisitorMdo_CheckCast6MpnJCheckCast__v_;
|
||||
text: .text%__1cIValueGenNdo_InstanceOf6MpnKInstanceOf__v_;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_CodeGenerator_i486.o;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_CodeGenerator_x86.o;
|
||||
text: .text%__1cLLIR_EmitterNinstanceof_op6MpnLLIR_OprDesc_2pnHciKlass_nFRInfo_5ipnMCodeEmitInfo__v_;
|
||||
text: .text%__1cILIR_ListKinstanceof6MpnLLIR_OprDesc_2pnHciKlass_22ipnMCodeEmitInfo__v_;
|
||||
text: .text%__1cPLIR_OpTypeCheck2t6MnILIR_Code_pnLLIR_OprDesc_3pnHciKlass_33ipnMCodeEmitInfo_7pnICodeStub__v_;
|
||||
text: .text%__1cIValueGenMdo_CheckCast6MpnJCheckCast__v_;
|
||||
text: .text%__1cILIR_ListJcheckcast6MpnLLIR_OprDesc_2pnHciKlass_22ipnMCodeEmitInfo_6pnICodeStub__v_;
|
||||
text: .text%__1cILIR_ListJsafepoint6MnFRInfo_pnMCodeEmitInfo__v_: c1_CodeGenerator_i486.o;
|
||||
text: .text%__1cILIR_ListJsafepoint6MnFRInfo_pnMCodeEmitInfo__v_: c1_CodeGenerator_x86.o;
|
||||
text: .text%__1cPLIR_OpTypeCheckFvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cTSimpleExceptionStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cTSimpleExceptionStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cPLIR_OpTypeCheckJemit_code6MpnVLIR_AbstractAssembler__v_;
|
||||
text: .text%__1cNLIR_OptimizerQemit_opTypeCheck6MpnPLIR_OpTypeCheck__v_;
|
||||
text: .text%__1cLLIR_OprDescIsize_for6FnJBasicType__n0AHOprSize__: c1_LIROptimizer.o;
|
||||
@@ -4026,7 +4026,7 @@ text: .text%__1cIintArrayIindex_of6kMki_i_: c1_LIROptimizer.o;
|
||||
text: .text%__1cNLIR_AssemblerQemit_opTypeCheck6MpnPLIR_OpTypeCheck__v_;
|
||||
text: .text%__1cIciObjectIencoding6M_pnI_jobject__;
|
||||
text: .text%__1cJAssemblerEcmpl6MnHAddress_pnI_jobject__v_;
|
||||
text: .text%__1cTSimpleExceptionStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cTSimpleExceptionStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cTSimpleExceptionStubJemit_code6MpnNLIR_Assembler__v_;
|
||||
text: .text%__1cJLoadFieldIis_equal6kMpnLInstruction__i_: c1_Instruction.o;
|
||||
text: .text%__1cJLoadFieldMas_LoadField6M_p0_: c1_Instruction.o;
|
||||
@@ -4194,7 +4194,7 @@ text: .text%__1cLLIR_EmitterOnew_type_array6MnFRInfo_nJBasicType_pnLLIR_OprDesc_
|
||||
text: .text%__1cQNewTypeArrayStub2t6MnFRInfo_11pnMCodeEmitInfo__v_;
|
||||
text: .text%__1cQciTypeArrayKlassEmake6FnJBasicType__p0_;
|
||||
text: .text%__1cQciTypeArrayKlassJmake_impl6FnJBasicType__p0_;
|
||||
text: .text%__1cILIR_ListHoop2reg6MpnI_jobject_nFRInfo__v_: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cILIR_ListHoop2reg6MpnI_jobject_nFRInfo__v_: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cILIR_ListOallocate_array6MnFRInfo_11111nJBasicType_1pnICodeStub__v_;
|
||||
text: .text%__1cIValueGenMdo_Intrinsic6MpnJIntrinsic__v_;
|
||||
text: .text%__1cIValueGenMdo_ArrayCopy6MpnJIntrinsic__v_;
|
||||
@@ -4209,12 +4209,12 @@ text: .text%__1cLInstructionNdeclared_type6kM_pnGciType__: c1_Instruction.o;
|
||||
text: .text%__1cRpositive_constant6FpnLInstruction__i_: c1_CodeGenerator.o;
|
||||
text: .text%__1cLArrayLengthOas_ArrayLength6M_p0_: c1_GraphBuilder.o;
|
||||
text: .text%__1cQis_constant_zero6FpnLInstruction__i_: c1_CodeGenerator.o;
|
||||
text: .text%__1cILIR_ListJarraycopy6MpnLLIR_OprDesc_22222pnMciArrayKlass_ipnMCodeEmitInfo__v_: c1_CodeGenerator_i486.o;
|
||||
text: .text%__1cILIR_ListJarraycopy6MpnLLIR_OprDesc_22222pnMciArrayKlass_ipnMCodeEmitInfo__v_: c1_CodeGenerator_x86.o;
|
||||
text: .text%__1cLLIR_EmitterNwrite_barrier6MpnLLIR_OprDesc_2_v_;
|
||||
text: .text%__1cILIR_ListUunsigned_shift_right6MnFRInfo_i1_v_: c1_LIREmitter_i486.o;
|
||||
text: .text%__1cILIR_ListUunsigned_shift_right6MnFRInfo_i1_v_: c1_LIREmitter_x86.o;
|
||||
text: .text%__1cILIR_ListUunsigned_shift_right6MpnLLIR_OprDesc_222_v_;
|
||||
text: .text%__1cQLIR_OpAllocArrayFvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cQNewTypeArrayStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cQNewTypeArrayStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cPLIR_OpArrayCopyFvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cQLIR_OpAllocArrayJemit_code6MpnVLIR_AbstractAssembler__v_;
|
||||
text: .text%__1cNLIR_OptimizerQemit_alloc_array6MpnQLIR_OpAllocArray__v_;
|
||||
@@ -4229,12 +4229,12 @@ text: .text%__1cNLIR_AssemblerQemit_alloc_array6MpnQLIR_OpAllocArray__v_;
|
||||
text: .text%__1cNLIR_AssemblerSarray_element_size6kMnJBasicType__nHAddressLScaleFactor__;
|
||||
text: .text%__1cRC1_MacroAssemblerOallocate_array6MpnMRegisterImpl_222inHAddressLScaleFactor_2rnFLabel__v_;
|
||||
text: .text%__1cRC1_MacroAssemblerMtry_allocate6MpnMRegisterImpl_2i22rnFLabel__v_;
|
||||
text: .text%__1cQNewTypeArrayStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cQNewTypeArrayStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerOemit_arraycopy6MpnPLIR_OpArrayCopy__v_;
|
||||
text: .text%__1cMciArrayKlassMelement_type6M_pnGciType__;
|
||||
text: .text%__1cNArrayCopyStub2t6MpnMCodeEmitInfo_pnOStaticCallStub__v_;
|
||||
text: .text%__1cFRInfoMset_word_reg6MkpnMRegisterImpl__v_;
|
||||
text: .text%__1cNArrayCopyStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cNArrayCopyStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerOpush_parameter6MpnMRegisterImpl_i_v_;
|
||||
text: .text%__1cQNewTypeArrayStubJemit_code6MpnNLIR_Assembler__v_;
|
||||
text: .text%__1cNArrayCopyStubJemit_code6MpnNLIR_Assembler__v_;
|
||||
@@ -4295,14 +4295,14 @@ text: .text%__1cLLIR_EmitterIshift_op6MnJBytecodesECode_nFRInfo_pnLLIR_OprDesc_5
|
||||
text: .text%__1cILIR_ListKshift_left6MnFRInfo_i1_v_: c1_LIREmitter.o;
|
||||
text: .text%__1cILIR_ListKlogical_or6MnFRInfo_pnLLIR_OprDesc_1_v_: c1_LIREmitter.o;
|
||||
text: .text%__1cOLIR_OpAllocObjFvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cSNewObjectArrayStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cSNewObjectArrayStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cOLIR_OpAllocObjJemit_code6MpnVLIR_AbstractAssembler__v_;
|
||||
text: .text%__1cNLIR_OptimizerOemit_alloc_obj6MpnOLIR_OpAllocObj__v_;
|
||||
text: .text%__1cNLIR_AssemblerOemit_alloc_obj6MpnOLIR_OpAllocObj__v_;
|
||||
text: .text%__1cRC1_MacroAssemblerPallocate_object6MpnMRegisterImpl_22ii2rnFLabel__v_;
|
||||
text: .text%__1cNLIR_AssemblerOmembar_release6M_v_;
|
||||
text: .text%__1cNLIR_AssemblerGmembar6M_v_;
|
||||
text: .text%__1cSNewObjectArrayStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cSNewObjectArrayStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerOmembar_acquire6M_v_;
|
||||
text: .text%__1cEBaseHas_Base6M_p0_: c1_IR.o;
|
||||
text: .text%__1cNLIR_AssemblerOemit_osr_entry6MpnHIRScope_ipnFLabel_i_v_;
|
||||
@@ -4708,11 +4708,11 @@ text: .text%__1cILIR_ListLshift_right6MpnLLIR_OprDesc_222_v_;
|
||||
text: .text%__1cIValueGenLdo_NegateOp6MpnINegateOp__v_;
|
||||
text: .text%__1cLLIR_EmitterGnegate6MnFRInfo_pnLLIR_OprDesc__v_;
|
||||
text: .text%__1cILIR_ListGnegate6MnFRInfo_1_v_: c1_LIREmitter.o;
|
||||
text: .text%__1cXArrayStoreExceptionStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cXArrayStoreExceptionStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cXArrayStoreExceptionStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cXArrayStoreExceptionStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerEleal6MpnLLIR_OprDesc_2_v_;
|
||||
text: .text%__1cNLIR_AssemblerGnegate6MpnLLIR_OprDesc_2_v_;
|
||||
text: .text%__1cNCodeStubArrayIindex_of6kMkpnICodeStub__i_: c1_LIRAssembler_i486.o;
|
||||
text: .text%__1cNCodeStubArrayIindex_of6kMkpnICodeStub__i_: c1_LIRAssembler_x86.o;
|
||||
text: .text%__1cXArrayStoreExceptionStubJemit_code6MpnNLIR_Assembler__v_;
|
||||
text: .text%__1cIRuntime1Tresolve_static_call6FpnKJavaThread_pnHoopDesc__pC_;
|
||||
text: .text%__1cSCompiledStaticCallNcompute_entry6FnMmethodHandle_rnOStaticCallInfo__v_;
|
||||
@@ -4788,7 +4788,7 @@ text: .text%__1cNLIR_AssemblerIfpu_push6MnFRInfo__v_;
|
||||
text: .text%__1cIFrameMapLFpuStackSimEpush6Mi_v_;
|
||||
text: .text%__1cNLIR_AssemblerKfpu_on_tos6MnFRInfo__v_;
|
||||
text: .text%__1cIFrameMapLFpuStackSimPoffset_from_tos6kMi_i_;
|
||||
text: .text%__1cIintArrayIindex_of6kMki_i_: c1_FrameMap_i486.o;
|
||||
text: .text%__1cIintArrayIindex_of6kMki_i_: c1_FrameMap_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerHfpu_pop6MnFRInfo__v_;
|
||||
text: .text%__1cIFrameMapLFpuStackSimDpop6Mi_i_;
|
||||
text: .text%__1cNLIR_AssemblerKround32_op6MpnLLIR_OprDesc_2_v_;
|
||||
@@ -4797,7 +4797,7 @@ text: .text%__1cNLIR_AssemblerJreset_FPU6M_v_;
|
||||
text: .text%__1cNLIR_AssemblerIemit_op36MpnHLIR_Op3__v_;
|
||||
text: .text%__1cNLIR_AssemblerParithmetic_idiv6MnILIR_Code_pnLLIR_OprDesc_333pnMCodeEmitInfo__v_;
|
||||
text: .text%__1cNLIR_AssemblerXadd_debug_info_for_div06MipnMCodeEmitInfo__v_;
|
||||
text: .text%__1cNDivByZeroStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cNDivByZeroStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cNDivByZeroStubJemit_code6MpnNLIR_Assembler__v_;
|
||||
text: .text%__1cIciObjectSis_obj_array_klass6M_i_: ciTypeArrayKlass.o;
|
||||
text: .text%__1cLInstructionOas_ArrayLength6M_pnLArrayLength__: c1_GraphBuilder.o;
|
||||
@@ -4874,12 +4874,12 @@ text: .text%__1cFKlassQup_cast_abstract6M_p0_;
|
||||
text: .text%__1cRComputeEntryStackHdo_byte6M_v_: generateOopMap.o;
|
||||
text: .text%__1cNSharedRuntimeDd2i6Fd_i_;
|
||||
text: .text%__1cSInterpreterRuntimeWslow_signature_handler6FpnKJavaThread_pnNmethodOopDesc_pi5_pC_;
|
||||
text: .text%__1cXNativeSignatureIteratorJdo_object6Mii_v_: interpreterRT_i486.o;
|
||||
text: .text%__1cUSlowSignatureHandlerLpass_object6M_v_: interpreterRT_i486.o;
|
||||
text: .text%__1cXNativeSignatureIteratorIdo_array6Mii_v_: interpreterRT_i486.o;
|
||||
text: .text%__1cXNativeSignatureIteratorGdo_int6M_v_: interpreterRT_i486.o;
|
||||
text: .text%__1cUSlowSignatureHandlerIpass_int6M_v_: interpreterRT_i486.o;
|
||||
text: .text%__1cXNativeSignatureIteratorHdo_bool6M_v_: interpreterRT_i486.o;
|
||||
text: .text%__1cXNativeSignatureIteratorJdo_object6Mii_v_: interpreterRT_x86.o;
|
||||
text: .text%__1cUSlowSignatureHandlerLpass_object6M_v_: interpreterRT_x86.o;
|
||||
text: .text%__1cXNativeSignatureIteratorIdo_array6Mii_v_: interpreterRT_x86.o;
|
||||
text: .text%__1cXNativeSignatureIteratorGdo_int6M_v_: interpreterRT_x86.o;
|
||||
text: .text%__1cUSlowSignatureHandlerIpass_int6M_v_: interpreterRT_x86.o;
|
||||
text: .text%__1cXNativeSignatureIteratorHdo_bool6M_v_: interpreterRT_x86.o;
|
||||
text: .text%jni_GetFloatArrayRegion: jni.o;
|
||||
text: .text%jni_GetCharArrayRegion: jni.o;
|
||||
text: .text%jni_SetFloatField: jni.o;
|
||||
@@ -4906,8 +4906,8 @@ text: .text%__1cLLIR_EmitterQreturn_op_prolog6Mi_v_;
|
||||
text: .text%__1cLLIR_EmitterMmonitor_exit6MnFRInfo_11i_v_;
|
||||
text: .text%__1cILIR_ListNunlock_object6MnFRInfo_11pnICodeStub__v_;
|
||||
text: .text%__1cKLIR_OpLockFvisit6MpnQLIR_OpVisitState__v_;
|
||||
text: .text%__1cQMonitorEnterStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cRMonitorAccessStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cQMonitorEnterStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cRMonitorAccessStubFvisit6MpnQLIR_OpVisitState__v_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cKLIR_OpLockJemit_code6MpnVLIR_AbstractAssembler__v_;
|
||||
text: .text%__1cNLIR_OptimizerJemit_lock6MpnKLIR_OpLock__v_;
|
||||
text: .text%__1cNLIR_AssemblerPmonitor_address6MinFRInfo__v_;
|
||||
@@ -4915,7 +4915,7 @@ text: .text%__1cIFrameMapbEaddress_for_monitor_lock_index6kMi_nHAddress__;
|
||||
text: .text%__1cIFrameMapbAfp_offset_for_monitor_lock6kMi_i_;
|
||||
text: .text%__1cNLIR_AssemblerJemit_lock6MpnKLIR_OpLock__v_;
|
||||
text: .text%__1cRC1_MacroAssemblerLlock_object6MpnMRegisterImpl_22rnFLabel__v_;
|
||||
text: .text%__1cQMonitorEnterStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cQMonitorEnterStubEinfo6kM_pnMCodeEmitInfo__: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cIFrameMapWmonitor_object_regname6kMi_nHOptoRegEName__;
|
||||
text: .text%__1cIFrameMapbCfp_offset_for_monitor_object6kMi_i_;
|
||||
text: .text%__1cMCodeEmitInfobHlocation_for_monitor_object_index6Mi_nILocation__;
|
||||
@@ -4925,7 +4925,7 @@ text: .text%__1cIFrameMapbFlocation_for_monitor_lock_index6kMipnILocation__i_;
|
||||
text: .text%__1cMMonitorValue2t6MpnKScopeValue_nILocation__v_;
|
||||
text: .text%__1cMMonitorValueIwrite_on6MpnUDebugInfoWriteStream__v_;
|
||||
text: .text%__1cRC1_MacroAssemblerNunlock_object6MpnMRegisterImpl_22rnFLabel__v_;
|
||||
text: .text%__1cPMonitorExitStubMis_call_stub6kM_i_: c1_CodeStubs_i486.o;
|
||||
text: .text%__1cPMonitorExitStubMis_call_stub6kM_i_: c1_CodeStubs_x86.o;
|
||||
text: .text%__1cQMonitorEnterStubJemit_code6MpnNLIR_Assembler__v_;
|
||||
text: .text%__1cNLIR_AssemblerRload_receiver_reg6MpnMRegisterImpl__v_;
|
||||
text: .text%__1cNLIR_AssemblerLmonitorexit6MnFRInfo_1pnMRegisterImpl_i3_v_;
|
||||
@@ -5168,7 +5168,7 @@ text: .text%__1cFRInfoOas_register_lo6kM_pnMRegisterImpl__;
|
||||
text: .text%__1cCosHrealloc6FpvI_1_;
|
||||
text: .text%Unsafe_GetNativeFloat;
|
||||
text: .text%__1cIValueGenQdo_currentThread6MpnJIntrinsic__v_;
|
||||
text: .text%__1cILIR_ListKget_thread6MnFRInfo__v_: c1_CodeGenerator_i486.o;
|
||||
text: .text%__1cILIR_ListKget_thread6MnFRInfo__v_: c1_CodeGenerator_x86.o;
|
||||
text: .text%__1cNLIR_AssemblerKget_thread6MpnLLIR_OprDesc__v_;
|
||||
text: .text%__1cIValueGenSload_item_patching6MpnHIRScope_ipnEItem_pnKValueStack_pnOExceptionScope__v_;
|
||||
text: .text%__1cEItemUget_jobject_constant6kM_pnIciObject__;
|
||||
@@ -5246,7 +5246,7 @@ text: .text%__1cGThreadLnmethods_do6M_v_;
|
||||
text: .text%__1cFframeLnmethods_do6M_v_;
|
||||
text: .text%__1cFframeVnmethods_code_blob_do6M_v_;
|
||||
text: .text%__1cILIR_ListEidiv6MnFRInfo_i11pnMCodeEmitInfo__v_;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: c1_LIRAssembler_i486.o;
|
||||
text: .text%__1cLlog2_intptr6Fi_i_: c1_LIRAssembler_x86.o;
|
||||
text: .text%__1cONMethodSweeperPprocess_nmethod6FpnHnmethod__v_;
|
||||
text: .text%__1cHnmethodPis_locked_by_vm6kM_i_: nmethod.o;
|
||||
text: .text%__1cHnmethodLis_unloaded6kM_i_: nmethod.o;
|
||||
@@ -5423,13 +5423,13 @@ text: .text%__1cIValueGenPdo_UnsafeGetRaw6MpnMUnsafeGetRaw__v_;
|
||||
text: .text%__1cLLIR_EmitterOget_raw_unsafe6MnFRInfo_pnLLIR_OprDesc_3inJBasicType__v_;
|
||||
text: .text%__1cILIR_ListMload_mem_reg6MpnLLIR_Address_nFRInfo_nJBasicType_pnMCodeEmitInfo_nHLIR_Op1NLIR_PatchCode__v_;
|
||||
text: .text%__1cIValueGenPdo_LookupSwitch6MpnMLookupSwitch__v_;
|
||||
text: .text%__1cUcreate_lookup_ranges6FpnMLookupSwitch__pnQLookupRangeArray__: c1_CodeGenerator_i486.o;
|
||||
text: .text%__1cUcreate_lookup_ranges6FpnMLookupSwitch__pnQLookupRangeArray__: c1_CodeGenerator_x86.o;
|
||||
text: .text%__1cLLIR_EmitterVlookupswitch_range_op6MpnLLIR_OprDesc_iipnKBlockBegin__v_;
|
||||
text: .text%__1cNSharedRuntimeEldiv6Fxx_x_;
|
||||
text: .text%Unsafe_GetObjectVolatile;
|
||||
text: .text%signalHandler;
|
||||
text: .text%JVM_handle_solaris_signal;
|
||||
text: .text%__1cKJavaThreadUin_stack_yellow_zone6MpC_i_: os_solaris_i486.o;
|
||||
text: .text%__1cKJavaThreadUin_stack_yellow_zone6MpC_i_: os_solaris_x86.o;
|
||||
text: .text%__1cICodeBlobRis_at_poll_return6MpC_i_;
|
||||
text: .text%__1cUSafepointSynchronizebDhandle_polling_page_exception6FpnKJavaThread__pC_;
|
||||
text: .text%__1cbCCompiledCodeSafepointHandlerbDhandle_polling_page_exception6M_pC_;
|
||||
|
||||
@@ -37,8 +37,9 @@ GENERATED = ../generated
|
||||
SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
|
||||
|
||||
# gnumake 3.78.1 does not accept the *s that
|
||||
# are in AGENT_ALLFILES, so use the shell to expand them
|
||||
AGENT_ALLFILES := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_ALLFILES))
|
||||
# are in AGENT_FILES1 and AGENT_FILES2, so use the shell to expand them
|
||||
AGENT_FILES1 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES1))
|
||||
AGENT_FILES2 := $(shell /usr/bin/test -d $(AGENT_DIR) && /bin/ls $(AGENT_FILES2))
|
||||
|
||||
SA_CLASSDIR = $(GENERATED)/saclasses
|
||||
|
||||
@@ -52,7 +53,7 @@ all:
|
||||
$(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
|
||||
fi
|
||||
|
||||
$(GENERATED)/sa-jdi.jar: $(AGENT_ALLFILES)
|
||||
$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
|
||||
$(QUIETLY) echo "Making $@";
|
||||
$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
|
||||
echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
|
||||
@@ -66,9 +67,17 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_ALLFILES)
|
||||
$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
|
||||
mkdir -p $(SA_CLASSDIR); \
|
||||
fi
|
||||
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) $(AGENT_ALLFILES)
|
||||
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1)
|
||||
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2)
|
||||
|
||||
$(QUIETLY) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
||||
$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
|
||||
$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
|
||||
$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
|
||||
$(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
|
||||
$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/*
|
||||
$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/
|
||||
$(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/
|
||||
$(QUIETLY) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ .
|
||||
$(QUIETLY) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
|
||||
$(QUIETLY) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.proc.ProcDebuggerLocal
|
||||
|
||||
@@ -26,7 +26,7 @@ Obj_Files += solaris_sparc.o
|
||||
ASFLAGS += $(AS_ARCHFLAG)
|
||||
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
ifeq ($(shell expr $(COMPILER_REV) \< 5.5), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \< 505), 1)
|
||||
# For 5.2 ad_sparc file is compiled with -O2 %%%% remove when adlc is fixed
|
||||
OPT_CFLAGS/ad_sparc.o = $(OPT_CFLAGS/SLOWER)
|
||||
OPT_CFLAGS/dfa_sparc.o = $(OPT_CFLAGS/SLOWER)
|
||||
@@ -39,7 +39,7 @@ OPT_CFLAGS/carRememberedSet.o = $(OPT_CFLAGS/O2)
|
||||
OPT_CFLAGS/jniHandles.o = $(OPT_CFLAGS/O2)
|
||||
# CC brings an US-II to its knees compiling the vmStructs asserts under -xO4
|
||||
OPT_CFLAGS/vmStructs.o = $(OPT_CFLAGS/O2)
|
||||
endif
|
||||
endif # COMPILER_REV_NUMERIC < 505
|
||||
else
|
||||
# Options for gcc
|
||||
OPT_CFLAGS/ad_sparc.o = $(OPT_CFLAGS/SLOWER)
|
||||
|
||||
@@ -41,9 +41,9 @@ REORDER_FLAG = -xF
|
||||
|
||||
# Get the last thing on the line that looks like x.x+ (x is a digit).
|
||||
COMPILER_REV := \
|
||||
$(shell $(CPP) -V 2>&1 | sed -e 's/^.*\([1-9]\.[0-9][0-9]*\).*/\1/')
|
||||
$(shell $(CPP) -V 2>&1 | sed -n 's/^.*[ ,\t]C++[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
|
||||
C_COMPILER_REV := \
|
||||
$(shell $(CC) -V 2>&1 | grep -i "cc:" | sed -e 's/^.*\([1-9]\.[0-9][0-9]*\).*/\1/')
|
||||
$(shell $(CC) -V 2>&1 | sed -n 's/^.*[ ,\t]C[ ,\t]\([1-9]\.[0-9][0-9]*\).*/\1/p')
|
||||
|
||||
# Pick which compiler is validated
|
||||
ifeq ($(JDK_MINOR_VERSION),6)
|
||||
@@ -60,17 +60,19 @@ endif
|
||||
ENFORCE_COMPILER_REV${ENFORCE_COMPILER_REV} := ${VALIDATED_COMPILER_REV}
|
||||
ifneq (${COMPILER_REV},${ENFORCE_COMPILER_REV})
|
||||
dummy_target_to_enforce_compiler_rev:=\
|
||||
$(info WARNING: You are using CC version ${COMPILER_REV} \
|
||||
and should be using version ${ENFORCE_COMPILER_REV})
|
||||
$(shell echo >&2 WARNING: You are using CC version ${COMPILER_REV} \
|
||||
and should be using version ${ENFORCE_COMPILER_REV}. Set ENFORCE_COMPILER_REV=${COMPILER_REV} to avoid this warning.)
|
||||
endif
|
||||
|
||||
ENFORCE_C_COMPILER_REV${ENFORCE_C_COMPILER_REV} := ${VALIDATED_C_COMPILER_REV}
|
||||
ifneq (${C_COMPILER_REV},${ENFORCE_C_COMPILER_REV})
|
||||
dummy_target_to_enforce_c_compiler_rev:=\
|
||||
$(info WARNING: You are using cc version ${C_COMPILER_REV} \
|
||||
and should be using version ${ENFORCE_C_COMPILER_REV})
|
||||
$(shell echo >&2 WARNING: You are using cc version ${C_COMPILER_REV} \
|
||||
and should be using version ${ENFORCE_C_COMPILER_REV}. Set ENFORCE_C_COMPILER_REV=${C_COMPILER_REV} to avoid this warning.)
|
||||
endif
|
||||
|
||||
COMPILER_REV_NUMERIC := $(shell echo $(COMPILER_REV) | awk -F. '{ print $$1 * 100 + $$2 }')
|
||||
|
||||
# Fail the build if __fabsf is used. __fabsf exists only in Solaris 8 2/04
|
||||
# and newer; objects with a dependency on this symbol will not run on older
|
||||
# Solaris 8.
|
||||
@@ -120,7 +122,7 @@ ARCHFLAG_OLD/amd64 = -xarch=amd64
|
||||
ARCHFLAG_NEW/amd64 = -m64
|
||||
|
||||
# Select the ARCHFLAGs and other SS12 (5.9) options
|
||||
ifeq ($(shell expr $(COMPILER_REV) \>= 5.9), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1)
|
||||
ARCHFLAG/sparc = $(ARCHFLAG_NEW/sparc)
|
||||
ARCHFLAG/sparcv9 = $(ARCHFLAG_NEW/sparcv9)
|
||||
ARCHFLAG/i486 = $(ARCHFLAG_NEW/i486)
|
||||
@@ -150,7 +152,7 @@ OPT_CFLAGS/NOOPT=-xO1
|
||||
# Begin current (>=5.6) Forte compiler options #
|
||||
#################################################
|
||||
|
||||
ifeq ($(shell expr $(COMPILER_REV) \>= 5.6), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 506), 1)
|
||||
|
||||
ifeq ("${Platform_arch}", "sparc")
|
||||
|
||||
@@ -167,7 +169,7 @@ endif
|
||||
# Begin current (>=5.5) Forte compiler options #
|
||||
#################################################
|
||||
|
||||
ifeq ($(shell expr $(COMPILER_REV) \>= 5.5), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 505), 1)
|
||||
|
||||
CFLAGS += $(ARCHFLAG)
|
||||
AOUT_FLAGS += $(ARCHFLAG)
|
||||
@@ -255,7 +257,7 @@ LFLAGS += -library=%none
|
||||
|
||||
LFLAGS += -mt
|
||||
|
||||
endif # COMPILER_REV >= 5.5
|
||||
endif # COMPILER_REV_NUMERIC >= 505
|
||||
|
||||
######################################
|
||||
# End 5.5 Forte compiler options #
|
||||
@@ -265,7 +267,7 @@ endif # COMPILER_REV >= 5.5
|
||||
# Begin 5.2 Forte compiler options #
|
||||
######################################
|
||||
|
||||
ifeq ($(COMPILER_REV), 5.2)
|
||||
ifeq ($(COMPILER_REV_NUMERIC), 502)
|
||||
|
||||
CFLAGS += $(ARCHFLAG)
|
||||
AOUT_FLAGS += $(ARCHFLAG)
|
||||
@@ -324,7 +326,7 @@ PICFLAG/BYFILE = $(PICFLAG/$@)$(PICFLAG/DEFAULT$(PICFLAG/$@))
|
||||
LFLAGS += -library=Crun
|
||||
LIBS += -library=Crun -lCrun
|
||||
|
||||
endif # COMPILER_REV == 5.2
|
||||
endif # COMPILER_REV_NUMERIC == 502
|
||||
|
||||
##################################
|
||||
# End 5.2 Forte compiler options #
|
||||
@@ -333,7 +335,7 @@ endif # COMPILER_REV == 5.2
|
||||
##################################
|
||||
# Begin old 5.1 compiler options #
|
||||
##################################
|
||||
ifeq ($(COMPILER_REV), 5.1)
|
||||
ifeq ($(COMPILER_REV_NUMERIC), 501)
|
||||
|
||||
_JUNK_ := $(shell echo >&2 \
|
||||
"*** ERROR: sparkWorks.make incomplete for 5.1 compiler")
|
||||
@@ -347,7 +349,7 @@ endif
|
||||
# Begin old 5.0 compiler options #
|
||||
##################################
|
||||
|
||||
ifeq (${COMPILER_REV}, 5.0)
|
||||
ifeq (${COMPILER_REV_NUMERIC}, 500)
|
||||
|
||||
# Had to hoist this higher apparently because of other changes. Must
|
||||
# come before -xarch specification.
|
||||
@@ -379,7 +381,7 @@ endif # sparc
|
||||
|
||||
ifeq ("${Platform_arch_model}", "x86_32")
|
||||
OPT_CFLAGS=-xtarget=pentium $(EXTRA_OPT_CFLAGS)
|
||||
ifeq ("${COMPILER_REV}", "5.0")
|
||||
ifeq ("${COMPILER_REV_NUMERIC}", "500")
|
||||
# SC5.0 tools on x86 are flakey at -xO4
|
||||
OPT_CFLAGS+=-xO3
|
||||
else
|
||||
@@ -405,13 +407,13 @@ PICFLAG/DEFAULT = $(PICFLAG)
|
||||
PICFLAG/BETTER = $(PICFLAG/DEFAULT)
|
||||
PICFLAG/BYFILE = $(PICFLAG/$@)$(PICFLAG/DEFAULT$(PICFLAG/$@))
|
||||
|
||||
endif # COMPILER_REV = 5.0
|
||||
endif # COMPILER_REV_NUMERIC = 500
|
||||
|
||||
################################
|
||||
# End old 5.0 compiler options #
|
||||
################################
|
||||
|
||||
ifeq ("${COMPILER_REV}", "4.2")
|
||||
ifeq ("${COMPILER_REV_NUMERIC}", "402")
|
||||
# 4.2 COMPILERS SHOULD NO LONGER BE USED
|
||||
_JUNK_ := $(shell echo >&2 \
|
||||
"*** ERROR: SC4.2 compilers are not supported by this code base!")
|
||||
@@ -443,7 +445,7 @@ LINK_MODE/debug =
|
||||
LINK_MODE/optimized = -Bsymbolic -znodefs
|
||||
|
||||
# Have thread local errnos
|
||||
ifeq ($(shell expr $(COMPILER_REV) \>= 5.5), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 505), 1)
|
||||
CFLAGS += -mt
|
||||
else
|
||||
CFLAGS += -D_REENTRANT
|
||||
@@ -460,7 +462,7 @@ FASTDEBUG_CFLAGS = -g0
|
||||
# The -g0 setting allows the C++ frontend to inline, which is a big win.
|
||||
|
||||
# Special global options for SS12
|
||||
ifeq ($(COMPILER_REV),5.9)
|
||||
ifeq ($(COMPILER_REV_NUMERIC),509)
|
||||
# There appears to be multiple issues with the new Dwarf2 debug format, so
|
||||
# we tell the compiler to use the older 'stabs' debug format all the time.
|
||||
# Note that this needs to be used in optimized compiles too to be 100%.
|
||||
@@ -479,8 +481,8 @@ endif
|
||||
#DEBUG_CFLAGS += -Qoption ccfe -xglobalstatic
|
||||
#FASTDEBUG_CFLAGS += -Qoption ccfe -xglobalstatic
|
||||
|
||||
ifeq (${COMPILER_REV}, 5.2)
|
||||
COMPILER_DATE := $(shell $(CPP) -V 2>&1 | awk '{ print $$NF; }')
|
||||
ifeq (${COMPILER_REV_NUMERIC}, 502)
|
||||
COMPILER_DATE := $(shell $(CPP) -V 2>&1 | sed -n '/^.*[ ]C++[ ]\([1-9]\.[0-9][0-9]*\)/p' | awk '{ print $$NF; }')
|
||||
ifeq (${COMPILER_DATE}, 2001/01/31)
|
||||
# disable -g0 in fastdebug since SC6.1 dated 2001/01/31 seems to be buggy
|
||||
# use an innocuous value because it will get -g if it's empty
|
||||
@@ -493,7 +495,7 @@ endif
|
||||
CFLAGS += $(CFLAGS_BROWSE)
|
||||
|
||||
# ILD is gone as of SS11 (5.8), not supportted in SS10 (5.7)
|
||||
ifeq ($(shell expr $(COMPILER_REV) \< 5.7), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \< 507), 1)
|
||||
# use ild when debugging (but when optimizing we want reproducible results)
|
||||
ILDFLAG = $(ILDFLAG/$(VERSION))
|
||||
ILDFLAG/debug = -xildon
|
||||
|
||||
@@ -26,7 +26,7 @@ Obj_Files += solaris_sparc.o
|
||||
ASFLAGS += $(AS_ARCHFLAG)
|
||||
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
ifeq ($(shell expr $(COMPILER_REV) \< 5.5), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \< 505), 1)
|
||||
# When optimized fully, stubGenerator_sparc.cpp
|
||||
# has bogus code for the routine
|
||||
# StubGenerator::generate_flush_callers_register_windows()
|
||||
|
||||
@@ -54,6 +54,7 @@ Include_DBs/GC = $(VM)/includeDB_gc \
|
||||
$(VM)/gc_implementation/includeDB_gc_parallelScavenge \
|
||||
$(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \
|
||||
$(VM)/gc_implementation/includeDB_gc_parNew \
|
||||
$(VM)/gc_implementation/includeDB_gc_g1 \
|
||||
$(VM)/gc_implementation/includeDB_gc_serial \
|
||||
$(VM)/gc_implementation/includeDB_gc_shared
|
||||
|
||||
@@ -82,9 +83,9 @@ Incremental_Lists =$(GENERATED)/$(Cached_db)
|
||||
|
||||
AD_Dir = $(GENERATED)/adfiles
|
||||
ADLC = $(AD_Dir)/adlc
|
||||
AD_Spec = $(GAMMADIR)/src/cpu/$(Platform_arch)/vm/$(Platform_arch).ad
|
||||
AD_Spec = $(GAMMADIR)/src/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad
|
||||
AD_Src = $(GAMMADIR)/src/share/vm/adlc
|
||||
AD_Names = ad_$(Platform_arch).hpp ad_$(Platform_arch).cpp
|
||||
AD_Names = ad_$(Platform_arch_model).hpp ad_$(Platform_arch_model).cpp
|
||||
AD_Files = $(AD_Names:%=$(AD_Dir)/%)
|
||||
|
||||
# AD_Files_If_Required/COMPILER1 = ad_stuff
|
||||
|
||||
@@ -101,7 +101,7 @@ LIBM=/usr/lib$(ISA_DIR)/libm.so.1
|
||||
|
||||
ifeq ("${Platform_compiler}", "sparcWorks")
|
||||
# The whole megilla:
|
||||
ifeq ($(shell expr $(COMPILER_REV) \>= 5.5), 1)
|
||||
ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 505), 1)
|
||||
# Old Comment: List the libraries in the order the compiler was designed for
|
||||
# Not sure what the 'designed for' comment is referring too above.
|
||||
# The order may not be too significant anymore, but I have placed this
|
||||
|
||||
@@ -200,29 +200,6 @@ BUILD_WIN_SA = 0
|
||||
checkSA::
|
||||
@echo Not building SA: ARCH = ia64
|
||||
|
||||
!elseif exist("$(MSVCDIR)\PlatformSDK\Include\dbgeng.h")
|
||||
# These don't have to be set because the default
|
||||
# setting of INCLUDE and LIB already contain the needed dirs.
|
||||
SA_INCLUDE =
|
||||
SA_LIB =
|
||||
|
||||
!elseif exist("$(SYSTEMROOT)\..\Program Files\Microsoft SDK\include\dbgeng.h")
|
||||
# These don't have to be set because the default
|
||||
# setting of INCLUDE and LIB already contain the needed dirs.
|
||||
SA_INCLUDE =
|
||||
SA_LIB =
|
||||
|
||||
!else
|
||||
checkSA::
|
||||
@echo .
|
||||
@echo ERROR: Can't build SA because dbgeng.h does not exist here:
|
||||
@echo $(MSVCDIR)\PlatformSDK\Include\dbgeng.h
|
||||
@echo nor here:
|
||||
@echo $(SYSTEMROOT)\..\Program Files\Microsoft SDK\include\dbgeng.h
|
||||
@echo You must use Vis. Studio .Net 2003 on Win 32, and you must
|
||||
@echo have the Microsoft SDK installed on Win amd64.
|
||||
@echo You can disable building of SA by specifying BUILD_WIN_SA = 0
|
||||
@echo . && false
|
||||
!endif # ! "$(BUILD_WIN_SA)" != "1"
|
||||
|
||||
#########################################################################
|
||||
|
||||
@@ -102,6 +102,12 @@ GENERATED_NAMES_IN_INCL=\
|
||||
adlc.exe: main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj filebuff.obj \
|
||||
forms.obj formsopt.obj formssel.obj opcodes.obj output_c.obj output_h.obj
|
||||
$(LINK) $(LINK_FLAGS) /subsystem:console /out:$@ $**
|
||||
!if "$(MT)" != ""
|
||||
# The previous link command created a .manifest file that we want to
|
||||
# insert into the linked artifact so we do not need to track it
|
||||
# separately. Use ";#2" for .dll and ";#1" for .exe:
|
||||
$(MT) /manifest $@.manifest /outputresource:$@;#1
|
||||
!endif
|
||||
|
||||
$(GENERATED_NAMES_IN_INCL): $(Platform_arch_model).ad adlc.exe includeDB.current
|
||||
rm -f $(GENERATED_NAMES)
|
||||
|
||||
@@ -30,7 +30,7 @@ CPP=cl.exe
|
||||
# /W3 Warning level 3
|
||||
# /Zi Include debugging information
|
||||
# /WX Treat any warning error as a fatal error
|
||||
# /MD Use dynamic multi-threaded runtime (msvcrt.dll or msvc*71.dll)
|
||||
# /MD Use dynamic multi-threaded runtime (msvcrt.dll or msvc*NN.dll)
|
||||
# /MTd Use static multi-threaded runtime debug versions
|
||||
# /O1 Optimize for size (/Os), skips /Oi
|
||||
# /O2 Optimize for speed (/Ot), adds /Oi to /O1
|
||||
@@ -80,8 +80,10 @@ CPP_FLAGS=$(CPP_FLAGS) /D "IA32"
|
||||
CPP=ARCH_ERROR
|
||||
!endif
|
||||
|
||||
# MSC_VER is a 4 digit number that tells us what compiler is being used, it is
|
||||
# generated when the local.make file is created by the script gen_msc_ver.sh.
|
||||
# MSC_VER is a 4 digit number that tells us what compiler is being used
|
||||
# and is generated when the local.make file is created by build.make
|
||||
# via the script get_msc_ver.sh
|
||||
#
|
||||
# If MSC_VER is set, it overrides the above default setting.
|
||||
# But it should be set.
|
||||
# Possible values:
|
||||
@@ -89,13 +91,14 @@ CPP=ARCH_ERROR
|
||||
# 1300 and 1310 is VS2003 or VC7
|
||||
# 1399 is our fake number for the VS2005 compiler that really isn't 1400
|
||||
# 1400 is for VS2005
|
||||
# 1500 is for VS2008
|
||||
# Do not confuse this MSC_VER with the predefined macro _MSC_VER that the
|
||||
# compiler provides, when MSC_VER==1399, _MSC_VER will be 1400.
|
||||
# Normally they are the same, but a pre-release of the VS2005 compilers
|
||||
# in the Windows 64bit Platform SDK said it was 1400 when it was really
|
||||
# closer to VS2003 in terms of option spellings, so we use 1399 for that
|
||||
# 1400 version that really isn't 1400.
|
||||
# See the file gen_msc_ver.sh for more info.
|
||||
# See the file get_msc_ver.sh for more info.
|
||||
!if "x$(MSC_VER)" == "x"
|
||||
COMPILER_NAME=$(DEFAULT_COMPILER_NAME)
|
||||
!else
|
||||
@@ -115,6 +118,9 @@ COMPILER_NAME=VS2003
|
||||
!if "$(MSC_VER)" == "1400"
|
||||
COMPILER_NAME=VS2005
|
||||
!endif
|
||||
!if "$(MSC_VER)" == "1500"
|
||||
COMPILER_NAME=VS2008
|
||||
!endif
|
||||
!endif
|
||||
|
||||
# Add what version of the compiler we think this is to the compile line
|
||||
@@ -160,7 +166,25 @@ GX_OPTION = /EHsc
|
||||
# externals at link time. Even with /GS-, you need bufferoverflowU.lib.
|
||||
# NOTE: Currently we decided to not use /GS-
|
||||
BUFFEROVERFLOWLIB = bufferoverflowU.lib
|
||||
LINK_FLAGS = $(LINK_FLAGS) $(BUFFEROVERFLOWLIB)
|
||||
LINK_FLAGS = /manifest $(LINK_FLAGS) $(BUFFEROVERFLOWLIB)
|
||||
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
||||
# as resources inside build artifacts.
|
||||
MT=mt.exe
|
||||
!if "$(BUILDARCH)" == "i486"
|
||||
# VS2005 on x86 restricts the use of certain libc functions without this
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_DEPRECATE
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if "$(COMPILER_NAME)" == "VS2008"
|
||||
PRODUCT_OPT_OPTION = /O2 /Oy-
|
||||
FASTDEBUG_OPT_OPTION = /O2 /Oy-
|
||||
DEBUG_OPT_OPTION = /Od
|
||||
GX_OPTION = /EHsc
|
||||
LINK_FLAGS = /manifest $(LINK_FLAGS)
|
||||
# Manifest Tool - used in VS2005 and later to adjust manifests stored
|
||||
# as resources inside build artifacts.
|
||||
MT=mt.exe
|
||||
!if "$(BUILDARCH)" == "i486"
|
||||
# VS2005 on x86 restricts the use of certain libc functions without this
|
||||
CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_DEPRECATE
|
||||
|
||||
@@ -50,6 +50,12 @@ $(AOUT): $(Res_Files) $(Obj_Files)
|
||||
$(LINK) @<<
|
||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||
<<
|
||||
!if "$(MT)" != ""
|
||||
# The previous link command created a .manifest file that we want to
|
||||
# insert into the linked artifact so we do not need to track it
|
||||
# separately. Use ";#2" for .dll and ";#1" for .exe:
|
||||
$(MT) /manifest $@.manifest /outputresource:$@;#2
|
||||
!endif
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
# The common definitions for hotspot windows builds.
|
||||
# Include the top level defs.make under make directory instead of this one.
|
||||
# This file is included into make/defs.make.
|
||||
# On windows it is only used to construct parameters for
|
||||
# On windows it is only used to construct parameters for
|
||||
# make/windows/build.make when make/Makefile is used to build VM.
|
||||
|
||||
SLASH_JAVA ?= J:
|
||||
@@ -69,7 +69,7 @@ endif
|
||||
|
||||
JDK_INCLUDE_SUBDIR=win32
|
||||
|
||||
# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
|
||||
# HOTSPOT_RELEASE_VERSION and HOTSPOT_BUILD_VERSION are defined
|
||||
# and added to MAKE_ARGS list in $(GAMMADIR)/make/defs.make.
|
||||
|
||||
# next parameters are defined in $(GAMMADIR)/make/defs.make.
|
||||
@@ -119,13 +119,13 @@ endif
|
||||
# we want to release it. If we build it here,
|
||||
# the SDK makefiles will copy it over and put it into
|
||||
# the created image.
|
||||
BUILD_WIN_SA = 0
|
||||
BUILD_WIN_SA = 1
|
||||
ifneq ($(ALT_BUILD_WIN_SA),)
|
||||
BUILD_WIN_SA = $(ALT_BUILD_WIN_SA)
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_WIN_SA), 1)
|
||||
ifeq ($(ARCH),ia64)
|
||||
ifeq ($(ARCH),ia64)
|
||||
BUILD_WIN_SA = 0
|
||||
endif
|
||||
endif
|
||||
@@ -154,7 +154,7 @@ ifeq ($(BUILD_WIN_SA), 1)
|
||||
EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.dll
|
||||
EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.pdb
|
||||
EXPORT_LIST += $(EXPORT_JRE_BIN_DIR)/sawindbg.map
|
||||
EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
|
||||
EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
|
||||
# Must pass this down to nmake.
|
||||
MAKE_ARGS += BUILD_WIN_SA=1
|
||||
endif
|
||||
|
||||
@@ -50,6 +50,13 @@ $(AOUT): $(Res_Files) $(Obj_Files)
|
||||
$(LINK) @<<
|
||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||
<<
|
||||
!if "$(MT)" != ""
|
||||
# The previous link command created a .manifest file that we want to
|
||||
# insert into the linked artifact so we do not need to track it
|
||||
# separately. Use ";#2" for .dll and ";#1" for .exe:
|
||||
$(MT) /manifest $@.manifest /outputresource:$@;#2
|
||||
!endif
|
||||
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||
|
||||
@@ -50,7 +50,8 @@ IncludeDBs_gc= $(WorkSpace)/src/share/vm/includeDB_gc_parallel \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_shared \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parNew \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \
|
||||
$(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_g1
|
||||
|
||||
IncludeDBs_core=$(IncludeDBs_base) $(IncludeDBs_gc) \
|
||||
$(WorkSpace)/src/share/vm/includeDB_features
|
||||
|
||||
@@ -64,6 +64,7 @@ MakeDepsIncludesPRIVATE=\
|
||||
-relativeInclude src\share\vm\gc_implementation\shared \
|
||||
-relativeInclude src\share\vm\gc_implementation\parNew \
|
||||
-relativeInclude src\share\vm\gc_implementation\concurrentMarkSweep \
|
||||
-relativeInclude src\share\vm\gc_implementation\g1 \
|
||||
-relativeInclude src\share\vm\gc_interface \
|
||||
-relativeInclude src\share\vm\asm \
|
||||
-relativeInclude src\share\vm\memory \
|
||||
@@ -115,6 +116,7 @@ MakeDepsIDEOptions=\
|
||||
-additionalFile includeDB_gc_parallel \
|
||||
-additionalFile includeDB_gc_parallelScavenge \
|
||||
-additionalFile includeDB_gc_concurrentMarkSweep \
|
||||
-additionalFile includeDB_gc_g1 \
|
||||
-additionalFile includeDB_gc_parNew \
|
||||
-additionalFile includeDB_gc_shared \
|
||||
-additionalFile includeDB_gc_serial \
|
||||
|
||||
@@ -61,6 +61,12 @@ $(AOUT): $(Res_Files) $(Obj_Files)
|
||||
$(LINK_FLAGS) /out:$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
|
||||
<<
|
||||
!endif
|
||||
!if "$(MT)" != ""
|
||||
# The previous link command created a .manifest file that we want to
|
||||
# insert into the linked artifact so we do not need to track it
|
||||
# separately. Use ";#2" for .dll and ";#1" for .exe:
|
||||
$(MT) /manifest $@.manifest /outputresource:$@;#2
|
||||
!endif
|
||||
|
||||
!include $(WorkSpace)/make/windows/makefiles/shared.make
|
||||
!include $(WorkSpace)/make/windows/makefiles/sa.make
|
||||
|
||||
@@ -49,15 +49,25 @@ SA_PROPERTIES = $(SA_CLASSDIR)\sa.properties
|
||||
|
||||
default:: $(GENERATED)\sa-jdi.jar
|
||||
|
||||
$(GENERATED)\sa-jdi.jar: $(AGENT_ALLFILES:/=\)
|
||||
# Remove the space between $(SA_BUILD_VERSION_PROP) and > below as it adds a white space
|
||||
# at the end of SA version string and causes a version mismatch with the target VM version.
|
||||
|
||||
$(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\)
|
||||
@if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR)
|
||||
@echo ...Building sa-jdi.jar
|
||||
@echo ...$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) ....
|
||||
@$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) $(AGENT_ALLFILES:/=\)
|
||||
@$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\)
|
||||
@$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\)
|
||||
$(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
||||
$(QUIETLY) echo $(SA_BUILD_VERSION_PROP) > $(SA_PROPERTIES)
|
||||
$(RUN_JAR) cf $@ -C saclasses .
|
||||
$(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR:/=\) META-INF\services\com.sun.jdi.connect.Connector
|
||||
$(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES)
|
||||
$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
|
||||
$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
|
||||
$(QUIETLY) rm -rf $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
|
||||
$(QUIETLY) mkdir $(SA_CLASSDIR)\sun\jvm\hotspot\ui\resources
|
||||
$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
|
||||
$(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)
|
||||
$(RUN_JAR) cf $@ -C saclasses .
|
||||
$(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR:/=\) META-INF\services\com.sun.jdi.connect.Connector
|
||||
$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal
|
||||
$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext
|
||||
$(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.ia64.IA64ThreadContext
|
||||
@@ -85,13 +95,18 @@ SA_LINK_FLAGS = bufferoverflowU.lib
|
||||
!else
|
||||
SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 /Gm $(GX_OPTION) /ZI /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
!endif
|
||||
|
||||
!if "$(MT)" != ""
|
||||
SA_LINK_FLAGS = /manifest $(SA_LINK_FLAGS)
|
||||
!endif
|
||||
SASRCFILE = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp
|
||||
SA_LFLAGS = $(SA_LINK_FLAGS) /nologo /subsystem:console /map /debug /machine:$(MACHINE)
|
||||
|
||||
# Note that we do not keep sawindbj.obj around as it would then
|
||||
# get included in the dumpbin command in build_vm_def.sh
|
||||
|
||||
# In VS2005 or VS2008 the link command creates a .manifest file that we want
|
||||
# to insert into the linked artifact so we do not need to track it separately.
|
||||
# Use ";#2" for .dll and ";#1" for .exe in the MT command below:
|
||||
$(SAWINDBG): $(SASRCFILE)
|
||||
set INCLUDE=$(SA_INCLUDE)$(INCLUDE)
|
||||
$(CPP) @<<
|
||||
@@ -102,6 +117,9 @@ $(SAWINDBG): $(SASRCFILE)
|
||||
<<
|
||||
set LIB=$(SA_LIB)$(LIB)
|
||||
$(LINK) /out:$@ /DLL sawindbg.obj dbgeng.lib $(SA_LFLAGS)
|
||||
!if "$(MT)" != ""
|
||||
$(MT) /manifest $(@F).manifest /outputresource:$(@F);#2
|
||||
!endif
|
||||
-@rm -f sawindbg.obj
|
||||
|
||||
cleanall :
|
||||
|
||||
@@ -117,6 +117,7 @@ CPP_INCLUDE_DIRS=\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\shared"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\parNew"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_implementation\g1"\
|
||||
/I "$(WorkSpace)\src\share\vm\gc_interface"\
|
||||
/I "$(WorkSpace)\src\share\vm\asm" \
|
||||
/I "$(WorkSpace)\src\share\vm\memory" \
|
||||
@@ -146,6 +147,7 @@ VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parallelScavenge
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/shared
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/parNew
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/concurrentMarkSweep
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_implementation/g1
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/gc_interface
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/asm
|
||||
VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/memory
|
||||
@@ -222,6 +224,9 @@ bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWi
|
||||
{$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep}.cpp.obj::
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
||||
|
||||
{$(WorkSpace)\src\share\vm\gc_implementation\g1}.cpp.obj::
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
||||
|
||||
{$(WorkSpace)\src\share\vm\gc_interface}.cpp.obj::
|
||||
$(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $<
|
||||
|
||||
|
||||
@@ -56,7 +56,8 @@ IncludeDBs_gc=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc_parallel \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_shared \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parNew \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \
|
||||
$(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_g1
|
||||
|
||||
|
||||
IncludeDBs_kernel =$(IncludeDBs_base) \
|
||||
|
||||
@@ -130,6 +130,20 @@ int AbstractAssembler::code_fill_byte() {
|
||||
return 0x00; // illegal instruction 0x00000000
|
||||
}
|
||||
|
||||
Assembler::Condition Assembler::reg_cond_to_cc_cond(Assembler::RCondition in) {
|
||||
switch (in) {
|
||||
case rc_z: return equal;
|
||||
case rc_lez: return lessEqual;
|
||||
case rc_lz: return less;
|
||||
case rc_nz: return notEqual;
|
||||
case rc_gz: return greater;
|
||||
case rc_gez: return greaterEqual;
|
||||
default:
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
return equal;
|
||||
}
|
||||
|
||||
// Generate a bunch 'o stuff (including v9's
|
||||
#ifndef PRODUCT
|
||||
void Assembler::test_v9() {
|
||||
@@ -1213,31 +1227,19 @@ void MacroAssembler::set_vm_result(Register oop_result) {
|
||||
}
|
||||
|
||||
|
||||
void MacroAssembler::store_check(Register tmp, Register obj) {
|
||||
// Use two shifts to clear out those low order two bits! (Cannot opt. into 1.)
|
||||
|
||||
/* $$$ This stuff needs to go into one of the BarrierSet generator
|
||||
functions. (The particular barrier sets will have to be friends of
|
||||
MacroAssembler, I guess.) */
|
||||
BarrierSet* bs = Universe::heap()->barrier_set();
|
||||
assert(bs->kind() == BarrierSet::CardTableModRef, "Wrong barrier set kind");
|
||||
CardTableModRefBS* ct = (CardTableModRefBS*)bs;
|
||||
assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code");
|
||||
void MacroAssembler::card_table_write(jbyte* byte_map_base,
|
||||
Register tmp, Register obj) {
|
||||
#ifdef _LP64
|
||||
srlx(obj, CardTableModRefBS::card_shift, obj);
|
||||
#else
|
||||
srl(obj, CardTableModRefBS::card_shift, obj);
|
||||
#endif
|
||||
assert( tmp != obj, "need separate temp reg");
|
||||
Address rs(tmp, (address)ct->byte_map_base);
|
||||
Address rs(tmp, (address)byte_map_base);
|
||||
load_address(rs);
|
||||
stb(G0, rs.base(), obj);
|
||||
}
|
||||
|
||||
void MacroAssembler::store_check(Register tmp, Register obj, Register offset) {
|
||||
store_check(tmp, obj);
|
||||
}
|
||||
|
||||
// %%% Note: The following six instructions have been moved,
|
||||
// unchanged, from assembler_sparc.inline.hpp.
|
||||
// They will be refactored at a later date.
|
||||
@@ -1663,11 +1665,21 @@ void MacroAssembler::_verify_oop(Register reg, const char* msg, const char * fil
|
||||
|
||||
if (reg == G0) return; // always NULL, which is always an oop
|
||||
|
||||
char buffer[16];
|
||||
char buffer[64];
|
||||
#ifdef COMPILER1
|
||||
if (CommentedAssembly) {
|
||||
snprintf(buffer, sizeof(buffer), "verify_oop at %d", offset());
|
||||
block_comment(buffer);
|
||||
}
|
||||
#endif
|
||||
|
||||
int len = strlen(file) + strlen(msg) + 1 + 4;
|
||||
sprintf(buffer, "%d", line);
|
||||
int len = strlen(file) + strlen(msg) + 1 + 4 + strlen(buffer);
|
||||
len += strlen(buffer);
|
||||
sprintf(buffer, " at offset %d ", offset());
|
||||
len += strlen(buffer);
|
||||
char * real_msg = new char[len];
|
||||
sprintf(real_msg, "%s (%s:%d)", msg, file, line);
|
||||
sprintf(real_msg, "%s%s(%s:%d)", msg, buffer, file, line);
|
||||
|
||||
// Call indirectly to solve generation ordering problem
|
||||
Address a(O7, (address)StubRoutines::verify_oop_subroutine_entry_address());
|
||||
@@ -2059,6 +2071,27 @@ void MacroAssembler::br_notnull( Register s1, bool a, Predict p, Label& L ) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void MacroAssembler::br_on_reg_cond( RCondition rc, bool a, Predict p,
|
||||
Register s1, address d,
|
||||
relocInfo::relocType rt ) {
|
||||
if (VM_Version::v9_instructions_work()) {
|
||||
bpr(rc, a, p, s1, d, rt);
|
||||
} else {
|
||||
tst(s1);
|
||||
br(reg_cond_to_cc_cond(rc), a, p, d, rt);
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::br_on_reg_cond( RCondition rc, bool a, Predict p,
|
||||
Register s1, Label& L ) {
|
||||
if (VM_Version::v9_instructions_work()) {
|
||||
bpr(rc, a, p, s1, L);
|
||||
} else {
|
||||
tst(s1);
|
||||
br(reg_cond_to_cc_cond(rc), a, p, L);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// instruction sequences factored across compiler & interpreter
|
||||
|
||||
@@ -2582,7 +2615,160 @@ void MacroAssembler::cas_under_lock(Register top_ptr_reg, Register top_reg, Regi
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg, Register temp_reg,
|
||||
RegisterConstant MacroAssembler::delayed_value(intptr_t* delayed_value_addr,
|
||||
Register tmp,
|
||||
int offset) {
|
||||
intptr_t value = *delayed_value_addr;
|
||||
if (value != 0)
|
||||
return RegisterConstant(value + offset);
|
||||
|
||||
// load indirectly to solve generation ordering problem
|
||||
Address a(tmp, (address) delayed_value_addr);
|
||||
load_ptr_contents(a, tmp);
|
||||
|
||||
#ifdef ASSERT
|
||||
tst(tmp);
|
||||
breakpoint_trap(zero, xcc);
|
||||
#endif
|
||||
|
||||
if (offset != 0)
|
||||
add(tmp, offset, tmp);
|
||||
|
||||
return RegisterConstant(tmp);
|
||||
}
|
||||
|
||||
|
||||
void MacroAssembler::regcon_inc_ptr( RegisterConstant& dest, RegisterConstant src, Register temp ) {
|
||||
assert(dest.register_or_noreg() != G0, "lost side effect");
|
||||
if ((src.is_constant() && src.as_constant() == 0) ||
|
||||
(src.is_register() && src.as_register() == G0)) {
|
||||
// do nothing
|
||||
} else if (dest.is_register()) {
|
||||
add(dest.as_register(), ensure_rs2(src, temp), dest.as_register());
|
||||
} else if (src.is_constant()) {
|
||||
intptr_t res = dest.as_constant() + src.as_constant();
|
||||
dest = RegisterConstant(res); // side effect seen by caller
|
||||
} else {
|
||||
assert(temp != noreg, "cannot handle constant += register");
|
||||
add(src.as_register(), ensure_rs2(dest, temp), temp);
|
||||
dest = RegisterConstant(temp); // side effect seen by caller
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::regcon_sll_ptr( RegisterConstant& dest, RegisterConstant src, Register temp ) {
|
||||
assert(dest.register_or_noreg() != G0, "lost side effect");
|
||||
if (!is_simm13(src.constant_or_zero()))
|
||||
src = (src.as_constant() & 0xFF);
|
||||
if ((src.is_constant() && src.as_constant() == 0) ||
|
||||
(src.is_register() && src.as_register() == G0)) {
|
||||
// do nothing
|
||||
} else if (dest.is_register()) {
|
||||
sll_ptr(dest.as_register(), src, dest.as_register());
|
||||
} else if (src.is_constant()) {
|
||||
intptr_t res = dest.as_constant() << src.as_constant();
|
||||
dest = RegisterConstant(res); // side effect seen by caller
|
||||
} else {
|
||||
assert(temp != noreg, "cannot handle constant <<= register");
|
||||
set(dest.as_constant(), temp);
|
||||
sll_ptr(temp, src, temp);
|
||||
dest = RegisterConstant(temp); // side effect seen by caller
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Look up the method for a megamorphic invokeinterface call.
|
||||
// The target method is determined by <intf_klass, itable_index>.
|
||||
// The receiver klass is in recv_klass.
|
||||
// On success, the result will be in method_result, and execution falls through.
|
||||
// On failure, execution transfers to the given label.
|
||||
void MacroAssembler::lookup_interface_method(Register recv_klass,
|
||||
Register intf_klass,
|
||||
RegisterConstant itable_index,
|
||||
Register method_result,
|
||||
Register scan_temp,
|
||||
Register sethi_temp,
|
||||
Label& L_no_such_interface) {
|
||||
assert_different_registers(recv_klass, intf_klass, method_result, scan_temp);
|
||||
assert(itable_index.is_constant() || itable_index.as_register() == method_result,
|
||||
"caller must use same register for non-constant itable index as for method");
|
||||
|
||||
// Compute start of first itableOffsetEntry (which is at the end of the vtable)
|
||||
int vtable_base = instanceKlass::vtable_start_offset() * wordSize;
|
||||
int scan_step = itableOffsetEntry::size() * wordSize;
|
||||
int vte_size = vtableEntry::size() * wordSize;
|
||||
|
||||
lduw(recv_klass, instanceKlass::vtable_length_offset() * wordSize, scan_temp);
|
||||
// %%% We should store the aligned, prescaled offset in the klassoop.
|
||||
// Then the next several instructions would fold away.
|
||||
|
||||
int round_to_unit = ((HeapWordsPerLong > 1) ? BytesPerLong : 0);
|
||||
int itb_offset = vtable_base;
|
||||
if (round_to_unit != 0) {
|
||||
// hoist first instruction of round_to(scan_temp, BytesPerLong):
|
||||
itb_offset += round_to_unit - wordSize;
|
||||
}
|
||||
int itb_scale = exact_log2(vtableEntry::size() * wordSize);
|
||||
sll(scan_temp, itb_scale, scan_temp);
|
||||
add(scan_temp, itb_offset, scan_temp);
|
||||
if (round_to_unit != 0) {
|
||||
// Round up to align_object_offset boundary
|
||||
// see code for instanceKlass::start_of_itable!
|
||||
// Was: round_to(scan_temp, BytesPerLong);
|
||||
// Hoisted: add(scan_temp, BytesPerLong-1, scan_temp);
|
||||
and3(scan_temp, -round_to_unit, scan_temp);
|
||||
}
|
||||
add(recv_klass, scan_temp, scan_temp);
|
||||
|
||||
// Adjust recv_klass by scaled itable_index, so we can free itable_index.
|
||||
RegisterConstant itable_offset = itable_index;
|
||||
regcon_sll_ptr(itable_offset, exact_log2(itableMethodEntry::size() * wordSize));
|
||||
regcon_inc_ptr(itable_offset, itableMethodEntry::method_offset_in_bytes());
|
||||
add(recv_klass, ensure_rs2(itable_offset, sethi_temp), recv_klass);
|
||||
|
||||
// for (scan = klass->itable(); scan->interface() != NULL; scan += scan_step) {
|
||||
// if (scan->interface() == intf) {
|
||||
// result = (klass + scan->offset() + itable_index);
|
||||
// }
|
||||
// }
|
||||
Label search, found_method;
|
||||
|
||||
for (int peel = 1; peel >= 0; peel--) {
|
||||
// %%%% Could load both offset and interface in one ldx, if they were
|
||||
// in the opposite order. This would save a load.
|
||||
ld_ptr(scan_temp, itableOffsetEntry::interface_offset_in_bytes(), method_result);
|
||||
|
||||
// Check that this entry is non-null. A null entry means that
|
||||
// the receiver class doesn't implement the interface, and wasn't the
|
||||
// same as when the caller was compiled.
|
||||
bpr(Assembler::rc_z, false, Assembler::pn, method_result, L_no_such_interface);
|
||||
delayed()->cmp(method_result, intf_klass);
|
||||
|
||||
if (peel) {
|
||||
brx(Assembler::equal, false, Assembler::pt, found_method);
|
||||
} else {
|
||||
brx(Assembler::notEqual, false, Assembler::pn, search);
|
||||
// (invert the test to fall through to found_method...)
|
||||
}
|
||||
delayed()->add(scan_temp, scan_step, scan_temp);
|
||||
|
||||
if (!peel) break;
|
||||
|
||||
bind(search);
|
||||
}
|
||||
|
||||
bind(found_method);
|
||||
|
||||
// Got a hit.
|
||||
int ito_offset = itableOffsetEntry::offset_offset_in_bytes();
|
||||
// scan_temp[-scan_step] points to the vtable offset we need
|
||||
ito_offset -= scan_step;
|
||||
lduw(scan_temp, ito_offset, scan_temp);
|
||||
ld_ptr(recv_klass, scan_temp, method_result);
|
||||
}
|
||||
|
||||
|
||||
void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg,
|
||||
Register temp_reg,
|
||||
Label& done, Label* slow_case,
|
||||
BiasedLockingCounters* counters) {
|
||||
assert(UseBiasedLocking, "why call this otherwise?");
|
||||
@@ -2658,8 +2844,7 @@ void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg, R
|
||||
markOopDesc::biased_lock_mask_in_place | markOopDesc::age_mask_in_place | markOopDesc::epoch_mask_in_place,
|
||||
mark_reg);
|
||||
or3(G2_thread, mark_reg, temp_reg);
|
||||
casx_under_lock(mark_addr.base(), mark_reg, temp_reg,
|
||||
(address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
|
||||
casn(mark_addr.base(), mark_reg, temp_reg);
|
||||
// If the biasing toward our thread failed, this means that
|
||||
// another thread succeeded in biasing it toward itself and we
|
||||
// need to revoke that bias. The revocation will occur in the
|
||||
@@ -2688,8 +2873,7 @@ void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg, R
|
||||
load_klass(obj_reg, temp_reg);
|
||||
ld_ptr(Address(temp_reg, 0, Klass::prototype_header_offset_in_bytes() + klassOopDesc::klass_part_offset_in_bytes()), temp_reg);
|
||||
or3(G2_thread, temp_reg, temp_reg);
|
||||
casx_under_lock(mark_addr.base(), mark_reg, temp_reg,
|
||||
(address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
|
||||
casn(mark_addr.base(), mark_reg, temp_reg);
|
||||
// If the biasing toward our thread failed, this means that
|
||||
// another thread succeeded in biasing it toward itself and we
|
||||
// need to revoke that bias. The revocation will occur in the
|
||||
@@ -2719,8 +2903,7 @@ void MacroAssembler::biased_locking_enter(Register obj_reg, Register mark_reg, R
|
||||
// bits in this situation. Should attempt to preserve them.
|
||||
load_klass(obj_reg, temp_reg);
|
||||
ld_ptr(Address(temp_reg, 0, Klass::prototype_header_offset_in_bytes() + klassOopDesc::klass_part_offset_in_bytes()), temp_reg);
|
||||
casx_under_lock(mark_addr.base(), mark_reg, temp_reg,
|
||||
(address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
|
||||
casn(mark_addr.base(), mark_reg, temp_reg);
|
||||
// Fall through to the normal CAS-based lock, because no matter what
|
||||
// the result of the above CAS, some thread must have succeeded in
|
||||
// removing the bias bit from the object's header.
|
||||
@@ -2782,8 +2965,10 @@ void MacroAssembler::casn (Register addr_reg, Register cmp_reg, Register set_reg
|
||||
// effect).
|
||||
|
||||
|
||||
void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark, Register Rbox, Register Rscratch,
|
||||
BiasedLockingCounters* counters) {
|
||||
void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark,
|
||||
Register Rbox, Register Rscratch,
|
||||
BiasedLockingCounters* counters,
|
||||
bool try_bias) {
|
||||
Address mark_addr(Roop, 0, oopDesc::mark_offset_in_bytes());
|
||||
|
||||
verify_oop(Roop);
|
||||
@@ -2805,7 +2990,7 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark, Registe
|
||||
// Fetch object's markword
|
||||
ld_ptr(mark_addr, Rmark);
|
||||
|
||||
if (UseBiasedLocking) {
|
||||
if (try_bias) {
|
||||
biased_locking_enter(Roop, Rmark, Rscratch, done, NULL, counters);
|
||||
}
|
||||
|
||||
@@ -2848,7 +3033,7 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark, Registe
|
||||
|
||||
ld_ptr (mark_addr, Rmark); // fetch obj->mark
|
||||
// Triage: biased, stack-locked, neutral, inflated
|
||||
if (UseBiasedLocking) {
|
||||
if (try_bias) {
|
||||
biased_locking_enter(Roop, Rmark, Rscratch, done, NULL, counters);
|
||||
// Invariant: if control reaches this point in the emitted stream
|
||||
// then Rmark has not been modified.
|
||||
@@ -2912,7 +3097,7 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark, Registe
|
||||
ld_ptr (mark_addr, Rmark); // fetch obj->mark
|
||||
// Triage: biased, stack-locked, neutral, inflated
|
||||
|
||||
if (UseBiasedLocking) {
|
||||
if (try_bias) {
|
||||
biased_locking_enter(Roop, Rmark, Rscratch, done, NULL, counters);
|
||||
// Invariant: if control reaches this point in the emitted stream
|
||||
// then Rmark has not been modified.
|
||||
@@ -3006,7 +3191,9 @@ void MacroAssembler::compiler_lock_object(Register Roop, Register Rmark, Registe
|
||||
bind (done) ;
|
||||
}
|
||||
|
||||
void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark, Register Rbox, Register Rscratch) {
|
||||
void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark,
|
||||
Register Rbox, Register Rscratch,
|
||||
bool try_bias) {
|
||||
Address mark_addr(Roop, 0, oopDesc::mark_offset_in_bytes());
|
||||
|
||||
Label done ;
|
||||
@@ -3017,7 +3204,7 @@ void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark, Regis
|
||||
}
|
||||
|
||||
if (EmitSync & 8) {
|
||||
if (UseBiasedLocking) {
|
||||
if (try_bias) {
|
||||
biased_locking_exit(mark_addr, Rscratch, done);
|
||||
}
|
||||
|
||||
@@ -3044,7 +3231,7 @@ void MacroAssembler::compiler_unlock_object(Register Roop, Register Rmark, Regis
|
||||
// I$ effects.
|
||||
Label LStacked ;
|
||||
|
||||
if (UseBiasedLocking) {
|
||||
if (try_bias) {
|
||||
// TODO: eliminate redundant LDs of obj->mark
|
||||
biased_locking_exit(mark_addr, Rscratch, done);
|
||||
}
|
||||
@@ -3241,68 +3428,74 @@ void MacroAssembler::eden_allocate(
|
||||
assert(0 <= con_size_in_bytes && Assembler::is_simm13(con_size_in_bytes), "illegal object size");
|
||||
assert((con_size_in_bytes & MinObjAlignmentInBytesMask) == 0, "object size is not multiple of alignment");
|
||||
|
||||
// get eden boundaries
|
||||
// note: we need both top & top_addr!
|
||||
const Register top_addr = t1;
|
||||
const Register end = t2;
|
||||
|
||||
CollectedHeap* ch = Universe::heap();
|
||||
set((intx)ch->top_addr(), top_addr);
|
||||
intx delta = (intx)ch->end_addr() - (intx)ch->top_addr();
|
||||
ld_ptr(top_addr, delta, end);
|
||||
ld_ptr(top_addr, 0, obj);
|
||||
|
||||
// try to allocate
|
||||
Label retry;
|
||||
bind(retry);
|
||||
#ifdef ASSERT
|
||||
// make sure eden top is properly aligned
|
||||
{
|
||||
Label L;
|
||||
btst(MinObjAlignmentInBytesMask, obj);
|
||||
br(Assembler::zero, false, Assembler::pt, L);
|
||||
if (CMSIncrementalMode || !Universe::heap()->supports_inline_contig_alloc()) {
|
||||
// No allocation in the shared eden.
|
||||
br(Assembler::always, false, Assembler::pt, slow_case);
|
||||
delayed()->nop();
|
||||
stop("eden top is not properly aligned");
|
||||
bind(L);
|
||||
}
|
||||
#endif // ASSERT
|
||||
const Register free = end;
|
||||
sub(end, obj, free); // compute amount of free space
|
||||
if (var_size_in_bytes->is_valid()) {
|
||||
// size is unknown at compile time
|
||||
cmp(free, var_size_in_bytes);
|
||||
br(Assembler::lessUnsigned, false, Assembler::pn, slow_case); // if there is not enough space go the slow case
|
||||
delayed()->add(obj, var_size_in_bytes, end);
|
||||
} else {
|
||||
// size is known at compile time
|
||||
cmp(free, con_size_in_bytes);
|
||||
br(Assembler::lessUnsigned, false, Assembler::pn, slow_case); // if there is not enough space go the slow case
|
||||
delayed()->add(obj, con_size_in_bytes, end);
|
||||
}
|
||||
// Compare obj with the value at top_addr; if still equal, swap the value of
|
||||
// end with the value at top_addr. If not equal, read the value at top_addr
|
||||
// into end.
|
||||
casx_under_lock(top_addr, obj, end, (address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
|
||||
// if someone beat us on the allocation, try again, otherwise continue
|
||||
cmp(obj, end);
|
||||
brx(Assembler::notEqual, false, Assembler::pn, retry);
|
||||
delayed()->mov(end, obj); // nop if successfull since obj == end
|
||||
// get eden boundaries
|
||||
// note: we need both top & top_addr!
|
||||
const Register top_addr = t1;
|
||||
const Register end = t2;
|
||||
|
||||
CollectedHeap* ch = Universe::heap();
|
||||
set((intx)ch->top_addr(), top_addr);
|
||||
intx delta = (intx)ch->end_addr() - (intx)ch->top_addr();
|
||||
ld_ptr(top_addr, delta, end);
|
||||
ld_ptr(top_addr, 0, obj);
|
||||
|
||||
// try to allocate
|
||||
Label retry;
|
||||
bind(retry);
|
||||
#ifdef ASSERT
|
||||
// make sure eden top is properly aligned
|
||||
{
|
||||
Label L;
|
||||
btst(MinObjAlignmentInBytesMask, obj);
|
||||
br(Assembler::zero, false, Assembler::pt, L);
|
||||
delayed()->nop();
|
||||
stop("eden top is not properly aligned");
|
||||
bind(L);
|
||||
}
|
||||
#endif // ASSERT
|
||||
const Register free = end;
|
||||
sub(end, obj, free); // compute amount of free space
|
||||
if (var_size_in_bytes->is_valid()) {
|
||||
// size is unknown at compile time
|
||||
cmp(free, var_size_in_bytes);
|
||||
br(Assembler::lessUnsigned, false, Assembler::pn, slow_case); // if there is not enough space go the slow case
|
||||
delayed()->add(obj, var_size_in_bytes, end);
|
||||
} else {
|
||||
// size is known at compile time
|
||||
cmp(free, con_size_in_bytes);
|
||||
br(Assembler::lessUnsigned, false, Assembler::pn, slow_case); // if there is not enough space go the slow case
|
||||
delayed()->add(obj, con_size_in_bytes, end);
|
||||
}
|
||||
// Compare obj with the value at top_addr; if still equal, swap the value of
|
||||
// end with the value at top_addr. If not equal, read the value at top_addr
|
||||
// into end.
|
||||
casx_under_lock(top_addr, obj, end, (address)StubRoutines::Sparc::atomic_memory_operation_lock_addr());
|
||||
// if someone beat us on the allocation, try again, otherwise continue
|
||||
cmp(obj, end);
|
||||
brx(Assembler::notEqual, false, Assembler::pn, retry);
|
||||
delayed()->mov(end, obj); // nop if successfull since obj == end
|
||||
|
||||
#ifdef ASSERT
|
||||
// make sure eden top is properly aligned
|
||||
{
|
||||
Label L;
|
||||
const Register top_addr = t1;
|
||||
// make sure eden top is properly aligned
|
||||
{
|
||||
Label L;
|
||||
const Register top_addr = t1;
|
||||
|
||||
set((intx)ch->top_addr(), top_addr);
|
||||
ld_ptr(top_addr, 0, top_addr);
|
||||
btst(MinObjAlignmentInBytesMask, top_addr);
|
||||
br(Assembler::zero, false, Assembler::pt, L);
|
||||
delayed()->nop();
|
||||
stop("eden top is not properly aligned");
|
||||
bind(L);
|
||||
}
|
||||
set((intx)ch->top_addr(), top_addr);
|
||||
ld_ptr(top_addr, 0, top_addr);
|
||||
btst(MinObjAlignmentInBytesMask, top_addr);
|
||||
br(Assembler::zero, false, Assembler::pt, L);
|
||||
delayed()->nop();
|
||||
stop("eden top is not properly aligned");
|
||||
bind(L);
|
||||
}
|
||||
#endif // ASSERT
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3554,6 +3747,486 @@ void MacroAssembler::bang_stack_size(Register Rsize, Register Rtsp,
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef SERIALGC
|
||||
|
||||
static uint num_stores = 0;
|
||||
static uint num_null_pre_stores = 0;
|
||||
|
||||
static void count_null_pre_vals(void* pre_val) {
|
||||
num_stores++;
|
||||
if (pre_val == NULL) num_null_pre_stores++;
|
||||
if ((num_stores % 1000000) == 0) {
|
||||
tty->print_cr(UINT32_FORMAT " stores, " UINT32_FORMAT " (%5.2f%%) with null pre-vals.",
|
||||
num_stores, num_null_pre_stores,
|
||||
100.0*(float)num_null_pre_stores/(float)num_stores);
|
||||
}
|
||||
}
|
||||
|
||||
static address satb_log_enqueue_with_frame = 0;
|
||||
static u_char* satb_log_enqueue_with_frame_end = 0;
|
||||
|
||||
static address satb_log_enqueue_frameless = 0;
|
||||
static u_char* satb_log_enqueue_frameless_end = 0;
|
||||
|
||||
static int EnqueueCodeSize = 128 DEBUG_ONLY( + 256); // Instructions?
|
||||
|
||||
// The calls to this don't work. We'd need to do a fair amount of work to
|
||||
// make it work.
|
||||
static void check_index(int ind) {
|
||||
assert(0 <= ind && ind <= 64*K && ((ind % oopSize) == 0),
|
||||
"Invariants.")
|
||||
}
|
||||
|
||||
static void generate_satb_log_enqueue(bool with_frame) {
|
||||
BufferBlob* bb = BufferBlob::create("enqueue_with_frame", EnqueueCodeSize);
|
||||
CodeBuffer buf(bb->instructions_begin(), bb->instructions_size());
|
||||
MacroAssembler masm(&buf);
|
||||
address start = masm.pc();
|
||||
Register pre_val;
|
||||
|
||||
Label refill, restart;
|
||||
if (with_frame) {
|
||||
masm.save_frame(0);
|
||||
pre_val = I0; // Was O0 before the save.
|
||||
} else {
|
||||
pre_val = O0;
|
||||
}
|
||||
int satb_q_index_byte_offset =
|
||||
in_bytes(JavaThread::satb_mark_queue_offset() +
|
||||
PtrQueue::byte_offset_of_index());
|
||||
int satb_q_buf_byte_offset =
|
||||
in_bytes(JavaThread::satb_mark_queue_offset() +
|
||||
PtrQueue::byte_offset_of_buf());
|
||||
assert(in_bytes(PtrQueue::byte_width_of_index()) == sizeof(intptr_t) &&
|
||||
in_bytes(PtrQueue::byte_width_of_buf()) == sizeof(intptr_t),
|
||||
"check sizes in assembly below");
|
||||
|
||||
masm.bind(restart);
|
||||
masm.ld_ptr(G2_thread, satb_q_index_byte_offset, L0);
|
||||
|
||||
masm.br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pn, L0, refill);
|
||||
// If the branch is taken, no harm in executing this in the delay slot.
|
||||
masm.delayed()->ld_ptr(G2_thread, satb_q_buf_byte_offset, L1);
|
||||
masm.sub(L0, oopSize, L0);
|
||||
|
||||
masm.st_ptr(pre_val, L1, L0); // [_buf + index] := I0
|
||||
if (!with_frame) {
|
||||
// Use return-from-leaf
|
||||
masm.retl();
|
||||
masm.delayed()->st_ptr(L0, G2_thread, satb_q_index_byte_offset);
|
||||
} else {
|
||||
// Not delayed.
|
||||
masm.st_ptr(L0, G2_thread, satb_q_index_byte_offset);
|
||||
}
|
||||
if (with_frame) {
|
||||
masm.ret();
|
||||
masm.delayed()->restore();
|
||||
}
|
||||
masm.bind(refill);
|
||||
|
||||
address handle_zero =
|
||||
CAST_FROM_FN_PTR(address,
|
||||
&SATBMarkQueueSet::handle_zero_index_for_thread);
|
||||
// This should be rare enough that we can afford to save all the
|
||||
// scratch registers that the calling context might be using.
|
||||
masm.mov(G1_scratch, L0);
|
||||
masm.mov(G3_scratch, L1);
|
||||
masm.mov(G4, L2);
|
||||
// We need the value of O0 above (for the write into the buffer), so we
|
||||
// save and restore it.
|
||||
masm.mov(O0, L3);
|
||||
// Since the call will overwrite O7, we save and restore that, as well.
|
||||
masm.mov(O7, L4);
|
||||
masm.call_VM_leaf(L5, handle_zero, G2_thread);
|
||||
masm.mov(L0, G1_scratch);
|
||||
masm.mov(L1, G3_scratch);
|
||||
masm.mov(L2, G4);
|
||||
masm.mov(L3, O0);
|
||||
masm.br(Assembler::always, /*annul*/false, Assembler::pt, restart);
|
||||
masm.delayed()->mov(L4, O7);
|
||||
|
||||
if (with_frame) {
|
||||
satb_log_enqueue_with_frame = start;
|
||||
satb_log_enqueue_with_frame_end = masm.pc();
|
||||
} else {
|
||||
satb_log_enqueue_frameless = start;
|
||||
satb_log_enqueue_frameless_end = masm.pc();
|
||||
}
|
||||
}
|
||||
|
||||
static inline void generate_satb_log_enqueue_if_necessary(bool with_frame) {
|
||||
if (with_frame) {
|
||||
if (satb_log_enqueue_with_frame == 0) {
|
||||
generate_satb_log_enqueue(with_frame);
|
||||
assert(satb_log_enqueue_with_frame != 0, "postcondition.");
|
||||
if (G1SATBPrintStubs) {
|
||||
tty->print_cr("Generated with-frame satb enqueue:");
|
||||
Disassembler::decode((u_char*)satb_log_enqueue_with_frame,
|
||||
satb_log_enqueue_with_frame_end,
|
||||
tty);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (satb_log_enqueue_frameless == 0) {
|
||||
generate_satb_log_enqueue(with_frame);
|
||||
assert(satb_log_enqueue_frameless != 0, "postcondition.");
|
||||
if (G1SATBPrintStubs) {
|
||||
tty->print_cr("Generated frameless satb enqueue:");
|
||||
Disassembler::decode((u_char*)satb_log_enqueue_frameless,
|
||||
satb_log_enqueue_frameless_end,
|
||||
tty);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MacroAssembler::g1_write_barrier_pre(Register obj, Register index, int offset, Register tmp, bool preserve_o_regs) {
|
||||
assert(offset == 0 || index == noreg, "choose one");
|
||||
|
||||
if (G1DisablePreBarrier) return;
|
||||
// satb_log_barrier(tmp, obj, offset, preserve_o_regs);
|
||||
Label filtered;
|
||||
// satb_log_barrier_work0(tmp, filtered);
|
||||
if (in_bytes(PtrQueue::byte_width_of_active()) == 4) {
|
||||
ld(G2,
|
||||
in_bytes(JavaThread::satb_mark_queue_offset() +
|
||||
PtrQueue::byte_offset_of_active()),
|
||||
tmp);
|
||||
} else {
|
||||
guarantee(in_bytes(PtrQueue::byte_width_of_active()) == 1,
|
||||
"Assumption");
|
||||
ldsb(G2,
|
||||
in_bytes(JavaThread::satb_mark_queue_offset() +
|
||||
PtrQueue::byte_offset_of_active()),
|
||||
tmp);
|
||||
}
|
||||
// Check on whether to annul.
|
||||
br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, tmp, filtered);
|
||||
delayed() -> nop();
|
||||
|
||||
// satb_log_barrier_work1(tmp, offset);
|
||||
if (index == noreg) {
|
||||
if (Assembler::is_simm13(offset)) {
|
||||
ld_ptr(obj, offset, tmp);
|
||||
} else {
|
||||
set(offset, tmp);
|
||||
ld_ptr(obj, tmp, tmp);
|
||||
}
|
||||
} else {
|
||||
ld_ptr(obj, index, tmp);
|
||||
}
|
||||
|
||||
// satb_log_barrier_work2(obj, tmp, offset);
|
||||
|
||||
// satb_log_barrier_work3(tmp, filtered, preserve_o_regs);
|
||||
|
||||
const Register pre_val = tmp;
|
||||
|
||||
if (G1SATBBarrierPrintNullPreVals) {
|
||||
save_frame(0);
|
||||
mov(pre_val, O0);
|
||||
// Save G-regs that target may use.
|
||||
mov(G1, L1);
|
||||
mov(G2, L2);
|
||||
mov(G3, L3);
|
||||
mov(G4, L4);
|
||||
mov(G5, L5);
|
||||
call(CAST_FROM_FN_PTR(address, &count_null_pre_vals));
|
||||
delayed()->nop();
|
||||
// Restore G-regs that target may have used.
|
||||
mov(L1, G1);
|
||||
mov(L2, G2);
|
||||
mov(L3, G3);
|
||||
mov(L4, G4);
|
||||
mov(L5, G5);
|
||||
restore(G0, G0, G0);
|
||||
}
|
||||
|
||||
// Check on whether to annul.
|
||||
br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, pre_val, filtered);
|
||||
delayed() -> nop();
|
||||
|
||||
// OK, it's not filtered, so we'll need to call enqueue. In the normal
|
||||
// case, pre_val will be a scratch G-reg, but there's some cases in which
|
||||
// it's an O-reg. In the first case, do a normal call. In the latter,
|
||||
// do a save here and call the frameless version.
|
||||
|
||||
guarantee(pre_val->is_global() || pre_val->is_out(),
|
||||
"Or we need to think harder.");
|
||||
if (pre_val->is_global() && !preserve_o_regs) {
|
||||
generate_satb_log_enqueue_if_necessary(true); // with frame.
|
||||
call(satb_log_enqueue_with_frame);
|
||||
delayed()->mov(pre_val, O0);
|
||||
} else {
|
||||
generate_satb_log_enqueue_if_necessary(false); // with frameless.
|
||||
save_frame(0);
|
||||
call(satb_log_enqueue_frameless);
|
||||
delayed()->mov(pre_val->after_save(), O0);
|
||||
restore();
|
||||
}
|
||||
|
||||
bind(filtered);
|
||||
}
|
||||
|
||||
static jint num_ct_writes = 0;
|
||||
static jint num_ct_writes_filtered_in_hr = 0;
|
||||
static jint num_ct_writes_filtered_null = 0;
|
||||
static jint num_ct_writes_filtered_pop = 0;
|
||||
static G1CollectedHeap* g1 = NULL;
|
||||
|
||||
static Thread* count_ct_writes(void* filter_val, void* new_val) {
|
||||
Atomic::inc(&num_ct_writes);
|
||||
if (filter_val == NULL) {
|
||||
Atomic::inc(&num_ct_writes_filtered_in_hr);
|
||||
} else if (new_val == NULL) {
|
||||
Atomic::inc(&num_ct_writes_filtered_null);
|
||||
} else {
|
||||
if (g1 == NULL) {
|
||||
g1 = G1CollectedHeap::heap();
|
||||
}
|
||||
if ((HeapWord*)new_val < g1->popular_object_boundary()) {
|
||||
Atomic::inc(&num_ct_writes_filtered_pop);
|
||||
}
|
||||
}
|
||||
if ((num_ct_writes % 1000000) == 0) {
|
||||
jint num_ct_writes_filtered =
|
||||
num_ct_writes_filtered_in_hr +
|
||||
num_ct_writes_filtered_null +
|
||||
num_ct_writes_filtered_pop;
|
||||
|
||||
tty->print_cr("%d potential CT writes: %5.2f%% filtered\n"
|
||||
" (%5.2f%% intra-HR, %5.2f%% null, %5.2f%% popular).",
|
||||
num_ct_writes,
|
||||
100.0*(float)num_ct_writes_filtered/(float)num_ct_writes,
|
||||
100.0*(float)num_ct_writes_filtered_in_hr/
|
||||
(float)num_ct_writes,
|
||||
100.0*(float)num_ct_writes_filtered_null/
|
||||
(float)num_ct_writes,
|
||||
100.0*(float)num_ct_writes_filtered_pop/
|
||||
(float)num_ct_writes);
|
||||
}
|
||||
return Thread::current();
|
||||
}
|
||||
|
||||
static address dirty_card_log_enqueue = 0;
|
||||
static u_char* dirty_card_log_enqueue_end = 0;
|
||||
|
||||
// This gets to assume that o0 contains the object address.
|
||||
static void generate_dirty_card_log_enqueue(jbyte* byte_map_base) {
|
||||
BufferBlob* bb = BufferBlob::create("dirty_card_enqueue", EnqueueCodeSize*2);
|
||||
CodeBuffer buf(bb->instructions_begin(), bb->instructions_size());
|
||||
MacroAssembler masm(&buf);
|
||||
address start = masm.pc();
|
||||
|
||||
Label not_already_dirty, restart, refill;
|
||||
|
||||
#ifdef _LP64
|
||||
masm.srlx(O0, CardTableModRefBS::card_shift, O0);
|
||||
#else
|
||||
masm.srl(O0, CardTableModRefBS::card_shift, O0);
|
||||
#endif
|
||||
Address rs(O1, (address)byte_map_base);
|
||||
masm.load_address(rs); // O1 := <card table base>
|
||||
masm.ldub(O0, O1, O2); // O2 := [O0 + O1]
|
||||
|
||||
masm.br_on_reg_cond(Assembler::rc_nz, /*annul*/false, Assembler::pt,
|
||||
O2, not_already_dirty);
|
||||
// Get O1 + O2 into a reg by itself -- useful in the take-the-branch
|
||||
// case, harmless if not.
|
||||
masm.delayed()->add(O0, O1, O3);
|
||||
|
||||
// We didn't take the branch, so we're already dirty: return.
|
||||
// Use return-from-leaf
|
||||
masm.retl();
|
||||
masm.delayed()->nop();
|
||||
|
||||
// Not dirty.
|
||||
masm.bind(not_already_dirty);
|
||||
// First, dirty it.
|
||||
masm.stb(G0, O3, G0); // [cardPtr] := 0 (i.e., dirty).
|
||||
int dirty_card_q_index_byte_offset =
|
||||
in_bytes(JavaThread::dirty_card_queue_offset() +
|
||||
PtrQueue::byte_offset_of_index());
|
||||
int dirty_card_q_buf_byte_offset =
|
||||
in_bytes(JavaThread::dirty_card_queue_offset() +
|
||||
PtrQueue::byte_offset_of_buf());
|
||||
masm.bind(restart);
|
||||
masm.ld_ptr(G2_thread, dirty_card_q_index_byte_offset, L0);
|
||||
|
||||
masm.br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pn,
|
||||
L0, refill);
|
||||
// If the branch is taken, no harm in executing this in the delay slot.
|
||||
masm.delayed()->ld_ptr(G2_thread, dirty_card_q_buf_byte_offset, L1);
|
||||
masm.sub(L0, oopSize, L0);
|
||||
|
||||
masm.st_ptr(O3, L1, L0); // [_buf + index] := I0
|
||||
// Use return-from-leaf
|
||||
masm.retl();
|
||||
masm.delayed()->st_ptr(L0, G2_thread, dirty_card_q_index_byte_offset);
|
||||
|
||||
masm.bind(refill);
|
||||
address handle_zero =
|
||||
CAST_FROM_FN_PTR(address,
|
||||
&DirtyCardQueueSet::handle_zero_index_for_thread);
|
||||
// This should be rare enough that we can afford to save all the
|
||||
// scratch registers that the calling context might be using.
|
||||
masm.mov(G1_scratch, L3);
|
||||
masm.mov(G3_scratch, L5);
|
||||
// We need the value of O3 above (for the write into the buffer), so we
|
||||
// save and restore it.
|
||||
masm.mov(O3, L6);
|
||||
// Since the call will overwrite O7, we save and restore that, as well.
|
||||
masm.mov(O7, L4);
|
||||
|
||||
masm.call_VM_leaf(L7_thread_cache, handle_zero, G2_thread);
|
||||
masm.mov(L3, G1_scratch);
|
||||
masm.mov(L5, G3_scratch);
|
||||
masm.mov(L6, O3);
|
||||
masm.br(Assembler::always, /*annul*/false, Assembler::pt, restart);
|
||||
masm.delayed()->mov(L4, O7);
|
||||
|
||||
dirty_card_log_enqueue = start;
|
||||
dirty_card_log_enqueue_end = masm.pc();
|
||||
// XXX Should have a guarantee here about not going off the end!
|
||||
// Does it already do so? Do an experiment...
|
||||
}
|
||||
|
||||
static inline void
|
||||
generate_dirty_card_log_enqueue_if_necessary(jbyte* byte_map_base) {
|
||||
if (dirty_card_log_enqueue == 0) {
|
||||
generate_dirty_card_log_enqueue(byte_map_base);
|
||||
assert(dirty_card_log_enqueue != 0, "postcondition.");
|
||||
if (G1SATBPrintStubs) {
|
||||
tty->print_cr("Generated dirty_card enqueue:");
|
||||
Disassembler::decode((u_char*)dirty_card_log_enqueue,
|
||||
dirty_card_log_enqueue_end,
|
||||
tty);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MacroAssembler::g1_write_barrier_post(Register store_addr, Register new_val, Register tmp) {
|
||||
|
||||
Label filtered;
|
||||
MacroAssembler* post_filter_masm = this;
|
||||
|
||||
if (new_val == G0) return;
|
||||
if (G1DisablePostBarrier) return;
|
||||
|
||||
G1SATBCardTableModRefBS* bs = (G1SATBCardTableModRefBS*) Universe::heap()->barrier_set();
|
||||
assert(bs->kind() == BarrierSet::G1SATBCT ||
|
||||
bs->kind() == BarrierSet::G1SATBCTLogging, "wrong barrier");
|
||||
if (G1RSBarrierRegionFilter) {
|
||||
xor3(store_addr, new_val, tmp);
|
||||
#ifdef _LP64
|
||||
srlx(tmp, HeapRegion::LogOfHRGrainBytes, tmp);
|
||||
#else
|
||||
srl(tmp, HeapRegion::LogOfHRGrainBytes, tmp);
|
||||
#endif
|
||||
if (G1PrintCTFilterStats) {
|
||||
guarantee(tmp->is_global(), "Or stats won't work...");
|
||||
// This is a sleazy hack: I'm temporarily hijacking G2, which I
|
||||
// promise to restore.
|
||||
mov(new_val, G2);
|
||||
save_frame(0);
|
||||
mov(tmp, O0);
|
||||
mov(G2, O1);
|
||||
// Save G-regs that target may use.
|
||||
mov(G1, L1);
|
||||
mov(G2, L2);
|
||||
mov(G3, L3);
|
||||
mov(G4, L4);
|
||||
mov(G5, L5);
|
||||
call(CAST_FROM_FN_PTR(address, &count_ct_writes));
|
||||
delayed()->nop();
|
||||
mov(O0, G2);
|
||||
// Restore G-regs that target may have used.
|
||||
mov(L1, G1);
|
||||
mov(L3, G3);
|
||||
mov(L4, G4);
|
||||
mov(L5, G5);
|
||||
restore(G0, G0, G0);
|
||||
}
|
||||
// XXX Should I predict this taken or not? Does it mattern?
|
||||
br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, tmp, filtered);
|
||||
delayed()->nop();
|
||||
}
|
||||
|
||||
// Now we decide how to generate the card table write. If we're
|
||||
// enqueueing, we call out to a generated function. Otherwise, we do it
|
||||
// inline here.
|
||||
|
||||
if (G1RSBarrierUseQueue) {
|
||||
// If the "store_addr" register is an "in" or "local" register, move it to
|
||||
// a scratch reg so we can pass it as an argument.
|
||||
bool use_scr = !(store_addr->is_global() || store_addr->is_out());
|
||||
// Pick a scratch register different from "tmp".
|
||||
Register scr = (tmp == G1_scratch ? G3_scratch : G1_scratch);
|
||||
// Make sure we use up the delay slot!
|
||||
if (use_scr) {
|
||||
post_filter_masm->mov(store_addr, scr);
|
||||
} else {
|
||||
post_filter_masm->nop();
|
||||
}
|
||||
generate_dirty_card_log_enqueue_if_necessary(bs->byte_map_base);
|
||||
save_frame(0);
|
||||
call(dirty_card_log_enqueue);
|
||||
if (use_scr) {
|
||||
delayed()->mov(scr, O0);
|
||||
} else {
|
||||
delayed()->mov(store_addr->after_save(), O0);
|
||||
}
|
||||
restore();
|
||||
|
||||
} else {
|
||||
|
||||
#ifdef _LP64
|
||||
post_filter_masm->srlx(store_addr, CardTableModRefBS::card_shift, store_addr);
|
||||
#else
|
||||
post_filter_masm->srl(store_addr, CardTableModRefBS::card_shift, store_addr);
|
||||
#endif
|
||||
assert( tmp != store_addr, "need separate temp reg");
|
||||
Address rs(tmp, (address)bs->byte_map_base);
|
||||
load_address(rs);
|
||||
stb(G0, rs.base(), store_addr);
|
||||
}
|
||||
|
||||
bind(filtered);
|
||||
|
||||
}
|
||||
|
||||
#endif // SERIALGC
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void MacroAssembler::card_write_barrier_post(Register store_addr, Register new_val, Register tmp) {
|
||||
// If we're writing constant NULL, we can skip the write barrier.
|
||||
if (new_val == G0) return;
|
||||
CardTableModRefBS* bs = (CardTableModRefBS*) Universe::heap()->barrier_set();
|
||||
assert(bs->kind() == BarrierSet::CardTableModRef ||
|
||||
bs->kind() == BarrierSet::CardTableExtension, "wrong barrier");
|
||||
card_table_write(bs->byte_map_base, tmp, store_addr);
|
||||
}
|
||||
|
||||
// Loading values by size and signed-ness
|
||||
void MacroAssembler::load_sized_value(Register s1, RegisterConstant s2, Register d,
|
||||
int size_in_bytes, bool is_signed) {
|
||||
switch (size_in_bytes ^ (is_signed ? -1 : 0)) {
|
||||
case ~8: // fall through:
|
||||
case 8: ld_long( s1, s2, d ); break;
|
||||
case ~4: ldsw( s1, s2, d ); break;
|
||||
case 4: lduw( s1, s2, d ); break;
|
||||
case ~2: ldsh( s1, s2, d ); break;
|
||||
case 2: lduh( s1, s2, d ); break;
|
||||
case ~1: ldsb( s1, s2, d ); break;
|
||||
case 1: ldub( s1, s2, d ); break;
|
||||
default: ShouldNotReachHere();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void MacroAssembler::load_klass(Register src_oop, Register klass) {
|
||||
// The number of bytes in this code is used by
|
||||
// MachCallDynamicJavaNode::ret_addr_offset()
|
||||
|
||||
@@ -384,6 +384,12 @@ class Address VALUE_OBJ_CLASS_SPEC {
|
||||
|
||||
inline bool is_simm13(int offset = 0); // check disp+offset for overflow
|
||||
|
||||
Address plus_disp(int disp) const { // bump disp by a small amount
|
||||
Address a = (*this);
|
||||
a._disp += disp;
|
||||
return a;
|
||||
}
|
||||
|
||||
Address split_disp() const { // deal with disp overflow
|
||||
Address a = (*this);
|
||||
int hi_disp = _disp & ~0x3ff;
|
||||
@@ -1082,6 +1088,7 @@ public:
|
||||
inline void add( Register s1, Register s2, Register d );
|
||||
inline void add( Register s1, int simm13a, Register d, relocInfo::relocType rtype = relocInfo::none);
|
||||
inline void add( Register s1, int simm13a, Register d, RelocationHolder const& rspec);
|
||||
inline void add( Register s1, RegisterConstant s2, Register d, int offset = 0);
|
||||
inline void add( const Address& a, Register d, int offset = 0);
|
||||
|
||||
void addcc( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(add_op3 | cc_bit_op3) | rs1(s1) | rs2(s2) ); }
|
||||
@@ -1298,6 +1305,16 @@ public:
|
||||
inline void ld( const Address& a, Register d, int offset = 0 );
|
||||
inline void ldd( const Address& a, Register d, int offset = 0 );
|
||||
|
||||
inline void ldub( Register s1, RegisterConstant s2, Register d );
|
||||
inline void ldsb( Register s1, RegisterConstant s2, Register d );
|
||||
inline void lduh( Register s1, RegisterConstant s2, Register d );
|
||||
inline void ldsh( Register s1, RegisterConstant s2, Register d );
|
||||
inline void lduw( Register s1, RegisterConstant s2, Register d );
|
||||
inline void ldsw( Register s1, RegisterConstant s2, Register d );
|
||||
inline void ldx( Register s1, RegisterConstant s2, Register d );
|
||||
inline void ld( Register s1, RegisterConstant s2, Register d );
|
||||
inline void ldd( Register s1, RegisterConstant s2, Register d );
|
||||
|
||||
// pp 177
|
||||
|
||||
void ldsba( Register s1, Register s2, int ia, Register d ) { emit_long( op(ldst_op) | rd(d) | op3(ldsb_op3 | alt_bit_op3) | rs1(s1) | imm_asi(ia) | rs2(s2) ); }
|
||||
@@ -1439,7 +1456,11 @@ public:
|
||||
// pp 214
|
||||
|
||||
void save( Register s1, Register s2, Register d ) { emit_long( op(arith_op) | rd(d) | op3(save_op3) | rs1(s1) | rs2(s2) ); }
|
||||
void save( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(save_op3) | rs1(s1) | immed(true) | simm(simm13a, 13) ); }
|
||||
void save( Register s1, int simm13a, Register d ) {
|
||||
// make sure frame is at least large enough for the register save area
|
||||
assert(-simm13a >= 16 * wordSize, "frame too small");
|
||||
emit_long( op(arith_op) | rd(d) | op3(save_op3) | rs1(s1) | immed(true) | simm(simm13a, 13) );
|
||||
}
|
||||
|
||||
void restore( Register s1 = G0, Register s2 = G0, Register d = G0 ) { emit_long( op(arith_op) | rd(d) | op3(restore_op3) | rs1(s1) | rs2(s2) ); }
|
||||
void restore( Register s1, int simm13a, Register d ) { emit_long( op(arith_op) | rd(d) | op3(restore_op3) | rs1(s1) | immed(true) | simm(simm13a, 13) ); }
|
||||
@@ -1514,6 +1535,13 @@ public:
|
||||
inline void st( Register d, const Address& a, int offset = 0 );
|
||||
inline void std( Register d, const Address& a, int offset = 0 );
|
||||
|
||||
inline void stb( Register d, Register s1, RegisterConstant s2 );
|
||||
inline void sth( Register d, Register s1, RegisterConstant s2 );
|
||||
inline void stw( Register d, Register s1, RegisterConstant s2 );
|
||||
inline void stx( Register d, Register s1, RegisterConstant s2 );
|
||||
inline void std( Register d, Register s1, RegisterConstant s2 );
|
||||
inline void st( Register d, Register s1, RegisterConstant s2 );
|
||||
|
||||
// pp 177
|
||||
|
||||
void stba( Register d, Register s1, Register s2, int ia ) { emit_long( op(ldst_op) | rd(d) | op3(stb_op3 | alt_bit_op3) | rs1(s1) | imm_asi(ia) | rs2(s2) ); }
|
||||
@@ -1594,6 +1622,11 @@ public:
|
||||
inline void wrasi( Register d) { v9_only(); emit_long( op(arith_op) | rs1(d) | op3(wrreg_op3) | u_field(3, 29, 25)); }
|
||||
inline void wrfprs( Register d) { v9_only(); emit_long( op(arith_op) | rs1(d) | op3(wrreg_op3) | u_field(6, 29, 25)); }
|
||||
|
||||
// For a given register condition, return the appropriate condition code
|
||||
// Condition (the one you would use to get the same effect after "tst" on
|
||||
// the target register.)
|
||||
Assembler::Condition reg_cond_to_cc_cond(RCondition in);
|
||||
|
||||
|
||||
// Creation
|
||||
Assembler(CodeBuffer* code) : AbstractAssembler(code) {
|
||||
@@ -1630,6 +1663,8 @@ class RegistersForDebugging : public StackObj {
|
||||
|
||||
// restore global registers in case C code disturbed them
|
||||
static void restore_registers(MacroAssembler* a, Register r);
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -1722,6 +1757,12 @@ class MacroAssembler: public Assembler {
|
||||
void br_null ( Register s1, bool a, Predict p, Label& L );
|
||||
void br_notnull( Register s1, bool a, Predict p, Label& L );
|
||||
|
||||
// These versions will do the most efficient thing on v8 and v9. Perhaps
|
||||
// this is what the routine above was meant to do, but it didn't (and
|
||||
// didn't cover both target address kinds.)
|
||||
void br_on_reg_cond( RCondition c, bool a, Predict p, Register s1, address d, relocInfo::relocType rt = relocInfo::none );
|
||||
void br_on_reg_cond( RCondition c, bool a, Predict p, Register s1, Label& L);
|
||||
|
||||
inline void bp( Condition c, bool a, CC cc, Predict p, address d, relocInfo::relocType rt = relocInfo::none );
|
||||
inline void bp( Condition c, bool a, CC cc, Predict p, Label& L );
|
||||
|
||||
@@ -1818,6 +1859,7 @@ class MacroAssembler: public Assembler {
|
||||
// Functions for isolating 64 bit shifts for LP64
|
||||
inline void sll_ptr( Register s1, Register s2, Register d );
|
||||
inline void sll_ptr( Register s1, int imm6a, Register d );
|
||||
inline void sll_ptr( Register s1, RegisterConstant s2, Register d );
|
||||
inline void srl_ptr( Register s1, Register s2, Register d );
|
||||
inline void srl_ptr( Register s1, int imm6a, Register d );
|
||||
|
||||
@@ -1923,20 +1965,47 @@ class MacroAssembler: public Assembler {
|
||||
// st_ptr will perform st for 32 bit VM's and stx for 64 bit VM's
|
||||
inline void ld_ptr( Register s1, Register s2, Register d );
|
||||
inline void ld_ptr( Register s1, int simm13a, Register d);
|
||||
inline void ld_ptr( Register s1, RegisterConstant s2, Register d );
|
||||
inline void ld_ptr( const Address& a, Register d, int offset = 0 );
|
||||
inline void st_ptr( Register d, Register s1, Register s2 );
|
||||
inline void st_ptr( Register d, Register s1, int simm13a);
|
||||
inline void st_ptr( Register d, Register s1, RegisterConstant s2 );
|
||||
inline void st_ptr( Register d, const Address& a, int offset = 0 );
|
||||
|
||||
// ld_long will perform ld for 32 bit VM's and ldx for 64 bit VM's
|
||||
// st_long will perform st for 32 bit VM's and stx for 64 bit VM's
|
||||
inline void ld_long( Register s1, Register s2, Register d );
|
||||
inline void ld_long( Register s1, int simm13a, Register d );
|
||||
inline void ld_long( Register s1, RegisterConstant s2, Register d );
|
||||
inline void ld_long( const Address& a, Register d, int offset = 0 );
|
||||
inline void st_long( Register d, Register s1, Register s2 );
|
||||
inline void st_long( Register d, Register s1, int simm13a );
|
||||
inline void st_long( Register d, Register s1, RegisterConstant s2 );
|
||||
inline void st_long( Register d, const Address& a, int offset = 0 );
|
||||
|
||||
// Loading values by size and signed-ness
|
||||
void load_sized_value(Register s1, RegisterConstant s2, Register d,
|
||||
int size_in_bytes, bool is_signed);
|
||||
|
||||
// Helpers for address formation.
|
||||
// They update the dest in place, whether it is a register or constant.
|
||||
// They emit no code at all if src is a constant zero.
|
||||
// If dest is a constant and src is a register, the temp argument
|
||||
// is required, and becomes the result.
|
||||
// If dest is a register and src is a non-simm13 constant,
|
||||
// the temp argument is required, and is used to materialize the constant.
|
||||
void regcon_inc_ptr( RegisterConstant& dest, RegisterConstant src,
|
||||
Register temp = noreg );
|
||||
void regcon_sll_ptr( RegisterConstant& dest, RegisterConstant src,
|
||||
Register temp = noreg );
|
||||
RegisterConstant ensure_rs2(RegisterConstant rs2, Register sethi_temp) {
|
||||
guarantee(sethi_temp != noreg, "constant offset overflow");
|
||||
if (is_simm13(rs2.constant_or_zero()))
|
||||
return rs2; // register or short constant
|
||||
set(rs2.as_constant(), sethi_temp);
|
||||
return sethi_temp;
|
||||
}
|
||||
|
||||
// --------------------------------------------------
|
||||
|
||||
public:
|
||||
@@ -2056,9 +2125,23 @@ class MacroAssembler: public Assembler {
|
||||
#endif // ASSERT
|
||||
|
||||
public:
|
||||
// Stores
|
||||
void store_check(Register tmp, Register obj); // store check for obj - register is destroyed afterwards
|
||||
void store_check(Register tmp, Register obj, Register offset); // store check for obj - register is destroyed afterwards
|
||||
|
||||
// Write to card table for - register is destroyed afterwards.
|
||||
void card_table_write(jbyte* byte_map_base, Register tmp, Register obj);
|
||||
|
||||
void card_write_barrier_post(Register store_addr, Register new_val, Register tmp);
|
||||
|
||||
#ifndef SERIALGC
|
||||
// Array store and offset
|
||||
void g1_write_barrier_pre(Register obj, Register index, int offset, Register tmp, bool preserve_o_regs);
|
||||
|
||||
void g1_write_barrier_post(Register store_addr, Register new_val, Register tmp);
|
||||
|
||||
// May do filtering, depending on the boolean arguments.
|
||||
void g1_card_table_write(jbyte* byte_map_base,
|
||||
Register tmp, Register obj, Register new_val,
|
||||
bool region_filter, bool null_filter);
|
||||
#endif // SERIALGC
|
||||
|
||||
// pushes double TOS element of FPU stack on CPU stack; pops from FPU stack
|
||||
void push_fTOS();
|
||||
@@ -2189,9 +2272,13 @@ class MacroAssembler: public Assembler {
|
||||
|
||||
// These set the icc condition code to equal if the lock succeeded
|
||||
// and notEqual if it failed and requires a slow case
|
||||
void compiler_lock_object(Register Roop, Register Rmark, Register Rbox, Register Rscratch,
|
||||
BiasedLockingCounters* counters = NULL);
|
||||
void compiler_unlock_object(Register Roop, Register Rmark, Register Rbox, Register Rscratch);
|
||||
void compiler_lock_object(Register Roop, Register Rmark, Register Rbox,
|
||||
Register Rscratch,
|
||||
BiasedLockingCounters* counters = NULL,
|
||||
bool try_bias = UseBiasedLocking);
|
||||
void compiler_unlock_object(Register Roop, Register Rmark, Register Rbox,
|
||||
Register Rscratch,
|
||||
bool try_bias = UseBiasedLocking);
|
||||
|
||||
// Biased locking support
|
||||
// Upon entry, lock_reg must point to the lock record on the stack,
|
||||
@@ -2232,6 +2319,14 @@ class MacroAssembler: public Assembler {
|
||||
);
|
||||
void tlab_refill(Label& retry_tlab, Label& try_eden, Label& slow_case);
|
||||
|
||||
// interface method calling
|
||||
void lookup_interface_method(Register recv_klass,
|
||||
Register intf_klass,
|
||||
RegisterConstant itable_index,
|
||||
Register method_result,
|
||||
Register temp_reg, Register temp2_reg,
|
||||
Label& no_such_interface);
|
||||
|
||||
// Stack overflow checking
|
||||
|
||||
// Note: this clobbers G3_scratch
|
||||
@@ -2246,6 +2341,8 @@ class MacroAssembler: public Assembler {
|
||||
// stack overflow + shadow pages. Clobbers tsp and scratch registers.
|
||||
void bang_stack_size(Register Rsize, Register Rtsp, Register Rscratch);
|
||||
|
||||
virtual RegisterConstant delayed_value(intptr_t* delayed_value_addr, Register tmp, int offset);
|
||||
|
||||
void verify_tlab();
|
||||
|
||||
Condition negate_condition(Condition cond);
|
||||
|
||||
@@ -143,6 +143,49 @@ inline void Assembler::ld( Register s1, Register s2, Register d) { lduw( s1, s2
|
||||
inline void Assembler::ld( Register s1, int simm13a, Register d) { lduw( s1, simm13a, d); }
|
||||
#endif
|
||||
|
||||
inline void Assembler::ldub( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ldsb(s1, s2.as_register(), d);
|
||||
else ldsb(s1, s2.as_constant(), d);
|
||||
}
|
||||
inline void Assembler::ldsb( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ldsb(s1, s2.as_register(), d);
|
||||
else ldsb(s1, s2.as_constant(), d);
|
||||
}
|
||||
inline void Assembler::lduh( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ldsh(s1, s2.as_register(), d);
|
||||
else ldsh(s1, s2.as_constant(), d);
|
||||
}
|
||||
inline void Assembler::ldsh( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ldsh(s1, s2.as_register(), d);
|
||||
else ldsh(s1, s2.as_constant(), d);
|
||||
}
|
||||
inline void Assembler::lduw( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ldsw(s1, s2.as_register(), d);
|
||||
else ldsw(s1, s2.as_constant(), d);
|
||||
}
|
||||
inline void Assembler::ldsw( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ldsw(s1, s2.as_register(), d);
|
||||
else ldsw(s1, s2.as_constant(), d);
|
||||
}
|
||||
inline void Assembler::ldx( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ldx(s1, s2.as_register(), d);
|
||||
else ldx(s1, s2.as_constant(), d);
|
||||
}
|
||||
inline void Assembler::ld( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ld(s1, s2.as_register(), d);
|
||||
else ld(s1, s2.as_constant(), d);
|
||||
}
|
||||
inline void Assembler::ldd( Register s1, RegisterConstant s2, Register d) {
|
||||
if (s2.is_register()) ldd(s1, s2.as_register(), d);
|
||||
else ldd(s1, s2.as_constant(), d);
|
||||
}
|
||||
|
||||
// form effective addresses this way:
|
||||
inline void Assembler::add( Register s1, RegisterConstant s2, Register d, int offset) {
|
||||
if (s2.is_register()) add(s1, s2.as_register(), d);
|
||||
else { add(s1, s2.as_constant() + offset, d); offset = 0; }
|
||||
if (offset != 0) add(d, offset, d);
|
||||
}
|
||||
|
||||
inline void Assembler::ld( const Address& a, Register d, int offset ) { relocate(a.rspec(offset)); ld( a.base(), a.disp() + offset, d ); }
|
||||
inline void Assembler::ldsb( const Address& a, Register d, int offset ) { relocate(a.rspec(offset)); ldsb( a.base(), a.disp() + offset, d ); }
|
||||
@@ -200,6 +243,27 @@ inline void Assembler::std( Register d, Register s1, int simm13a) { v9_dep(); a
|
||||
inline void Assembler::st( Register d, Register s1, Register s2) { stw(d, s1, s2); }
|
||||
inline void Assembler::st( Register d, Register s1, int simm13a) { stw(d, s1, simm13a); }
|
||||
|
||||
inline void Assembler::stb( Register d, Register s1, RegisterConstant s2) {
|
||||
if (s2.is_register()) stb(d, s1, s2.as_register());
|
||||
else stb(d, s1, s2.as_constant());
|
||||
}
|
||||
inline void Assembler::sth( Register d, Register s1, RegisterConstant s2) {
|
||||
if (s2.is_register()) sth(d, s1, s2.as_register());
|
||||
else sth(d, s1, s2.as_constant());
|
||||
}
|
||||
inline void Assembler::stx( Register d, Register s1, RegisterConstant s2) {
|
||||
if (s2.is_register()) stx(d, s1, s2.as_register());
|
||||
else stx(d, s1, s2.as_constant());
|
||||
}
|
||||
inline void Assembler::std( Register d, Register s1, RegisterConstant s2) {
|
||||
if (s2.is_register()) std(d, s1, s2.as_register());
|
||||
else std(d, s1, s2.as_constant());
|
||||
}
|
||||
inline void Assembler::st( Register d, Register s1, RegisterConstant s2) {
|
||||
if (s2.is_register()) st(d, s1, s2.as_register());
|
||||
else st(d, s1, s2.as_constant());
|
||||
}
|
||||
|
||||
inline void Assembler::stb( Register d, const Address& a, int offset) { relocate(a.rspec(offset)); stb( d, a.base(), a.disp() + offset); }
|
||||
inline void Assembler::sth( Register d, const Address& a, int offset) { relocate(a.rspec(offset)); sth( d, a.base(), a.disp() + offset); }
|
||||
inline void Assembler::stw( Register d, const Address& a, int offset) { relocate(a.rspec(offset)); stw( d, a.base(), a.disp() + offset); }
|
||||
@@ -244,6 +308,14 @@ inline void MacroAssembler::ld_ptr( Register s1, int simm13a, Register d ) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::ld_ptr( Register s1, RegisterConstant s2, Register d ) {
|
||||
#ifdef _LP64
|
||||
Assembler::ldx( s1, s2, d);
|
||||
#else
|
||||
Assembler::ld( s1, s2, d);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::ld_ptr( const Address& a, Register d, int offset ) {
|
||||
#ifdef _LP64
|
||||
Assembler::ldx( a, d, offset );
|
||||
@@ -268,6 +340,14 @@ inline void MacroAssembler::st_ptr( Register d, Register s1, int simm13a ) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::st_ptr( Register d, Register s1, RegisterConstant s2 ) {
|
||||
#ifdef _LP64
|
||||
Assembler::stx( d, s1, s2);
|
||||
#else
|
||||
Assembler::st( d, s1, s2);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::st_ptr( Register d, const Address& a, int offset) {
|
||||
#ifdef _LP64
|
||||
Assembler::stx( d, a, offset);
|
||||
@@ -293,6 +373,14 @@ inline void MacroAssembler::ld_long( Register s1, int simm13a, Register d ) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::ld_long( Register s1, RegisterConstant s2, Register d ) {
|
||||
#ifdef _LP64
|
||||
Assembler::ldx(s1, s2, d);
|
||||
#else
|
||||
Assembler::ldd(s1, s2, d);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::ld_long( const Address& a, Register d, int offset ) {
|
||||
#ifdef _LP64
|
||||
Assembler::ldx(a, d, offset );
|
||||
@@ -317,6 +405,14 @@ inline void MacroAssembler::st_long( Register d, Register s1, int simm13a ) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::st_long( Register d, Register s1, RegisterConstant s2 ) {
|
||||
#ifdef _LP64
|
||||
Assembler::stx(d, s1, s2);
|
||||
#else
|
||||
Assembler::std(d, s1, s2);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::st_long( Register d, const Address& a, int offset ) {
|
||||
#ifdef _LP64
|
||||
Assembler::stx(d, a, offset);
|
||||
@@ -359,6 +455,11 @@ inline void MacroAssembler::srl_ptr( Register s1, int imm6a, Register d ) {
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void MacroAssembler::sll_ptr( Register s1, RegisterConstant s2, Register d ) {
|
||||
if (s2.is_register()) sll_ptr(s1, s2.as_register(), d);
|
||||
else sll_ptr(s1, s2.as_constant(), d);
|
||||
}
|
||||
|
||||
// Use the right branch for the platform
|
||||
|
||||
inline void MacroAssembler::br( Condition c, bool a, Predict p, address d, relocInfo::relocType rt ) {
|
||||
|
||||
@@ -404,4 +404,55 @@ void ArrayCopyStub::emit_code(LIR_Assembler* ce) {
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef SERIALGC
|
||||
|
||||
void G1PreBarrierStub::emit_code(LIR_Assembler* ce) {
|
||||
__ bind(_entry);
|
||||
|
||||
assert(pre_val()->is_register(), "Precondition.");
|
||||
|
||||
Register pre_val_reg = pre_val()->as_register();
|
||||
|
||||
ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false);
|
||||
__ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
|
||||
pre_val_reg, _continuation);
|
||||
__ delayed()->nop();
|
||||
|
||||
__ call(Runtime1::entry_for(Runtime1::Runtime1::g1_pre_barrier_slow_id));
|
||||
__ delayed()->mov(pre_val_reg, G4);
|
||||
__ br(Assembler::always, false, Assembler::pt, _continuation);
|
||||
__ delayed()->nop();
|
||||
|
||||
}
|
||||
|
||||
jbyte* G1PostBarrierStub::_byte_map_base = NULL;
|
||||
|
||||
jbyte* G1PostBarrierStub::byte_map_base_slow() {
|
||||
BarrierSet* bs = Universe::heap()->barrier_set();
|
||||
assert(bs->is_a(BarrierSet::G1SATBCTLogging),
|
||||
"Must be if we're using this.");
|
||||
return ((G1SATBCardTableModRefBS*)bs)->byte_map_base;
|
||||
}
|
||||
|
||||
void G1PostBarrierStub::emit_code(LIR_Assembler* ce) {
|
||||
__ bind(_entry);
|
||||
|
||||
assert(addr()->is_register(), "Precondition.");
|
||||
assert(new_val()->is_register(), "Precondition.");
|
||||
Register addr_reg = addr()->as_pointer_register();
|
||||
Register new_val_reg = new_val()->as_register();
|
||||
__ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt,
|
||||
new_val_reg, _continuation);
|
||||
__ delayed()->nop();
|
||||
|
||||
__ call(Runtime1::entry_for(Runtime1::Runtime1::g1_post_barrier_slow_id));
|
||||
__ delayed()->mov(addr_reg, G4);
|
||||
__ br(Assembler::always, false, Assembler::pt, _continuation);
|
||||
__ delayed()->nop();
|
||||
}
|
||||
|
||||
#endif // SERIALGC
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#undef __
|
||||
|
||||
@@ -2093,7 +2093,11 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) {
|
||||
// the known type isn't loaded since the code sanity checks
|
||||
// in debug mode and the type isn't required when we know the exact type
|
||||
// also check that the type is an array type.
|
||||
if (op->expected_type() == NULL) {
|
||||
// We also, for now, always call the stub if the barrier set requires a
|
||||
// write_ref_pre barrier (which the stub does, but none of the optimized
|
||||
// cases currently does).
|
||||
if (op->expected_type() == NULL ||
|
||||
Universe::heap()->barrier_set()->has_write_ref_pre_barrier()) {
|
||||
__ mov(src, O0);
|
||||
__ mov(src_pos, O1);
|
||||
__ mov(dst, O2);
|
||||
|
||||
@@ -365,6 +365,10 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) {
|
||||
__ store_check(value.result(), array.result(), tmp1, tmp2, tmp3, store_check_info);
|
||||
}
|
||||
|
||||
if (obj_store) {
|
||||
// Needs GC write barriers.
|
||||
pre_barrier(LIR_OprFact::address(array_addr), false, NULL);
|
||||
}
|
||||
__ move(value.result(), array_addr, null_check_info);
|
||||
if (obj_store) {
|
||||
// Is this precise?
|
||||
@@ -663,6 +667,10 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
|
||||
|
||||
__ add(obj.result(), offset.result(), addr);
|
||||
|
||||
if (type == objectType) { // Write-barrier needed for Object fields.
|
||||
pre_barrier(obj.result(), false, NULL);
|
||||
}
|
||||
|
||||
if (type == objectType)
|
||||
__ cas_obj(addr, cmp.result(), val.result(), t1, t2);
|
||||
else if (type == intType)
|
||||
@@ -677,7 +685,11 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) {
|
||||
LIR_Opr result = rlock_result(x);
|
||||
__ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), result);
|
||||
if (type == objectType) { // Write-barrier needed for Object fields.
|
||||
#ifdef PRECISE_CARDMARK
|
||||
post_barrier(addr, val.result());
|
||||
#else
|
||||
post_barrier(obj.result(), val.result());
|
||||
#endif // PRECISE_CARDMARK
|
||||
}
|
||||
}
|
||||
|
||||
@@ -956,7 +968,8 @@ void LIRGenerator::do_NewMultiArray(NewMultiArray* x) {
|
||||
size->load_item();
|
||||
store_stack_parameter (size->result(),
|
||||
in_ByteSize(STACK_BIAS +
|
||||
(i + frame::memory_parameter_word_sp_offset) * wordSize));
|
||||
frame::memory_parameter_word_sp_offset * wordSize +
|
||||
i * sizeof(jint)));
|
||||
}
|
||||
|
||||
// This instruction can be deoptimized in the slow path : use
|
||||
@@ -1153,6 +1166,10 @@ void LIRGenerator::put_Object_unsafe(LIR_Opr src, LIR_Opr offset, LIR_Opr data,
|
||||
addr = new LIR_Address(base_op, index_op, type);
|
||||
}
|
||||
|
||||
if (is_obj) {
|
||||
pre_barrier(LIR_OprFact::address(addr), false, NULL);
|
||||
// _bs->c1_write_barrier_pre(this, LIR_OprFact::address(addr));
|
||||
}
|
||||
__ move(data, addr);
|
||||
if (is_obj) {
|
||||
// This address is precise
|
||||
|
||||
@@ -832,6 +832,163 @@ OopMapSet* Runtime1::generate_code_for(StubID id, StubAssembler* sasm) {
|
||||
}
|
||||
break;
|
||||
|
||||
#ifndef SERIALGC
|
||||
case g1_pre_barrier_slow_id:
|
||||
{ // G4: previous value of memory
|
||||
BarrierSet* bs = Universe::heap()->barrier_set();
|
||||
if (bs->kind() != BarrierSet::G1SATBCTLogging) {
|
||||
__ save_frame(0);
|
||||
__ set((int)id, O1);
|
||||
__ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), I0);
|
||||
__ should_not_reach_here();
|
||||
break;
|
||||
}
|
||||
|
||||
__ set_info("g1_pre_barrier_slow_id", dont_gc_arguments);
|
||||
|
||||
Register pre_val = G4;
|
||||
Register tmp = G1_scratch;
|
||||
Register tmp2 = G3_scratch;
|
||||
|
||||
Label refill, restart;
|
||||
bool with_frame = false; // I don't know if we can do with-frame.
|
||||
int satb_q_index_byte_offset =
|
||||
in_bytes(JavaThread::satb_mark_queue_offset() +
|
||||
PtrQueue::byte_offset_of_index());
|
||||
int satb_q_buf_byte_offset =
|
||||
in_bytes(JavaThread::satb_mark_queue_offset() +
|
||||
PtrQueue::byte_offset_of_buf());
|
||||
__ bind(restart);
|
||||
__ ld_ptr(G2_thread, satb_q_index_byte_offset, tmp);
|
||||
|
||||
__ br_on_reg_cond(Assembler::rc_z, /*annul*/false,
|
||||
Assembler::pn, tmp, refill);
|
||||
|
||||
// If the branch is taken, no harm in executing this in the delay slot.
|
||||
__ delayed()->ld_ptr(G2_thread, satb_q_buf_byte_offset, tmp2);
|
||||
__ sub(tmp, oopSize, tmp);
|
||||
|
||||
__ st_ptr(pre_val, tmp2, tmp); // [_buf + index] := <address_of_card>
|
||||
// Use return-from-leaf
|
||||
__ retl();
|
||||
__ delayed()->st_ptr(tmp, G2_thread, satb_q_index_byte_offset);
|
||||
|
||||
__ bind(refill);
|
||||
__ save_frame(0);
|
||||
|
||||
__ mov(pre_val, L0);
|
||||
__ mov(tmp, L1);
|
||||
__ mov(tmp2, L2);
|
||||
|
||||
__ call_VM_leaf(L7_thread_cache,
|
||||
CAST_FROM_FN_PTR(address,
|
||||
SATBMarkQueueSet::handle_zero_index_for_thread),
|
||||
G2_thread);
|
||||
|
||||
__ mov(L0, pre_val);
|
||||
__ mov(L1, tmp);
|
||||
__ mov(L2, tmp2);
|
||||
|
||||
__ br(Assembler::always, /*annul*/false, Assembler::pt, restart);
|
||||
__ delayed()->restore();
|
||||
}
|
||||
break;
|
||||
|
||||
case g1_post_barrier_slow_id:
|
||||
{
|
||||
BarrierSet* bs = Universe::heap()->barrier_set();
|
||||
if (bs->kind() != BarrierSet::G1SATBCTLogging) {
|
||||
__ save_frame(0);
|
||||
__ set((int)id, O1);
|
||||
__ call_RT(noreg, noreg, CAST_FROM_FN_PTR(address, unimplemented_entry), I0);
|
||||
__ should_not_reach_here();
|
||||
break;
|
||||
}
|
||||
|
||||
__ set_info("g1_post_barrier_slow_id", dont_gc_arguments);
|
||||
|
||||
Register addr = G4;
|
||||
Register cardtable = G5;
|
||||
Register tmp = G1_scratch;
|
||||
Register tmp2 = G3_scratch;
|
||||
jbyte* byte_map_base = ((CardTableModRefBS*)bs)->byte_map_base;
|
||||
|
||||
Label not_already_dirty, restart, refill;
|
||||
|
||||
#ifdef _LP64
|
||||
__ srlx(addr, CardTableModRefBS::card_shift, addr);
|
||||
#else
|
||||
__ srl(addr, CardTableModRefBS::card_shift, addr);
|
||||
#endif
|
||||
|
||||
Address rs(cardtable, (address)byte_map_base);
|
||||
__ load_address(rs); // cardtable := <card table base>
|
||||
__ ldub(addr, cardtable, tmp); // tmp := [addr + cardtable]
|
||||
|
||||
__ br_on_reg_cond(Assembler::rc_nz, /*annul*/false, Assembler::pt,
|
||||
tmp, not_already_dirty);
|
||||
// Get cardtable + tmp into a reg by itself -- useful in the take-the-branch
|
||||
// case, harmless if not.
|
||||
__ delayed()->add(addr, cardtable, tmp2);
|
||||
|
||||
// We didn't take the branch, so we're already dirty: return.
|
||||
// Use return-from-leaf
|
||||
__ retl();
|
||||
__ delayed()->nop();
|
||||
|
||||
// Not dirty.
|
||||
__ bind(not_already_dirty);
|
||||
// First, dirty it.
|
||||
__ stb(G0, tmp2, 0); // [cardPtr] := 0 (i.e., dirty).
|
||||
|
||||
Register tmp3 = cardtable;
|
||||
Register tmp4 = tmp;
|
||||
|
||||
// these registers are now dead
|
||||
addr = cardtable = tmp = noreg;
|
||||
|
||||
int dirty_card_q_index_byte_offset =
|
||||
in_bytes(JavaThread::dirty_card_queue_offset() +
|
||||
PtrQueue::byte_offset_of_index());
|
||||
int dirty_card_q_buf_byte_offset =
|
||||
in_bytes(JavaThread::dirty_card_queue_offset() +
|
||||
PtrQueue::byte_offset_of_buf());
|
||||
__ bind(restart);
|
||||
__ ld_ptr(G2_thread, dirty_card_q_index_byte_offset, tmp3);
|
||||
|
||||
__ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pn,
|
||||
tmp3, refill);
|
||||
// If the branch is taken, no harm in executing this in the delay slot.
|
||||
__ delayed()->ld_ptr(G2_thread, dirty_card_q_buf_byte_offset, tmp4);
|
||||
__ sub(tmp3, oopSize, tmp3);
|
||||
|
||||
__ st_ptr(tmp2, tmp4, tmp3); // [_buf + index] := <address_of_card>
|
||||
// Use return-from-leaf
|
||||
__ retl();
|
||||
__ delayed()->st_ptr(tmp3, G2_thread, dirty_card_q_index_byte_offset);
|
||||
|
||||
__ bind(refill);
|
||||
__ save_frame(0);
|
||||
|
||||
__ mov(tmp2, L0);
|
||||
__ mov(tmp3, L1);
|
||||
__ mov(tmp4, L2);
|
||||
|
||||
__ call_VM_leaf(L7_thread_cache,
|
||||
CAST_FROM_FN_PTR(address,
|
||||
DirtyCardQueueSet::handle_zero_index_for_thread),
|
||||
G2_thread);
|
||||
|
||||
__ mov(L0, tmp2);
|
||||
__ mov(L1, tmp3);
|
||||
__ mov(L2, tmp4);
|
||||
|
||||
__ br(Assembler::always, /*annul*/false, Assembler::pt, restart);
|
||||
__ delayed()->restore();
|
||||
}
|
||||
break;
|
||||
#endif // !SERIALGC
|
||||
|
||||
default:
|
||||
{ __ set_info("unimplemented entry", dont_gc_arguments);
|
||||
__ save_frame(0);
|
||||
|
||||
@@ -906,7 +906,7 @@ void InterpreterMacroAssembler::gen_subtype_check(Register Rsub_klass,
|
||||
|
||||
// load next super to check
|
||||
if (UseCompressedOops) {
|
||||
ld( Rtmp2, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Rtmp3);
|
||||
lduw( Rtmp2, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Rtmp3);
|
||||
// Bump array pointer forward one oop
|
||||
add( Rtmp2, 4, Rtmp2 );
|
||||
} else {
|
||||
@@ -2465,7 +2465,10 @@ void InterpreterMacroAssembler::verify_FPU(int stack_depth, TosState state) {
|
||||
// InterpreterRuntime::post_method_entry();
|
||||
// }
|
||||
// if (DTraceMethodProbes) {
|
||||
// SharedRuntime::dtrace_method_entry(method, reciever);
|
||||
// SharedRuntime::dtrace_method_entry(method, receiver);
|
||||
// }
|
||||
// if (RC_TRACE_IN_RANGE(0x00001000, 0x00002000)) {
|
||||
// SharedRuntime::rc_trace_method_entry(method, receiver);
|
||||
// }
|
||||
|
||||
void InterpreterMacroAssembler::notify_method_entry() {
|
||||
@@ -2497,6 +2500,13 @@ void InterpreterMacroAssembler::notify_method_entry() {
|
||||
CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_method_entry),
|
||||
G2_thread, Lmethod);
|
||||
}
|
||||
|
||||
// RedefineClasses() tracing support for obsolete method entry
|
||||
if (RC_TRACE_IN_RANGE(0x00001000, 0x00002000)) {
|
||||
call_VM_leaf(noreg,
|
||||
CAST_FROM_FN_PTR(address, SharedRuntime::rc_trace_method_entry),
|
||||
G2_thread, Lmethod);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Copyright 1997-2009 Sun Microsystems, 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
|
||||
@@ -28,5 +28,11 @@
|
||||
#define JNICALL
|
||||
|
||||
typedef int jint;
|
||||
typedef long long jlong;
|
||||
|
||||
#ifdef _LP64
|
||||
typedef long jlong;
|
||||
#else
|
||||
typedef long long jlong;
|
||||
#endif
|
||||
|
||||
typedef signed char jbyte;
|
||||
|
||||
@@ -243,7 +243,7 @@ class NativeInstruction VALUE_OBJ_CLASS_SPEC {
|
||||
|
||||
// Regenerate the instruction sequence that performs the 64 bit
|
||||
// sethi. This only does the sethi. The disp field (bottom 10 bits)
|
||||
// must be handled seperately.
|
||||
// must be handled separately.
|
||||
static void set_data64_sethi(address instaddr, intptr_t x);
|
||||
|
||||
// combine the fields of a sethi/simm13 pair (simm13 = or, add, jmpl, ld/st)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user