Description: General compiler

This file as text.
(active) Revisions in this set:
70ae0a2dc99eb1fa4a11452e8aa1b5e133389e21,800ce234991a53d652a31090a6bad7b2f40a7856,64ad48e89ef7d164e9517d02ec9eb5a124bfd826
a21397e356b523a0c3e5faf45014f104fd64b96e,49e7e5f5129a71a6ef81d712e0a04c650ce6533c,7855b3cf1b46021b2463fcf6987f9229c91d77e3
b4a7d6a82eea9ad71bec75571d7c051cdd68b141,d5f0d8e30624ea69c18c50a4e200e39552bd1092,352fb866ef19c845756840859c91088f9ed32740
c7a0022146dcba901802ed22e1b1e76652e20883,8943c0584edc3089df819481e646371ebeae03f7,4860f3934a5b7ee9242a4b90717807f55730f8fa
68bcffc3e0c358a7dc84ff3a9dfe3f12ddd9f132,aa89182bf5f55404265650497f976f741d7506df,4c0a213f0d07ebf3ed1d8309fb4848bc445bd28d
84b5129f1dc443351e7b914686bf70e9b81b99f6,c306f57ecbcd6098f8442cdb38c3a1e8ea2e13eb,e60a5ebfe76d8935112337011c7919c134388f49
692c287c3e3d006e54eb72fab484b00a2ad3a6f2,7eb9b23fa5224f9ae4f9db985f8f163a7753bd63,116f36fe56bb53c4ead4752335f07411e678aeb8
9febce6ffbe18b5cc3a630bcdb5da3d690fb3dad,af7dfbc970145b96fb3b1da40d80eee77dc6211f,6521918269eb70102aba2c4c5dcf03645b53a766
02e03cbd860dbbc9b32385d2a1132d3f6ee6c4d7,88589fb99d4b12450a982445d52c9590a5893a31,f27fee55662aef795e91eb821cf76e7ee6c4c6cc
379c2fe821cbbba289662d2db0acdafde41d29b8,0a5e6d29cb32b42dd488fd5b0c9f377e138f5d63,a47f153daed4b95925d299168baf916a65573f73
112fb4613b0e0f014f12bc29da7ed2dcbe99a1d1,2b459b30d20db31236b4fe1695865faa9f2976fe,bf4eda478d267055cabd7621ffb48ad59be4553b
18a45d94a36cd61afd82e4313142190af31a74cb,011968e74b105e7fba13f10d1bf0c35931feff0b,64e8557180e68379b17d2d1a32b584c57893ffbf
cdce68451adb2285d3333a059f6003e1b32d55d7,a092da723abb7caca19994e66e60288060bf0c79,2a016889de1ba62b9791ff68ac039843a4ab899b
59d5d6ec9536d2e2181d1407448835c5b64614fe,2a9ce2ed6cc1cbdb8623cccfbf19e4981fa793d5,fa2d82f8795c06a3964e462d5ba55ad16df5e06e
2dc64e5fae911dbf7cd67233c39eb6b919aeedad,4357caaad882705021c49bab78882f65fe52a612,a0262525085fe0ea885f8571d336a366c4c750cc
30d64cec68371f819a3460aba3d9776770d08977,9b0ff05ee812e389651a5f0be280ca7837af3dc7,0e546d47ca72794e9d3edfd3f15435fc09d9cfa4
0a3c94bc72b244d10cc16c59d2656d31dd58e34e,c9a7503bbb0728fcde9decb9201bd6a519ce2587,8fba43609d2e6a3a8fc65690f06ffda024d36752
95d18cd0525963be91fd1e6fc43864c7cde6cab9,c2c942374d35ac90b5af802a805082f596a19275,a7642b70c14ce826822d39f691b70adfce0a03ac
f5ce7c572b7488e7b53763d88cef4a8e9451b891,5f1933eecf874f23c756a3544621c0d26ad7737e,b11588693015a51d2cb70f4be4cca08cd3e4ffc5
dd6039716512f6679aacf46e24a5313673a3eaef,5c5dc2ed500be380ad85a1eac08c08536f9d1b4a,9f16c34329410b03b01ae0f66c67e2f90c07b864
c37c485eb78f7e827cf5b66578935fe32080de5e,0d50a63c7de23aea457bbbf9a979dd64870e5a4e,063415fa72d9b7e83e5f7fe814845eff10f94374
4d2d26c3183165ae27d2ced87d124f9d7bcc5f2c,e157939b4102eb0b52d0b93e05ba2f1f2021edfd,a40335de34e27666392983943ce18b4c672c4003
72416edcc465a6f9a9fea43c4219566750fb8db8,e8ebc00b3b863f7072014f469f0f1096225f34ad,6a6ea6729f4d4fd60791e504fd15e72b1342dfb5
7c92412c74ca66345a3f5284e07596c3a138f078,095bd6da7d845178545634c74cb3ee4b7b31bc17,11851d274c8c040067b6e61577f2b1d7cd7052b6
23570bed33014b272064e963180c76184ed51d1c,08d6ca72604e14563234849c61ecb13f071fb5f6,6dbde11f5a46550784eb4d288b765c4339cf3c4c
ae8304f65776c3bbccbe89f6eb2981462ca96e52,cefb38b6054db7f9978ed12b95c4c6a13cfebe16,d1361ca6edf25dd49e7184b4312b3ed050a575fd
3b9f5a5e96f6871b119fa5dd6b68d64ac6bed3cd,9d56387e7fadbea2e45f49738abc2e376379004f,ea69a5b372db2e43190cc502392b965f76290de1
ccb8e8656020dd8b550dffddf6d2807bc7b8a2d4,b96a8aee616b2437cb5c5b8c8e2d5851a11f56f1,ac37a54d794ec134ac49fe81710ba0b45b774831
477d7be6515dc3e5e3ab5e01f63828d62caecfab,c43cae9231a40132bb9c3f446463152edcc472cc,20fea3607cce1b6c0284c7b4c3c75594589cea99
413a3599c1c35857c5be27e9c61721aa072524c9,97b40dc16daccea9a2ae62cff12366c3aa197c39,026d06cffbaf1658379a61f657415acd3f43e2c8
50ab607676f8a7eb9abd6e499dde5362d32bbdaf,758a8dd34a5dd016c6cc4447d609ddb1d6541556,b60cbf33296d21e8d207e6949dbb39717d0b2f25
67fe756642367b1a224c6dbaa05026fe61096bc1,6629e72d795b94e237dea897f8526617d6c5160d,eeadf618b8320fc653e66ff4b24b58017c10c607
2109612fa3bbc7feffcae2c52a7661e65eed250a,b7da7cd654a752872057bd48ac17628665750aa1,122d0d36d61c25a5a879591b2923e1f904896de1
3b7efb5123d3f0de813c8963ddbd0c8e027af90e,51502874aff7417cdd9050b3d0e24af48aebe176,32a51d7b6247b9d0a65a031f49beb5f42c69cadd
97bc58d2488f10ba7ae2590a029d41d60bbc7245,6e453a1477d6525becb22e90764547e63601385d,6b58185bda1b6d467f423d50a326857c5712f2a0
ff002e266434a261eb65df57b1b9e2241cd1ee0f,93e39fb0cd4f769d46de1db0c6ae9b7898b7bcd3,820d2f7135d7160dc85370c27758e2f1f6f3eee6
95171a1e2281d494c706108394bc0e695dfc1461,e69b4d2d9a9e1aba83c40a2b92ecda28c4625b44,ac8411f3cf29f0361ee963ef0d08d84ff85a723d
8845f4d1ce390679902873a611f9cf0e04e5b185,2330164ee2e700dd8e651d7018d2836bd722afed,7cc7268635512a76eb3f3473e6ddfc454ecc2294
c6bb85eae998ed42c242a3d5d7e24c2bf3231460,3b4011760a1dde45618b9b48529c5827d4eb8849,c55ffa8cc7574d94b38c7b5f7e7d41cb467e4578
1cc995b471f0e708abb9113064877d9a01a1d477,4f72edcdd59d7976e26aace0e6c0a393b6c4186c,f87304f5caf5f9e3afb96d339d12f90fe5dd9772
b1b559f2838fdbedfd399789c2a34405d0e74f91,dd290884306f9746c1a60a6b85f137d58bcfc759,eb769e3859d33f1c93f4870d97be243718de50f5
f3d831b480dabc787b9126e3929c7fcb387a309b,c9a7afe053a4feca5188dfaa57d2e42075eb48b9,70cadc76948864526b147e46052605cc7a69377b
f7549785407c1ac00df6addbf3c7346ef877debf,b840db72284ec707b22636aff5d36d84ad95a228,7f5c2fa3aae4273980635a703db4fc4c8fa828c4
a7c347fe567eead26455fa6be3c579a227673362,ce81e509075e2a186a2d9d854d1bddb891cea6f9,9c03c298567dabc027818e995fef06682e91a226
9a797b9f494d723f8b8b2286fc5db0338f63d98e,dee105654693cf7a8da064d3a2530d9436b07fdf,df598f186829a7074edfe4c4024c89e07abb2668
f6e32ae90e7aa852390174ebb5b8aca0392bcf25,bd4b7a6bc420196d0e846b5f058033101219c2cd,a2cee252e85a2e04b1e13a04d48060a3d8135889
4d03f3a65e9da5a7d9bd71c0b9d0a1090cd4bea0,a72a12eef6133dacfa6d0a93ca8de63a71e92da7,e7c4fccf41056a5695f6aaf39c4b12df95af44a2
2ba239ea6d1474f2a6699f725480bbebfecfa005,10ab893de389cd0dc689ee4b038fd07487f5b0c5,1d7486748a27010e304589d415c961435d3e0812
51e68eb302c8f7fbaf95a04162bf79e3c6de3161,1b16ff3629c51a305b9808e751456f7eff1a5df8,b223d1c3048a22c1d2bdb3e8d933414e2843a737
644c47e1213118690d78d593a1c217335215fb1b,6c82b2d1daacf29cabe1d6c22be050f12cfa3303,925531b99c1ffcb99a838a3991005eee827bfa9b
94d7a02fae1d06a40fc9313f7e42323f97d577c7,75a89d21159b3c4106596993f938b77e43ee048d,4f0da5fcc3d4c0dc053cd88b1b00775b22eac668
4fb7b5d3ffe403756478930a33574f41d05af580,8d3d5276d74979c670c7571d10d698ba09e5c9e4,cfd0790f89641b4c7b98a24314448ea5ce6543df
24f6cc0da52e0c9f0c5285c7961e5b66b6c88891,6cb6517411066233d517a2d97d1e0dbdaa1255f3,c7bb028d35b0db4355ebbb7d97cfa3962db938a7
597a23d278f2c870dbf0a5d7fadb83908b365ce0,6c888949992e530b72e641603d5200b2d3f57b9b,a186f484427dd09971c4b5c335b3a7e807eee796
4db5478acc409c6070e38152b0d24b7693c4df9d,acbf7d15c494c68b0f8209ccb0d041c8dba351f6,afd4599d26c0462c59d0e9ce9fae76a47c6d333f
2f40f818907756d1dc844bf3a5c9899986a3aeaf,04d295f1865d6c011d131ea4ccfb7dd1928ca758,4869d0ace9883ec2e0a4aa9bcf0cb63070df81e9
9c3e9e80a3e9aea5136c0adfc5bc8b41b3fa689e,2d01fe76f6debe1369ae3a345fed259282e0cc10,e52cf555ab862662622817397df755cce1466621
2b6076a719f4671b7bb838bb3ba8bba19f1018d2,503ea604f33b5a7dd72d7a6417f9a38774f19263,f9668f8c037b6202cd558fc173ca1c4256a1c6e0
ab51e8637c2a8879c3745dba029b57590c279630,8c362eac67df688f6c1fc7361f0d5c06a78c02ab,da0deae9aee929f3ccda08afdff56bc931a19e52
7a65e1f393fb3ef10fb4ac15865703a39123a8a7,353be907c76801e05832396087c5b653b301d7d7,7af95cbf063d4634f3e566419cca85ae6823b16c
1abea6451c7faeb0754df984102edb34066df709,13ce27cc1d4a7b148e4236d1a9c2d7d0d2f04071,d4e059bd41b62841560790c0051c9c437243cad5
e3546cf5af9cb17fd98cba5fa50f54ad16e14c9e,9a3ddf650c1c150039b2f63fd84300eaa4f1ac81,fa4596a08f2027787c19db2978208781828760de
3e8c7f66b71cf633a74971b60150d67690b43959,3a43ffd57bc989d3e5facb1edfefc49cbc0f18d8,382d5060a04504cacc56a365f02100a65108ad19
af36913469cc49f412cb38dabfe52400bce229f9,1a559f5c608c31d1b5e11e99076f5b8b9da19dc2,8b9e90dc7a9c45eb6d0458daec566d8064e1ef52
4e5f48a25ed461106a250314f5210f160aee1199,bc77aad3d935e43807cbf349ad3b355508a961ee,e829596750b6e556b5104bf2308be97cb4b1db98
a87a7270d5fa1ea935e2a5e0fd411061e3215263,607126346997c1c34a825017a7c00d68c4cf72ed,bead1f81802eaf2f58a58bc4181e29575080d492
08791712d710acf57282b09f0846b1c8d27b9c5b,7c4e7d6bd3d7df2117ee4a76929746ab68079fc9,57ee0dd00afa7c2fc0eda107222e45ef257b1f0a
a277a5f8db6a078f981748c1f73b8cb43ff36f83,9f88cae771bc3bc99e02047cb1719aefc64480d2,e5c2d13671435042f61ac84d9634dea94f00af57
4da16992df594235915d715c8bc83f53e87a1f56,039aee956804015b1a6c3b07c203a4bf3bbcc49e,a04e4971fc3ef9b3bf5adf3dbc2a3b97de28b287
c7834af3545959d7c104078eefb568243cc71876,075e3da334bfc9788c2de0fde5eea479afe9616f,f78e2072a193a49660ff8cd07273cb6c45b03779
62cef8eb2b66c464df6ae66827e090476bffb657,973741c9197c2b3217ba10f5058b7a2c3377d1d6,b0535d8d0fda36ec637e31343fabe552e8cce954
d65737393352eabc8aff52f9c7b6545d09c578c8,ed2ae508d090338a706418fdf740bc219b614776,bde560dac290929dbdf0c8df20a9c7e1f4dec727
1bb8bd471ae32a1db840b975616fe17e9653ac2c,5358851f84b9fb9af41df6290decea1c5ec7610e,2c1639003c50bb82167036f7372eff8100863a42
478b918386951fa9115d1b7206c83af732dff257,0b61b5d4cfd624402797619075436c57e0da3be9,1b0b81f714555cc0726f3679ddfbcd55c7279db4
927fbc4387efbde9bf4865e9e304385026e4ba39,349bb2ff38a56baf6960a0196326aafbb1aff9a5,2b78a8fd3dec629d91b9fb74a01d06d904384117
53542b7c5ec57aac80fa55eb4efc9c85fdf33129,44beea91b5b4b6a43d55a215cc7281e042f91cdf,e008785152df10d7ac99ff2a162190d2f39a72f0
b9ddddf9b153fa5178118319c4d245d20d24bdb3,33d57ac646240541aaaed7307758d44eb93ebc7c,8d19bb12a2326177304ca963f406dc9a90961cd4
55aeac44f0c462bb66b0025884316dd13ce033dd,213b87fe91453fbca07dacff506b7687e42494e1,97a144ea6abfc4deecba0e10786e17519e1c6ce6
079d616978f27a05004218d3fd6724ef05b5e4e0,5a5b47fa24520aa9275ceca1d20a36ff3b39485c,f76cde1c4c5a6bee8562d5b754dec8e9e99d84d4
281b3ad276d8b66085fde25139123a574ef06afd,ba1b4b1c920a86bf7f8c6fe8777026e0092a9651,b291d17fc5e3b53ce4e8cc5f37d6f9717a9f2288
cf9596421bab9d2feb295e2bdbf013195a8061fb,c0f064a35ceb3a847e6f976ba8879bd288bd2cd8,2ff391c25c763d3aa585160c5643293571a37e29
7e51c5e8561c905ef0041a993ce933093da43798,332679e28aabacc973453b31ba062f4141e919d9,8ec3cd6390b6da0f42cb4cf79fe910c04dc9dd5d
47812c8a3d5e4689d16d577507214929af857ff4,eb0f02348d240a2f68c662d83ab0cba140954b4d,4c34b7b67d9869f889d9b62a30cf2bfe1231d6ae
a418dc6c912099c870db748c09be7bd87bfe199a,aad87820e687fd71d0c8f87b559b8f4b367df657,dd418f24b594340b84eac3805f906c7dc97e2b7e
77658b925bef93b5ae127e686acf63cae731b234,9313ddea78051cc7ec69710462dc2e880080a1ed,cba4aeaca5dcbed78c85b804ed7a5bded119446f
322a717c446f4cc3e53966e908790a87cb309d2c,eab079c7bd9d93bc3f02309e9ada641a7c43c60d,750567f8e36edb9af45221299f76d2e33b1ac8bc
4dbccce43c24eea0f0e9d97e66ba84ce45a40e6b,ded3dec22af8e83e1338569ca7cbe6daad23d3f6,465e8a99e00aef67489c91014f6bf2dcd67b4545
1dee4c41dd487adbc3eef94ac974f069deefcb6e,17c48694a50b69e1f8ae9f10b878a5057ab4b02a,fe99252a9b71bac16570c95e54f4165312d12fce
4239742b35471d8c36d1dca9c2bec527d66c12de,7c02f2b5314b4527db41eba28860ac5e121779bd,2487fa76056397bdca5711c3360bfb27f0620b4c
1e07606cbfb0166728c305cd73d35d28a3d9ccfe,4f2ab3fb1130a34460f5a2c5c0fa8db24d8f036c,ce8ec3ab5d5d8458b16c2e19e2650ec16822e542
d2b3da1f145484472d9ab905805715dd55a8575a,697f2fcf755fa92f67644acd88b1c1827c2ad8cd,dec03b5ac7d43c9462d930f53a61a6e1514b5b08
73c88619293407e62f358e0442389fb3cc10a87f,a9b015911dda052989f7c64a5604314a4cdc07b1,1474db42e45589fd8ee3f4a060e7efccacb4e7c7
7871ccd0546ee221079bb9f5c173d6d3eee4b23e,d3c3f2742c87a5dbd6360e5e8f4cbfc0d72dadce,db1903f45d6757f3d18799002df426b66fa4a0d6
9eaa46f7919d676acae31c785f8eb35b00138a1e,1f3d5e88653a37b06dd3de08d68b2083a323fc31,fe49522e6fbccf6fda941da340818b23e29dc1c1
cdd2ba1a4deadb65f70f19db565c8136f6722885,0db19546efc81de7638ea76bb323d00b1b8ea20e,4f3a5cfd1ee6cdf21242bb730c2aef6c1744610a
9fe80d741686ccd0e1ad78be9af35c82de80a4f1,85684eb66d671df344c3395aa97ccd3ef591a137,eea3eb1a8ec754748b565690cb590f5c0292da74
cbf95aebf44616969cd12b1f3f3a984b1d9f7295,fbbf1f4f1cf29d23bdc337dcc7064e5e69aa3218,749c4d4e4724910f52059874df8d6fb12111a6d3
d80dc03ccbaae1a432356148b88f20a36a9ed72b,5d4af28c0ff54f1b7d6d97f35a55074865612445,d6174499b1fdc948c28db191080da7f144c93d15
243c967967070429195b93b0cb51d2b406badb4d,7ef3d39d93b8a07c88d5359e7d40bf46cecb6614,a57899323426c8e1d5cd5ae6bc1100464c1f1ae7
982a870b15184d033e72efb19b743947c43a8db8,c425c51963854f592da4b9dbccef198959619cd6,98f55b1d8605ab1e5828d3a710df8c6e1afdad18
6b97c712f69b190f2a9139d829fe5741d4430c3d,0a91fcb44fb7cb51476ccc0ad2bd833d1f5af8c0,789f13eb247ab4a811112b430d294a4bf70b9c44
cc9f8b7f5685e205695165386f3d262b0c02132f,40f6a4ea3c36aae0b4da2e3185b533826286b089,56acdd3a11576ff9473ac42b59dad47ee2f6ecc6
67cf63049d4f37852306f5be9681093c5e760f41,40082100e1f688f755fd6726e01162fbf2af3c6c,a1a17447ff3d95d0145d4113ad563f7360480a88
0f57327bff922d389dd7534cfcf29027efebc7a8,449a14dddf92a0a45d0e810ba01d482ea5f27b9d,3fee990218b4648ab020d85f783959b1d8fb0dd4
e56b58c2b05124558bc3c0d18ef1d1c48e9b6d01,7f772683cb0c265dd3c8f84d5e2ee38c73e24b74,0a94f8fc085580d97717c8a8f2e19a9a53a44aaf
b2932393df279c6856cb7fbc12a389fac3de060e,f91e38d1bd3ba024ff15a4db488e2bd2d69f9bcf,84848df18d3b351fec0651a9873128553e84e522
39bab2dbcc3961a59542c60abd70ad73930087a1,ed5f19e7e388356d644a695c16c8c520811099fc,24c4b90343c76d18eb4fb3ae3d85000d03c321e6
ba413bcdfcafdd5ad69be04685808df1b836608c,d137e06ade00a851a5370367243c11fcc79043ea,ee940c8270c8fbdd585cdcd548930e1a6872ab55
e296b26e9ed25051d1d70504c7270f2f649f5d81,a1b556d2118d91a235a1ed365bf88ada086237d4,3ad24c9db8725f6b53e3f3250807ac850a7769a7
f1715ff337103b83ce632e92ea9425b308269fa2,62c137a6d801c5cdc3a2b9f20ea8731836523279,ab2fa724ecddafea7950d8998665d02ec5af3354
db37146f128563ea196aa00b118dbc9376e53f48,3a20178d96463df72b4357fad69838b87d0a5825,0e04d9b4def9447c67da46cfc22b8157d44b34bc
b5e6c0b98d2c04b0d6ba105a9c52a65eea00609d,99914b427931330a22b9fe9210ea44acc6ee8101,d31dd4ac7b6a7f2543c130bb10d927e8688be5ad
f9cda608fa3b891ceec7d21cad66ef75bd4735dd,55d5bdc98d787c733b84b9381a992d67f27d9cf4,71fa4d1fe2a5eaee061fb71fb2045bb5fff2db1b
5cea37425532e2ca502bdebe2acb19db22a31db9,d9d2515ada949fa0c8993ec3ff6579a08624a865,0b63e89ba290a4df67893b01019c3614f8cb8f1e
ced3885dbb54688ca8e0ad3692949eb4fc108b9e,402728239f070c34402db4a5f8f39c98788f95c9,a64a8f8debb219661633a1121082bb882d8ccadd
3a02393584b6b7e4e4ce5a4ff12353f78fa38b0d,352ff5f82ad07bbd07430a1c433d1c417b9f78b2,dfb9fffcf917260a6479ce75da4b87b733d1b4e2
8ce4f9606dbbae08b8cd9c7060ff6021943489dc,b945e66e2807410180709dd0b967e1ebe6cd912a,a72553eea27cc4a8ca0c96456e439e283d9ef972
9dbd1551310b08d5255d948106ac4d65508b9844,80ebb98431397073b582bab01c14a1555f3eb015,404b465c33823efb0294fdc75cfb8da79928e749
90bec938f6ecafc9ce36bd3fc53a73bacb0bb20a,98b1b04951f82c981675a16c2c462287ec5b699c,6d0c470a40bb3a58f2f0b2473c597d0c39a4ee7c
87458a065c54d01aa6d0013299c55d1b99d67f80,b7a8dd9479f550b99b902cf61a719bd3da44f0c1,6db674cd024f9d81069aa1e019afa101e693af38
4d6b8a6c45c5fcd9a7120754358cf94d1a8a42fd,04a50733ad9ab91ff3710e9ca24881c15439bccd,c932dfaf7058a61875276af4a7a9100c2addf1fa
d8903ce6b3af3cb3fc5bcfa48ae2823c1fc2c57c,3206ac35084ab844a20ed8d97a58048cd0b6e7dd,f04afdd5eae60b2ff1d7a1bc46bad34ca54b19d4
43b5dbf6136f053f082c975c8e8d5cb1610ea750,900fd35f4abd574488c8c85d8a62874814ea2a3b,12e63d8a2cf992f49656895e45b6c79b752546d1
145f4299b49a634827a46f3ab1c8a8762c5be06c,6cde8ab4cb9e41c81b04c310b6f0da5afed26e41,c282f21b1b4f9eb8403654abc51bef8956baaccc
217ae6e4bbd0c927967c8d5d2effcb9f621ea89e,e7fbebfef57f0cc75dc85cfa4ca85571e9ae6f99,83611b83cc9b24d1db270e1d545536c651f97ffd
aac8559a8d55b1d594ce91258d8cb66a7a3d0877,18dfdb423e18ff7a16f90699fbd840230e438bc4,6eafee72d78b5785512f113ff1330a9ccb572646
4c338b1f70c86f29d90f6af2e44f749401e88315,797e336222fd5fd1dc4f5da49131381a3174068c,db83612b2c220def234fdf6f78acd565fcc483d1
1da43f67d40dd92ea2fb1cfa327d6088fa838aa7,0b3418e9787ee6953820f6ae07c5e7b21559ccca,99af7f2781df0ba8475f99d20acef464fda91c96
2b6ee838f9745f266b22e73abbcf22def8b11864,46bac33a2d1bf06dd8fd27742ce4751cb0c12232,26acc8fb2a6f634ae80c2a15ecd7f95a8684ba3c
99f92ce5dda2fee4170b359c5163060986b4ea78,d2371f4176f73f22415c21cac3177752b7d27024,fcb6072fae11123300b6418ccdccfbc794319be8
d77a8fb5f46c450921938937ac1cb0f9a7a0a75b,83861799ae140cb032cba70e7ad3b98f92304f09,05c420fad517d77502e023c720e69428a03f5cab
2c4c34ef9b2da6a74ff850053573de7c160a9acf,d10fb705e4c39ab8c4ddd6140e6f86166dd01725,93a08aaebd6f9dbd709c700d092e2cc8aa06d895
5d01d53a962a8dea8af3a4a0ccf6b2901165cfe4,83afeb2e9374c4db290c5669598663211c86cc10,7809930b08765742aa3bb1ee307850e5a86cb0ff
6952ab5baf2bb78e2edd6fc8439348838c39f617,c32ddf42ebaa64e8cc136c8aa3ec88110efadad3,30e7406be3f112c3cff5bbbd88073ad8db08893b
8e436e6335f79785ccd5b4629882877fd13d49b7,3ebcef32ba62ad3f66c33e983b6c6b62b516bb31,1258439767d790a3cff8e567ea283340123e0063
b739d79f9ba4e096c35dc3da134db47f75867fee,2c176be2fd61a5da4520b9ba74e6d4de0e4e3a4a,868030b3fecc84668396e5536b7211d389ff65e0
34b3af7e9249c80bfd29928b6e85d722426084f9,901dde5fa58392d77b49bd648be0c72b475ac287,dbafff24fe5f38889834288c7b2b0dd6d1bf148d
c70f2c63cd9f0675a11031cd63d7ea707f3defd6,ce598c15ec5ce27ccaab373a292f250fe0cc8d78,46afcbb362df8f808307a213e72ecea43c4c6634
5a3883b1ab9f38bdc9f7ac82b62e8f0d87c93c74,d7c24c05d0ee92c575f4bee58429b8bf31eeb114,7132973847c3bd55518db8fbfcb2e410430f7150
a86623b97a80ed644ae83cc62f285bf0cde3aa43,295daf4a7fca682f9a043bf284f75c0661f9b53a,321e4d5837f7747c6ac08b58e3e760321df6b655
0c4d02ff9cc3ca0c9055a6e594c983b10edc3902,90bab63e513c3db6a75d67bef0e76304935a1b63,6d2a7a1b27c85a67ea35210900d5e5e27d8ba9d4
70b2904c48d6075c895a9d901481474cb2712346,3b08c6b0ea1c7d2a960bde6e004ee8f0d59b786a,35a4f96100870dd1de78141caf90c03477ad8758
251a93456ec25acccaca2cbbaee7a09ff608163b,1736950d58bbc94bcdba43bf1e79848c1bce1c24,d5a18f03a857c623cadf41ba2e26bcb32d9f93b1
d24cfcb31c283c66bb67c2d57e6be8d6e1fba971,deefeb1ca0cbd905cc9e677eca59c8e6c9f60022,dd9c76eeecbc3f607c7f9973e66732a6fd61f0b0
1f2354752ccda1d531faef430b0094daf6c66869,8dea445ffe45d8630f7835058cbf8283cd6e7e93,7038d18d5025accdbf95d3b6f8ddea4025542b06
7e78fc1d7faec4d9263b3551e0c3efe55fe5553d,bd168fc5520871b9b53601659a92f68568a31276,262cecf5285899bf64f3be1511692f34aeab7dc2
4b54cbea1e5de056d503cd1c195d1759c0b3c474,99b1283e2ec3b51085bdec70f7d60f02bdd98d27,3da4cf0792d73fae6a0dad36f2f58fe6f02a72e2
8f3aa926781ca9fa06f43c8394d53864a6498b0c,2d77a2c10478d1aa2d65520c5f0b4022e4280fcd,9f0f31a1e91daf920f45121f11e569328377011c
d1d2f6b7017a3ece17383831dabf9835bee88900,7bb6b525b1183a4155ebe3c51c1aefe84a2a5f78,90a164bcdac5e814327c161d2ce7dcd9e4a3c725
b7a4965ac31cdd9584e980ce3082e8a63924e0a4,238c9e576ced17809f6587d9114414adeaeb4329,f40736438cf33894a6a7b408da788d889959f699
2b767c4f8bdf972d3413db62b76de03b5ba59a7d,4cd8193c7975bb1a03ae2f9fe36d043462a5a38a,cc7e623802c1dd79578718708f0a54647263fda9
817ec5e6f284e61546c133fb7000f780c3c7d7bb,141f2403d367ec874aea7f192e8b9e1d003b96a3,d69cf3a440201fe5ff83b55f8c3332236319d0e1
955ebf2f098c47de6e3209fe55469965c79542f6,fc46b6c57c2444fd5a87915e683ba725f1a10c9f,7f8dc75604598da1d48340c5c46f471a5102e9f9
4c9a0403f4c79d12055bd04f67d9f52cebce3a6c,5947143d8fd2a02ed2b0d164eb4ad5434c335f88,24e3d95fe018bc7f6b9604d008b471855c09023a
ae953214eea3c5b8dff0255eb02167bc7cbef58d,31431d99ab5a655837445adf2fc2339d25a1ab98,6398c42a3831550ff98de4f629f474bab796c086
5edc520468a3b2594d7ddd6795a2d806f01d9ed6,5a379cc256b6e89d1031584bf2d49b1ccbc82c1f,58bbbadc16877e99d24515f7e05920c47854eac7
f23f3a4c5e194d651d180f28beb810848419f716,413beee9ae1bfed7219fdfd1249a123fab87aa71,46b4f911753672e5044af4db7468f3ffa02d25db
fd70fcace6f414013a726b5f45df78e91459befc,5d8078f6662f7dd4d24cc5c20696a5be1cbacab9,85edf1c1ebd0fcd58ec25d8f083ab5345d531bd0
c418d63c16021b2bcc97e6c5e621acb6945445c6,867df5362c21a89e6aef76d32f6f6a717d80c9e3,ba0768b6a6156b8c57274978ec072111b419ed6d
0a0397c9f5c30e67ab1a94e4db4b5cde8288b92b,3a1ecd4f167c06645577d18c1ffde5374b8ff445,0224d632f1fb094078200318febb294e828ceeec
71df2911da2124b7bd69428bda51dd6964e51c5d,81fba52adbb01bd7265cc598200456d2367f5167,f82cc96cb939da4edee6680f28b0331ddc490b20
45847da69310f4b42a005119be640012399c961b,663040a666d46d3c47d40c70dd2a36ded405e854,ba203c0564691f1637798193368a292f14b9765a
970ce7f24325e13a153816d8612fec071e1e674b,9230ae5aab60d4e085da647271f2e77779862251,4f38f12815c7cd5b02c1dc987dccc248dc442450
3d5ab366e1d6d2df5ec2c6edf3a870df2a0213f0,5d1d9858d1fc68fddd69f5c7d940f84ff79282b4,14a7429e19059bad9c62c2d2e0fabb544db17e56
4936358beebea71d5f20ee4673549db61dc60b5d,8fd0a27875abb2636a1388876f590a3a56d83b56,e7d590724ac8b26537fa90051f065a86d86bb443
94e22f1262e2a692cf1a39f1e6c47af351ed436d,3662afe93b6a35f38d1c7fc50945c14fded32d59,d29f44e1c730ca21c4a283925ec1241a096bf9c4
fd20dc1086b02fe2dab270a5fe77afb548d4bbba,9c00a8b616c42979f807b6aa818fd50b4e724ae9,a5a87fa84c08342e41d177168c616519ff01430a
69786ffe73a1247e34ceaceadde679a03e0e0d51,8ffb72ddd0ff843e830641aed26fd6c6bdc126c2,a019536cd5630612bb81e87cf98d665456076d7c
36286441b245ba19b1deb984879e173fc7de8c33,0c6f7321bfec374bf9542a1e664911fff8e893d7,de095c4631c4ab452e02f0efe665b4d5ce1adfb8
5eee29e5d1fd7b11f97871235f722b8d3aee391a,2a87b885b1c4d20f94f85a4467daae794188b473,db2875cebaf152bf1dc77e3517039a77743b5b6c
fd1d2271750c608100173ad89aa88cb9517cc211,5d9771d141a145cf168ad7570c99226c3611ad9f,16fc8c8d9a05fc4f94c0e489892f0e82ad530e76
50fe8f70f5095a318683cfd9435c5a8d56ed95b5,fa1203029f8885b25e9324e3c811d6e9b9f1058f,353fc13257104a006558df876a8a2eaf61424ab0
cc49d256ea2bd7324b054a63a5f4051dce2ed135,ce9e1a3419a525d024fc4f9ad5af6c261cd44f7b,c3c3e99c6426da68c901d4a2314133b6e32d7df1
d25820b83050c192461c02da3803cb16a066d2e1,aea0f3e667034d0aa878888bc0ff3d870a25fd2c,dcf4e4cb2c04adbd4bb299b389913c84ed56d0fd
cdafe680c2353d46fd1f00549e158a4c5f2fa8b0,58eef0a5aac53db1d7d5d7bed2515a535522e6f0,fa2e751f9f0787cc827c7cead21f3b36f12d9b3f
e3e23df7e208a0c72832b3528ed99446410e8dce,ef6dde6de305cff538f8cdd0bc4dca13c5574f4f,d14fd51d0b2f47c2059215a388a512a5c7d6b37f
9e7cf37cd6aa8d01ed7ba2c3765877631505ccd4,ff2d71869966b8f39c8a0772e108b766283ec936,9678542ba611d2c0a511eeaa844d760879903910
0fa70759a20202281c390ba48b8b46d7eee37d14,eb3a470f456c12ed78c52e9584db5bc8b87581de,19a69640883fbc5a0c0d607863a6a85673d6f8c6
435b57bdb120166870537cbe299aaaf8b86820b8,eb71d11b9914dc9b448e7d1a18603da807947c67,02deb7d954b37850bdd92822433cca41d27c102c
bd1d6f335db93b5e5912e4b60966a254e07c212a,14b7eaa46f2d80ec8db5efbd5fb71d4469002504,f6667a5143147f88a862a703d1baf1cd922dd885
56d91b4ca79540828c8af3950d6187cc210d17a2,d8e2db269197b6adbbfb23103d3a7a28b193163d,4064c5f39befe1f71d70992b9e3e02eff8f7fffd
11319353fd0d5275bdb7a36d1ccce97cc0524099,9e8bc7c93574678628b613fff8319b541f1cac21,3949be69898e3a724509357a28617376e8a339f4
b99323bb193977646957bb6ac6529e0288c0f963,49026e126182c2fa2dbdf4941e6d6d14b3b24c9b,79bdee3278415121dd1c7521cc4457c8ad3a8f25
3ae1b04d09a165e164e3697391125710604f5124,03f7ef4c6336182ebd5a053f8d962438abefc644,03dfc615dc450f38fae15cd06188dcd56b877616
cffc69ec1d0fd94be0ec1ab6f54302b1d3158371,988dce14c7499b599e7a707a88941c43a822a931,c3f4ad39a3d93a445a490b963ca1015d416db6cc
abb9401011e6985631b99c28b49a8c1053b6d886,16163b74ec9daf00f87075afea385e54f9813e5b,7ee889d4ecebcdd72887fc65961bd4a362db0dcf
a2d3522812a74b2715191f9d447407582fda6951,df4ec9e8e3b59f70b37bb762f50d37725c22bda6,8ecdb2e9ca9b32f1334f237612411e7e17e5d1e6
35e11cd6d4df412a4a193e63b09fda3c9ba910f3,245b58c249b4b29ffc54e6c1e50a1474cc84f7b1,e0041a8244b79abd964007b694f78a8e15bda682
29bdbdba95bf5785005d668aadeebf3033d3e29e,6c29ecbd1cd0e51977fba16d6ebb09ba32f4e520,67fc9a7853918631155a509ebca0983100e613e6
00c2fd40055ff5ee214326de04c594231b9a095e,533a1138857ba2ff5daff90e569c521483f2eae5,5573bee314cc43d3eab0cb29ebfacd0898f7b453
bdcda8660eaa0f02365a9000a55c7ad8ac3becf9,33c4a5dda713b26acaf35da6ec913ebde848f54b,626ef4ae0ccd379e74fc660f914e5524952e6c7f
9d765af6932467e439c8c850f43be86bb40f0ed9,af8783e8d2d8312897ac6406b2ac30af9b6c609a,e5de269664c7029770bb2e4092cd28a9a31545cf
7f8800eeb15ef2db9dbe43b91db194b0e0d0e53f,e251c8e2ab3909dae2b91253044e8be67a00f6fc,e80eee5da54e32313333c2ca1f6dea016bb95c27
e3c6ef21d101b8f95dd6d410eba8990ec9e88845,ee3258c0daaa60b9cf3c12e06317bb17ae886c0c,cb9f569906d356aad9005ae1f22966c3182d4452
fa9c7a92c78fc257294bfe2c9e7d92dfdb69be18,7e5bf5a9fbc07b8e2459545411ff41499679687b,2d2015144653ffdf597df5a9f24e78a1d11941b0
cc703a9c59d1ff69db1349257be86eb7b0cbeb16,421b06affe2d3f2a3ab174fb60934feb9e7c11d3,31e5b2d9a4e1874058b586667429956b61a46101
b7f58dd8c8eacbbfe8aaf8632b6617228ded7485,cfec7251954e78c5e2353a6f842bd269582f5d96,59d300fc6ed13237ccaa37bd2478fd07b1588a25
172a4a999bfa8f9d0429bc2e41fe363a778d8821,cb67577002b81669c34ab1edda2df068058b2334,e19eff13324011b667e4d1b85cc521b8eecb8eff
f481587bee170e0545df260fccc9c653740e1513,fdeaacac21cfa72ea0148158fa8da9aa67035881,ae04e5d7f0c2527677b7c4ce6be2c235a4635c82
c6a08cdc6e57c5dff6b586c40ad9fefe8c2f2a5b,c3ef42b164cfdee2dc5dfaa5b2bbb7790799fcbc,f9530437c2fd229250b3ffc48c0536df3456c192
3487c34ed9a2c87128c39bab5a5dcd336e5ef66f,6842c5784d5a6b21584bf26428a01457c21c60d0,1fc7667b3bc86cb83ffce20cace69ceb679a269c
20a47afe13d37f5d4f77c65f3437b4849f5eca48,7d12e8cc6dfff734632d92f9f6a8ca824a7c6cba,fff3b67b7e3f2f7e820ab782d40d680f50d18539
ac1e0f96bdf26510682788eaa26a813cbb80a7ba,c8f746b88170196adb878a3166e566be1189dc35,d275e7a7e658debe32497a50c5e49d61d154b294
f20e6ff323dce8717477f7d1cac6e70ce0c07b73,40bbb28fd2b877cb94ce03b5b0ffc5f45760a83e,137f392c66a298d58a03c3ca336470e5a5274efa
99ce957111b021c5739d96df65ebb11fb274e71e,79dfd9fb51a82eda8f6469a6236a78e7ba6f7f6a,88a8871c622794893012bb90c75253245a945d35
47dcc5b05b7d41ceadf0a7b10a5f6867ff110df2,2d295a381642e32edbbc08e206453d9251753d53,e1e89864620fe33d035b7987c470847d87b808be
7747c5fc27e6e23247c4d200e3d9fd4c060b9770,4b455600b8a6c98158383c01cbe818a3d80df6d1,7464c880034a94a76aa06cefa0b1c4133d8969f0
5f3050961f57c1ecc58565e6434ad93ec44e14ef,2f914ee2d89b64e629fa93132bd1ff126322b223,83a11c2a7daa26276316ce7cd2fccc7682532213
1d6e719e381c3a58254f3fa6cdf2021e630d0871,5c0a5b73c7cfade35d402e59bca06c8a6167a3f1,7ee0ad4d639e5a93e73056c343e792b7b03e6d1b
ae6b204c9492b9e7b369239b91af6a77fe998c60,9b3447a6a4cd9babd4b870b4f903bd58e918fd74,6bed497c7c3cba3bde7cf91a4544c67e90b041a3
e1433adc2e40670f50d53cbb7b20616728923478,d82335bf9a833519e0b140c666e7851f6afdf226,0ab0eefae0d359b976d1db4ec81ef5f3709d853e
632f13c47a1208c1f3ea5d05f880aacbad14bc70,87b3b089d6e5cf75078b21dd4a389b4609e2ea04,bf24882c33b971c1bb31effdfc865ec6d67eb692
a09e40945caeeb55c4ec2b0e68efe2a4bcbefc03,d4f0658c0273c43dc0e36ad62c9aa6935096808b,798a1b62192d72ad565d4cd642df9c4c0d9d1664
a969097a8098a6f34d6d0797c9d0de39d9fa2d85,13ab35e3efa733623f0af62b3f21757b4de8e481,851accbb4b332cc720d4723075d8ba42bfd0d3ad
52cc02aa3b9b9b4987a724423789e415c1727fdd,60b329659445aebbc9468dd6e28a4e33124afedb,91f3f022fe4d75b8fd44c115e5863039d09829f7
7eb0be61273e009d716df175d8c321dea5230859,f505822ab5f7702187fcbca8fa5511236fb581e1,da54d0e8f7efb83515a85c84b49c9311001f777f
40c54e9d37736815438e236c15df0c996b3d16c4,6248a127cab04750c174f58514f492b759bc7553,a61a0cce4c96ba0173533319b973a48ebf0e53e8
ff415ba39c27148c52edca43e145b46d4cd4ebfa,61bf55e0fe5ca647824e11ad1254691af65c52f6,f5caa9940ba8869791a45ac22bbcaa461282b9b6
04984e9af9c5105b0ebffa308b2b8f97d72872a8,276f5bdef86a1a6edb28d0fdd58685365eb357f4,f13200d68b54786abd242bb1b0de2f1851386add
f4d96906c2363c66ff50f2b9e526d64c37ccd819,85637ad5fad7b0df35d26453779b00726966b164,6f584333e57f4eeda948203e5e2cace032ede931
6151f7af29ffb7a09cca8e6d49d0fce3eb564c46,da1312698b9f05bf26fdc7ab73aed647849b06a8,06fc84037ce1b08f1e26f4e571fe6f8270f1f4f1
a041f899d358832ce9e08d2111c4f26143ae8cb8,2e259ee3cc5d72202d207b5d6775974f791bc4d8,0a915e883ef0479aaca0db5ae9b68c2f17ecff34
4b3ce0c02359b0596f8099beecb18b6804a7bc3c,cd7e3f354b0c0658929aa8ad3648df80a0b9a0f0,f28ac2bfc6424e5eeb9c3acfbf5df4fcd8a6e6b0
1e66b2464a29125b2ff9570e4af8f453574cb409,2a1d26cc905b54f2880fb3f2c51c32a300f32bbe,bb3b1b06a735f552b0861973710a6dfcad99ed98
40c11baaaca151271e95ba91ea6973de369f5bb0,3e9bfedbc44836e69263eee77dc88c9b888f75f6,17c422c3f24137f2db2d1ffeb80664c85aa70602
8ea92a8280cb2ce9e847a618edfc2c65cd1ed6b8,c882828fd06dccda4ad6914fa4b71c5f3708f5fb,dea1855126c0c5ba379d386253cc03808735bd30
d444f750f9d58cd751f5d567e4e14d40f14aea10,9e307f5c3a408a44d0caefc8feeb86c1b23c003f,94b728005d2dc935ffa03fea63af09f10c5d57bb
acdff47554beb7135ab55f2de0957024970760fc,e775ecdc439186d8d2491925c11835b8fe2f082f,c6116258fdfa92ba483a20da200c968f7611888b
ec227bb75942e940502ac23d58370fdb6a7f640a,0802edb7101071b56a56ea62bf6acd2e0425ffc1,5b71ba2a9bc65a6acd50edbecaff5a1caaa5e24f
97eefb6ac3dfc18b920dd73366ace4334670fa0b,fb4b1cbf35264749d6c4dab1e3050d6cb9237620,af107ca8fee33355e8c35fab6fc5ba5290bd3ebc
cf0716123c0f1feb9e5fc84e9831a8d6ea22fe9d,7e6eeebdf01d8b666c5005383b5e087647953216,7000d82dcdcb5e061628c521d4139a8bf43ec8e8
ba73f7376f07cc32f8ab20187909bde68e348fd0,a9bb9f7310e0db16b56d31c1770b901bac8dd813,7405ae275803c25325ad0581ab3b3275c43a1010
fb33da5f412e0bfc3f36d73cc2ba0d1dc0b24000,3889529e4508035a61e270ba60ebf4b5ade11d02,4525edd9f7949c1a8b72662e9a8c77b46f917171
d8f1aacd785f7d10f6aa9d86e861c3ea5d71c668,92b0ea7d02b6573a4641d1431e08675fbe0b3eeb,4e4f55ac0e34fc39db0c76306aa4a1f8b0029c0e
06c1a17d1312c1ed5d2daa3fa1bfca294c6b959d,f2a8b8ad6a7943aff36bf84bd3cdc8c75f086027,b8a78b135c3dacbaaafc1475c1dc9ac75fe5f155
80a4a01f12de35c02a443d59af55d7ab75da6e88,ea7525392644e484d6fa0c6315f0a28c2c496408,3ced30f8168409baba430b02bd843f31de329c78
f2818bfe7afa76d1a3a7e006e2065c51d1330788,ac6e4f59c65e551801d0a6acf0f5d86fcbfd370b,2a315df80c0dcea764dd602e5152812b1cc56e12
599e2df71f6368e913e29822de9f7547ed5b103c,ef7e4f6f62fdf6ab920f3185dcc3006791a249e0,8c2aa326833e7f287a2059547cfd7fa5af59c130
a6354741e6e9d4338ed9b51afce5b14842df51df,bf5d75e5944cba197baf85a76cee434f3cd33b20,46a366d6ae0dc38d606a849e2b34ba3462d28feb
36e32ee607b644e0f2f4d963b0916b75e501e606,22ce9006ab7f5913237f44a5e4b6e088d7211957,a352a12bb42e507cac1645106bce2daa671335ec
c477816100404a063cfd386cb9ba4feb1e33585a,707f7225314f14f046fc0036b8580d7a2e44133d,0f57151d36944e190dae33e2299cd838e048ed9b
5f2410b87106781c786808f3ed3e3b38b574fe13,1779011ab4dfc7e883f49a837d311bdb59fc789e,0149d26adb6aa25b60d995fc88b8dccfc0f29880
30927039a6f2cf056aa57b69534cd90a70576581,8465710329a692ef64b2d88295b9d532c0dd577a,b8b5d8410868bae9efc28c1692b0bf18757ea049
2f374a37b7ad878b277916d0fe7c4d410328e207,4de6b3e6b9aa3af34516ac8ece2fd8187bd17955,cb44d7d4e2e6a9445e466f1df2ea659da12e727f
abb79553d293bbf36d93cb3f3349860deaae0560,cbec738829ee9bcb2e7bdb879d439121a06c1e41,ef878794025437980c7094b25a71e898bd36dca8
a20209e691bfe1196e52d533feef12c74cb0fdb1,1e3f72403eddd7eebe95ad4ee956c4d3863df9ce,f5833dc0482b39432519552050f9d9af6594b02a
96dfe3d03a8ce36de71970fe02610be8eb384389,b89487e7217f9e9c534ae10e24e80d86705f0a77,6d51c69dbe8e5a256704400b57764aeff2200248
1a9e246c29df8ab0b38ecfe715917c361366d8cd,114c27fb4e921df3808ea748e3c6fab528d9b26f,4ad7d552a1057da1ae1f7ce316b6e55411774f18
f59eae4f81228d9a7f06952dd15349c8f96e5162,fd0012deff5ef06a302cbd81762c3bb4085d36f7,051b9840a54206a5d6748e67b294db13aacdefc8
ccf409c8a08876dd9ba7f10bf966134ab129506a,00859420abe2f23c644087fbc9c319c0389c2e3a,9bd7401ce9ac4d02501c0638c85ae1623392cb64
f7a052f8846f8fb76723de3d13f04d2514efdee3,9bd33f7a45d5f62d7be937a3c3e17e8b7dbe8abc,67dbd0cdb3aa69292536a0343c718b4f90872ace
b355ba3d39870b671be98a13cfe64a571a4daf1c,797077855ee7ac488a555b7ba65c615fdb077359,a6a17efa42d9de2a1206311b536b5de0487e6a67
3885ce98ac05b1372ecd5b8895ba323d925cd34e,6fc79c7ed04c57dcb67a64c126ee960fccc7370d,f6c16323fafbb73c37f0df3a80252ad65fd46e82
d409548842031d600e52fc3871ff71bf0f830512,9b53ed53e3ebaec026ed20aef53cc4856a76d55a,1f5efe2a95174c9a72f3f4e7884dce0d3cad441d
ec0d98156cdfa010b029c88075d56e414db885fb,044d9467820ad2c79dc6200d8e36848303fc4993,e1d9be897a01c86262f7d39cf1a4a136d694bf9d
ebd674d40e107e4e8f093b4e28e067beea068312,1201cc024ed4f14903cdd59e26a458985f8621fd,451afd6e45d61fcbe6236803fb12eda7693355d0
7da6bac960893bfb3d690258f0fc11472c0aa1ec,3c16324f8065a20e737028144cc624f6d1834bf5,73c6cab0961f0bffe52aa6d81985f56d08e2d654
a34ae2261a45f4843fcf8f257b1a162b962ce88f,f659e91a95f761b311814797f885eeb445ad1dc0,22cb46fca9876d6e199beffd0a68e2e642b8dcb1
d3f3f81e1627ca65878c1539e0dcad32de5eb382,76e7833a201b8de2b67028606dd45fd0ad972e79,fca4d3315bd3dce1f2013d66e2652bd157c60de7
11784cb76af3bdd83a034ed09d524eac48b39e02,6371d5f26d849975c0a6400fe46c153327603796,ae0ebd1e9326f2c863b23eadc2f0a24b1c007960
6612bb44347f5b978356417125a92a715900236b,9b68c7a5f5f0da2e43119f5845b60923b09ad801,92671c9b85c7320c80d6ded7727718ea94047e41
3dd6a8e24e228aa6a8883508f4eade692e088726,872c22842ec17ffd691eb365dd4d956687f4ed7c,404c6e0c15075a88a0128327e2d9dfa4449a0593
32be078ab8c2c1c7930d48b5b2f8552178f2066c,a75247d9b0f072cd37310da1d3a47822efbc77a7,9462d6b1eace21998fcc832fdfd343479ffe4ab0
31ef82b9c6f18e699ee8a9fae53dc5c257456119,3abdec9c953d6bded0f7200e4392c65a61caea5a,7a3a4244d105e3b32d79b52b692eccc62b362bb2
11287f018fbf940beed20d4e1c0c09f9b872a006,b5659df4251fdacdd80697632708689cdb64f8a5,30e186be784e320264a7b422e52d8541f58131fd
f424ae392999b995c51a205eb14a183add9d38ac,6f87a572affeb8d5a21d9085e986d98933abb22d,2f2b378c0346142566dba0f71a25248b651ee9a3
a9a711763f0f41b97f806beaa2509ad77ebd7542,aabd7c721783ea8db3983568e75918d5b8b6db2f,007df5d0face645c15ba7ccb1a851d93c795cd44
236c11ef71f341e9038730cd56a2c732670fbb45,124c64152d256c1e62a1f13103c2bf5cafb33155,2b70c64d09d8d58476034e1cee01b30d96c19e3b
5a1e6c2e914f5fefc3e5dcb848b5c3a5182b63bd,931d4dcfeea91a734cbbbb4ff28beabf8b9bda34,7cfb87b325aa1b0300734c04f338395e8d0e56c6
02c3f328a21d35ba3d4ba62150761a33d5dc4cac,2678522db552a5d377fedb1aea4983cb97ddf324,70a836c4a21104120f9f993710fb08e9525f97ca
48236401e002fef040b402ecc37844edaa13984d,4b4e316af02a968f27147123b189b04a9931ba79,069e040e49c79b8ce1f8b73d85e02a05df6126b2
16152cf948f30f16e1e185626dad97e298c843bd,fc44c2d4c965d246fc7915dd0212679d9a27d77a,4fc02d3d09b3ee04f0576ed25b5318c6690295d5
9a42625cfb4b042284bc2b789bd4d3f65ecc5522,90a40ab9ca5f0dbd344b28110a5fbe31a86fcdf5,7b4292c94e380e85aca13f6644419227f3f7034a
d87a5cc9fb3dea2cda54a06bfc4fabee195c446a,a807e185912a5ab61e3bbfcb7358e442256562ac,993144b91b468ebfe0cb0b2cfdbe93b8022e748b
6c71fd461daf8161fce6e1d4242a1e8b33f21271,74272975afea5cb9681b5e23c6d5df3e94e59021,22197641b883bf4ad288141feb49caa0a53962a0
3c18dee6945d3cc2d8d59fd7909bfb1db1cc3061,56d64b007f7eee75266dca41fc570e9286ee6e61,1486ab7c708eaa3f901a49adc7a2cc42a1081d2c
4a756a2d30b395b5d1038e3220da45c012336e96,1b3a3a7983c3553e38b1a2bf1fb3166053435b66,45ffa40b71d623e404c72413e935e1b0ef97389e
43c83b3ae60ade6916303a524f058febeeb683ad,df6516c29f348078c0f86034544445eedca59103,592df7fa5905081b23eba908345cff67fe584679
08f9ec98e597e7afe9848fff43fe06608900002b,b625afe8001b7508a131d683108a2e1a7550667a,254b85c352c92f8e8f7d4bc1acf10f5faedbbe51
6b47d9d9ed74d375c3c17b38ec215ac0cfedb90c,d479069f8c045b26678dce30fd8a14cefde3b611,77b54f501f0d1d6a45b8b3f11f4f6fec1260a4c3
5a87855b062c5cc8d0bbae3311d82eae2e099ec5,2ea35e55b199904b69341b46a3f25fcb29557f54,0af71da9cc956f8d70c81ab5dd7c3e8484af90dd
1993c5d1efb6811791df0d7d78472e383874eabf,679c4454c476583f1b28d179ceb8d54759aa63f8,b777dc21d70691a94c36cf921b428ddbcd36db2b
bbcbd4eae1c0e63afe7bee64469decb6d789118f,f4702ee139ed24007942b9b463974d3958fa1bef,3de193467d7d304aa1c0f3072af2a54f690eb821
12d015a9356bfe9511bbb24c05d2a9cad9385e0b,991ce83a2b5a329abdf175905196cf1032993743,40a60591430e4639b7786a1f0a3c34451bf73bbb
e7d2c93ca7c764c4a7f9764a06f9ba390a76dda1,39c48f0d0156f562e8e286003d5504baed62ea5a,c6350e2903d5d431fb53e4a5ad5d5f2e9fa9e9f3
21565c22849db95277d35ae21b17298adaf0d285,f632e2e7be71448f812fe80f5dfadc8aed22dc8a,3a5eb0ec59725106d89f21b1086f22851dcbd1fb
251b18b9661df41aa9de94df5f0fec334d3323f0,3279e6335112c042ef8f723eb1476175bbf5e48d,147559349b257db80d94aba077a3bef23409f581
20698bb36f16566f16a52d7c2c4965d6b1131512,b7afb2431c1fc7bb7e29a965503dffd9e95aec00,013491c69f6068b74240153c95bcb50be5da21fa
3947922fea2604edcb2a4af366332cea338c5907,e350264db18d5ddfe8458caf6a88ec687c3ce4e4,892454ff17bf5a12d3b7543c71ce149b9cab8f8a
2ad3c6dd97d08494ba0406b59868a5fd1198cbb9,ef3155c2eff240ffc64af5b713b545e5a0ea9b74,42324235bd7b9a00acae016699cb4f9c7e46177e
88836b467e591b57523bfdd06590dd6f58977d7d,3188dc18d41b540d6241e9ea20e918e217e55277,9989d408fd2e010dffc655e492d7882d9a52449e
27e89e07a359c9f5388dbff82bcd169823553154,93521ae8e87b79fde427bba35db6dfc8cef108c0,e50c4f6373933812d8fe57ceaf4ceab1c963cb32
3099e10f41016534a49548a5fe82e93ce6e90138,346118187b41859b88ba7c4b196493a809fd54f6,95e8992e2f2605f96187d057a5adb23b5109f163
49f789b92aed40ddeb16aa91b95fcff61b386982,c146aecc0112091e382e8c709026076038783409,4dff373feffed88c558076962dc7a9e9729033e2
2acc6337d817d6e041281c4e0393ef7fde833adb,c7b19e2fc96f01219e4664895b13a5d86ae7e120,a3573599718aad825241c4926833270091ba8b52
9bdfbc24731d670ecda14897eca0add4786871a1,684ef3008fcb26dc1318e6807d78e72942d9ae4c,9132b54b3b9ad8817fbc5bf20ede4ad947c193bb
62129db44cb6ccf173a6c2e34c6c1a29760c9479,80c0fc3c9268c59a07747f7ae88a106097c2a2c8,507fc9c1ff58a7b97b3739016838cf06f35f956f
ac974c9ab7418908c996b52499240a88ffa210f7,34be9e464331921895f19699348ef7c663dd7e05,f42b0bf6f556d1c8c9ab2bf04a5c170d62b44b8d
9819df6fe16de513a6c253b313cbd00ce4b3b11c,cea772308039d52e7dcac66ab46c1fdec607e67c,bc3131688af996b30fe4acc2e2b55d953ab70f8b
8f0376c888e2b8626f37b8c8ce00a704df869ba0,424c8a0ac0edc9a8cdffdb62687fd1a750727172,f8339a43eaa2808fe22ca13192c92b5c8c200300
6cac8cc77bd6f36cc5f312dc7e932108ba5f467c,135a88c888e24e3c4559af7fae7d2f25a668f7be,c20b27ede9fed9798af41af9fac56b3785ac6cb0
a880367b37004dc22aae426c0da8618c941d1fe3,96a712f7ff35dc5ea1e148bff113c3b347c1785e,aca97274189a9511dcb3ceb878b2984138b71f62
30a4f667c171a8a352952bb008f7f7fc7e91284c,523ebb42cfd9705ef1cc6b4614e3ccb610eb7a87,41e554067a781db64def61fdce3d952d1290f8ec
79974a96713d98fd78bf838755c31fc44f2d0a48,44d9498effae13337ae677dcf2c59e52e6ec2f4e,b033ccbddb9c6ce1b486cd21493e07b6949b02ce
4ba19f5418bb0dc18ff708c2ad73e7cee160fc5d,afd0ae44eecd5252eae6dab8a34b0d4dc97722f2,d5de84c6c52ce7403f6ea17e9330a1cf7d5e4032
66cbee5e31091693cef12ba3c533ffea59e0c549,fc98a0db4f917852568e8c777bb229ed7f2e53ff,3705f95b925b46ea38a795c81425d06de6e2fc5a
04f3784af5fd1c73d88a00ece5bc26566313fc2e,f3560004cf486d89cb97dd144337c825d7ac0346,02ed51ea2541071642818c72552216d88aeda71c
39fa96579079493b11e2c94e2dba6c924bceb13f,71784254ab5cda0144cc92d0909533fff965163b,497ff94cb096fb436b9916b60120b7c235d01d85
38c32bcada3d600fccd74eb60a1961f0dbc200aa,d772a42375334be095f5bdfa06b601163695b9d1,4d73a9e637ba7ecb7abd2c849e5683dbe33ada67
458a6000e7c0665adcd9e55e7b09351fcbeb47e9,3d4cc7c2f663e3a4363c4f16fdface50f50ead8f,7c2c8581b7d3543cf28d8fe6c917f09f190d7835
2bae2a451c4dd4571b3ad81be202253050fb447b,3dff78621cbf792076eed72a35848b4f572c5d9a,3022927a6f73b6a74eba24ba6f941b1e78096037
2276caae243820b7dc60a7b7feff79b908d96c08,c4b66c89f7c08409f0c7d82869e473ccd84fd8c6,9bcff94e9e7674ca6b87f6aa45b5748aabd65dd3
73b563b3679e0771fe3d0f546da7695b9f911e1f,7172397077ad2126b5d59b985ee1f266d65663c3,19a9d4c4acb2d5dbe4bb14756517d3e3d85d79be
9176efbab4ef437703b08d88958ab3506accaca0,f5fc806c9d2cc3c880ff98e92f33f764747e6713,4f16473baad47661a858c77d100d8070af688941
001057b52ec0a30b4ab3a7c5888b11de9e8aff87,56ad37133e6225e2a4bf8dd07e9bfb19e0805489,5a07298ea516c581c06c1ce1b784fc3a6201159f
7125cb505c0e428110713679df6ac681bab49a0a,4b59bcb0ca289e88f97d84afd1dd37502c48daa5,2b3d7dd42cddd513b70d4f7ddb61e2f7766cdb37
6ccb8b83dae165f9c48b9db693d7cdec6dbf1ab6,9211e6cf936ecc789a8d31691bb288bbaed634d0,099faf2d2babda25febee94149772fa936244b2e
db19900eb1c6a4b8580f03fd57506a2592b80314,c96a3cc9d1584825f4b8d56fa8b52a1140a2ee67,be50c77f342dab9fa790edf5597594c665dd97e8
8ac8c79a71abc78e50e5fa2206c93ff1a555f144,57809eb922c2d9e6dbca04fdc54d3c020905df88,068f0d2ec8ee953998eebf578bcb27d821be4dac
3e29742fd9b4d483b0cb3c7bd1b0417e6fddbad6,5b941e3cea65f1bc58bc2189d6eb371b3c3441d4,3af74d2fd2a9a431d0b0b966b03d2fa07cc0e59a
dfde4def62ef9798084f4ea4a8ccd2963b9e354b,a6f1c04f22723ea2da0c5938240f74fe87552aeb,3b1d5794e9c7b06e2c8ce9f11610b479d3a55132
40633835dcaa2206cf041bb5abca51accb39b1b7,613a6e796a30c0e4ee4e926b92f7d5ad8213e817,12ef0668970c478becd1661e2825d0d0aa2cad3e
0cc592e9eea8cd2d1943adb20db14fc32d5a64e4,61358b1eaad0f8b5e605d58983b43c1864a38da0,b5a4f8837cb7abec3818eaaaa304ae2a4c2a17d0
3f62c5f5ef62b791b22aadf5059041619e88a5a2,3f40e00392b6701dffd95c5aa1cd38a9a4cf9297,329710f5730f6aa9baabab10992a50435b29a390
f150fc6b7cdf797f9cbbd436ab40ba388f4328bf,fed17122f85f08ee9bd0ce89ce3fdd2860e35eac,2b59000d563d6177edf02ad3d6bdc73afbbeafba
ada6d8ce5e1dcc4c5a86f63348fbe1c50be3c8a7,6143b8b54d03b8af9704d64fb25223629f0baa6a,7f0d582a4a46297bf021722e993cd40fdd121997
531c93a04e58755dff30399d08c243602e404080,042aae24554402b152750137c37ddd0ba079418b,b88107fa1d7eca0004f0cdeb149f2cb15b711f13
7f4b94e4087a46b3c89dfb8731ddc6a0ba2c015b,e01de8098137ca8a8fe9f5d0a95d742d6e8e7eb2,55c1ecedac40f079be9fbf04cdbd1dbcecc7660d
2aa0e508731a84586222db50b8937831ff8eca44,670e77864372d4e45300e6cadbb3d860064b7e1a,951f02d188c6233ff7e08ceb54590e27f07cf1f1
60345366f254fe85417c2de4e9d0ccf8f2c85d1c,f5e89ded35caa36d5dbf0aa664c0d26de59a8983,7757306c7885c915de6620ac62ff83cc7db96f1f
a46733218725a7650c3422aaf18c2fde35551330,258331e91421c438e80c926e79833b1f4845ffe8,287c298f378202ba9e5fa38f30f9d12bf8834366
04554d7505569d1dc67bc66f64ed61251ca1c51c,f72a795cc7f2f77d88e0c41056cb7cd4cc996036,e7f7927ca9d6db490e75d66abb30d8b71a358e90
a084c8829f6375f4ce90b68d7502b8b4a1ec6145,29d681168a7997875dd5ba06f0aaa7198abc5631,69c95115f6a9410d7067e624db594f5c5b03e5fe
a5d36e1bc6578d7d0ee6bab5f5defeb71a21c499,491462fd023245fabbd711538a8fa57de3306bab,db1ef439b5dee9f0fee101db4ea4a7119fbb1e3b
23fc0fe66a9d780615f6cbf78f0fa955070ff426,573d69c8fe2c62d414757b026140f1afd8bea956,a506fe95602b940cb4a5baa3e448d486fb7bddf1
589b2b956fbd6a738073b760f6e7298ba08c9736,6dbe1368ef95661336b3d81157dc67710f7e0795,07a8af33b16ce3e69e7d05630bc6b7071136cee7
86e04ddd5c5dc2024425c268e2132ebfb28798d3,50c221670f87d0ee44a000b2bfe47979787f0dba,04bd105cf5d2446cf6953e424af99437327d2abc
60c73dd14be996d98af574de4ae98f99e56cdca7,695a260ff80e53ba01376beb6ec8f0d7076851a2,cfb28c765471db145c14fd64749770266205c2b2
f8c2d4a6320417c267863bfcb026ca0b3d687702,6654faea084f0c50bba9a059f5593769a2be647f,20e2a0eface9ee9e46ca52b173ad1c522402e55c
365e320119208fc45b355b96d743af7318c16b47,7f769f024b1772c5b7796b88bf21394a39cac89a,9e0337f2483a3b83187e09c55f1de6f66f8a690d
e08c7b3642a18d76bfbb16b94224fb17390fe3af,5e90aa27d5435a07a44f5fbed44b2a5009a5a0ff,d5b8e49da276f3fde5443de72e5c338fe6283bb5
552107f577ddee5ac76eb2e8ee6e17cb94b49bb3,a063a538638d32c10ee10e4f5210df43e3f719bc,4c021c100a496f2ca5e2c1d8bc8a376c7bd94516
a79d12ae415573a66f6e8f3aa83081f0877d2d2c,34112c932c36c7162f866b4460cbc3700bddc92f,2f4390ac9bb56128deeaa9d0c1a590388db9eb94
9b1eebd333fe8737fce6ac9b31b2c186e4c0849e,19c1ecda547a4d1c97887a8479ada467bdd7ae8a,c0ffa18ee246fa8079c83e3461aa02a774c21dac
cfe2d94b251692eadb8b6e188be60e5c7aa49efa,89d9679b53d03e369e22b7cf92c9d5ec1dd2cf98,871f60ef61e733b32cbd5b4c4baa9be196f33443
43e6d84f33a40cd994ea08cf3d02ce617da9d892,0794878b41a2bf44dcefb86d202a0b23ca13af64,950c1d1693007106f9c8449640ce5b91da4019b6
aa6209ab513c9c7b00c73a1d84fb3d5cd87cd5df,e3870079b223386c5f71c993b69843a64f5fa44f,a61e18091a2275940cb7020abe3a0faee9ca03dc
4d710518598a90b8debb01d145cb3af298d41377,de805fddcd15b4eaf9d92764d043d5527c30311b,b6097a0300fbdb8a1d2a18429f3aea0e384b9782
3d2945726a482fb6c824e4feb8005782b40b7b75,8d1660893be11aa243991c52d4dcea7bf4d63a24,66a72cfb726bdc5370de99c0f6524469f1af218c
244f1dd83c703b6ed07377cfa50b88d1fb23cfab,763e0a14fe4b1077e2dc03cb764bc1bed43e72a6,8e23dc99a110b33a6e24ee75e2cd71c4564d6f1e
92e86e7673c326fa09cc93c9ecc0abc2b05068be,bba56d627fd799e9d2daefdef6c6f3ad64abe7d0,23fa725b0127903999c65e5068ff98e745f8354e
27e9dde81a0738042331616aec0d3dc4f50edc43,5d2be4da1cabec726ea95c0e7e5fb465a7f9a9c1,90ee079cd15ffbffc9309fd542686680e4606f95
256597be580a279590586176daee4e9335b3140d,ab878adfff2f9622574cc7f21fa6c29ad6f953b8,724676db4315a9a3a5f26bb6e4c05f9c49f80ebf
f1f819516ed91324c3b9680dc7c2cd9f10e3a423,569c40611687015c57eae7bb15d1b814c6cb70ca,732f1d9df6b379ad8548d0b7348abf40b672aa7c
03acadaf1ee9e47ae80d8287cdb9d5ea133089a7,0d11b5bf29f896a93e3f3af271b92628f2efb00f,1b5ee0d063119990b66b0952d80ccba4f39c1fe7
df275152c24173a66895698413d767f52602152c,f2b924573a2f26c134f2da49277afb8772fc0b37,5193e8332cd0c3daf4f661a7cde271b13483e2af
3ab5acccb175706526b82a53805d2cdb77366d0c,a4695a7015b1a3b218cd15660e276230e5f9e776,7dc6049de9a13b7d406accf3fb16c649adf2e6a5
4fed57adc13e75bc70c1495273cf9caa295c0d07,58d6d64fbadceaa81b96543fa2aaa02d88b971be,3e14eddaf6137e2604fe3234da7b4721f9c3bd6b
43686720c3225b2390c413452dece43a9b4f9d39,381be050a50fa99a05b168145c1b66e66a0c7d74,6422e9a803ed33cc9208a0a375f5671b69f5a524
be26429159dbcab219f1cab5ff4494ca89aa92bd,0a0935990636b0600c4cd5a606eb145002614414,b164f5aa65ade5e2cb8b2a3861bd73cc8fcd3baf
c81f433795128811d65ee618a1e2b5a17fd8965b,6764056eff5104edaf5eef1cd8dbdec087ad67ec,11a7b8592f043c9d4f5bf98379afb1aa9bc7ec49
0d402a13419f68233a97b28919abb3dea383333f,997184778a01718472c29a67e70ceadb32194e47,0caba1e84df0a72ac4c3fcf71dc688854360d2d0
bface9fd9470d0a8fc68ce8b3d8c98540a7d7038,4aba225c8bf7e64fee347d77557731fce563618f,616cb382922c96086cdf5f9298f690af5d003429
75ce122d36626cfb3423bbc2a1273bdfba1765f8,c1d124d497149d4ffa1998e9c84d9eeffc04b04a,40504a6f9de8930c6e308427631af0ab225dcbdb
56b79257a12806069a13c2b655becbfb2d4c1022,5aaf863d560f9d6dc88fc511a27bbab06ed96a23,52572e10e92018a165096c9a530b4cb7d4cee936
4f4d8191f00d34702cdc0f9b10ec90bc257fb75c,92043c6e209ba987b8326b8abd2ae9b0a5f81b52,f8e7d0bc097fdae022c6e4e2fc22ee61cbf63ecd
fc5c35362bf995ea3d9c4c5ed087da508f7fc90e,4d428d945ec6e13053cd96536bb3baad6149c66b,d5874b00881a7323897b6d80e9cea2dbfddcf0b6
bc9b8af04b6dbecc12d22b592a4e4790e21ee3ff,6753f869878e39ec6d0a4bfce351861c5f69a462,04a42bef84f38626ea7fbfb102ac949d1b819e6a
bd19575f92a952a6189349c9fef5e17194ad0cde,bdabf674e1c9cae5387bc3abe884fb1b17545c98,a316229ef67f1c58f6b33996637e888f11cf72cf
254d0c0e2c7384bb225f8376cb1fce78d4047cd7,7cda3d9e57c4cab68647b2de91179c13472fadcf,ebcae70d72fc7a381f3cebd8760e3634eadda5cc
e5e386f94ab4f87880c4358e40dbc31a22e50ea2,2a2ec77b10bf6f25093123f55616c5791bfe9eb1,0fbd418cb739d5cb4dfc4c21ce6e67e7d17dc961
b581751ef339554b63e2556db2643e421829a1be,9ce97e6ba58f78ee3132c6a9b4e252506560f055,06a728df246871ebdf1dad443f12df695617f425
5947adcd7bdd21d7acee39eafc39266ef4776e93,4263ff44c1fd7fb1c061a79b6c1d67e24e48120d,531cc0ab0d1b22803a1e5b55a4ba7782f853c375
1f8a9c708efd1f18f40aefe98e2cf3f3393cf07d,b98cc1ebfff7b107ae3429844e19a78e1c68bdd1,4abc498f2f37d6b789eb3229779f6e716119a479
05091cf0dda02c86b90f46a20d1aff82309fa1ca,bb4d7a7a50d593ec2a1676f105c43b0411e90063,fe120269595d5fd1a50660fda2f374f2de341117
c6c834949fd50d42e5b724ba4a5981ea13f9c5c3,4beb4bf8b20a899174a472a7c5a5c52c54f01bc5,7dbab3a78f0cefad954346be023db3f0460e407a
7a60e044e3bec9814d891d1761bea3445eca284f,a2174753c1a89a039af948b9b7a72142b3fb6324,1df56495b7bc2d97b6506537f34e45f46e19456c
4559620efaefd84906cb6dff08ae912c662eaf13,37b607143a8ed79e9cc4e497535970d539cb2933,b239365479351d525b6cf372e7defea70d486f7f
f0edd62b88df48c4a4d97f5038bc6e35433f542d,2c8db3bb9ebf1e76b6a30cf16f3e9ed188018d69,d9eddc50fd7d1d3b9becfc1f4706113bb49bcffd
c38efe6d18f2b49a3e6dd58b8a45019543034462,5502d6cc58baeedaa471cbf75ec57509dd3a3c51,63af4e173dc10c05c6ace5158732eb1f6bb053dd
b54d9cfecbf88fade10380b310742c78d002dcad,13028db5a4418508c42143c2574275f9d2b0f158,fcf2cd2bea510174b60d78d534d331aa2477b5f9
97efb03ae67b7035d31b89984f04ba301198b7da,af0ba7be83258ee9f9b21f45fd645abf093953ed,edcc14a5ce33716e0e51d37dd4e281c0465ac369
9b54588d75372d25f022459da9bfe131e7a23795,2808873d1bc4e9cfea75304d1e99f39691298657,afc568cf93fdfaa09f75eb0ab65d3cbaa2f628f0
30e61067a0ee062c25830ca4aa5415972a0dc5c2,9d1c81438706b4f59bc37d7f7905e59617dd48ac,15baa272fecd73081cb57d776969aedfcf7ba1e3
4f707c3d7eb52dc9199a7f369436ba964dbb67d8,2507c1ace69387df7feb0d805cb33ec6611089d7,cc47a49c81781928ec5a59e127d0040dcce8a855
88b6bbe6cc9815f45f954e955a2c0d1d69e82c62,56632b720c4b0dfe65586504aad09855984e8cdf,627fcb4354a9027f4008b793050a60e66e482958
4caa471a241bc1bb67d6374bd831e1f58687dc41,5be84e807933f3bb545db3502e9787d5e0b271a2,e76f9e5b36e164ef69a4ba68cb10c21520aba710
58af742f3a57c156531c3e46332dd558194c77ef,6cc818cbe3e70ce85c23f3f6bba6bc22f79909a4,8f0a3cfce77aee2a6a85f76c1eeb5615d45cd7f9
809fb8333433fb37349425d52b026fa43a99d61c,aa243faab836d9287b124de54ef2fe125d556198,0bce44e342eeda9f92a915132e88de456b867637
3d81c8e51d16f919680b66b71d3fa68a7d66b177,78381bd1ae37be8526eae9e6979c55c687f71d67,82a3877126afb9658096f981be0ebe1ac2d18a59
93eb40b05c4157a929a6cf9c4946c0bda6812833,afb68dbcf35ecfb9a3b5671ae481981423b4e0e5,88c98a57419e0aff7c3ba8b7478cdb119c5e7ccd
84a1f614d96a2104f99e3be8b707846462ad0c62,36323fe424c1b3e543c4706dacd3754a806e7814,e8af7427bb0ead629eea25ac86556605b1dea252
850964f321a46cad5912ceba6a7d682deb144279,362d2b50df8d28dd4f769b6c90a18e23d5edf12d,c5d04d1a541555b29b176bc2cb7e96bed089d8af
f71b6f341b7ffdc3e6e58cb60f2f8884fd92fd25,195e7e09180e7187ffc1bf5a83625162651ff051,b4de0b2e9c8ddd9dca7af3f7f24bbdd825dfd7e8
0a62e6040b062e7176b404926328281c3355e42a,c49213c561171e398d76eb7957f8e965cbf2295e,d88da03e7da8bb0ee227a558db7f18a6cfa83942
3f95fa50efa96180d5c9648b354d280090ba4cea,651f5cb8a1e914c77dfbd99336b2b6d38da558e7,2353b1adee799a3821832dff63cfda1f4cd30b2e
0acae47310dc0a6fa2ffaffe21b2544ba869e100,c5d7e6807cce2042f90ce429335ddf0bb0223144,11cc085870fb6f58eac5195496f64d9d2d7f5ec3
3c8ac8d35697b44a8caf069a925da30ed5aea2b0,4a296c9f5dc776d68c1e52443758efc52c5f21f1,8ffd7565466fbda97e7551cea9036314fefcba78
42e4d66c5e4891900162f826f868e0a177a82ab1,b2714052d1a10ab417ae2eb783b671403c43922f,6104cd321c72d825b6e28c708bc513f8375af515
3685b50e752eea9b4b5c234ced112624b15a9b58,7eb782446e41d1c60614af575f74b560320bb325,996eaf16b36c0517a1985b88adceffc75d86efc5
8873a199ec1c07867420b46d0637633801194e93,31b7fd8965f0e707d2411c82dd03a11d96a16493,c8337937b374901d58d7aa4b9bd5af7674084a19
19a66947bc974b4dd1f42314874c26348717f1c1,792cf056eb5a2c82f83b9b81588a46a6e6337c02,0e54ea6babe4b1966ded98127de92435e6cf76f4
3e2cf16d1ffa53d02e375cd9bee14d039100f6fa,d0beacc35fdf89306b82234e03d99021a5986741,6d3bfccbe3f2fd59bd3ae9247b992c43522ba8a7
a91b42bd8d65dc68ff22ce64af52a5b9358eb3d5,ad66f17a876853bed249a1fd0727740b352af9b3,788797d0786e45a34d2715d280fc91ac9a358bbb
6d3b74f96e86e18a02101971f6d04d77eada3911,996ab2feba4407d20b087817aae89dbb13a659b5,b29257fd05f4ef1516360700a89954e2f1b48506
4a5a2f5ba2467ffed2bc718cfacd963271af636d,9c54d753f56bab86b9b451c8f4415cd041357a36,da2bd5f78908e630cce860ca25fe7da8454ce6fa
a5ab1c03ea466e93f6fb92f4c8da5dec7ed24b1a,4b5c8982ff496d89a179061ac28cbd1413776ebd,3023a9f0e2c82664c26c89c15dd2ca71f7d0c2ae
12dce172f95e77e67672ea56f25488e3bb42b288,84cd9e129b2cb9a674dd105856a6fd6441ec585a,d1377777be89c2515e6769e8f551257bd6d98d53
1263880ef02c11403bb728c7a61bb557faf0138c,f5489b567809e6690dd4603154ae0b0b50c0fbec,b776d48367cfbef2debb5c62e383192be8d05ba1
b2d6c36e70cf8e5b1f7fd558a70ff67ae41011e5,2b7d9c5a1fe1802c3ecd429e6b9f6821865de9a9,bf96709e398bba07fec3462e83d60dfdb1dbbef7
921e73ab0ca3d1af0b69d86d165ebf67884c422a,e2d8f7b68fc4ee2c687c2e16497660aeda0f6418,b3ddd4e7863b16b0ce22c239f298f418afa20cac
85149ab9a4c96bfe1b9f1defe7fee3b4b6a2c1da,3d4ad5b69487e66a162ce2844350f0e57c05470b,2c053b4f9c15d0cb14be6bf39c5c5aa1143c2a7e
5f67d830e74a409b9b17d52c7005cb15472342ef,c793f4227167b5f2bdb8e27396ae58ff2bad2f70,d1cb341cfacd61705fe3a2b9e098243faeac85a2
9710b2cbb406c6fe6bfb66b88fe72906038056d7,c90f78488c5c590a17d05c3880dba5077263c207,09bd361b484806a5d45865a963d3579b1133e787
dfa736bdcaaa5e466bdf59563601ae2cfae6345c,47ba80a54525b5ef8662f28282e4ccd73fc7d698,a0e2cd36382e3ad061e54cf9a32804b729e527ba
5816a4a9403df29aa77a5ed54e02d4dcde5651d9,aafc22bd74cf83c82037e51a1699abb3517cd9f6,5f118da6001068537b38bfcdab33319d1a0243a4
b2ed667a86f9a978c6d2eb6dae48e3f1932a86f8,4ec76072b4e4a02cb94cbe38363c12014181d9a9,c45c543faaef72817b1e1d9ddc7e774f599b9835
febeef03e4830cc4ecfcda0a5236e6f6b86d483b,33094d263fdfc7c0aba42e6bb9c48d349831207a,b3817f6d9275f887b48fb10db3400ec2c3a686fc
c6c996f506797b54228c248a3784265582a4975d,62c417c8bfd8a82909eea05dc63c52661b545e67,8738b4b47f3868d3c795f94743aebe743a1ea49d
2e36783d0e4fd89fecdf84623a1dddf32e491109,a2303bd89994f2997949a6f5e4a6043604cbaa98,11fd466394d945f20de98d013acb95b8603437c2
cc23515927ef60eb3675a5626802cefbce0d7d2b,c15b6f4516adb7c8e524adc70d7adfd1c1682bc6,7bffafdf8b0adf60492709c939e24c73a0de0139
4e1e35aef550f6a05f9307b0d39346f39e3eceee,78698beaadba891b06eb4e32534e95b6fcd08c91,27943baa2f65cb749ff9d0be8c37b4298abc1c60
a423bf64027c49e48d69cb365831a7ec15bd628b,cc7b6d0b05fd4871c2ba9909d6aac59a74837800,a7c0fa0deffdb9341c31c45bd3f1918faa42bab5
221d8d84aeeea1c61d689aadc1a13017b9cb5af2,e63c03125a8b066638cec8593d96eb8eb38ed3d9,e41912b07644864a3a685ac339de2085d252706e
cb11e2568d5afb2616e29fda4fe6cb2634c1ab40,f94518a9aefd1cd9511a9816cc842e838c7d4266,cba109c55d10bf8f95b8cdd88782f109c6e1e7ba
caee96399eec1c792b1168b222b809d2b424fb57,d401639b24ba6635c3dd05718459557c216b7b27,d62d6af7ec5a5103b53b0430ea07952e36700e8b
225b06e84a29cab4fa183ec914291ecfb74ddd4d,4bacec0ee36e3f999ed33047be4136fc65aacdf2,eaa2a2006c6c6ad4502c71dfe3f7746b2237589e
c29a0d029b5c22e27b14b4a5f59c9c389d7854bb,d41f4c7c4e806156ffbec259a83016fdd598e58e,ff295bf3498bb353abaf168a8834a80c33e8268f
8f91920c9bec7eeea70b2557a3b417aa8d90b58a,b7ef93030aa9484a8f1e34196ee1e314bc069817,965964d07c0ba60f9e13c5ce1ec577be698d65c2
72f6752b1cb6920c6483abe4705252f2eb51275e,b72419e2a517b6f89fcfa7dcc9506533b30745c7,e73dd883cd4f1efe93cebef228c9b2119b1edf4b
9142ad8950d2e2db6b115cd43b7a9471f1ef227b,58dcbab10e05674baaf11635fffaa8fa5b4c45a3,5ad02a3799684c950e71879877469b1f1021de1a
3caacc529a4b00dacfcf3b75a0ec32305ca79ff1,ec3fe2f99029fcedf165d41049d038a75f8382f8,3655c469825be8d1b8bd81810001049aa0e28771
d9d231c87534ecf76b51ee362f8ceb1509a62e19,792eafadef3b817d59d64706b32906f5b33d2ec8,91149df87f25d472ee905860129da887fde63f5d
cb41b22fdc575e248db3ef960ad4efd449fda102,96ac7f29f7ccf21a55fe34dd90b511076b6f706e,a62534d11f455e37605a3796f131c4c036b60cf3
39f3a72c625daaf370453334f069b170bb7e3d5d,87bf6a4b5680796d37efd0d6779cbd4ffdfbfdb6,350d2d92f991538432c0b980efff1c04a2c02a2e
fb23834367314528567e4bae71f0299a6ae31c1e,166ccc49a108d29c967d0d8e91e5f4e435507b86,ac5407268cf8b160aaa714668dba7e2986c695b2
cca536a86a82719d2ffabe7ed1e54c16c92162e6,02fd6f6e54e5e947b20a87591708439e92f1c587,13afd5c6c75487336b6ecef0a62cf0220f5e015b
0e9fc31dd7c0a55227f1b360acf1b851d5d9ef3d,dfdfbf896da044c1e175bb194ae79b189032cfe1,bb6d4929d88b68fae8f0eab3c43291aa34badeaf
db250b04e05e775542e030bbf3c1fffdd616671c,3e9e0a0f7db475f96238ed76722ff083d470ec0a,59331c3d3cb4cbe05ecd209ca2c221e598f842da
043c3df292fbea7a70d7c86d70811dbbf00b1bc3,d6d92e366675c7d73713b66966af423cd46fdc87,09125e834f81eda0f3cd6aa45d51e1bfb4401ba5
0c6998bb110a06cc739c3f0657e403aaaf0dc0ab,14bc6674a6cd8a7974266635487bf09f384d02bf,667a0103573e43d1b650ef56a08a2108f498e434
57b8f28574087bde2fdca66d5f26e8eecbb2f433,2c3792a1aea113b378a88e4acaa54fafb3308e66,5da913de0ee29c1d4f70569ddb248e996e761e27
6478a727d78ec4d0fda9522f279b1cf3c7184c46,d7122c6338b637f0a4ec5e780764104350a39dff,80facfa0bf6b866c9ca14d2222f3631f8f7caa54
15f411a3328e2f191fdba93b851ed2cc0fe008e1,a258774ba958dc8332d0d0064bf8fd4eedbd9f47,c455e942e5dd3bccd111e086d798d69b9ed4de10
b1b9d1f341feb04d4dc668981e469a0fc864cc62,34a5dfc8856ca177e6cd8848b41ef2200741f508,28395337766e49f89b58e690ec80b3a140201bdd
a5bad32b7c1bfd2b0578d7cb2eaffa71bf4d34ab,f6e6b807d5db9adaebd4f17f83b331bed1e09399,72dc2145e9692cae4667563847612df46e37d73b
e6b89c98f526394b5b7fbc197a551ab3e8229c2d,a1720647670f3e009f0543c741c3dbf46f7e778c,55c4986c8d14bc058781031f016bacda3a8a4c41
cc936710a0818e446e8154999a200a5d41f5e450,0b5c50ea413dce745a264bf418f9bc15073bc2e9,2b86651914f674eeeb61d4c9a739a4b0f45a1003
2d8873d0854df357c28def22214ba55d5f0ad2d9,941020af1a9cc9f5136668d1fd03be5aa378c7ea,42f2e5f8ad0ca44b0d13b98b98c167354645d19f
b62045809d9e996591c2bb9f2fa80e34108f557a,6f661e44d0af94fddc382f5c563e44a53b2bdcee,f542ee7b92e90fca148df15f35c50d3040d3fd03
4964f5cf76586871ef5350d2c4d62de6a9156599,848ec1d2197dfbd696b5c69a8fcb39011ec5ec56,346adf7f556fda4abeb469c173efe806cdb4b7a6
0daba072460a9e6d5240b61fb28da62c7483066a,601e05f17f1e82cd60a2b4f863f68b5f44551459,ff820247c3b3ae7ba88bf244127b6a36abb33423
e70c8985039c67cc4dba5371dc515db77b3b942d,ddea92992347f28a2f9a0043b7743889d3e3e452,0000682043decf5ac145fb13535c1de0ed570bbf
3047ce71bc0506c71e21db1725009fbb983ae3cd,06a5ec5b5c771a120f864753daeacae98f6bb0a7,c17ad509e2c3589a781f96da8128eb3f23188806
fdb1cd38abbeba81032f75edb3df6b05510774e3,719220e8a4f5b2b30bf8b7261581bf84c72555e7,1d3ed354debe8b6a937517192cce2abeb1dbc347
86d55055df60fa6c773832076cbdbd29d0e2ec78,28f25b2df0b1422fbcd6ac195a83cfbda40e4d9e,e14a3f17e6d8d6ced42026b3c49e1f6d179e983d
315819692a6a92cd1c22f7a2031a0c0f139acc63,d9db6809373f3e8ac0a0a0d0123988982dbd661d,fcf085b141dbd7ffb23f79e3bc37f52bc7b7a1ae
985220d94c6092336c956ed5dea464eb80c6c0ce,af1e6fde5c8e7e77a96f43366b0ab6a69b1d0609,bb25c604cf7281bfbf85edae9f90ecf78aaf99cd
f20c76d73baf4c534c487b2196b9291de88a3d1d,d7ba09f5432fed805603c776afb6770daf65bb53,e2bf83b5734772ada599ce9176ec4072bc60f18a
995d2d280a79c02d3889fff62aadedc74874ec4d,f798141d30d284a7471c1c4c5f8f2edb89dfad34,867786c9539272bbd6be20a4614bbd5fbd0a0a94
87615458481ea121410a7951a387694af6a65a7b,2de0be96334891fdf07966fec883e1b9c612fcdf,fb0a0cb65c41e07549813b86cc6b9afb3d1c7430
a668814613173d9a682271b4c5a85a5137c83ce3,ff34fb16455ed861cd81137997c187b4906e7011,b88d12c7b9e35798bac97672a92ed9bda401696e
f3541984ee18971ee2bdc8d8580653828d85fdba,4faea3a1869969c91c3a17f891f88a24fa1219f3,352489c397080a5acab70ec57836256de380dfb0
fab0cf953719bd6a772552ee374c77968cffe928,dc4637862ff15560c16e5438618e8daf125b627a,17d583a419b65457783dc7b816297b69309157f0
7b65f85a0b9c398dea2dd5bac7cd1b6140480950,aefc1be555590a7dd6aef6a9b625f7ace096651b,ac6f74a6a24bfb0cd007bf8745728dbd506c5a04
887de9f27c255dfcba30973cd24b1c98431d6b05,631ec771578492fefe448d4f861283f04f1a5521,9d3b105fab0d6d66192678520c14c20d9d638357
f7d14128b53ad2147e50042d1d148e4ae9de62b3,1ba8255af07aa5e3c5a75d487c47b7e97d4a2016,ad7c3d9a098dd5d354390c3497e95681b2ee0f73
cc14f066771b4f7814b8295a2f85e037fc14f6bf,18b8b9c566f597015de7e0c3a03ac98cedc2a6fb,154ada9e86cd4b6b42857d97437caedbd4d0104e
721e89fafde6662c200a5efc3d67bc5480e4386e,f26735fc778f7f1a9ce234c93f1fad5002fa04f2,a88288bab3803476bfa3e54c432f8cc3ed264b0f
b4139720e60b86e64780e535c74176676ee2b67f,f72f021da42839f838f8161a5d186becd1f21368,324deca817a97a8513ffe60bda659485b739a734
f9ddc3ac66d587eb8547bc09d33e855db16b033e,86360152650fffd6720af949cd52579a735badd2,6878ffbf041008c0300f263ec901ae645ec0414d
222f981dd17189cc46d30d248c13d9e50e128797,15d1d00c34f1cd0b913afb83bbd88486a6ca8053,075057f929f9a197b4c3abca520edcd61315ed6a
2186846ab1d273fdab3ad47a053db8bf3cfb717e,e4b717c81766d4ee4b614e4627887045a781d771,764227193a358e8e5ab83e5a141631a8abfde89a
c75953c12bf0ce476422c8b9ab4964de607bf97b,17e75004c5fac061abeecb38bd55f136292faba3,9e11f8122f49356bf6f3429c67052d95ddc0fef0
580e9e516970c6788ec04994e130f3192d5f8faf,004ac4d1f4e0d67c811fdc51d3070c0203b0c774,b267f6fcb3f3e7d7f2e99b10dce495d510863b27
4873ec73a796b55e7002e8b5971189dd9ce570da,97eb32e6fd2216cb5e284329b4eb9758720b8a16,120825d1d6976806b5e7ab02e77ef1455598b03c
5d0e1dbe5a148350b5aa041c511a5115a04a5ae0,ac36a214bff45a88a2018584105934233a524b60,b1ee6f7fdc9bcaa9e249d6e7403e3ee2b5bdc113
1002a7c5901cdb185711fc197b4b0c6cee1de91d,75e5afd45b8ad8fae83c2931a7d04e66de893f7f,c69090446ae513ade58e3c803a3f1d6092b8e6aa
e28fca97299911fbf77142d001c0b905f4337711,0a34a090e0f6676bae0ed2afb9570969b37a461b,de3a479be3a56a2bcb4f43c778d735b4b95e4d99
7157bac9fddade13cb9325499b12202009d0f7d5,0881e4fd9827791a508b5ad985e6f8def25f496a,85d19af48c004817142f0542782741e0d4a46c3a
5801a7431c7f923681ab48ad4f29332ba2fd4d9e,1f073818bad405b90da52ca942da5f70db6a1ec4,92d5e613b5bc2a33c97153c0a736848b10eb6a37
5ec489c018f207fa13ef58ef1f86a07bfd93fae7,c2c7ac634a3e201575638f6e4452ccc0b1afb28a,31cb670b2013c0128101c3b4556891b48b897386
6f222e276ed1cba81b3a1cfd328b859eb00d2556,15fe9f104786ec06addb735eaa3e4aba863ebcf2,eaa7d95a9d1994bff8d476b57ae61e93cb663760
26e2759c272b992021388c1cf0685194f6d45aa3,6e777d89671eb2d303c33a31645b9529e6848d38,04846345b2c8b7d805869582e9f3b6f96fa124ca
8cc58423174fd272b2890011b5315b2d30f294db,4dcdaa259a4396078bc00bbe98b7fe2853a4b415,a45f71d0dcf5b8c9605c20f63fa2bbe62ad6c0ce
6a3971c9b631c0e8a0f214d27125278dbd6aa6bd,eee67af68444314bc1668862a77548d1c8882628,5ec101d578ec46059cf5a619e3b30ad85d0be7eb
00db7646c8b9dee96948af82c76d2aba55a13089,04baeb2bcf31735ca563e3806e7c6d4c3fecf4c3,e5a923eb7abe7a6dc063a1c297381d573418be66
d1d3d7cd089fdf840bae5269fa4655f6c8054884,ea2ae3b8f0a677dbda1288f158eab2e57379b0f4,27fbf8c91e97f06d972c43315f2fa9c2fb6d2b88
453bfcd37094c40c7baafdfe477eaa137a3eaa43,3208929e176a2e6664f803ccb6db0fa03b22c246,03a0e6e82f4c6616fe6215e8a241b9aba7b00c23
46c354ae583e0e983ffa0bca2d46402108c6cc9e,d4c9e1f26047eaf2b6a6f339db190d82a93f9975,6e25a014e636af31e6985d017fa63455312b9a98
f30f62231f1231664b155cbff22f37ad60ad78b5,f4ded560cca46d7230e612511bf63349ba4ab3a1,250c0750a2ab541cb22a57490ef1c2dab64238f8
47d6699a2ee7a439b7bf02c4b53ed1f3638b2d99,fd0515344cd7b29f9b3cded698d44cbea3e30ebc,292574f3fc2bd068c68d7fba9425954ca3fa6eb0
3eb7a130885beda849b90b73e4cb54cc3c92c711,2c00016fdde15638a0737f51c75582409eea4e12,867ed59459168b90f10f42cb7d9b2450347fe61c
b36597c76ae267ba6b245209b1bd3e14e6eaff5e,6879a16cc33d649b0084668fb59e9775f2f9d966,4407670d15bd4110dc758305a4d74923a3710f89
d5ce344b67a811e9360b47ee0f02cbeeebd44953,1e38369d06eea6c5e8c7fbda743b6af27d147a62,b2177fb50e628d3a1fccde2245428b431940ca4b
965f759c0df8ec5383a0f0f6fad9b5203d86d99a,cc315e0ac7d0022197a7b49f4473ab219c3aa6b7,23956e9f10e8bad74b4521ae2db58b2d75b9d6d6
acef1e22d36eb351e2d9e7bf7b3c8929a894d118,c2dc342c556e5fd9a6db27b7de8f12e193b0fbb0,71fcb74e956c0022724c7428c171146994bdf2ef
451bb09e8f570a00db9949f7b6e3ed81652a2ec8,1edf99c324592b9d220984f35b754ccb8b52eff9,8ef63723407a4467752d2c482d92cae4ec67100f
aea85fcd66002e9c80162781f6d9b3458f4c5a75,243300c85fb465f5cc250bc3574667ba75dd8b5f,9337b2a3acf2ffdc6a43077a4902e71e7f4f616f
60c23daa91f9ed7154c8566e86113aee573e53f7,93eef547ae2ef3996a290ad16ce73d783f339977,e159c9296703c2ae67c48efbab431db049467474
d34168742e56e3b6e9f38ac2961eec23333f0317,c8f592d26055bf2ad05afb611fc5bef0522a732e,27b4f3df60156766fee4f681dac5f3d784de856f
ddf26cb3d2aa757a578531e5f59ba2bef189fdbf,8e74a04dc5fb758057bf1cc3d856d7596123e698,c06744b62b251146be8ecab4bfb42cc5fcbbc169
b5abefe03ed357ffdc0e7c69f76827899c9fb87f,d1521e80616f2f52b6c8fa6a1db55f872e3e763c,f8b17c410b1e347f39de7d988b5f95336b73a1a4
2f21f5ae93a99d573bbfca779593100b70db1f5a,d7fe9914a79453141c419fdfa3e9bac379868fcc,7f8f733963df9d4afa363f206ee71aa50f619cf7
2c54477807cf33e8ac18cecb469969a65bdf6797,60bd9c5ba094da176c97adbe10f61d4ec878ec2e,de180d765636fe651f86a239e98b0ebb5538041f
d3e18ccb5eef80f35ccaab8f8551cdbc7acd9f7d,2ff18e48a0dbc1fa9ba54c0ce9f0bf670ddc7d80,bf1eae7bd67e6fb7d3c29733068083f66f4a8762
2c372071fd140265dafc10645cabda2080c57e2e,e83d214e984bd5e8eb4f3d64fe7c78a3dc0f38a8,9f42931eeb56a4073864ecb6a1d0d45d11cfb53f
aa75d39ab5e07a783f97247d544f774a67151579,0bdc1fdea4812db1a728171fe9148a5fe95d2209,08b61997ca9e025df4355079a3b58a1db189d736
b55c74070211d90ee90c925b1f6576b07e9c95bd,9d6e34ffc8e4776b8bdf83c522b7c10c621be7bd,ff4e1345ffa0adb4d28fb269aee7b1dc138528fd
74e83e9d8ba5be9c594849ce8ef3caab36ea0700,4de5195a9ac9a3dd0e90af7f93c717a3c6b10cd1,dfc485c4f44ff22cab66875a50e9a7e4178f8391
a4e520180f0ab00ea3d030a151081c2598c9d39e,df6baa888b23c4b43c8d083b68eeff8eedb1983a,61da70bb72ebfc5b119b836c6b74cb763740a4cf
1fb7603f615884cb678045ae687636fe27a00da1,aa8fdabe1f0ed4157fef8c25c4a4ef688877a843,112f8a41add94fb12a75636a4b45a155725d9b1e
4ced513363c3a2a387b144a2b5639cc331957b02,1c370ccde1767aadb4d89aa9eb48b4ba68a39733,7f53d04ffdc6b44800ac1caf9276116754975ef1
eec51afadd209e60c37699ad2cda4b628a6e3060,bb92fbafa061f028aded7d3e3a22149b87af31a1,7c195d2062b07943d9bf363702d985ab84fc9d2f
aa745e031988c17c151427e3f61034b348baac48,9f8417ba522dddcbf40268f500d7cb3eaec440de,e124b07e868dc1a1441aae5306d5d8cadd1e375d
69fcacc9487aac44b1bc9b5cc9aef2d219122369,64da07da48c3206567b97cbd03872a73206afd54,c20b51a80679c899df57fa933ec3d4d32d939520
fa12dfa7b5fc86551e7bbbbccd64300c780a7e96,4a6358bfc1c2433ca4a17ff95cec2844b51f7e3e,284aca734872cdc6c60e9d5c3b94047907ec81fe
65047cecdb6a57fff0ff84673bd5e70a88be55d0,3463d469bf0d6c8da57c9157e2592d5b1cb59598,e47f44234c68c167b7a6123e56d74a1097ac1869
bb51a2134a6d5b19ca3300a0b7f262feb7b0c834,0685319be877914bf420f3a47d21dfbb4d8a4ff2,963fe73d195362fc615e4a8ee08b0534ebb43851
399552d3509eafa399565e66ab36f3a89fd4665e,36d21d2d81dce53761c035f1fd68b59d9dd04424,549bc49c4ae33ae3075dc5d2a8bb452e92ef4cf3
ab9fa2012b7edc18d637f63cd2cd55c4a78cc0a5,e4f53a7e4100a9671745a7e5ad1f8ac20d49cf5d,f3a660212de69847743829a0cac380bf3450a61f
8e62bf649ee02a9f4486fd2e9340962449a1429e,cf153b0854ebc825c54303fdf943fe42382fb612,c2684c0dc35bee9fb91c408187c1fe344af147ab
ad8b2eaf8a2225dfa1059870c0e601e89ab8e6eb,a8b387a166210f5ca575c65981d4706ea51d7025,f284a6eda9e33a6617b958e476e92b4d09e64fcb
a3920d535629614e9d03ec76d143d7d0a8f34167,99d3651da964ea05c6baf3929c8f9fe70c8c95d8,23af096ef6c0fa3d0f74666c56b8b54c3b843354
56c58b517d9290198f50e8efa58290a5724ebc0b,637976e83fc692df21a49930461d41137145d1c4,f4898588551c5c96111e2a3d8c9dd0d716f33c08
7a1903cc8f084acdd210300c16d39641ff468924,0c2494bec82fe3595b77efa1b55ca38a7c853269,5e6ec33a59602b4fb5ecfc9ce6d1ba9ee5d0e03b
7dff106d14e7f9800853e63b4267dfba8f01a91b,3b0168ae162ff2b7a57aeb9114ad6beb42c8b02b,d0d07dc3bf21ab5cbe90f242202556f942233f95
9376f5a43ab500b5577ad71bc9b5b2fce4afcbc7,080d8c28f7a9725d93943ed6e4014ea729627046,3f19bd693ff42aacf053098d507cab586a642195
099134b54554c0c4ed5b871f23952dd40647393d,8bbc7d5df3d76fa56b90b07ea762ccea1b10a686,91a622328105fddad75b9a1794450c9ccda65d49
044133fc87e120b53f7091d4dcba965028b2ad58,6fc930a0fc30a339624476fe1f0f79a261632387,74d145bb16994e08bb5255a15f4d0d547b81c0ec
dc547b1426bcf6f2a15ae2eb384a20c41f9365f5,072934081799accd4acfc667b7046e13a0a54734,6d0ce1c4b60c142db8d968ea82200784c512de3c
703941dde56a38672779439d3aa3cfe93a6c3426,8fa62752d4e8a21b569cdde4644f4d1b006e6d1e,ff6a58ff89a0334a64329a29db000a0dbf91d9df
17c0291e86d90a27181304b8adb1d51d79c5b618,bf5b85e5e539afd6c964afe225614d0c90d84ac4,dfaee4f04b1c2ec66e01978b3d2377685f366354
3baddff71e3e04ee92cb792b904c9b9f5a4e4043,13f1fb60b4cc7ee884a00de755d983ae0790bb6e,b8e6610617d5067d8010610b50878c64771296a4
075966f142ca9ccc05cb5db2291a565832c141ba,5b06af888693055fb9d52146b70c356d28d06389,ff31d95a694c2c9bfd4f788ccc280c1d6593e527
7966b29b2f3a2e98dec9a097a3da18be690584b2,f674ed0324fa2af19d0c3a896ec06e33a1db024a,3d049a33096ee1906af356dad7f8830c95d895d2
8369f035bf5bae7a9d6af7902e514722f89a55bd,55d4ffa9de2999f1f8f36b7ead07d53ce281b4d4,dbb0b24de8b842780b547985e52c434d5b8a2d71
9d425ff4ca3d855ba303b815a93bfff98fe153a8,92beecb6fe00ff0af31bb52bdafefe6cc6c2b255,12843498d1747a87b7e0c0bd8d07e5e861b92140
1c61c30cd23c625aabb759d0080ecf6965a3fe22,38a059f0398a3f0594300f1a39a222c45c3821bd,312f1436b1fbf5445bd97935be451272ff4fc80f
60bb8600a1248ab490f5b5344e781967ba423bf7,37e934ffbd0864c0893f250e14c45130f11edb1b,f8d33dc1885af3d8eed394bac11f86455ae491a3
b47d2bd2c206114dbf07007ad6fce88f208015d4,1add3490c326215fb09024fa987c80435c1c1b6c,0d36b05df5d7e045c106817d54e9d4df0ea6af7f
3ae370b1908f4be08df639ed6069f6e34fad2c26,6ec460c619cb339eefb54d4b83a456882a2047a3,81e8982dd4d8d0d19899e55e511605be8174f926
f7050ef41ab48de9884816ddda2c2b1f713fe200,e46b426ca13519093fabc509cc2ce2adb507300c,47066f0ce7e8dc21393d07516de90e094610e52b
c496b609d18b20208fb0ca54f0b9137fe413f5db,359ff64afdf1eb6b134f69f7caa5c60d79a91222,091b0fde0ca1d8ab1aa2e7904f3a95cbfec60431
53928dc0edd2818dcf55b9cdda7eca3bf9aa73b1,3d374727dd2e635beb37ed5de8a8f5b9ca44228c,78244d89dc7bcafd58ff04c29e7d6f1ddbb0777c
c3a0e0c6d2e401496bed2b9a377ad2d949e76c3c,3abee173f4c473633fb4e9e1875ea18fbac71128,eadcaa5dfc55dab3ed673f4d104fd16c0472bc51
10273e54dd198984719a932ced572c056ef464f7,d2247f6539e5cea8e6b31a3a4da63b307169a66c,eb67d87dec24d79a68f523e0a2e3683d2ed59137
fc960879dee7f26270e4baf2bee8dacf4c6f9b33,e440bf0e00d4d344b855693664da99ed9221e3aa,bf7961a9016220e8f4ebf9a4b2b62a39863cdc54
b64edc0170da3fa6a366f9564c95b985ea566613,1635d04b7bee15f943952680129098c58d295348,a82a587a1b750cf5fd2a409c9f1a942e78d49c64
e5d2c1a9803158671d8e7e2e32b27a3ed7ad2fbd,98eab07abd080e37907c99ef0934a62a54574df3,a0543f7f9bb7702d795e4facdd4da7dc4d3efbe7
24226ef4af57e9fd94deea2fdda3d23913054da1,f0b22a1569e315faa4954c7afc00450a35dbf2c8,e94fb2edc3aa38c27a17dfebf42cec19eb6345ef
6380df9b42d29b7db0301f50fa948f90f78521ca,c44095733c36ca1505caea5d389a35c0ebc0476c,d41579fb2b8c8a5c35d280065944a2fa4aee3d7a
aef337e67c4960aad357391e17a09dadfb1708e6,5633d5e8aac2d3da9cad03f29a803371f6a98244,33b4772eab459420afb5788ee18e4f4c5d21efc7
9d67adcbb6e2c71709eb2e40ee69050c0eef28b6,68d39628891463f399871e60c4432cd06ad034f8,5b3240c8f1cf913530ca5cadb6274d52f44255c0
c06a931d5b7366d766fc9e5f2797ed557e9a95fd,47d96efe2913d5dcf8064da8697aae359713c3dd,152208c0be1952cebbb1636d86f89f277df3b8c8
f68804e9cdc1a0489145ddd82b4a7e8ea9713b09,ebb199b9d465a72c1784c5cfcb4f07b4d324f38c,ea11517d27fa00f40b626e47213f0caa8832d155
d5dcf5cd7ac8b28c6079aa2bd7358f40bf6f3e20,1d474f822e015968b3a0a5b592a454cad726ffc4,9c7cb3dbd7c02c54cb0da8f14f5c05743903742e
76406dbc36564d820b900665579540f4d5b1ff6a,7ad8f94ec4ca74e2fc30ac8278ed0c0accb090ab,1014e530813f01757a6ee4b4b16518fe2a7206e1
ef1ba48cc43b53d103b09b23906531f67d2f7812,4c0dac48649acc8b85729a7b6689661cd786d781,7444733f5d8e946afc88555d0073f32ba7f5ad5a
6b1c5861afbf20bac0a2462b7340166fa7b64142,96f2e683e7b4e27d7e12473ea3960ba800204a80,ab2db33b4cb91e2897263feecce167f40a3ee391
9dcf85a8efe7d502d9095949b17fe0ec34f8a337,4a050536501595ee343b8581c3278e7a22786497,6ac2957187119df2b0e6295fd99faa6de10abb2a
74eb7b5050dc2dd172e2804b9a1cae3505799a02,45fc515400db981d1bc9f9bf94435b23943f9752,6a88f2fc28bef9aefa6bf0ed3cef4693273ef7fa
d8997405c55b3454df147adae413ff263f50d1eb,64866179a980ed3070ff888603b9e44347a90612,c3e2285c45a80f3683daaa9b98863b77f6580442
5cd4e5a016fda0f446fe775e6b0de4a4a08c5b7d,bb80851d656c15fb20ddc4626ee230f8098ee074,787899b9216cf4e13cc1f584e803b2081baa8987
9c1c2acd64559533d3c01ff58a1c0c2938f8f25c,48271b880cba5d4479fc27890f3b4bb4bf69e60c,fdfe06382a17e6daa86523b886dd03e013853146
3af6a9826347573ff8a33b50748e48541e41a1e9,f8c84dd1fd36d1647cca55943c640964579d13d9,99d88b91a9ec759fca2b345d7c38362ed1c285ee
ff87df758174e4f7be7303fb40f03895beaf270b,5ca2356638e7c3a144d832668a06e8dbe035993c,82957ec5a382eb151a7fcde2bed5f5ca041b887c
8e13adad4c6ad7e1b5a3a2f6358f0ae564eef30b,8192bf1b3373484e96c6a31c368b9dfbdddddbbc,fbb2e63fea518aa03f018f42589c14d8db8ed78f
c47d6d7af0ee2eedcf79aa76b91156ed4845e48b,9758bec36c75cdde8f63d4d2f822c6fe0ce5cf3a,0a3d980f7e883862dec13db1745e75646c5f6f09
ae71ab728462e24367107623c19c4ba6aaaf8716,9730a50a5badf6803d2f7412d98cc227240e70c8,c890a126fe2ce05614b0bbff10b8046146824d86
792b629aa6e33ed5f9dc8bd6427bd87aa9c2606d,7f07c9f94d9e963f5bd457ea667178ec0b73c1e3,84bf87b20dbacb2db9bc8770043968fe1d4e35d9
d97929e9cf8db0b23a936830ec3e4e64206b6813,9901a11d223ff5407a9d243a343e0811b1e41bf4,af17e9460b17f9e0cebf469fde8c221f8b501768
0b63068ad2b7270cd9abcdb79026f77956303d7d,06b229e1c33157af5d90c1596dd62b675ae34bc8,ec4556e03d6213debed73786cfa6e9f7cfdcd801
a7fa31aa10ffd22de56175d14a6321fdcad160b5,6230de31bb7507f9a4eb6694f283f769fe0eae9a,482698e566a62166d5cbb129409ba2d4cba8ea86
0cc91a50c782509d8fac0ed8f977f60a727fb387,28fdba2c08f6fdee34557b1419e310e70b864a41,0530a2f6e718ed0178d417551b0d4235506bd190
9c6bdcfbb793f7557fc0339c251a727e8f14b701,96fcd2e760881dff0086fa86eb208e30f0d47fb2,d8d472cf68aaa59c255456d23a5698d70858c45f
8e5a54c92e47f1257e804bab50b5e045917870d8,b2615a9ba11f613a7920efd59b2199cfbc4f4017,4f3a21eeecdcd63d878b4d010796a2bba43bb380
0189276a12c2784225e4d97baacb0a7bea6aac6c,19d5e4361575564889b0d4230a10fd84973c43e9,28d248c9d41e47fff2237448b7c30d1096d7908d
6e4997265ca10e315fa140d645b9166c64c95b7b,57dc416d9608f12749c1a50f7b058b0f62fd2c10,e60a367f1b325b10428f3c7a274a4b6d24d60ffe
7da0284bfce4513392431f80b2b4ea35e29c0011,19ce665b3d95ffd9a59577f980819665b32aa8fc,92520c423e7d6a78f7f657ddae930b6abb404794
4f3271500a84ec359824d38ec2a0f1da564dc4d3,c0d75c1c69f804e924f79271a188a2f5bc590397,1a9678f4c4fd4dc138cdfb5e1e94dee81877ce97
d49453edbadd3242cb7a1077d5d5390aeb7573ed,8d238cfaa17fdc886d8465f3d2416243400f30bc,aeca33e80ad2db7c2c885c624b534c0b19aaef21
b3680eb5bda0d635435859166223dcfae6d4690c,a7232669fff29a5a4054bb64ea000f402d31bc45,674c3f04e042493b93c3b89990bc321b20df1287
348be7657df8af9c28ad0230bd81e85ebb42dc2c,3707cb4b1ec8931596f2e0c33e820358bbf0a085,a0e96fd55111b9f4512653f9f782b43a8e7b479d
a849e51a3c698f59fe89facb9b161b2d8d91bfdb,7f96a26de03564f81ba124211601a0b969243b97,8c98be824df6e28fad2a957e4908cf96be65d400
7040587cc3a8be4e692a4eb85ebf0a73eaff2b52,2bd7877ec00e5de5cb954ce87403c604aad204b4,1efeb5851ada4f52ab63cda11fc1862198744a63
bb8c3fd153083180e5f527eaa95ec5a70f0b08fd,817ef6949ae0334c4cb2ffd3a1251b4f16439bee,0d592e8d1a3c232754f0de04a8803ed0dfc1b8a8
f0298f63d0a2442d867f9565155ac77ead27541c,a0a8a6911a1d0f9e17fbd6c7f4a54bcdb1a9adca,0ab69ea0ad067a2114eb1e5142afc99cf5f5d965
c82aae59a11fdfde4b5cf400392450312126e869,88a0d4d64bc49b3c18150773506a11a487467132,b90ec52a0eb7042ce95d12843c246c80a05caa4f
6d7d567a25a28dccb3f5603644a4fccbb9f1bacf,eb722c8294f91f274806673ee4941fd40334890a,00af340febfa4f8b38630d5818f3003d8e74d4dc
aeff5b3577af8d13b99a78e0021306a2c03aacf5,9a0107a19dee80cf629e147e6ccf70ac5843500b,d6fdb384590bf8306e16b990dac52ca86f90deab
a2b720da564edba0ab08efd53eba8a6aa126c0c5,04b059268bb291cb1b5471481bacf5aa93a756eb,2a7ca7ddc721fee3a36a0af405a47fdad1449af0
fadac6a9a4169b7354b908e7ac7eb11b17927e68,25b27281375284e07b7b9047d7cfcb14f2805555,9858d9c5e67ffc9580feda5de1789b8e7f6d1b2f
9af9f140a52981f0d88b7d26bdcf2f915c95ad89,80f87edffd5b383a3530571bebdf15899c7c1724,a1b252538fc592ad908f881b5b7aa63bc152696e
2a897f5b6b36e4817a73b18bc9e2d3c346befd30,295e2d4dff621a17c042f1f48474b140f7bfb1d4,518db35eb075e4bbee9fd9f55324b96d292abe4b
072be7b0f7dd383df9653c900080513e12a38afc,75acaad1219d06bb3821c4d964dbd6bc17241ea9,213f84ad6ce093b49829e9411b597b626fb113b8
2a990b8167e0da36ce24a4e90263ac8e6cb47aae,cc92af8423a84a63ca73688c50f211869af3be97,01691e9ecbe3a4cccd531799227886d3d1ac92b1
2ec8145ec543c0babf24ecd8de10d0114a91dca0,11c17a87de784e7cd6dd4e412336a6d2094244d4,2bcd2a4a937cb2c8eb5e2e090e03816e934b8549
b713c7380bbd705f224c1bc1ad1e26eb8f5694e4,3a668d9b7c1720851d9980e132e0201d02b6a1aa,b03eefd5d0bc17a5bcd03eb7850280509aa17b0b
6db164c9936938755328022913d2985b1d3eec66,26170815b410639e9a1b233a854884f913d47068,0fd7a5cb1fb05d0ee521c98cdcff695e95194b79
16a21eea87c564e9bd99c95eefb5980c9b230cfa,053c42da3376a83975d1b45b78587f466d28fcba,6190258f5d0c9b9992e8346bffbc8c18070f976b
33afecd117abbd8c48433ff6396bc3b7419cda09,c0c0acbcb9edd11007a891b0942d2d74ee315209,3e047d3691851aa988e95fd76fe241fdb2386470
5d51a788f77f5a9b6610375c5b7f7598274bc6ae,5e3e4437c442a0e916cc3137f1a17583161a78de,8ba4c4bcf0ccb8f927c6a15dd9cf07bb02789946
6169bbeed5936ec152279666681362007726f3cb,e98771608e51c0ccb8b4910376e9e563b8b0c794,9b2bed6fdf168b694b7c62751b208bc82d075c16
185f20b9ecfaa598d6d6e3c042707c4e87273e0f,93be88b270d425ff7725db6f653519d2459ae3dc,b7ade3e566160485a9fa8c5f16c337fe7b5dc47a
2452e991b86091045a296ca6251b66ca3f6cea5d,507f0b3362db9513e09255168306a3c46d35f0b3,95fae1a81d7a92d9e7511e02400fa362d4763bbd
2fc672452d27fe93609cb52bfca8a90a1b002cd7,eb7702bea42c58dc4591524ef35fce8ea9b5b62b,edfbf2ce30215262b7e8c2d5f0b9c516bead4fc3
7bba64854b52c877aac354180ba7928a903ff23f,195c8b599c1ddd61ebaa739fd2def0db21436cec,32999fbaba853286412aed98a5d2a89262a0cd65
b4a6c22234aeb9982a3d27ca0c37e0f2b7963958,97abf6b49557961c9fdd525b4b4db4e4763d6e37,e6037961e3be89a55dcb273dd8327fdb85d5338c
7de94e7a1dd1ee7de675c334fc936a64f72fb978,b6cf482fcf3fc1f916615c8fc80e552e241ad15c,f8fc0073248b2be95224d2419bb844b4bec0d5e9
3109005791794f433437c6d452e72f1bffbd4a4a,d854d18bd9730ffbe4340dd8a1dc9c2c1efd65b8,9179f9d43b5ebc1ba356a7d0ad12a13a2ac52b3f
43ba5b69d2b86a6b00908c0c1664cd893db22f9d,f42b39a7b5c586378c5baef31567ee53cc427715,a65d778f73ae920d4eeec28438c254ad9ee0f8cb
e4eed4e25994349c28dec79ab566831565bec643,7343e9c4a273b789577856915e0edf6613fa4b41,c96029ebd57c852dd3f006cf8769d9fd5473a605
b8578f804f48a7e7fc45a176f4556cf729dab2db,12adb47d65e06d4d730cbb860c711bb668a94367,de36d6c0499c2ce4ceba4825d004767f0ba944bb
09c009868604cb1a9a065ea9c739a37c41c93923,c84c4eb1a4cfffe8cacef0193af7a854f34c5bc6,c3b5d0d5d5b522e8d1a594183e2b49dce34decfb
ce1f115b2d17e17832f36c91b285e83aa3fe8f74,28efcfba65295ebf1b88238906b79594fe54fda4,57d9884d964cc8e1208814fc3b0f381c3140e642
aec18c2426a503c0c85e057bbc2f029d649fe3bf,6160abe37ec2fd61fcd1424cd62cf95fd2f8b1f6,80282d6effe141239c36d02d418c51142b38f6f5
7f775abb6dc5c5b3b3a1dfe347304a81d970df77,4e9b42344e5e19210d8ffec442f1bba631df9078,f42f62565bf31b15c943b91eab9fc5a9569e01fe
227bd3e9041fa1347905fcf666a951382c1a0f09,eb81b981cd66a1ab82fa0dcc05119e3a9c5a09d6,469959d9b52e49254c45885e9e9f6d631a3481b6
217e9ac5a5714fa60214616b33f0e7a0860c2a64,5c2303a76b1a616d24f9e41679bf61f79020f4c4,a286ad9d774c19718bea0cbfc84347dc67dd4862
64e796ace2f58eda26c7c732c8d592029f5cf297,17d1b8afdb7dfe862aaa84d4bb012c2674d8cfc6,ecdac1dd399df3d5dade5151e320686db821ef9e
472f8c900b8b5dd32333c930ba1c6f4a75828102,259c865667d580981c3b8b0e98287383f38b40a4,54ea8468fc0fa0c2775c82a10ad62785c2a8f11a
344aadebb9e2cc9abe51bfad885a57400508d088,9003114a8f7cf994275dbfc88b93a0c8d0ce25d5,707bce74d765b6442a28036f5bbb0320c61b7560
8618a3b21f4079b12a7b439c9026d3ace63d3925,ecc3ce64eaeeca34fbcdf297fdea90420845fb11,14ddc59edbfafc8f7ff20ca7bfaeecee4ee3fd16
d4ad618a702802f02fe4196ce6487f15c5535bed,16f201292c0690d29ee40a4b525a60c13d203c7c,dc799a9d49d234980b4184d2561bb0ba04337177
85afaf528916ef20938b019e802619d65dc3f778,4111e13017f90f992971a522ec67f3bdf3b46b85,7a3eb453d40af468faa5c395a6bf301cc0a0cc40
b88f9ad57cb67ae1b565d9564f2d8e938c239ce0,2519fb126663d9dc4184d8ed9d7edca2e65baf78,9803318feffd8cbf8904be68d784f062eee3ed90
64c586b86dc064d1bdb07655975f1787f17129df,0a021be803f923bae563abf7eacc9a1d6bf36b66,221efd7a806a778f59a29b7f9baf74048e8b3978
9c265d71f0fc92ec1065d0a19c2565ff884dcc9c,31cd3df783edbe1bec40a90ccf4df82b5c327f2b,0ab6b1ab4dcc5a513a83831fdd1070ed8fbe49db
75491ae21c54217fc1838dad300f5c86a247db4b,4fa99cff624119b65aba0c5c6fd0af267ad0dc42,9b1567f0546a7df6e7a5818dab3c614146f95c7b
1f49e633b6599ef4acf917a4190a62bf171843bf,2567631aad9684c8b6c4cae9e4d94e3c93a2466f,04727844b5c663cadd8620aef3ec2fc892115d0e
225eb8ed12ef191cf97a185f1a405bbdaf9634b2,268f7bfb5c73b8e6dc11bfba6bcd1c61ec0353d0,91649eb2e5e882700c3f08a339c163b7f24837ca
e5c6e91bd0deb773586b10741d8435409313bf56,6975437da8f582ce6f964ba1f3d95972477784e0,5950a5f97b1a920fb9622f8897da0d1eef2ec04f
0b76059b37bdb2553beec800b2d4134a9d0df826,0ab4515e587d6eba0c82700a003dc3a0ba6a25bb,67fcf0f03e9b81241040ce5e31f8a8290384d029
e99827246e52288205bf3dff3533634aa553acb3,4bec57702f93cd54d61f68b1f8078ce4a4d985fc,8496690ed0f812c72b008f609106c933871be484
8b24d60df752458f3b2ec1eba42a1143529a7af6,1e960a9aeb12ae75877ef9321efbb89f34bbbdce,d0910b5ac837d58c141ceb758c366bb8a87f56ff
539a578cce5f4e05bf46dc283a0fc96952f22bfa,aff1f4999c47aecd65f1f17bfe96e736a55b4ec7,4e151d5a6d8b1b11617cc17f3fa3e08f612efe4a
ecce39a3b253b55250ffa0133d8d6bf3cdacb4cb,3b49e95415b79b02d6d74ee7786ddf1c1177c1a3,4245b20a32206201500e7d9c646b003b93f4c6e9
1c99c2655e3996df83e847a442e52eec3ae171e5,7f1aac8bd71488208af65d46e2bd3783d8efe725,afc80a84cf383fb885ae3366d429a5a0c6ffcd3d
87e1dc159d85ad4f56cc8cb3ed3eec71c93cd273,dda9f83dfe2f4841bf4fdd87aac87b46b0ae833c,a4b35d16f2b168c58016334e1f0c54731db2d84d
f1883c4e617085250b91f579760247865abd01fc,33ce19799b268409d89e0ed8c1598b73728ba970,0316a7697f9b6c3782abf8c6188df983ca1e9f7d
c3fb1e3a658af94ce69f431f739a80522ddcc546,44856e660c4ee3931003802128192b2d77415244,a3d68e6839f1803353d6b575f34fc91686ff5088
e694897bb3bdea5f4606946dbad784ba7bf0af1c,09d6398942ffd3e1b139d72067cc20e8ccd7a400,436a0d3f9ee306b55bb8d0b232587668c8ecf48a
5b29e7a3ecfdc47203c64ee8b26e5db5cba35b60,599ba8cc2a1d68bb9dc6dae9600cac6b1847d046,ef8d520e8277925f08c06e3b635a54ea80b2dfa7
2ffe777b446a42bc98d278288906bb924bb806c3,f333fb08ec41d4886a8dc9a35479bcdcc08f3b78,34f7c3e6d40e1702c5b9008ab852e5fe23cee7a2
60c8b71bae73cec85e5bde74239f2bc057f264a8,c7f4be71dc1048ed4364609f838bb5e79e372088,2912e38e91f1940d84b6a846ecc1f9888fb7cc67
5a26c582852c9e6486bfeaa164158a9521eb45b9,6beb28316e004311744aaa46f047f7048b989889,0ca1e2fb424c67f6c6b02eda1dd1ff22773af2aa
2f36069dae8eb1f6aa8ae4149c878fb55437868e,e430c92fcbb5b00680ac84579d6f969a4aa1c1c4,cefa05c8b1749d9f5b3d322f93eca52a13ae42ba
2cd695120564fd22f063cefeddc882523a86fd69,2703b36fe16907fb9fbbbeaa8d497e17eb13b4b3,0216f778193aa057395c3632482e751402a21048
e2386ae876c8f9a0772be80ff7711499ca4d721e,236bef961c21611f2969259c8c8fdec54364a225,cfa3f4fa8c3a23fe72849a14532d02cf8bfe7730
857cbddf04ae8d54abca518b94792e30ee481042,c6443809bae23d8f0a519b4b3da501858a2f50c8,8d0ef71e37e6a59066547ebb898b17ca21e3b601
4c2e0b9ff0ce9c285f1aedeef6a7146c81a55d0b,ab0531f0ce5b02a4a91430a979f025a4684e2245,803779002d5bdfae8960d95520a4e5e5107f61fd
9c831677ff1f6d00592d7bea91a3fdb6d65e0aea,fe57cd353657f96ea5846d9f2575811e1456ec6d,272a0e3e267eb40a3c3e1a0cfaab9d2656792331
e0a1bc66750d810d57af27e21139203bfc2f3125,01178532e5ce1180f56697fe7d22e907d1afee11,316f2429f02f3f4ceb1d1fdbd857df0c500ee5b1
8ffa01e95fec30fbec3961b0df8080020e5b71ac,01937c4630f20652dee29b92dfbb2ab3d58cee8d,913bd009e9cef31344cee42d9351fa25dac3724e
3dd6272891f18c415998e167f55b53c00354c8dd,c15bb07bf60ec1b6d14ee4954ab67dce787e1e79,62bd0068b65cb0fe8b553d08fa4a667276b40625
f4486039704b5ee3ae17e74e3a537b51fddb44f7,83ce289ea4f738bc0599fedb7fe153e804d1ea42,81402bb077acdaad13e50dd6e093e886e8de3ad8
6f3fccddd1ac5b363a3e02657cf838b87d741a40,d1fb44044f4711db2430d267ab8c884d242cb13e,b0772ae749bd1c8073b7638d0d511caa54fb5078
4be5f07f276e2f8c9080a05f7c297fc9d578b5d5,8fa04a0cee8de2d8f6d1c5a72090b4f9a0a44698,577e584c771de341a03c62bc93f1ed2fcda3e2de
1e5cbfe546555493b7ff115a326b2722e0c5c978,e047e7db91918a6356b18e5a76eed56aff2db155,62ea31f255cf83b7037e4d56c6a6f4e184d26084
9775a13e0263f14cd74692b3df566752c8de16c1,9ccdf2b3bf4a4da9d61cb657c1800fbfe3e8ecba,d1881d09519768a8b2fac9ae78bdebaf49ac7f83
03d353c1f5203640f225f84930fafc8787372b66,77f3acdf76d54e924dbb77682eb9352b5626f88e,85fa313e597796aa2035f39504c467078f51110a
a7de0b365b9d10dac141f7a7b8889e92e12370fb,f7dd8755ccd15cd31e30863a62b0214249eb2907,811cf381ad4f00636cf8b5628b663d7bb8cd07f4
612f063795d944b9dc7ea0ffc36a9a0fdc4ef73a,53effea0f5cbbe4e8670c65fc55ec65b507829fe,d608b4b689181bd3bde42078d6c9641348f0a050
9e2bcd940aa579c470990d60525be160ee191760,b9affc3406b07c24ffc76005f71d41adf22b08aa,c4ddb94cb42420c8e47c6daf181a64550ece1615
bae6ca6883d84aff6c9061af6ddf35a7766b51b4,1105726dcf0065083c5f23921c1e87c9172eb61b,7a0c6ab591659dd05274fb4c8a05d39b760bb12d
c2ff85ac5ba307d7cc10cae7ee17d479c83c9119,067b9b2922824a6801001abe1f2c67559cdad78c,ca7c775e3671ce703894d6ad4b13fa11ae5c1ff3
308aee42a011e796260906a9d99699dc6521d3c2,6218254e53d3bd9bd6cc2c62b5d6ecb86235dcd7,793ecb3fa67214c2b6da67609c5f4e6ddef96bd3
8ec71bc810be192183c9dea7ef4bab8a33a2df66,47557e0ad24e6df119fecbf2d42a65dc9cd20b8a,bc4a22e24d21870fe797d495cf5a749cdf89a12c
07a8e6c1d61cfa4a588d3e88997940c22f25fd6a,c8c6e647be33882b84c2ffffd9c4b84ea4fee1a0,8ea95e9b9518ff3c9b52672a2575287d613bf5c9
7811b915a918cd014806bfde2085bdbad62c8b2f,682e29c4ff6b494b468fdf0f1295ec85fee37ec4,2885d3ab569ac5143b094419de211b2c1405f568
e53d18d876349d27b75a9dc00340b4a8edaceaf9,bf65bad5c5c92a2bffcc5dff4a5ced917116a8a1,3999d037e3f66961a2ee4993db53d1d8e9fa21f0
9e7d80a8bd1f1fcfd60bab5750b30c05db3c3f6a,f38f9ff930b754f2b94f8dc876f53d22ab0d23a6,f879d764917721ff3bd99c7e6fb6134cc8ee7197
f3d8efc8ec3690b97f3d5f15d6874359435271fe,08817f1aed8b29c9e30d7d9edc9530e89bb0bea0,87a67a3222693a0b627cda9a47197d8c4893a205
9ec85f940e650d196a66510be981d6f8b8a774a6,9a39124118cc4b065774f84a7a7d7cfdcc8456c1,3ac0522f70fd2e0eaf66858f64d3d00b73eed42a
3aebcccdf29cbe199a204f573fc1390e3760f678,934e3bba63c67b577d941d675cba3dccb2d53826,4bc957a1aa3bc241350f8ee2f917dfd0cf80f8f2
c90616944d3bde7b36e924d27a0790195d61f95c,1b34fe90a33567d41a103838648df4dc930ba2cb,ca399f3c7166947e42e507c3cb141cfec46f9e0f
b09669dffe04ed05fa7f4c19cdde5a2531be0668,243ddea68697120e162f5facac53b0ed59578ee0,9f8566dd84cd77faf02816ff11b6b4092af5a0d4
d8021a11029990117503179f27e8b9af6418d32c,81bd47343918e8de171f1f53f26db490934ece79,6ec6d2043b1c2c2fa2c5554b142610d9d333075e
c7f3469a3f6135de5990605db59ff5286c6ecbe9,f5bd3d81e78881e7311d4642ac4d41445b0d86d9,0188a558d1fb63818129f3adc8513dddb6bd42c7
726ac5a5a6afb3017e06ccdd75d6a593b97a72a7,2cc621618accab4ce12b8f5b34c5f883fa460b3b,75a9c5b5009e094dd4f1abd166f9ef47aab97c1a
c8e712f400aeb5f56d8b370f7e0feb5a6405b6cb,b5216a19907d45ffa87661879b2a571e589fce75,695665c393c0c3b0a67b060b5da4c86249c77f38
665180a579b47a5d7843c4912086bc6e2060aee1,d53b17cadcad90200962c5942a47cec174047612,d8f02107a1c79c2c4560c5e6ac260f516f083198
f5e5f9645cc90c01a6fcc2c89413ccbf0d1d3d5d,f9957f30a5a70def090032b803925a9733d4cc43,70760208bbc0574bd170e3acd7e8baad3cd90cf2
4da1ad71a4ead2a6643e56087d03c1ddb6303416,71dc62dde61909bd587485a20f3c234c832b9389,2a7aa1116397a409066dcef8048db673e50f77f4
f718567c95fdc28f629bbf213c0e8f2507064f3a,77681333f520d55157353f13183ef0dce9dd0e4e,29a5d3267cc3329ed313bdf3e6b8d59e659260fc
43c50d0a3266282a69f9e2d316fbc73b478c0774,a19e461ee05154f1934c39bfd925740b3f28e4da,17e3c31b7ef802363f2b721f076427735d7802e7
cd3570caf14145f0f75af95171ca4e773cb9bfb6,5557dbedf27c88984a322047c57b486fb7a9fccd,1a71ca410691438f182910025443da0580df5a47
77cc2f4ceda166a09eaf04ca07756f950d1ca806,1b22962140eee3b11bef19380d071ce49f5f4329,db02c7c85aea5f66f4e083bba8a8ba649e06c313
f1d30a5bc63f4bf5916ad20a81c12922ceae68e3,c2faf6a8fd63727b392123b69f5a403b9ed991cd,d06cb1a20ac5674bc70b8e8da0c419f004afeb7c
423940afd7c7d8afaa4d45a5c08d36f83fcf5401,7721995c71a089a8796aac9c6570dd6eed606d20,77e3a402dabc6622fc48d31c641177452ed49867
0ffd4f87808838f1ddb563eaa2863a4d0f984a6d,72667f41ad1e1b310052fe05a244276c7f813ad4,837b433abc0378039d91f0f03061d982b2cbcc9d
b464d3877781b483ed4a1af04784cbbf175019aa,595edf6f9b5bdf4d04ce6580cae49debc72cba89,256ca9d210e9fb9ddc11ca3caeaf811ff1d97dea
bf5f7144972fe1b99f2dabf2f6910b5e93090eca,f0b322f4ed22a2164aba0abad84925a1f40e383d,cdc7fec019bc6e77d40e11c9c3bb173f95a3b364
f76bb5fc5e29998effe2021ba7fa563a9a4a8e2b,5ef44c550a605a72a6f8b34fc3690185097aa49a,9977889f4a2dc700ff8bfdaf231d59910fc08739
cc5814dac195e6c3a60030015339e18d0296fbb3,210674b9a039da69dfd1444c0cbcbe7d5cbaf4c6,f6a444c6fcfa9f1993841e8dce9a36899a8d8c9a
ee187f78f411711fe221f871fea01b203114264c,9664ad4138ec531b0be7680bb274db0fdb39b554,542c3f0c4c916a61cce0614fc855241ba0e4e8c3
4dbdb4f0f1ec9a675c22f0f5650a8cc5b44275e2,39896a1b113912c28ee09155ab6f81cc9a14428e,dd9179043e1dd2839249ca4aa2b5eb25bb4760e3
d936280c6b5810d72bcf1db26189339025343143,9bad5180bb210fa49437353c7643d9bc574af68b,964c04aded9d81191c5030d1bd75be285e36d8b8
4ab310e0ed49cf72441c1072beb3e24206eb6e12,8535c758efc41d890c3d343d43e064deed88d132,929fc500043b93f1e06976d0735c3cfffcb2c446
da3eb5c1785feb0dbd417632bff6f791b4b458e6,022a9b210ffce670dbe4d675baf3b70db3e74b92,bc21634b467631b3350b42f83894a7339bea54b1
f0cc2c38b8aaff7b6b407aeeeb8bfe9556fbfa5f,884d24e321d3db6a74c25a2d0bf09b1e755645e0,e57059eea3959cfc9daeee5bd558b07a4ad21713
6f1d965dace0a9e093ce73faa9e02828db463694,430b2fd7917e4689de57e75a67ad864f38b570aa,c43d8e4adf47edacce499563558c0bbcc9c7fc3c
906d0ba06ef076fa6bebc994e1145bf222449b47,6f482952dee00a2e14dc900815d660a32e46bc8d,578424cf51d3c1a127c5eaddfe462e82a5588586
5726428dccfb87159f31ce505ab1bef04a5f59e6,e9b3db0d78ec4a3043d69de785b951b25179c2ae,814b68fac0e7a2328bf4cb0adc995bf20947383a
8006900e8e969fd4f8078398ce762f1575fff961,bae583118a0e685032f2712943d2ec5bcdbb900b,d56a90e5ed984b10ce192d3197e72fba5b4e184c
8e2478e6328415ca01414db2a77c2180c23631bc,30df9550019731ed3cf29d5e30fc6bff4bc4cc03,f2e0af6d37956caac79c5acf8c8cf5ad08475443
d5a0dd3d2577809d169cfe18aa78e8372fc3b856,5e3efa4455a0c20e72ee2d970df1fa630308192e,ea5ffd597f3b8a50300e9e7d1ea2fcd0f1e14f48
99f33824a7994a8e4fdbedfed79093cffcda03ad,1957ea11cba7537976c6600b2334a9df386d7aa7,3ecb41cd2dbbededc213dc54ee4e44880dbd8336
f59aab1371a008ff7c5f46d2b4d2fa56019cc15d,5085a04930268442e1dfd07f325291dc1f95d086,c02b43fb93381fec8823752d0ac24e76e143868b
c2c7982a22f940366468c2b78e6625739d584be4,e6e49baed14c826a83e384fca0e29e739d3aef22,e841e95390eecdfc83dd7747597d3bc15195f171
aadcb0097781d53e6b555da644d3dc05dcb5f3a8,4483343d00693632b120151f8ea67abf2a2c2d5f,04ebdf8df81632e5e3e8dd13d80dba4c75ea9c3f
6e4984184b94547a91ffdd96dc47046377693a0d,40e1a09e6c73c245cbc1bb3ea1b97a0816fb29e8,134bc7eb423c398b8ae1d1b93b105c2d1dc66667
214936b90e2f67c323cc530a4f022d3ab957e2ed,464730dc44dbffcdd9fb0d3ef0847e7f0a04c633,9d2e71ff699c447a2fc954ef15928f6697d60a8e
776667366feec2f8f00a81ba8d3f016730fd1e5d,7ee31ae252e6796fc32a3e1de90193e6f936920a,2c418b988cbfd4d9737fb34f6c81c52bd32c0bcc
3f8aeadb916de0d20cdef18897275c348133e90a,e1d9d1be0aa9b4029bdd144bb97374c3bf559d5a,50648f2a6052a27c6ab8591c5817d63c830aa0ff
85fffd7a77f5dafbf672ee80493fc42fe09aae5d,43b29375899276a2734571d2be8daef68e5b9008,89d3d866d2370f8f332746506e97dea19c9fe382
7368fcf4c5a6845a0c2257ae0479556850184565,356afdd25bd80af7c674633df6eda10826dbbf4b,bbcc3966445438e2d97e07d21491a83e9b0bbb99
d7a9a7319493dcd61d41e68b3baedcaf9442ec5a,ba1b0883c2771b3a4b9e5ab3954d2a9ea960cad6,ce1f9cce01e1f58859886593ea04e5a5bfd0da32
51326e94f38d72e89bc833c60e20df237502d811,94a15faa7f435b1b8a5e0776446b2352b0359065,7a4110cca91f7fcb4097d156104bf7e12021bc52
7d6b01bfc429e2bc70eaf7449a2f899f0ce4b0dd,ea47cb313def016b4f6359126d45ba9da4054411,cb0f422eb1f04ba531b1acdc0212194eb1c565e6
924f9466f0219cab6ea5c52da9b5676c97f9cf5d,c185ce02cc24c43f5213563669fce7c2c9727747,d16160be915fc86a6ba634f9ea8500255ff996c9
0d6a1d24bd0adb93608b17fff1e956564cc4d975,2629bd7ba92a03ed6b106448b7eae6429b63e94a,2a2576b1d5c6335deb98c92f51344903e912c7ee
c67d35b8ccfe8a4de74ea6f33017fbd9f68979b0,db8c723b9d503f0eee1b7058495170b97326752f,46507f956552ac35f745568284ca6ca7de4f328f
eb96734b2062ee19daf54cd52266164d70e84b02,7a8893396d2598628075a4f3e001622d731e1191,415bf22e01cbb676fbefc4de83ee4d18bfa6145e
4e4d268963dd6d2b596d1cb5a70332015011bb04,ddba001b651a404c2b01bdb88679599cc5df118f,5129c2cb9ac6bd7756bf77f8d94d60c0390e9734
17514ed5c0dcbfcc2d141653b021adf870d825ff,2be8f01efe35eec1c1bb9b278b54de3715fc5b2f,122c6c92cb5e494385d3fa3adffe6bee6ec4a51c
5920d169c096737ad6288a96a37a9377fd8697dc,136f0429725919c7759358a0499a4cec09f8a3ad,6a3f32ba6983dfda5250d03b9b2d33c8ffc6022a
10acbca82824b6a3ebf5dd829941da61211f947c,306fae299e2b90543f863504cd9a35be802d103e,07698050e56747de32c7ce580467cc8bbebb2a28
dd4b4af6a53514749c8ed329cbd9c41ab6f1b7b5,122ed4b76a4e735ab76b44d52c845879e6fa5535,c78e9557f81f7711a60400f8709b5b1fe017bdd5
64ddf22e1b77cea0a29d13f5bcd1e09e8bb17ebf,3ca73da91282ae5ea53ab61ece3301dacb454a43,07dcd22b1c812f4dc659995c84c51fc580383a59
838cc89faceda7b5439d6a816da8a3f7567a3855,27529a7e748ff7580e0a05865f7738632c61a559,aecec2f6df34e7ddc759215a258899a19bb2eed4
0f0b9833fefa846d3291d275d5d78602212c23be,61a3f6603d2fac4f4b88cabb5c1ab1361bf6429b,2e608a3dd025db0a270cfdb17a382e46547fe62b
b4f939a4ab82eb56fadb74ee53c183d9c814f5c2,a73ee4f403dc037bdc0d45e2ae793f55f994771a,bc84f780ee3baba239b7cf99b16ac8ad70150c7b
e310be017eb68e356085ffb0495fc1d042aaf294,968d00fedf64ee56f23796069752cac3207d48e5,9526fc64cde63ce5768ebc21f9cacdbd9b827219
a18a6b4391ee8c0786fdbccf8154949b41be86b1,c28995494c33ff0cf4c66858e8a7de86e10dc411,4a67f098ee5f2077417ed8b47e6912a0e4794d1e
5ab67753769a4dd11c3d6c4d2356a18a6bf14fba,f134e3b0eec1866a21572feb012813fa14623b87,3ce6cae11d0f754038ac31a3249431903a7909c3
468975aa3046e252c5ebbf4c9a01088dc7d86952,9305bff861034a05c8919a8dcc3783017eff6c61,dca4bde3a2b43a31fa0e6dbc564c823f53a20da2
4d8ecfb42270e418060c9de45ac5a1527150c66c,8efae66956c35ef07d5dd817cfa20d6600b6fab7,1f272f8f90cb1fc0a0a9ba3723aad13ebfcc5f03
3069d74ecce6a302ef844f6fa2819f46af7eff2d,2ce34f7bd3a648cfa5c7af111bbd0ef0fc991f8f,b3bf183fd37dcb46c4a89fc48005cb68dbed4a50
d2921dfb55646401ff156f85a7997ba1d17f2d22,a5f6505edc01ba35c0fd05c2b048b6ab7aa306af,3cddfb4e2ff9fc38925ce973bd29fe36cef3fc98
6b7df6d22e246a54b7ce60e08ac4474664efe90d,33ad038bbbf5d724394d5c07aeb4bf7aa7ad71d3,213a0a704aed3270afbb0c9ec0070e4cbad85d9a
810de9eacacaad3a7b0093e64f61f4c95aa060c8,6007ceb9083c0b27313377c19f65dd8fea51fcc6,9a1ccd2a16a48e980662be44f228d549871e8b22
67b08734cfe4bbe2aa19c4cf4020817abaf74c5d,61cf121533572a72ea65a7ec35bed1a5b3621a5b,37bb10e893d97f44e4f130c06ad825a2b4693945
b4df9dbe1d10937f7e61265cc58cab832f6b8506,c7c8e2e0086f1f257af5f4fb927beae687105f4e,1e072aef31dbc456da749011f2ede30dddd76546
5762e687a3ab8fa55d3d7b14177de991b044e9da,4f77cbbac4accf137ac2683b95f5ee9f7c628ce8,5e9eb673f8141c2a931e971448cf1264d55e7f04
9bd785c06bb6f3b7c1dfe2190cb5fbfcfc6f76d2,5065e4ba50b7bcda40c0c010b404eb228a4d3188,9b4033fa80bff4b50cd2faa83a49aea8ed71c17f
a7e234254f19327d7053f390ac93d29f53d40803,abe3002b5badb867b33dfe4457e92535b089a954,b8befe3d1fd54329845387d8c7109827c55a0b3c
bd4c2064726700790c5c6bdd0a55d3d471dd0c5b,e121a753e116701c5a8c68f44ca90b296b67b6e8,b2165570de567ccd94e192353900000376492fbd
4a7a113a30030675eb50c9b1d0e563b6d0b82c73,81e83ffa675a60a8244c2a32723bbb00b70f3e46,6b26fa0f9a4c6c7f8d12a10737428c443c7750e2
eda6b105b718d810129c752ec7749d6a8e6132a7,3a242a17f4ad59a3bccdbc1b7982ce92b9dcec76,cd244cbf7dbd85f2a28b67fabc27455fd23f1e33
08b07122f8c0a270d4f9ccd1bd925e14402323e7,bdbdf2616830ee919a86d5181440b8db1b89ca84,4064694a5e438b10d71a24fe5d1d24bad40e4c48
a83f5749debb1409e18f0ef92b2e81bc9d0adba2,962c5bd727fe1930421e1897d0c8aaf6fba6a489,f78818e38727ccefbd1c3b1415d186ca67f34fd4
5a2d884fe3f3f556bec5ae3a74917d31c5ce896c,5bcc530707062fc715a4dab703848388d67efd7c,fc41306c4585c17e34d17a5f3618b59806152fdc
59ea39ce75fd1f8f5d3f9cb5afa264c3198d8a96,ffc5131087cc627c3ce957de0998d92518a3d958,fd4d6b8fc3f139bbb41eaa96d82055b25868ea4b
c200bf531176074e75a0d8efab36ad34886a3cd6,967b721e4ffa310891361e6947a40181e7288d2d,429454c8f48b197db4f8d25fb382cbc074f23e38
698b5de389b0342acb28bc6f753b79aa1b922933,eea8f3277211a2df7cc299dacd03cf600dcd48b5,e45d8578e8d8c5ee425f5efc31439f54ffd02ceb
2563cb6daa45b7b4ff2034f3c383a5c080c5f756,8cb92fd49a8f89d830850e3f775550342ccb1a8e,e8c3f5d6b0a19348358d039c2f975c920b39b26e
905f0b1f7819d50eaa2a0cc0e4c9da7e491d6847,12796d176d278f11843fde6abbd0935c21eba2da,455f603c8c6614f10993047e3c047fb8df3d3f2e
3c3120845af13d067111b13bcdae08ce00247333,92592be8e43db53a29b9f12d49efa317fefe844e,bb0155141ad1afa1869f503b585f9d29fc5bca6f
b97570c8b3b0e1c0f3b5d6c337b026686d5d8a68,ab0d7697c3038537c983dbedd52046fe27022d70,3e760b33c736290988741ce7354824cab306e952
69d5d648a9630a85a0ba9dbe0f79345152294112,671c674d6513502c0bb5bc477d83d4ee5615738b,01d6358f93faadd4ec8f61c1146d6a5178792580
78af12b58483e701da0097898e26335382e4dcb4,5abfe21f39cf60800c77ee5f22198d94e8341054,a3666aa8c96c198b294bd794cb1fbc6eed2c28dd
f56aa9abe79fff9dd5f36e5f092aa2629dd1c6fc,72a49b68cef4c213f089c79fc1d47b2874ba146a,27675967f85208af3308f342a4e2ca0d0a8dc0a9
4ef2a889464dcf5b05569da5ef97cc883a4a6938,050519f16fb7f00d857776249fbceab350196b04,7e53fecd092c55b7675af5e6bf5dfafbe9e74da0
fcb646bc3bae2cd53070cd608bf281b1da534271,e924dd0d16c13c27bfee35e98376e05bcb887415,6d1df899e61fc69117a2e061b17cfe241d2637f1
dbb6f95ea74a7d510502818c38e9dabbe8784448,cbf444bbbe699581354288d36b27c43ffcb47c17,a5d1ce26a00d1196bea7292c828caa5fb8a93f27
12496a638b4c5b1ec45b5435c8db03ea34e851f1,8295173f8665ba60a3b6df56581b280b448cf6f4,8c57d20abc119d71c86bf24088623dbced3565b7
3e984294181d96a590a814476616c1d3e365f458,2805e44ccb58b9c8a31864c6ccedccbcd024487c,2d2906205bbbdcc4769ea5587625deb9fa30c83f
ad8ed4b48d60ec8becdf5609d9b1a63cfbd1efdd,5066a7eb2464ad8d4a9d10bcbb8c848c66c63e78,217b3ea3cc200030e22b40831a479d5073bb299b
4e4910cb8409adc60bcb4e02d907d75203785a15,67cbb7032e1025996309689fc2fb3687c48b64af,4ebf857ffcf8997a3d5efca9c4f2ae2954d49b09
6e7e6326822490236e1c46895221212bd1840366,83f2f7bf375bd50366d8ae859ae88fcdc8ad795d,acdb65c2a33517d623d8468388f323969a49d946
bf5048cb5e9655558802a7f369fee009d33b57e7,238d09d875d38d19c2ff77a12a8b463ed4a524a8,bd6bbb6cf4fd0ba52c1447dff58a26dfd98579b9
ea401ccc826b13e56965ea4dbc0b79b8a01bb7f2,392ca81c20b781db7c33eba2b8609f71ce90ab15,efd58317428d3407d7ac5b5986f9674698a4de70
2d1ebe4cb3087935ef30467d6d71ca74cb8967da,07461d0fc3a36fd6071aaa9bd13f2d651ae0a74d,c881d057937f8146701634e884a44f58e29d24c4
abf831c430aff63659113e53150debbd0bc8724f,79f60923bad6ba4e0dec027eacf66a892375fae8,15b2f9a7b1482ab9b1abb457066d494f1e18b57b
2940d0f45f41fd70107d2660a5059f4682833fb4,346b57e238953710adbf9b576cba46a5f2e33817,1c8579da2e401ee0dfb54bcbd170130c0a653659
99c84da071bf59d35e0e0ec85f83dc0a2bde7bef,2102fbdc97e9cdcdb56bb5e549018454197351c8,db843287a2d21b94049af809161a9dab8884331c
bc76487b878e59133ce3c2cc19ebb13f9a9826ea,77b898fe45cecf6a52176dcdb86ce0f63b9a8f57,d37117c460f1cb65e6d750d9085f628a0dcec562
0bb781c92876ed29bb962e9129a4f9f1c14df412,6fb4b9b7dd751e41d7ef808c31a33e7810169c24,10db5ea5dc0093161900a4fc88d2905735c3d95f
a1c8e92904f3504fe6c3a7140134b910aadc04d9,8226233aa3f6265e9c29b120493fd1fff3e6b5ee,812732cb6ad97a11c9aa8f2b0767f8dda2dd29e5
5ad2d47e236b80d0d091667a665c6a4da736c1f6,2bce4d36db45ada7533f2e6d3d42d84d5b58b711,e85aff2b967839b9597ed00d613c268d1a6ccf50
7b3154911931d4b92c619c207e37194057c00b68,b46c010f82aae51435dda77ca93d91b1401b0203,e0ad427b6c83a334362f42f8d1d3782963f76fa3
82b6450f198b15bd2823554d47a275eb836c9933,b463f2a141166cc739f27e5c93c9274db683ad2d,ec0bdfbdd9235119d210efaf7243b0ce2c9decff
f701d2f29498bb4766d814265995bad14c68ad13,cdf1ceca765df8b62d4888981cc27f023978c39d,21fd8cd5d3f98ecdd2847aa3bb43cce64af8f7b9
c9fd115ec575728f9a8b3966b5de73f1477ea549,0c3e179652842f9f65b810ff64447aefaa9d76f4,99e449eaa1b34d4d45df59600ea65cd8c82b2e7f
f2abce7ea58decf10255bdfea14740578068dd4a,ef738f01cf32f00fdd58c7687dca7581fd54126b,0e647a073e5978f2e6aefafc0b034b187dbffce7
7ce1a7c6a0722dcfb6db9f2c2c3a0a54e4a5fc8d,6e7f0744ca11202c2defc6c7dfdd5863245612c8,99dbbcadcd19d4babe656949c20a5c643dd22a70
6e6c946e0fd1765f99110e12c79db27a400c6587,95243ed6ede742a891297e91d687bf510c9f31e0,f42817d1a2d3a3efa595c90d58aa82aa57f77cc8
8822be8a1f1c1b6affca58be1bf337be4c345bb1,d84a7d1bdedae4f5bdb31c406c4f052ff728aaab,f6b4a54f7d2de15793e3da1a477d1ef274f31cb4
835bc62e2a8aa887170510ecc2ebdadee27bb4e7,91d8009b531b61d41604406e3a6a94e92f1b9c41,1f19b113983906e1cbffd428eba4488e78b4cdeb
abd494624bf2e722938b14f2eb01ba91f4227799,4d571a19282490972e9434ec4059cf6a01fced72,2e5b895d70f68daaafe52ecee8a66736b055decf
c6a549eb487f3bb5b0578a56f08db35559764b0d,188a21bbfdbbd2c5c0a2b6a8232bf5da9f6ffb90,968e23546c6614cff0607478721e181800ac38b4
baf5ff4e05987a027d8912aa231ecd3c79147dd1,4fc763ac5033ae56e908ee263d538950f71e544d,d2726c240648a1db264cab515969672355746c97
177b38dfe9423dd714a99e9fc34abaa7f032df66,b5c7997c88f39c0803a8a5f48188848843f9cc6d,c1d8e32eaedd102759c3b5132228aaf493026b8d
39164ad732ea12af79ecf267172146569297aa1a,cc5ee6b868935bbc3fe22c349b9c312029d88523,4b39f7dea0383c96f62f381ab46f866bd8e2270f
026d23632aa3343756ebf454d4d0961048d34fcc,85207e94f8e4a1904a67ba2a3be06f7b69ef146c,2e3e3edb5fb5b137c79875e5f018e456fdd8c664
3258937d97b8ca6a4ea6b6556fe46664da9d65fa,cc2fa67dfa475710c57c4b3b73631a0f3a959e3f,c450b63f1ccd696c8034142a985222d3f01895f4
020a58b0750902e161a29bb1f8218052ddcd2d54,c1eeb8beda0df3f74741677df85259e86b0a789f,6f88919f3775a94c3df98f6b3d2c03f885202e03
0a383d8c0f50bf3ed3333dd57f295864fca02cae,5adec3ca98120bc2c4110ebe354dfc50d7095ebe,41db71c21c1c00dc83de8113ad0b35f5250ca2e0
3fb0fab410ac4c791227d74c1bbd8ceb45f653b8,b00c0e44a596bdf167ded7900b3ba71ea903591f,890b899842b741f54f5191ff369c8a97a89ac845
2e8c99947a978f8614d4075b1ee0d9caac4945aa,190c77e8633d185d983e3e59d62443bd443bb807,ab01b0ebd72c646b66a6bb3fd55ed717b9852541
494dac5db57f60073f2d538f66b6570b9fd05beb,2577180b935364b1a84ee8d38f8f6a42c0b812b0,1011c31a80e0ea9e67497b335a8293a49cbdecb7
9a85ac204ce5e0996478c0c4ede0138ab5ecab15,3989a01968ddee76110556f2cb2390da751b9694,c745ae4836a0f19a1733347f208d263d1a5829e5
7778d20003ab3b62779243cfde33bd0b129bb61f,01a449c807e4ad9a4142977ee86b16d6461ad256,1e136b0cc7ff37f900adcb91b2783962cf9d7622
5124ab2521defb4623b6866e4d5c36726ab74608,6599f1d898003773f70c24898419f4bf6bef78ee,d02921d66b14ea499ef783a834388be1322620ff
5be1bfeecad2af3cc4acad908fa649849a231bf7,7afb665c92e9e1787c518c1fbd6d205476b36d04,7ce19c1ad78a75d84765790f077f228b448129de
a5dcd1c44ddeac28ca8fda44f6d60e3b179266e4,464b3ebbed39dd87480513372caadb5214fb1e3e,f7b1ec24352fc4eb77adb23ec70fa47388734c75
bab60d819ffdd3c7fa6081634ebf89ee130cc61e,7110d1e48e8fe40a95738cb993cb06fdf535afaa,cf7ad98dbfcaf699983d813452a0a5dabe68818c
023f08d54bef139841faaf7c954732498e139277,674ed4069a2fdf69362353707cbfa08fa222d998,ddbdc529b1e3d99244e2d0cedcb20195c0fb55e7
99ab6bd56d4d60aa3cf5ec2680514a143da4dd1b,04a41fa5b08de0a837f11af30cfe9091c36a2830,fab4ca449bb6ba351500c5443a3e9c0567ba19eb
3c58f26e83b91e2d79e894b03403d469073c7113,074ce9c50fa5d97afd1ebff5720ece287f767f6e,d5867793f6d16bde39e0e209a11741ba8d8b0388
ec40db3da7ab1d8143b4276518416aa2816d792e,4752230c8f5f5f51774b90e52ceec3a142b3f62d,6bf4c7a68d2491971350170e80414a07e11ab4f5
7388735b11726d1263de7058d7492d9f87f9bcb4,b4bf371b34b19d4505b8a330a1b9250047a4b8ca,344da9597f1dc072a634820a9431146d0b7c60f7
8f68988aefeec865263dfecb29140de582470949,6c7e6191f64ac8cea36e963028c190263d8a2ea9,fd28cc0db04b00612387baba33f30f8e0dc3825c
d502bccc1b03094d5260f1494baf49387f674273,a925522ead1e0ccdbd0c77c57e2ccc147b61dc67,a4672fbd1c097752430017fbe84a26d702e43e83
cc3cbbb7b96d75e816f38a83abcbb08b9fd8843d,2c180cf101b6a49c1f8bdf462cd7b4e729600ad8,07413be8b569f000a158c290fa856365557c3dd3
ca9384fd6c265aa76a9ef59229b3746153e6114a,00d4a6889dd2f79981ebaef3f839be5354d2933c,236e10d03aab15949f7c2114ddc39b63cf2ea364
66b7ed45fd0f260e2d9d9c00b844e27b7b8b3191,6cb24a392959e10186cb0bdc9347ef78ecc53882,321764bdd93a675343fa0045ec22a1c2d62639c3
ee387f7c66f418a23f78a0b6ceb162bec71a5d1b,3511b8097269e7622ef97c9a6da7f0db8a948888,df92d88f39a81ef2ec20499ea82cfdee6df04df6
b91fc3a0d3409b39e20bf0e0120ec8c072bc410a,dcae87bd5267914c8be0b57481f355a3eb700f3a,0da5d57c1e54cafdfa4f2233a17e4d17dd5ff694
d55b2c2a35d9a30f4928cab612f02d70e2704fb9,4012c3dbd47f661805bb7a831c6c687807ede3b4,ea6529ff63225e13baa4e1fd2c193b84d1432048
ee10850a5793b69b19dc82b9c28342bdd0018f2e,08050086b950a6bdb5a04f6054d58a497f45d7a4,7e73e0dd2314527e9b9a79e51fdd5727e6efdad8
01dc62b1275ca935ab65e856495faf3300f6dc62,0662a0bd44c557d338e577cc29065db54b57f202,b3a9c36cbb77bcd8079505ee9f16b68a09307ed5
dc9090e67f48c7e23f7701e46427169be78d03e3,1ce2fb8a4acaeee52446e881f0da0d0540097b2f,9f077d4ac04479b4bc3e46a3eb8465d1916df5df
703ae75ba6a9d8d1c39e81e319e72a4fd19ef702,bb3095866549b503f6419b773fa2e65c0b88f320,c96e20378024002d340434835ac2cf912c8ebe90
4e3a6aa5a812fbd1aee6394f98cc4c2425032735,e018264ad93c77e2855f144d004c26873d2f772f,5a0956d8050eb4f3f54ba0d8b9fad41fea3a09c3
470e77a5725fdb0eeffa9475a14937779dce364c,6fe647ee3dd194e7ccbf230782da0c42134245be,342803532de444c5c0710e625bcc2b884193fc51
3094f756903a6c06ff7786a1fa972ff6a61de457,12a2c56461dd689b24756292d4f069e8e24690d8,d0fdda6da718e26af14c17fc9d7d0fd3d5bd9fab
7bef4d827d905fc57ed773c2aa70f157a573e225,7f1050464a60977ad6261a108e4e839bea8fa8a3,4610980f2e9ac4269074d2d0613290ab78c50bbd
10fcae34a957e94837fe376fa828815ab99d80a3,4b157a14988b5f0637e61b5555ca6e420e896b99,b58fdc3e584854a4c4fc02bd7fc23f378263d25a
c9d9d42f0e3cb3d413bb755b7ec11d99e5446ee0,42eb06f5c660df09a392d99fb41166ffc614e0bc,95ad8f1694dd0efd0774767b0a08b79dd53130d4
284317d877bb10d11ffe8f6f8d3cd34bd51ee837,fb7cdbefb3f14cd66a4960bbeded3e6a739a95f5,e657aa64317a385a5c6fb52bf6c752e883220eb9
ff3acfb8cda7f6a077dfc585cbe9acb0d8e34418,5a617cd1082e80008559a012673db2eecb6304bf,15865e760244be485772a53a6eaa09f80e5ca8ee
fcdbb31ec4f057f1eb169a1214f6c50a0ad5a90c,c4a1cdceaebf8d01151fc20ae3e3a053180db9e7,89d27751911d6904fbbb10660a0194c43522fc8d
dcb1fcd9b81d364660b9ca5906e7b2f5e0fe688f,e04df465efe7fdbdc8ebe6b812789daa0bea0e25,d0cc6494280732f5be8ccfaecbafb2b6b7fb0f87
d96600a02d1dd4ee53ffe9bd4efc718f906e80d1,b78761efd30a814d055d78078c3f9d0422ef6291,5b32c81befccea3ba64fc012e3e4216bb875dc17
7e4753bebd600951a76838f3e7c08f17d0e65505,e0a78c2485bbcce7fb5972b2c7ab7fb6263674c0,2240c690784bc6117f8d602c9eedfb23d0d8846c
44051b4af33b097a1069a0702108fc4799864c84,9feafc7bd73705fea94842a34ef704192350fe01,9423d5e390b94f34046ee030b5712e466950640e
716e8c8e8975337c2f40122becd0b596b3461586,8e5c2467e29e86222877085a43575f04ac1204df,c1d43df4a1e58702a57452499fc00898a1e421d6
f570b6cb7bb10b90a7eba22de9d4d10a09e83703,c917639b91bd8d0d784a0f84e6dc3c3789ff8520,492d75483d05af525822561fc8232c52748a24b0
7fcbd1d7e0a24bbe476d5ec4e67c458b742190b1,d708bef92f5353e010bb13857469c55e671a6e05,292be9029e729b03f4f6f2ac415d43ac90fdc03a
8e7791ac232d88f298bd3a5ed3c6cd511c48ce5e,e4ee8fa6a2b6fbebf8723712c63d9e0504d1396e,03ce23246f11b42ac3739f91e2f2433c66ef25f0
1b06599e8224da182c91896475658796826a03bf,550d0481b343effe45626780f047ed090a88bb11,9f60628e5b8283cdfce7e9f6feb7055eb4b52a22
5289aab4f2bff99cbc0cfac2d3993a7fce68252d,dc161e519f1641a8c44f289387ab2880d18e6c7b,54f2308d2aeca1b90a4ae98a94ab044149c167d0
802f24dfbdcba129c833416f1ac273277637674c,5db20610dd8dabee146efd6703a62c2d15bc641b,feb5bde09cf9cc79e26b01080ec9400eef03f600
e86d3af7e0036346c5f189dfc8c49138181f6d6a,655a5f526cd9697d5874e85727adae18e89040a8,a58567004b907ab6841dfc7d47d9dfea7e824df1
2dc0995067a410daecf4b6cd8744823c1f876d19,3ce6c478ccdbd58c04daa6a07a721ae1faebce2c,6404478ea444cda85cdf7f8784efba0ed6669ebe
67f3a7502d0f1100046abd87c5df2565b8d945b8,b733e21fd1055e821b9d9fee644e54c917be440f,65ef6f1f3726680eaecc2ae24a2da30ee249c54a
5bddb3a435103997b2ae5b7f6f75a4de994ec571,271ba59cf1c1780d8c0b120dff107c42bcfe1e02,bf5f37b14a4b92e9c441cc5bc2cd9924d3cbfb7b
e132ae2feed6ac06daf9e22f48b735841691188e,ab0079434302d85260bf18c420611bd1227aab1a,f66dd54bc277618feb9cf38d81b2651a4f10db61
5c55f1a16ee0c41f8f657f5a706bcb3bfc8a8f2c,4f711a8b2c534fa786922acd8453c49b40bc1768,b0c0309cc1c1dccfd11acd3284b2168d6720892a
793c157a9c69201caf0dca17b64b55ec06e34ed2,222a41be7b5d3eba617c8f0530064911fff84cd8,40196f4a437626044a4a40baf9bedacb3fc984e4
60623f39a1917afa3a03a44c7a8b66d6fcfa4f7f,0f1c4b4db8bae6fe397c14d06ac2d2e0795265c2,89aeedac1ec47570922fe219664c3374e93aeb8a
da899df6b2bbb980a2d047b542eee3bff03f4fa9,0b3fb55c6a8e75e869ed29cc1ad09189325f82df,f02b7508de42be8a2768036727447cb16106af0c
4825d2d16c2af3d3658e12637fb9fbed32f86491,49af134ba7e2b99153d51eadc8a190bea19f8530,53e5a4a03a6f802a5ee2217d326eb4f5af87bc5c
01e5f4855a596496921e45f3b098f86285097d4c,d255ffba8ba16c21a006d7ed9710ff095c3d30a5,5b4c104aafdacafe36495a89c4d0e3a8be62fa9d
d083cc7247bbc6895eded5624933114d1e90c50c,72661fd5c106a5bc1e689eef63ba7636a01d7d24,5921fa9a6285f501df028a8fb4e1d10bda5653b8
59fca3a01de11a06d304d72b74df611a4e046495,7b2cd0bcdc450b6c117ace262f4cd9d82e471a5e,e9acd759a4aa88a8ad1ff97a574f108eb7deef33
f60523a3b92a98ab693a37d3acf2a84dd0d321e2,7a15312b54869784baf92d15a459691fd6c8c419,06da0b3db6563ae317dfc108fe2425ca8b3736be
42c429bf450ea9f674192c0a0f4faabc5a0b9e12,be448e29f63fd5d5d2b4320f24bde4ec197ca895,f7239e03e7c4e21aea30ef17393a5303dd5d5ac8
c6874df5c8ffcb6ad97096e63b63afe12e86b08d,b4bd15a5c07ae81b0a7f7906bf61c3c6e6180751,77b9d62520dbc4cce3751fbdabfff0ca73aa90e9
e443936e12822b1466e9f0ead1e464742412202e,6147d6d8a02903b1a11d36424dd53b229aacee6d,b4c8c1da12f2aa006862bb1212ae540521604ca1
8609c0803e592a3e9cf2ab9c2fbf567fdbc750ab,6dbe71cd3000e8d396fe2a05e8e2f74d0c012f81,ab969e0a9b19820e57fedc21d18e0e1335e74949
1da7ce46de3829225c6c50d831656e46109ec7d7,683a92bcc8d791f4f23fde8205229b382dd8fec8,f289f2694ab837b414aa131a0514c56fee4950bc
cafd708b6d862776b7454e1b229f3134ccde5009,22cd8d5d62ca165e36c6fe39c9054d18322e51f5,abc4a0a4e6ef0c0622bf155edba8c8394fdec95c
30166f8eb79bd6a0609cdea2fd91559bd0a7eec6,67a1d52806449c5fa249d2c2b6e84bec4c9f1c6f,1e37eef3d240ff422ad2f92ea9cab6ebdc8391c4
273a598be86b5bc65f23c36eae35e88356389a28,116c861af6c13f6d3d0d0d91b6dc4e0c1eb88550,25eab57a582a022f3336e052971fd56d9d3cbfd9
d2447026de4165b06c574c99f54f6f646b897d88,2a93e65511cc09cd0723e63fd74e88f693a1c140,86c097086a23476a6a7cf73d28bddee86039cb5c
50a37d00e78c9b51b6eda868fd28baac87361d1f,2b7c28e41a496cb86ca5b59bdb64596c0bcb3fa0,3cf00af48df50812ef32e8bbb82eb57f5edfa61d
33cf86ff9f11e17c1e3dc78cd4fb503e2059193a,ea345f34aac81046f9865da1186024615e10a85d,c06a3f2ca3254b39718b1ea69653d231a0e8accb
abee4d46b668e5985ca49f3bcf5dc2b53e244f7f,15a5a62eb4a0cd3de7d8eabf394fd1fe93e4633e,e26b29888565c291d9d1bb80a99d02ff28aea1b3
5944631246cabaebdaab78e5ac36426b7e2ea51e,0bbfad1add6d76b4aad7bac9d6b2cb34b8f7fe1e,9c9c6cc81bcd2d99e54a7b040b1f80641ce49b9b
e5ac99a4c97b52c95b26829b6f62ec0029798e7c,bd226c00f16b778444c41673678b2ba6eb6e1000,e5df46722ef25585c66dc698943515ce95438283
acee4eb27ac492447d4dbde978f8989dcd292d54,89f9ebc7b7fed1af0347c9290bc8d657fab8ccb3,a8cf67d73b3a9421ec3089eae5c54e38e934161f
6e7a82440ef55b0e8d125e49b791ac8dd7ca43f9,bc4eb00a7a1d2c2050a8056d13abaf8656897bc0,f4e28ab357c786dc55efc9f9b3f5a4356f7d0629
9ee672f9eb8584c4d2de627aa131f6299711776f,4d33e5f137bce78e1d14a02cee370fd42e6adebe,d5a104f493227253eed8daa13f8b631366bfdccf
4966e9376477defcdf6f292a8ef84d2079c7ce41,6a9b4a1b13b4e0585301037c6f26838216f43ebd,1d4c28fb35ffe12a16ae79c8e6cd3c4a85b38c7b
c3e94051a18038745302b04dd6e1a75fa5153574,bb49c190afdd16da94cae4c6fdbc1e5ae4f8aa7f,6ac50f4100ee4c4e967dbd5754d338d4c7debe3a
088c746d45fadc744878771d586ecd42a1d75b31,9d95e6159ef7e9a88b50c751341e789db2e1033b,985e8d3d13ae35a53b3353ffe79df261cb8e5680
8e4e229a5fe9e8086d39bf36d23496794e29fe6f,d209d3ba846b9f8a5858efe1a261f793b30349e7,986a6feb95287ae33f0acbb8854327f43c6227b7
0634d5349d549e3af38d845d92b727504c752857,92771760b79fe0f30e67400b6e1f131287c621b7,32d6cf7093c086fc3e963880860e62509f69d0bb
fbc65314b97740a39dac494cdd1fe238554a43a9,a7a0f47d9802eec87bd1154c5abdd4a5251dc5f4,eaeb6148874625b62b5bb6e8e75f802b88ea11d5
cdf676c9b5334642fc72a5f17928b8280cbe6038,76d3a9c4b5a20a226aad427a61c87e12595e0139,7de854ef1ec86310c67192a734cd1114ef03ad26
a9d883ada1de38e0c6cabf8832952111ad56fca1,73287c35d20d3583840fa115519ca96baa659d5f,4640120dbd167ac8c800311e52f6694dd3c4307a
c59b6a5d8dfa4a20eec23345839d116905de03f5,c062061d6d16782c0e0f53e3fc9f2ad4bda0b905,ec02d0abb083a556a5240c27b4baf8a7dc606cc6
22bbcf4b27a574dd3e8bf1978f10f35cacf71b57,b407b67ca1afef62a10c9bcd06539b480250d580,5738a6ccf12819d7a4a039ea70e80f69432e3b61
a362c93f73148b505d87feea9e8e3c7ade99178b,a6921fff7bd15a4635d0bffc5f17df08bdeaa6d7,47825610b807e0b29022956ed8c6079f82080a37
69fff102af0e272918219f7e168dbc9f3df8c3a9,2e70bd7dcb7ede8d97c18582ce725597bb0507b4,d4e0a79d9e43686ec0584a87d57acff189f01d01
5ce96de0f2aa890496721b3462629ae99f3c2e64,1a8444087a70a0984f6e2f84efb16db0c235f1b7,2a7744df803e34ae64172be65946322b09748b6a
d93c7579deabaf1dc14abe1b90b91dd57621b16a,f8e04aad038cbdd8719cc7e72b850850c8983713,859ae5fc7c8d7fd43be1e1dc11284c455a176f90
9c20a033e0ba0c0cde2594a92d8f512252f50cc3,88959bdda78e45058714616f15d3d625b3e5b570,c4f9ec91c92b9d018b24be606b1c7cf74460cd66
bb637fa389d846893ed8e5b4d2b1fd02b1382ab9,b3cbf07f27bd59c1988ff5055f82dd1f092d6f19,9739a88e119f4639eaf51b0eb07a04b3a28fb457
ed2dca9a9b6aa989265b355d597a23302144a818,a87b38f7530f472401ec5e77aec73d37ab1dd47e,6010ece53248848dff792ee6af912ebadccb1efd
29625c71126cf418d6f25f7e868b40e6e5a24c08,c9e8bfd118dd79985f4ee8f42cae590c5268ca12,2c0f10d9887b676545b05e06e2c29a07d74d8fae
60c967f255d4116c784810a1f8bdf45e8f7982ea,35db2b2da3732abc46140a1b930a877d7bbe4aa1,fd26453d5a802abadf17a5a3dc258e6bea4ac632
d5d97169163c83545fbb298b812a7f34d5b7ffe2,c92e290d679ac3d7b46b15b8f3a53fbf59284cd8,39f553496995104b1b674d48eead521243ce70f8
92082ab28f3f7d4a149cf3ca0b6a6190c50be29f,de58691e75b64891a12b106fcc243a79b63f15a6,f21f7f0f506a66a8384c2300330e3235bbb68e20
b26463ed993e184d2e2dc2cd9059ca7a024552a4,e5472845882a4747c80ba6e0d7ceaff936c71484,181ee30174afabdb00c3d631ac4bda26c0c31135
c4ea01cf3d328f81311b2ae0118cf2c3944efe56,8bef91d1de212c03036d234ebd0ece80a11f1867,5cf15be434bdaf2cacca29270030a5fd0ca4012e
30a7199165e96728ee8ab899209fe83ed775454d,41d4e181ea3674581bf32633bdc90376513a145c,073b48de826c232bba310d8b05490daead429411
b2eaa4e701b6f3959a9ae94f116bdee092a56cb9,b2e553d3c403c2fc8994714ed998cc542c6eaaa1,ea812d1c2ea7994f610b30cd459c0e235f46fdd3
65880e66313c1329c4079e2be1a4121baa83ff21,4db332fecf8a81392120f58d42e84142161ab7fd,a9c67f22fd3c74fcdf352f11ebe861d0f526710a
ed2b73eee6ce40f37f52ad0d09d4f30421b6646e,f02fc4fe0fa850f574eab90ac308933cb8eb1485,ec96d4242a682926ef1df2724a9cea074aa69f8b
b297199ab6dd8e698fd8009d8c5b4bc26fb53376,ac4df2b0660b1f7896ab20d30a7f845f446d5b72,6299e94c8f99fa043920d005c4111d657f690e7c
ff0b560fe422caa2692f77799dd382e566a89fdc,145b37425d4af659e6d77faa75cc564c9bfa8395,47d7520b32b13967dbf65464edd65cf713477f67
533a11ec80671a14059c89f6ccd15be44f16f1c8,3eac88eeaf90fa5addcf7b03612dafe9236cd114,e9e8013316ed280b268485762206dc9c3357359e
bd82ad0d4166303b6ff2b0f43ba66d5fc7edebe1,90ebeb275a6cb28db8397cdaab9eb16eb961b835,b5ab81c98342cf824a8337be41ea15e1f5502b75
897f0e178414116764304b49b26db58beef476d8,a0171e433531aa21219e715be55a936ef9d5efc3,0e0739a64f4da96b414f5ed447428c44ad8155ca
9aac622dc91b8c9b6c9293c12901cf9f57d4d048,749faa42eed7c49def6323af3412831cf1e6adb8,6fe9a1509497cac3937163bc676693c832e62fe2
9b9ae2db1ad85bb5d9aa0aab7772b8aea9bb32be,f8b1801a8fb7a247ea31be7260c44e333d069a8e,c1ef0944572b0a38dcc30f9555cc8b78913896c7
568d4de77ec6088683375ea8ad376972e03d3c95,06a00b53c3ea8d0ff655a0b925c26dcb275be1e7,b28495a423993aebba17b3e157ea75e10f5e7179
2ed2c213136a4e7eede7ec2f4761f4d23bb27562,a6d6f938878d5723e8dff5f81def5d2392b0a3b6,f0748ad59bdff939e9d3c2f535fc8e046ec3a305
833a971877521a3a906207fb37e84ccbc9f27f23,c3736810ac018b5aadb7d54c6f6c4c41d1c59344,28964711d7941d466e54261a7581241a97e66a1e
c42b8c43bd8725ca5f479ba02124f9bdb2e9670b,fe39f9ca216b22ca75bf1f065b3a6bdd5fcfd491,8f083f6342ab8d193d5dc0ae2205bad4b1d7bab9
077a3f1892da9a3f493c321f905825a02b82968b,305e49c0b81b9db7872c2ff2717dbe54b92c8f3b,a20bfc07535f5e6d7d27fafdec826ed8de07ee61
bbece3e6680dd7a7a9454b1f55db125619f8e639,ba51494bd7d9f5552c91918ea01f3c9e02152149,5e148c1dca80849b7ddd9b51574cab821fab7a60
67d80d414b5d1e9b8cad34ce56f984c6c51de00d,2d1e420e54226cd68ab647d416db84f5fceee2af,3c91a7c01ea16f5fc9239b21636d4127faacaf31
21593942a16d2788103501ee1e2921fef90cedba,34630c2ef952944108b702134db3b99cf2ef1d2a,ff68e7b9de5045c67d723933985da998f115efb8
44094dba2f96fcc6c252f9c42398b6740edb85a1,00a287e77d4917662b5f57ff99898b598c3fe996,b048ae37b20d06da7f9beb52dc7f50c9d2bb4fde
2c80b2419ead1870965686bfca004b2a7315c0a3,92a0640bcc6ad53326eec32db9cd8353f434e777,4da4c96349d205cf99a8aff0618315904f451935
f2305d1cee38e762aa2409adb9d01dc6751db740,ef4255c65bccc121da2f5943600e2bfd7c1c2ec4,ae17e6acb678406aa91a9029dd6a0857e5c90f2c
f7b7c39129d72330dcb4b37010f1f5b7f729f43e,f01c8411908099b369e7c0d83733ddb78bcaefaf,d2a2240a2cf9f00c8497c696155c9e0657a614fc
590c8786902fb712aa84e1e87351f0cf484380a5,e34116f7dea7c3f35da3a3ae43d14110d4c70fc1,2a339485214d53d5c37a390fc59a314413e192ab
7711ba610a7488361472f2a0bcefa52a573c653d,696b7b6f68d3dd75f870dcb5931dd6216640505c,bcab6185b9f7a02da1aea46893ce7a38aca43ca4
72e88a345251c138efa396094f0e0d5f145f40bb,7f1e420bb05add6439b6ae1028e841ad7780b481,3e26beb1edc839f05063aa957164b69fdf8afe56
094a353d879f36a3c46acb1fe91b56295abe388f,3444b23c9a7178cc475d9f72035a0b7530958bb7,2a5023508a2bc4ff3ba4f3a0ca16366d3df86db8
3f14a19d3e5ad546841bda2f8abbcb8029f79370,d198fc46cb6cec08fc91cd35d34c64e182e207b5,738a0a35de9c93d37368b6ea796372e757eff5d1
1cd8c249b1cba95a03488989ca6eb82232f88608,4b88fa8e3b56330086d17a01fb1f836d97dd04d0,471a5eb4e01279d5444dcc9f51f0c730e309a889
c85bef5494f4ca409b37791f96acaef97eabc7b2,81c8078735cf79755750e39e0a6ad2159ae61ead,665c1b396670d57d6c595bafeea3aa732f52170b
546455faca05d2827398cd0f2ab76ebe45de5b1e,01142f11d7f6e50b6b80b75ae9a611f8fc662d78,b637a3a022e7f959f07f9c60efb619621890499b
d3722861599383de61f0d09158917a8aa691553c,9e3f64733359a6ca802b5e913ffc4c6626746ad8,6f749cf43d6bfcad745e6639aa1b5dc09e570c27
33db5200e62fc14f07a000ca92afdbeb8f4dee0f,8d864559b7014df07a9fffd16e0654cdbafdc421,2b66f60a8844f45cfad54fb59703b4c332e34171
10191477aef35b233b08ccded1b8442ad763c156,cb959c2e6fb5911c74c07e23d00346902521faff,ae892610080ecf4711f1b105a6464ed06ad639d7
554ae218cacff3de526f7f89f8f1543613e615ed,61f9bc35e97e554dc79f282dcc6f8a89b1a1a3e1,853f8b2202fc70820e23a7cfc4287c30f7dfaa46
01ae235676fd3e5d3197e0cd2edd0c8c2e06907f,ad2ac98858f5c422ddf016b4941a503090b73792,2f28c5596ff22f288c64a297c30b7d33a7efe284
27fb9086aaa079212cf225f194efd225e54c50a3,e0599bb231c48e7a039e1703c09f6c6ff9a62632,e9dc638a76649987bba77eca8c789ef49d6433c4
68bc5da3a23dd74a2fcc792f7f12223855644196,60919b497934d50e039c7a44962f101cb32f129e,0600287c638a5507710bd600e334e437675fe959
6df2eb5fd44a69d2f9e8f663c8a4972c3cbbbb21,5e0d5cd92eb51686d5299ab62f6ce3806af8b93d,be2c1c751df2f669920b3826ad495603fee09463
b1a72a86e5b6af44300a19aebec096df00000e2a,50b6978e681268a2ca80d62e8a7d274f65120719,22eb1e099fa15b018ad81c0bdff24462190b7afd
e9ee0a0be3513d2949cbd1b120f1b0e90d896a93,f5de329076217765e1127c424c52837a572f0f50,a9db41f1e5715fed88916e4cb2a11178af2bd10a
6421f2c36bc406e30f732086588aeefd9ff96fc6,2099e35d826b5336d0aa5e1717dc6339dec27cf4,c785fa4435a9abd48c8e338b1935cd5569900542
de9880375118fc0718080b97bd61090353e32fef,fba3da47c6c762c7e260f89bba56bdead6c42ba7,ed520548be3ee7ec66e4dd909c0e61978960d7a7
59c33d69abd815c2ce7b1dd4345f6c99b4391570,fbf68af60533634bd627ca24a9a6b57d4208df89,6a56ed24abc94c040a1c41a7890cb5fa44e06664
2f33c970066529c482f37a6a77a11b01bb7fdccd,6ea0050990e5786bf369dc68b0971f433e8c9069,c3ec62878eb04316a545fdb98553f5d71002bb07
16881556b915c6916a488334328d586951d76ff3,0e4188749bacc70a7d472f05053a90a1d0ee620a,8512d7ac8f47e053ccc02f042cc0607f29d6c3fc
7f3a5eb9abbf23c97b22ac93c287ec7e228f0ae3,943da88ddacfbad9b5d730ed61c59cb31529e27e,702f79ec8cfbcf1f077977f595b6aadbc186abd3
c6aba5cd8dbd71f7393b1b52ba401c20e09341c8,4718029fe07e813a2e61ece0ea9bd6d3db3d0bac,90844c2027e078fcc1ff6b8d3df911a77bac2ed3
0978f6ce16085662bca71344e135cad6a507ca49,3da54dcf9f87336887f592c98c0088372da876e6,96aa2bbf740e1af0e814fe6d07250fe06af9d510
b1f85792d7a7aa90bc2b200d3d2db0c97875fc32,9813eb9048a413d8cde171b9e2fd558da1e3a46f,5ce9353d58cd5ee2679dc510561ff35914329daa
4e28962115ee9479d465ba00a1db6028d2badb60,57107c331093212fa5bc0d8fc865b43755ff3f12,7ff393085e3b1538a1c14f3ffcffa92a6b4a6c73
8120fb8b774ae89bba6a3d186e4b7723a84ed3d2,54dccaaad1a768d2028bdd7ecb238fe0e5415bd6,971d7baa8a050489fe3f45db09669076d2c61b4b
d29473154267150c65be268cf070941573a58ffc,411fa298ae03b9420a722ed347428c27ee423c29,a8cb061a5063fdab6cd5c1a92d7abe5feadc0c8a
527c68b6c3c9a77318768ad43b1558278dacf465,4293d4455c6481529846ff30ee7f50a19ff31bf1,379c1414a7088019cd71b98ea36353e65bd9e8f5
85c648e60318526bb63aa57dbf3c862805717606,971b8b9217d257dba56b7cdac22d71492fb6a7d5,62f21ae60dfaa4dc6f37972a03ca9acf33d0b8d1
43b4b343950aa11420fac1471c4d3a647541f2de,b108608b2918674762ed04b436604bffad4bd58b,6af886c2b961d5a4ed7772f81d6348b8634ab385
78535bbcd884a550ce399bc6c0ce8ca47017b45e,229eb93e72156f8d7175c3ae379087b8a46b60e9,b7b495a679e1ed166c6f99f1247398d3dec5dd4d
366d1332d18eece8de310aef2b9bb7af07d12e7d,5f3749dc49b9a7a8d68af715d51070c8903d1ddf,627fb9a25b1866f9fa30658ec7962f4cd31ab145
5075198a8b76034e5b5c36b8d783e276c6f11b56,2f1eb9be18338485bd807dd03ea602d41948cf6d,ee3b5f5a62f09a33031f5276351bb1877ba83b5a
9f3dcdb211ec3cecc9013f45e811bd0f633a7072,f62ffa74dc5eed4acd756d59cb891a3bf49f4eb0,4d57dee8d9e98e005a94fcd744aa3047a20e3a98
4808ed63e3717bd68a3e1fe0c5bcf63463016e0d,fab610a92770b9e5c3cbc8427c88fa770821e414,236febb14891bb2a46f273f69aef5cc7212982c6
f1bcd02aaf66b7eeaddc6173ded485938f8335b7,6cacd9c824d34c42f71977b23342dcf2403b47de,02289d1f5b986c96b0843110de46a143500f4c79
40418f5b3d5d69b4c38fefbbc46d353b84bc02ae,6f24c8b4efccea67d092062009f413cc789a052c,b1d9d34665ce1f26bc1b95a87ab085a6bb3530ad
559fcdf73611ccba421b988237b062ed84a5e287,98a942a37e4d19a3c85f03c3fcc01f907abe3ef2,4053d59a2c9745af6f84fbca70293cae81a05006
66bac7c415966d5531b9b1f020147b522740040b,a5f3040da528a76bf21187f647e15c24c82d980b,c0fa45dc922b2ee1fbf6d63782e50f8b46c162e5
76753438edfdbf29d3c12c6793ee5ab9663eedde,22a4cc66ec7dc79315a0f63d27d2ab003f7777f1,62d5ddffb8b56411a06b8288b6237e31ff3c711d
6556d18bed27361321c0a2df91a1a6e126db2b36,e0e8620deda3a3b67df3a99a1f7b9951db533d33,74f95238064736efc2e83d349a712b8140f566e8
1fd2d3a83d2f3b656e2fcfe6a3399255320f5459,e87c52d7dc87eb53a11e91e2b27f55abbc03cc85,49edb0b60641bd52de8dddb80b687197c35b6f1e
9695dba4d98dcadab0fd972ed9b5b20d3323781f,33eef1f9b12f4063fb7c93c01f4b184f0e1e4ee7,5cdef8050bb607ca65845f79a35c95f3cae518e0
f832444eaa72854e53515b253914221095c92419,13055bb58a2ca715666b5f19a8ce4b507e921886,20674089bd3306c2b2b9bef14647e9c41c6499c8
aec7aefdd5a0beea97fe69de99815f350afaf717,91563115c42448df25ac313b4be6049e0f65d11f,a75adf542dc2e3c8c0ff80a976d96cc53d5598ba
a7e19e9f068422a4d6ff58ecc1559c0f5627612c,8d2d91d5055e27ee3c2bed9444241d4ee5bd6dbb,314d3579fc29303cbeed06286e951ae31a2ed556
5d97ff43fa4b34f88279ef6e944fd1874cfa5c0e,74ab27ae4717aed64f7aa12a1ea5dcc772582961,cf6a97c8edea0f589a46eb3b862ef36455c18ec9
067d96242c10b0ec3c24f1461d71d450d9d72fc5,d1aaeff832bd6b0ef20f1f38c156622b0939ac7e,9b280db2b12bd6fb201ebc967af98a1320ca14cd
eba76dd0526f13fd297eaea1cc0d6228f88571b8,46b52d92d38fbbda8255542e888d23f0359b3081,038230bbeaa0828d92b1740874b753308afb162b
816ab7ffcce3ae3b73fe5fbb0cf1f363a9efcfff,edbddec98a5e2ea120ea0217656cbc0fadd838cd,a6766d62eed085ed4ac65e7ecb81876b0205f11c
0ae45bd2cf17b5d9dcc39f4f4590a214329e57c6,54aae023ea2f4ee864c4ef3ce98ad387c166cb52,5acd7a7b83643e3c4f8dc96955906b67ea14eb8e
9432a550e190d0530971363b55918ce85c045d58,bce88f2e2bf76c3f979902aaa60598a0487f1509,f6c741ee73d12001867ae9a750165320871cc340
78f23a462e3f4d4c3be14d4ea2a83877093543c5,fcaea2107583d5afd1d2cf43e7d85d32ea1248c7,3d3c904ac588dc79441b0d9c29bd79b6744358c7
4add05c625395fec0a2eda897f3f3dec67f760bd,8bef28ccbeaa95f39020c4c954ba9bee9ee5c0a9,a73869b879537feb38206e95e3ebbadf755fb406
578ce51fc3178e9a6a1602337ee6626426739b5f,8184287ec0c49498f61a587290a0117806282d64,deec6fc4ba954e698c7e928d9d2cbb2724a40b43
fd125b506e5f69cd2d70d011745c73bb35f8bfb8,798a4d76117736af4bafb662ecaacf66f0c45be4,69d40dd17a37b87ea0d9ab6aac62703819652470
4f9c19d94334a8ae546c0e9e0aaae699f16efad5,ac89cfc6c705d65fa0e8a359d0a83e0a08a261ed,1d010d918bdc0d0eb07220f75ead869100093f1d
5198e47e36c8bceb2842570a7e3f4ec7fd8748e0,ddab39dbdc65259d388133c8a99f9ab028c0e879,a285500d3680b13c2c5795d99c51404764b7df39
1d70437017f8158469f0d91186ccfb177bdb15dd,812736bd416afb2f02c894259aaa8b74f88f9c3f,cddffbed58d6cf218eb0266455b0ae5c8bc806a3
481741c65b34f6090e319161eadfa4612f786736,a0d4cccd873a152308f0f917f636d17ed6d86100,9b87fb4a347a3ac3aef351440911b50899b5e444
e8da1d081a710fb13101bc265bc363d05049316f,16cb409fbf3004690ac9cc22a41e4d564f1e441d,1923c8a6117876ed9646ed0ea8a7f8f2f49123bf
27db63969a047b37e4cacbd5d1be12b75cdf8dd7,637645b6d6d534f65d56a5b6a8582507f8f89941,81fd3e274831ad5caab055f3066cf3751e96d4c2
d6ff4ed9673ab5a0cd0ec8fd4c1df23429755d17,06cbb6edc7f1c0964999224e64fdb21238ed2bcd,7f886cc4b0f57b41c7391a2e359b3db16281232a
9f47e21da3c24a06be2dde8435acd3b3a2d1aa72,be969205ad77a1ecaa8dfd98bcfe6257d3a07b0c,76df7144bae7df032872ce6a009b6bee110ef2e8
09625785114812ff5b3565d357426e7af2e537d3,c79df5f0fccf50ec0c18d580af898b68021d49e4,d8f06aa4f163efae1c2938662c5e816e25a42b64
e03b9205206455c56174029ccc35d27a0e43b61a,8817e896db8619b278e679b1c62bbec316a12f0a,a1ee4e04ed8b5410a10b49b854fa17420eea19fc
3cfdf000a2506431a9176e47aeadb1db67d7357d,86643710c438d759e902012bd98c90a9996f070b,f1cb5d8f71cc09bd03a3fc6a67a1803bc2265016
6a6a17717ac141abdd0b6f661f766010837ff212,a764c035b23b0a278afa3710542ce850923804e1,f8967668371d7b2fe86362f898745d1710ab9abe
a33e6230a00bde7fda922ccf94a49da79f0bff5c,e865ab4c3a52fac811b39f24b4572610b0e59a7e,d0bf7acc188e3a0b701c58f48a196bc2d8ded78b
1b393c80aad885242259470682078971d29a83a1,9a7a97175ef8d78e03d878b29ee5d48d24186016,ccc843f98319c4dc3e5a6654f4c20a238969e284
91481a5fae82c1995f41256dfdb08c0f278348c5,aa43441ac98ddd6cf5fcb6b6109775a4ec91ee33,4c8e802dd36a951f6925bb8bcf4c9ea043235f81
e8e53d13cde14e49512f220373c6ef2f9352e1db,fe0048bcecff7c5c9af3fa64be991da072fb1ec1,32fa0ecaf991bb0f8ecca00675a31808976fbef4
3ca3c7a60609c3dd861f4335bc8118a83f0a0551,90eabdd6b4cb82333039c102808beebc9df0a3d7,283c213a0c6ffb942860649f703b4cf8862e4f5f
8bea5dd41e86662f33771e442650d774af1a3d4b,6e4e3b85800d8f12fabe4527e4c13ec5002d9a02,e74797d41150a8b333a104c245d69a700da0401a
8c562995d7307608746f3a86d9354d06443b0c36,9274f17c527a2e785206282bd05fe7f4ccc7a01d,0103964250203de699636e16921fec85562f0b17
16f5863847120e1990e3bcb14948d78a04936df0,7974f39522b36a525cdfd730a5c989d78308e88f,e0de75224b17627c9087f5cad5180c43cf8fffe5
7c21b371051de1de1ca7891802b48a51a8d2197f,dc1e0a6bb3391a0fc1dc1b031abb454b0f1f4dd7,0c6287894b88ebf70c22f4c65a83e8ff2ab99315
3994626cb110c51bb87776f71fc886ad15c0c4ff,abfd975571b3fd59209717b7ec76e2740aa97507,66b471e5160235499f94848a8eed6084c86497df
e8b0fc88e340b1b288e9e31ae8f3d5b7847ab686,6ee4ee960e41ae5053cbce3cf1336d20e57be942,45bf47ee05bde9acb4c64b1c39ea0009cb405c7d
e148afd506194474790e974cad61118610935f93,f73fc7d566fc275c067398b083de92fccbf8a1b3,0c9b622a742063d1496cb47ff9b18db2480fbe31
bb39ec161058e23c3fd41b3fcc9f9c47adb20779,c92a035614a1c9866ca2daba28ae283974b68219,41a6c5e967abc1588e2fa9bbb301704555b31b7b
a76085e463af334c83a13341f3349e6ee29d396c,a76038e1d1eb5a07a2cab78044e793f947247457,b6aaa06f83f64b1f574f0ba41ac8566c2b5d325b
dbba2d2746022e583890e6ddda9d081eea30d40e,ca29df1aa9c58b951d8e2dbaa7b98a4e56563f3e,e2eadc51a3516e7945d559531ebe4bb7d9a26bf7
534383f6860ddc205294134f53d981ed1002dbb5,288871059448cddfb241a8a8be22854b5e71b640,907e8402ab8ac165fe0a35cc81d180db03df8330
3a095f5ed5b1b715f5697aaac3d1274ca4674251,ee89b7c9ec683320f2fa32cca9b46340a77b074f,1fce5121f3b239994a241d91508f928ca2052988
bf412455494aa6401c89ff331f89ce9dc1eff77f,1dd80d596d0f11601c6c834df19cc1916bf9ea6b,7cd082ba5fdff0517a53e8d711ef654c252b5b51
83604b709c0e8383329d3fc67c37f380a6279404,8c67a4370be13ff0fe91ca86f4107680037d1657,573f2c20d757f2bac27c023d421a81e028c5ecd8
0ba7ef98b39d7d34ecc34f36cb230f5f9c9f0f2e,d3782401347e6887bbf2d9fc421c2c658beaac6f,34ebeb15ed8e3ab334edcfd953bfc328c7b52b5b
1c7626715d14138249a4a7fe0e9fea786ec00959,b29b81ae7b610091241f2f22e53ae2948e114a61,09587d0c1b6dd5e8de98b1e5af284c7a51523d01
6a00f9f40367640fb0ba40f8b705ba93da7de93a,4556cb35d1c96f4d775a2ae993b0476453d232a6,70908b1449289321e48f58b71266fc3e4884071a
743d7c50d0b74afe5709a7f976af2cf3259ada49,9e7895575ed1f29e0493d1f6a8e1704786ff1ac3,a19deace45acd25050ecfe0c8f31db1255982876
60b0bc55354360e257aa58cab02629465f1f28f9,dadc10658ccc475d2f016d5c360d1172d1d66842,29cfa3b2252eb8305ebd322ce1ca55ab5092de69
59f293711a806f74b8ebfc175f64fd1f505af73b,ae457a18adb106ee3c91d3f6fda679a16ba5264c,252707a873aace64a0154f099f1dab71e9c58426
5a680f014892d09c531e93ff6c058731f803b84c,ad72542e9e3eec2f4ca704690080534786c93dea,f27b55e9b2730ea8b4c8b5a81143ae618cbd31fe
2cdbdcd5c56251e49e7c56391a8adb04adc5912c,dbbf7e7f3bf1c565ff756c97e91ee5df1357b130,eaeb8b70fffcd163dcc3945ad999649b6d5e9227
4361e36ce0254e4cda21977745ec4bc619952253,ea8e3cfc37b068aefe4c0cb20e3fc081ef043bcc,26888342654bf4e8679de36aa069118cc4a52859
3b7842c30e21d72345fbc4708523a283848279b4,492754ecca850986a256273918bc4006fcd63bf7,2372a069268bb381d8248207ee7a0484811f5b27
a27bc236a06f2dde0c4f8521f1ce0d3e2f75856c,0e142c00cc432cf238e33c7274d2c08b396bb605,430f1910ed39628284a38dc8a7d44e0380c9cdd6
ec3a04da9b8f5f172ce3563ee17b17cae393eef3,f1b166d6b8013fe8e9c192dfe9e3908c5b379625,ea659cbc2065d5c0ccc0dc8804eb02efbc9bccb5
762057f46d321c99d1cd274a7e19eca5180ba746,dcf6063dc3669441e4c0a2fad206f21b253f2916,a05aa25aadd53a6e9857e511a82158c782c61678
591c1b0177b188bdb18572a0b3b20dd1d1ac076b,3ef0db24047a6e5108585a9be8f68bcba18e4903,49ad3b0d2c03a4bbfab9fbe779044357c1e0546c
a45e5e7ab643ada0dc7c122c405a3e84078a9e89,573b2554f4ed717c9d6f8ebed7e0fcb29021ff86,e7ec91eca8b4182e97a6cb88f50504285495df6c
25e832940cb6fa76e0c365762f66c466a1e6eef3,51ab0d759f6138a639453a429216f0907ac8dae8,60c95032fa92ee43565368feb999d9c66e1d9c64
76e3cfc38f770ac7fc6ef9cc2a1720eea5b4e99c,5d02c65425b2cb33d5c3b6ca07a13c35b4dac90a,b456833b03f54db6bea77cb2f4df20c856eba971
927e3fd455e895dea7a8af31eeb5bc82c6f7d24f,706443c354b0c9db48f7461a15f48086deb5a187,2307dc8f26b202a6eef263f2e2d7e6d2ec04a641
4c8249de3429731be1c98dbe8a75ab5d9ec6380f,f9b216f99a3dd7822d9f3f112aa1ebb7c8590f20,addd0e7dcfd08c9bcdc1a9d636d75941cf1c8530
61f01ded6193cd804b04960e151725e53c8cddc2,f382f2d6edcda2ea561d522194d61a8845b596b9,fc94770cdb70e26d869c8a75e2b9bd70f171e692
9e8d779f316db1895795a5fa191e4e50c27ffeb5,a730bf2b003c3715c19d4fa0a7c56407e3760f36,da5865139840a94a35177e27297296244787876d
e6b8aa07d7ebdab77f72838fb3a36035c4d75d19,c13517634fb6065309eda729db210ea2af3b1e32,8bd1f196393e22d49f8bd281da3d4cf3c0926891
41495627876fe3c013abdd8e9f650be3a3ccea98,2ce4f0baf561ba5ace64b9389c9f156f0c618909,d45076d9d6bb0c73c91b9a615679d3fc277e7cdb
9201047f31ec67e94b578ace4ac6537db69fd3c9,71c58c7b3d050d931f624c485f762f5fa1e30e51,25999ad8fff58ed787b8ec2999e5963052b1699f
3a34fc7be3402cb52a436935f31c3c4ccb5a2d86,def37052f159ff189b79860a51f66fb97f3904ab,03a961709b0a41630ae65f3723df5470bd34d58e
d153c75e84df79e2765ee566a40e2e7b4af1e39d,0d8156fee9625e8d85aa67f2667b7bf77e1dbfec,5562e3e440991e5d1270ea81925c403e1425da4e
598da1936e0f95aeadea62ed77cd1eaae45f43dc,b68512a96987120e021db04cd15865bc91e4e102,c3f27a2f1c2fe0f1db4594aaa5d111eaf50dc78a
98ec81896e01c501f7215dd2a39f535621b4c4f4,eed6effe27a384a2455c76d41811677aa2279ac9,e28b76a64e197166d26620b550ff959e22bd0435
d92bc0e7606b7e1d207e55fca54deebcbba569ff,7822a90e209cc3f1cf74c0eedd100b2ae0f4b523,94665a40d760b6cdc22b89278c201ace10a0b57f
1b2d7755aceb4592607340d8703410aab776be54,c42e64db82d1c0c40a4b470d46bc70e3fd4a2477,d5a50eee8aeab634b763e2b8e9c80f4936c50fcc
d2a1f9cb200b2b2b7ee5219c16e4250b037cb043,1ac2334b593e9ba9d9b3442fd1c1952e8fb1ec75,a0b637530cd7b81d5587907e0867075f9d7fd102
c26f9329b683ec0beebc131ecae9c120ba32627b,bc6ab39ea2f13d24b8a53a177901cbf3fc689143,14dc066d6ba599bc2ef8a34545920266f956adc8
4d6e3b4e1a4a9a0d7eb8933d83c154de1f612a8f,b11434a6f8f8f41730b7ec49c21bfa613bb99378,90e43e055b34073fb92f5fd7f89a6a4ef790bf5b
b2350d90ea29de8c1009c8d1babfbfd9a25df899,9b16fafc526d9ea57209fa6d48a364ccb72eb1d2,b923613eadbb455b35adae8facfb479b7f9f3629
b2a5334a7594238d83b84144e41cb0e37d8fc1c9,8eb2cea3494b684c5e5591e12b98511636ad1353,ef15d3d9ec80213697bb2acbfba3e6ca0f8fd487
37b5147b19c893de4555b0760cc8df1aa24b0f93,95dfccbb5e35bd5e97013e0336ee6a95ec6b04b4,d7f1e56191970344b538f551391f36907e9fb048
27a1acdc7d90a8aaa931f2d011fdd6f28695bafb,ceda27ae256cb00987c9face4adfa80a20477534,aff2a424312993642fcaeeb34814a43ac6973dcd
83ce54b8153d6eb47b392517e3092ae0f501dcee,fcb5531fbc90cab7e998ce8eab655182d165ac50,f5cf8956c5622b240dd8f2013a983afdf5b59014
6a485065ba42601a46eebed8ab85705bceef3f23,2ce3656ed3e43445a41168015466e8490bc39653,a19add9c886b7f64a2371633e16cf8ac2e9447fd
6dc47c71fbd26f85458ed5f923e60fa109f76bbd,e28238da9b5111fbceaf4bdc81528ef4cdfe26e2,a8352f3e99382c195ea69466e2f63be2ff723a9a
403292a13151dbc265748d2119f9d1bd52fb9d54,7bad1771390cbc297580a4d5bdea5b5281a9012e,b2ea782eb4cfd6fed9a85619390793815c204dda
1ab6fc9a4bf25638a2e2364f8d4679025fcd3613,f6b5c513bb73bc476a71769e094ea8401eab13eb,82a8640111169ad62aafce0e0cbeb2fd6864af44
af9c9a826e888fa0927a1969c93bb90dbaeba124,7cefe8a822589c09be7d80381a6ef9c4cc32e3aa,94c87243ca2a55d5374a22900b59bfbdda348d8a
4193563190b9a25de40bd6803f58e3529539bb18,776c39dc0a8b7563b0f511d19346e280a749e9ee,3385ce92a2ce8a7c6b47b02c689e8b28b8fc8362
be39828fca10b355e2cf9ee514736e87157748a0,d1f035f456df43bbd068ecda33d2ec08d9190b2b,fcae0e311db59f8c545d7b2f37f94a343c8ac206
e25594c48e207157dddad49d8dd246fe59537e57,3e94af163bdff38073de96da87ed074c167afdb2,cf5feb0dca15e1898739352de4bc0028b831d0f9
8363c48863a1d8ee33fe1cecbd184030f86da0e9,9859125c7b927677e77085dd99b4b4b83df65ee1,eb8325300e523a56d4a11c8f2dcb16f5892a5cf7
2606cef21fc2d8d3679d33c994d9d5fb04a68def,fa5575ea549cb3b9f6c70c3d6429db41fa46864b,b821b9d502b1cfea62fcf2fa36f439eac09739a3
557e82373484ddb4b48373d7e4931d7b234043bd,4db653998bc84211acce9ca2945d06dbd2feb90a,7475d22154dd441e70e8c256642e33a1e6a42dbc
b900be6142403533e6c6d7cc2ab78eca1676b797,db980a5d18d1de83a9ceccad8ce9e283d58484f9,c910ec814cb6bfb0627142dfa44e17ecafc9e49b
4e3c170ad4fc325c532c2075dece7459b9682f5e,7cef39657f0211ce337b25aae8c0cd7901b03718,8aee781950f2333140c7bace9bd9c36be86af4d2
1bbd16d1b7d8c7c48348d63a5bcba07e32ef9982,078aa5d04677fbbfb0818bcd0b004719c742c5e4,9dfda963a3df7c62be5ec5c94de0b149de590f2d
ec9c81e77e0f39f2a5748fadac320f6251959748,ad35fc82af76c5460dce612b2792398bcc9833d6,b6c4592513f8a8295093b82c5293c2570003c33d
46dcd4da760057b54e5f5694e8f75408c33fbb3d,dba189f4af385e887d479365612d398358d9f732,8d90cd3e64c8e2cd348f5f5d88714ee259f05527
4144f8d93a7f63d62ad13092c72a290b3a3f967f,5395e52539816eed706dbbd90d3ef5051857bd30,eed1fbe38aad67688da6bf7b142e146ca34a2fbd
a9698b6f6ef11184139ef9e53c3bed8b24c0942b,b82af25e63e562264c0cf2d3ce5077a272129480,90305b6032926a4e7d19d8cdedb183310d56edb7
6a94d2683bdf2ff9cec4aae2815d079b592c0650,bf17a84dd28433d810b4f83dec7bf08a1eb52c87,972a9df03189ef97cb7de63bbf9af1e56f74cd6e
fcadc801638ae44193e61aafa7ec1a65630159d0,63c8e458bba2831baaae76913d61ab0ccabc4b94,1148caaece7a1924ca70f4a6db73790bb02c8856
5604bd951ee6bada9d50bc86d8ec1dbdd84e6948,a16f35dcb18eedba213c9311a76babef6d529dff,e66378ee59998ae15f8a3b6afae4f657d17d37c3
2da28054d4ebb426bdf6fd3888df387c4cf6d0fc,19ad26afd850fa79b4bd599042a87c88abebdf14,75c16b61266043673223fdfed30c543e353d4b6c
7ef33cf4b2857437662c9aaf505d824e3fdca023,425707e936772a859aa4e0208fd671397f0b2808,2ed4071c1e02e8374aa8ca5235df314eed3dc7a8
55482bd87644bcc0d813b90b4c67187695d8ff55,8d441929a8c725273d101a0cc3138ce59f9c59e8,90b8b9d121a3d60c65022f3456d896f68a472795
7bd1ac4507647dcc1b07f0ee09acd8676f0960c5,6e1d7b4e57e0317e53947c0f33203c28325c0489,c6af4df9b91312d1feac6863b934ef14794b31a4
f32ef29253f6f347c568adf4686de4e10893bc6d,0e9ea11859fca6ff4a40536c22f8c25483344252,5012e45d0482034268a530ef31a3e33c2360e1d2
3d6c53ee74d148bba2a3da49d76792037b78eae7,de650dea55203e30699f786b59cc811498c9671d,6c065e69fd17b5fb5fd7384f4ca97317cafb11dd
d2c2ddb337c3bea49c1fb5b6ad7408fa128b2d53,815b17a43b059c1aba2023ce866200f6cf887f2d,3a07aadba2db6140876ab58ab55ec7b0a6cc6d93
c122e16bebcaa76a8e1740d7404c1eaf56082a9f,6c47f8f4d79d3cd571e5d6526dec0791d2b2c8f8,b1e65ca49fca83bd215b4c8e8427560bf9083cdf
f5d76c55932f8e5ca2c267fb9b0a1a6abc3936ce,77e350b6b8dc61de3cba519b0f4f79b25eea9f49,f19b390c685209851873339a9c9f9756b0bf81c1
0c62ac9f1624faffca6d6505b6564e8b9969d3c0,e9b394a5507b35cff1ea969ef7991ee0fe2c6d45,6eede0f71f0fa802f18aeb6217d3f82b9d5834a1
f7dcb68c5a0173048e3a1fb2cdd1a2c5c0f3b761,89605f47c23776c423698a5b4bc2493060e3c13c,65b442567218f772939978849f85c497f96c4dc7
99074a557895249d03538e5df9861fcd6ae9a6f0,899981f318cdafa2e2e4764f0bc5a26889091ebb,dd5c2ea6e92ec1af35393ffc8ab83cf81fb80eba
d13a8671274398f7bc01e2a9dfbc9fd4b2bee4b6,59811090e1269d403f67bbf74d6288d4103eebc9,2a196899bcac210138cc267bb47475075aa07cb0
b5a71086e840fd6080d2d376ed43d31918ed1d0a,edf5fce7e33aa26cebca17878b42971c8da91475,e9594227538ce6dc537f25cf7082b5853034282b
cc260eb7b2549e88bb6c2aa0480197ee5eaf5016,ceab50cafbfe9b4b8cce092994fd1bf888e9c476,efd92fba01224190b6b225f487ef3735aa9c58a0
dd13b4608886c540135bf83d2992107bc03fdeb0,a401898139b7e50d9b6e872de949b56e4fe0e24d,5afd809e88788ea53097471a7ee783826475d15a
35958a9b6b927d8ce9b1d0002ba942e14c6b8422,abb7aebaba5721512c3d16857c78781c60259e66,33ef88858ddb65eedff41e3a1108cd6baf563917
6407b5f4db68d24454b0fbaaad864727b5c61352,260368ea557daad41a5395c9d08bf1f2eadfa2fe,5e7330448dfdf3974ebf638dc8837c87bf0c2e5f
bb4d3fda25e858b0f9153a0861fd8336c6007ef2,a135940cf5184c7af0b2ca1a7c72f58a45dc4f3c,6757bf3832ddfe5cc0fd488e98b20d5245fbe8bd
85230758e453f88ee2b89665f774994db443d968,b8723226787a98cd1bb7a1020dc0e73029991df3,44dca29926bd8364d5b013cbc6820fde67cf3e75
55629aeb19b0e7cf968d33c9fc0f465baba8f82d,761f65cef8dbb17867efcb380db2b28d1454e701,32f4931fd24c18db383d9ce156dec1a65c83d98a
131c1e1b938c14cd5a3892d92d20f2950b13cc3a,e7218d09fbf59d858cc952569537d739e93401f5,a2d7503f714ee8ff856efd8d17548fbab928f0ec
3f24bd38864d884b37aa4c8da025c51a437452cd,84de6a00491c1f20c7fc988d01197f8ae012af62,d6e8375e64516fd5e2310c8baf4efdd4420c6e36
079905654dbb98e0838a18e3d25a86b03889c012,85c7368759f5fb53aa23e03c8cc27c2deb424b62,7d23c2e9d0f569d3560f774da097ebb443c8c737
6c67798272308aee107d13be45ca61f0a7e5c12a,832b566097608a1864baf649e03638603d610ce8,8595c927a87f661700dce8391bfab95cddd730ba
5135b586cb692ca40e08114cc25cab5f709fda76,e5957b1ef0a3bcb7d6d04a24525f0a8634e26ed6,f2a5bf17fc9192bcb7ba4c53800e6cbd726c382d
3695bb5da509d5ce98ff59c2b0a76da714b61578,f9a4631adfa3ac07fb46811aaa847691e6de6be1,645fe8a0c309f3c33297509b977ba76954edc05e
a93942cd272eb048590c7e0ad3a373067853c4da,5a60eac0c816b8d4c107d5d0f751ce487f70df61,92e5ede3478073799ed5df091349fb4b90635e92
8a0498622b029a9c1150347f45a2fa310099a2d0,018c1e5dfdcf49b3e7d5e3035ddb089b3cfc2897,fd94b6db913cf9c38ee03a179ecc180ef52db711
29495c9ba57dce83d6753ed19e301855ea37f035,9adcc891cf8bff2098fd9360ae1b4d5d508213c1,ad1c19864d20b4fb311f8e74ace511a58c40cdc8
9061fba9ff2599442b5fd214efaa2789c34a261b,cebb47fe9aa7298b8ff50bc2963266f78ce4830e,c1db756617aaa5ed0477ce48292b44e1bb997179
4846bd78fb0e7f1199ed3d5f52b5099bb183ccc8,ed7b0c5e68bd870faadb6fdb8b24969cb434b78b,5cbb36f218ebb40c708c29b342ecbf43e7ffc6ba
4b1978026a3c63f1de96e8e310b4535e2b2d4197,f097d1ea353382bdab42490a2cc91d239de82e24,3a11ee9a14ae2e43449db6acdfd9e1312cde68a5
83969d3ba38ec2321439c98a7da615ee66b0e228,6cbb3d982d3f547ad09a73aaf5939c6092ae3aab,63a2395e2c552f5b983406f20b88dd364458bf09
cb96acefc93200a2e035edb877edd8cd5721c5d9,a6c7ed5e61f961a022897dde1d47140998466a23,f51798e449aa229723742425342b84f41025791e
657b9a62033085763aef3004e928f56abb9bbc7b,b26703feaa97b31004bf833428a0a7cf8315e1fb,df3a0af7e0574f160e3934175b9ae4252269a1d0
136022a7b2f24e0005aa966f84042815d6d50187,e746cf96daffc2365178a934dcd1eb28ac955f4c,b0e1867b4c2658568d72cb1d023a5a010d483825
e024fdc5d7a5ff55e3ff96ed11ebd921fd582d78,9848349610219cd0d2dadc67b112fb09a8317e91,cc7d67d08cca783f2d0f439b24285a526e9185f5
f562a8d9fdaccdfd630db4792ec4e0ba3a8d6e58,62a57bf82ef45c28142baa6f07d3b9b8873b7d57,c43f671baa06671d2aa86653f3925b9dc8f74c4d
d1d0afe337c11f386fc189630265b6142f5f734a,13fb30c52ef398c3c8a82c262ea64bb83567fe55,e21186cac0739d0a8290759c551a3feceb1b4360
68253e2a738a32d47259137de23d67c5adc1d228,168016b865d3d1ea7de06f0be713ca4ce18b717c,7b09eee02a70122b34747137458412f1a29ae541
c8fee693450dd3cd085a662952b4239483e2e1d2,5a6d9ff5329a79ddc330a4e8b6a59c4805a19113,af1194de4d5a33681608e7e745249db774e3a22a
4f9acc10f092a6a59a8c213ca29c08227ee1ab61,b8920670f442575cc5e981066c1512377d2ac50f,2187bfaddd5734e223948e60857b502909e80c8b
efbf5eaa01649749fc7f8adee03b63db407ec2a3,965bba5ab477bcfe124c7981e47f53457e718928,b11366c95b2c9eb3611e71919692eae50cd0e7a5
dbbb91705f606be92e0cc9daeaefeaeb290ad643,444fe092da1e614163712d0710f6f38b2948ee3b,1a66cde35bd76cc076e25f8c2f71426f333117c2
93752573657acece7e917904e59078ab99cbef93,88cf633b973ba2002e8f392ad0748b614bf1f1c9,123f196d5d4bbbac76bf1b918a6a0e4dda0174ff
1fc54dd8bbdb83ad9a8f82e4a16d73a17178b655,9e9b38d0cfc08bbc3c9aa873ba41441b9ea0afb7,7dc2a617882931374ba3cf12955d657bc4631bb8
9a760db57350c5efcf0521ece91c4157d0fc1d36,a91e547832499249ef916470154a1a2b31421ee4,f8848dd1857855256d50e4855725fae3aa5b4d60
ad7cc0e69d28afc3091c8b9a1e90175533efa9a2,b934517871cf6fafd0313b4ab408886cc0c2df60,6cbbf9c52aad12dcaf3ff5e44cbe19f39a5b7018
920e1c8d1916b723d2aa60268f1c6a8b5527712c,188cac3bc6dc666167aacf47fedff1a81d378137,d12bf094aba2667fcacbc7d4c9ae6ac2c32b2e28
32261a0f6d6a7277bd48712f13a4480c14c75a73,02aac653d2599332b70af2cb3433e8f5d76e6400,3e5f6d322853f4615392217e462a59f1a9c59178
1b6982107f1ac4b4111e37be0a3649d155a2bc1e,bb51ac77dd8ba9ad3512f3552515f5ddcd051d11,e2ade64a1e34f6374b9f3a4f1ff802b4b9a4c803
a835d8b533fd7ebba6d375602a4b5c981ac465fb,b150480c60aff770924e4ffd3382132b189aba2d,41b8f6a42e7c43acf8295c26acdd861210ed98b5
567244007ecf2a289cc6761dfd53c4db97bf0ee9,45b1d592f5a4bf280c7f1a59394aac2cd8f4a541,dbd8259c48e3654620507cfcac4f532ba857aaab
e2a26ecece15f944eaa327c30143bb55a4528235,27aa4d4e3495db95e396cf32746ecd93020f484c,1c86a4bbebf6bce1f14f2e3e17ab132fb3ccb8db
c83e6c34a90cc86ce1c3f3aae1da39d618793335,5670a7543cb170889fee2f3e8e65ccfd96c0b18e,e142953c6d2b796e833e441773acd51325a7ed77
dd0711a27e85d15d45dc47e7b014c6bcc3fbf230,626e23d89fbb58d5eb3aa4ac9532fe8790d1d689,399d82e1da8ddef74297867282862598aa96fd97
d35be8a9eac21ee762b452df1ea879c9c5699f03,2c51abf40dcbdfdfad4532f571e1f095dff9c8aa,2b48afe151a41943520040852a7d075968ff1bf6
3d805b8a9a2e9803f58ae40ce286b274877f2b78,a1ea1dd98e7c76d656a232e822d3d7c47063a11a,86547d35d78ffd26e1d0b63187ebc8472beb204b
3ba9cf5b4ffe0a10dc0874f69e0d72e5c77f7358,3fa77a4f627e5ce993c88be7849e27b64e7ae80a,be401422fd786e0c14b27340eef512f70d1f668d
49ddf159b26fc34b5f9a0385d1e82edeb75e894f,9fc2b9062da63731b113043f5550b6734ae0eea1,c75bb80b140536d16e31f140a111a14c18ae7ad2
a7d1f7d7712b7f8845a59937fc9e22e67a7fa5ca,35a57bac94046da556fe8af48b1e791d23df9c0f,e050a019a278827a3ae9c0a32cdcb2dde00ce50d
f0e31628ad7d584507612b2d7c4ea017532cea78,49fb1b4c292e3fe305a470b3a2c4dd52f6d46733,cd8ddffe426f37743c0d17ecfa990b5b9ddf442a
f18524f2fe32fdbb798b38a19d9e9bbc24fef3e4,e62cf5b9e7f98f8beaef2ab288574aced94b15ec,57935a895cd02101ae2e26701579133fb23f75e2
ae12a79bf75e2019cba48e94d54b1f5c2fe07f92,a1064ad8fdf5b5941c86eb5d94009a264e9f8cbf,6d3e3d06e2bc18dc15000093869e821a050d9b60
92cc78e723496ec16475848d6339bd8ddbcad9cd,0eee70ac816afaebbc567e00a5c18a6ee46873e1,3f7bf0fd70b339a43889898efa59af4fec33ea84
e748e4c7ab79a4dcacee4f106f53c5699d55dda1,7da9b4a98858e6d82f297b12757b32e62c8491d7,c40f518de4c9ee3c4e6bafd2ec909dc4ca286b24
a0366d7d28f806b3bf825d6613040e38d3bdd64f,342524c31234981a48e52659d07ff2e52cbd81b4,e67670fa70b7f92724ad4c55f5fedbb3b4231615
c5cdfbd9c03c0d443e5a4f4a7eafd5ea1c2b0e21,cda8971baaeb240bb7c5075faa96dd4be02d923a,2d680afab7ce6d66ee736c93761c82141229ab67
96f43001588a2a88d10cf2e2a8d5e8561e98a774,8fac3d62ce2a37cfc11f16ed5d47761c6cfd57d2,12c4290ffe114161fca1a0c5ecdcac5cfd7f87a2
3d2c96ebbfb8ba47349db24d327fb1b577ab12e8,92e60d210759a6250e1820f891c8aade6214ad20,3db1415a449212d8c3ab5a9085106c9f11acaa0d
95f94a279c1807554ec2c865ca045aa29bd9e5b7,1b08b89b7b552beecc90672f8ed0b1a858169658,3c2703787cff417098cd01d1c51b4b5cf70f2677
a714e2ff35e78233486f4549d646980ead04c4a5,19cee9b8415bce777f012d5ec7634497f0cd53e3,d221f42a578316c99fc74674b037e54725bfbdbc
b051e7667c5051b3ae9dd511ad235aea19f2c0d5,9e3483fbeb8743afdb32df31c859753adfc96039,36afcbf7fea3dd51e292b20594ef994f683d26b0
314f632377306065e939fb1b17593168bca3982b,827fe2bd83a9ee5d77b49cf4eb8cdc3ce0369859,822022186611aa62d08c8a328f69f37bad2dd38f
57466587c5470ed174144263608febae128895af,a2789d611f74b71fefbf8a3bc0c66f3f3ec3eaa3,df80d4e6120edd441361bcf9e2e64045ec042c2c
931bda56331fc2fbd376ce925c4c9923c92498bc,77f53ebde3c14b1e26734fc0a57629e5149743f7,aa5517d44228f2909b25744ed2fb90770d45dfe6
e942c00f8259a6d9505d1ed849b36399e9def989,71df6b83c64d331a3a7347f762e80755088639e2,d3abd339b7cf9b3c7e70679ee65a4732b56ca37d
f2bd099afba70273fb8ef60dd42226feda3808bc,3cf8ae8433acbc20e09eb6bee6c6e1e1000e6b9c,a0c87be0fc75cb242378c1029e5fc58e7dd41a18
c9461b73139c742a7a86af045212e08dea83c72b,3b43bd027c51f7914bc8fe7f938a7a21d58c1d85,e57ef24e37be92ca117302735b9e3584254483d9
a27cb35fa83d995a33f90474c2481d367cf6b14b,c21bf747fb3d5750ce62ef49ad5334528e2880ba,e7e4044bf053846dbc1fa692b9d559225e385f06
ef53f9bc25aad1cef20f3cd7e7e248dd5d172e25,47789734923810f9363f0ef384c2aca27171dde8,f6a8b045c2f52740186feca3d50c3211c74c775c
7da8c774be6670d6cfe3dd9b707d4e47c0a4870b,42b052eb83682e0bc5dcbb2c8d47e045c462dcfa,f3f9c68ddbea571e5cc95625a7a14fee620c09b8
0ba4cee279b0bd8b13dfa27ff9a32b6b80397d79,69c78385718462de06ac5af39e5b1c2829582bc0,170c112301ab3bcdba04a12657ae61dd275496cc
1a19fe1f033a7d4571f62a4506cf3a60d37e3080,84be45f55d92a379c237d76f7b2db9e55e0603d7,1b439134083d3f032eab1ed5ec5c016bf4be84db
16bd996e74560b716938e825ad216ff57b9a51aa,2a44ffe51bf56f86ad3043e9f578e268b860e4dc,247423400f0d0686f2eaaf5de7d95a99b258419e
9d8fd6d55e486d7234c597a89823e0dcafd91331,7488f1e3f886d215ca392e47bb7c2e5754c18985,a5702d89e8703ed2e5c4bdcd246ff9421fd551d7
170051672181f66a9296bb6f8dab13bfe0a03de4,cc27576339115108f045222df45a8acb3d91723e,a1a2549cf10e38b25c8f277a41dc3ba409a7a1b1
96d4bd19ac815bf860541e51249fef93ebe41c76,c5f4a6acd0d48a567e2d11bb0041c92a2a8db897,487ca08cf31ab89695d703d45cc7861868251c94
c4899b5dc080d09fdb5ba48fcecdf1f9cdbdb5e3,7a34677b2ab134fab30a19c6bb6249425e802daf,977ca19dc013324096e5ef2ac6d9e2ccff824d42
e0eff8bd89aa0aa3d631a197f33863241c6b13c2,230142e183d986fc9a4b1f8f32b42816bef6be26,f00a932cc6fec80533ad821192d4be8266446839
42d91c02bdf7c57fb2df8887d92e0fa298c4d8ef,a1abe51f2a760d47c2a12641f7b7fcf9c634d4ec,1e83d415c3a2aa7b66c191bf40781d40e37e5179
bba1076e12d2c689b405b12f16120c1a46f9b69a,8ad7decaa39dac87fab7f37f75b7da0aea49b2a1,7854152304110571f6c1a950f3828b4aceded90b
851af5033fb80d4e19c4a7b5c44d50a36f456374,14466ee9d99918072db8982765e621c2de309a9d,b9a8e6832f8db6bee1abeb9e5e958de8821d949e
af04a523bb4881f106908e231b94561d889f2d81,e2905b8fad1750fed539e32f40cd69619beeae39,5605cebd462b2011437b05d12b320c3b6544736a
ea7b9c73f3ba29a464b2cdacc83d73129f4f8d6a,e1f993c363a05c12f7d54d9da46e7133431be624,28e7dd77dedae2b592eb3ecf7d3188b23718f637
81b22cc5d1673cee927fc645edcf8a90fd8a7f8b,c0893e5c160e21a40086e573dd870ccfce6e53c7,babcb631f8f24998899b6fc2112025a077e281aa
adf9f98f7c182131fe5f83dac16411645897f123,e0fef23d77e43c36d6d6ad474a21e5d1235742c5,30e0df384d5961c5525c70f2878963f04ec9bafd
4430422489633ac2fcd7c8833267ecf9cfbb9361,e19f60503b81a4752596a845e9dba035d4510550,721e988da2298e426c5ebc78205b2917c7169816
56006aa002ea57a67ff1d7b7c69c4261b6bcfe84,4e959de2c73a6a87b96dfac61334628437afeedf,3eee2d8ff34834d7f17f7970019db5e5ab0f5e1d
4c6338207f4b13eee54c34e67502630efc4d2459,5d7e3ca24005a3b76d307c879d76d05e99ae59b8,1d73dab2b0e61165ec2100a21dfd4071fffb2145
a6ddea87b7eb020c03692d383d9592dea2be0cef,d410deb7ae8f405e9451bd10db24a65ec5f30a33,4510945465e4e8cd483c64d316d1d43005ffb585
d7d65fe0d7b62c61f4751b896eb6ab9271d03a0c,7affd789045f9bf2a141cb96c50c08cc484e0100,430bcac389c29a5ceca7759cfca69454aa31abf9
b6b2785b66023ad48242b2a7bc55e445ccd48238,e1288897f3639a08330dea060b23283d9e455558,4b659175d9043c58f5fc78f3ef159a09167d45ca
32f8dc7ef5916443ececb9742d4ddf5ee8abeed6,0b6942de8ac5b69d48a07cca22539945cbe5d201,baf950bf76b7becc2a13fdd4d2814a744ee9b52e
1bb4003984c399f8a9d881ec1d1a231d907c41b2,6c5f9537b36d95ea91686af22b34c2087634ec80,ee0ad3ff86723cc14eac57aa8f5f625976b557fb
ab581c5c301090d6c68c24437af404c0a5962990,29bae2297fa3cebc09fd9d18a823a683aa67daed,f2d6b4d530b0e7f7429bbb1a7c6459f23ce36b24
cd8aa3f0e0716b44cf14ee24b4463f1c12b77de7,a641860fa84fb2686b1360723b13625f6ac1866e,51fdbb5524512dc3279d0cca38d44b38160b8111
f364bb6b112e7765544195e4d16da1f5943f415d,a74a35a16e236463207780120735d0501f922800,cd6d048588584e4a641de16abc7b857eba961e32
9cfe6e97a0688bd6321e4a42603e0a6ed0cb3815,459dc68ab9a7ff969a121ab5e22e18efe41b9854,00a5d30300e91ebe54ab99d4b64922d5e6e39850
69761839c0c2094d9ae69ae2d0283eb06d761df6,0b45cd95f745a2cfc485062e1bdc171984d68568,3cea1706e9208fb739b0482519fe48420ca520ea
4793447be120d6d3d9fa2e53d50b45b4b00ba2f5,aaa6f0d9c5ea729efccfb200f4ee0125cfa6c847,e77ec69de4f3db4d89f2e9287672d46cd35c949e
a9dca3268982c53b363346f2ccbc716b7d695183,8b08486fa1ffa3f84aa6715bebe98895dd83a0ee,4e8ef448eda713f0b54d8ff02b2c195c6f66dccb
5598ffc210c387da7e4e166aea1c018bf6b3f185,55deefbab5a5f3f203587cfdb1f065251d3321f4,e54197e9d2b5c595cf77d884fec32f0639dafb8e
ec28b7586c4b74823555f196772743fe9bfa3dde,789031a6e638a733e34cfda80ec8c355e2fdea63,821c22a38f8c172e3a6eca20e28027d86f854876
8ef0f590250b9d1f374dfee8409827fcb3020d4d,dfb8794d4d2cad05b61dc07402610bde5febf506,ea417fbaaf750b7e1fdf1dd1150416785501e270
e8fcc5343beea4180e7e1f83bef6e27e19dde242,fb9c7183716e375d2c35ef7ffe4e6d1400d62993,ed50a1941b9ecaa3269d4744fcc00f62261ca218
3e75ba52f32d1e826b9dce0c406f22628a1ebf0d,048385fd7f3ff8573ef72b00fbd02c20c21e0710,bedd4edc727d8f31b9eef0a40403b811656f5c04
09b435cdab4e310bb7d0f4d6e4aa0fad3e916ad2,e9ec4a8bb3c08c399fc5f674e07e9876b5f9411c,c577ac5ce9329a112fbc31e3360092f445752615
6bbb10e64d1f3c5e613e9242b3598c30d41888cc,70b0cb99d435314ec92cbf65749bd899e5d4bd48,22243058345dc952492a1846fb13c2f7357616c8
18eec3055e0b05bad8583a87dcd70da07c9fef40,3cae3e7e4861aefea93bf7598444b5a292b141b1,33dfb6cb4e38fbb9f960c900f3c57a8aa7faffc0
ae47cc2c88688f9daaeec061d870db8f88bedd52,64feb6a5cd3bda525fc0dedccd8d7900abe88fe9,7f41bb4718f238a86ab07aeef677d27c16a43c5a
9c10167b6fd114d4996debe4ce117b3df3d38a53,6e84ee580668f9df9fe5cd9219fb2f1858fe5d98,f79448a9ffff84ffeb2242e7ec442477ad6a022c
7e3bdd501c189f7446bf34600add137a2be25cbe,87ec3d6fad48ec2179019ba0789c8616ecb47e5c,71e0c12c88dea98b02812f8b9c6b15b766486332
0e05e908d54113f40a6d4ce0870e2fb9f87a5d6f,f1f84a292c9478a02bb2ea40b4c368fa15047e21,c7a0c0bbb4984f935eec3b933c1a00db7b511052
67864b662a9ab677d2653500daed0b40a49b28ac,d3ccd10674a7c3d3e4aab9025f98d7f71299b5cc,d06852e6e9b50422f9a7173119f7d64d1755011e
def475f889d886c05f8de0b3c85b4e6ae4f58e35,63199a096610f3d7b1d1dc07d1715357dccf11b1,c8b2a36bb1671e6347fe7ecb7312856321b608ea
b8933dd267c554ca4f5441f23f14a822ea6ecde7,b49c3fe4f8e3396aec1469fa072cd105a5db2965,3f25438d35d772669aa2ada696c23d51f14c004a
4d676cd6fa2995248eb969a7861168c20a78c175,811c68377596fdebf8bfcee8e8ce773df42593f7,dd7320ec137055b4d1992b5a0b65d4068a86d1c5
ece59f25341cc47a1f3c38919844ca5b0904af2e,22f1289b2a1a04c81e9421ed2a1d36216f0fb73e,a221f2af79ac6f13b4b74cab79037bda1430327a
8f7e61eef68f532103387b9d88d23dfdaaeb3cad,586a7d30abb173acab88226edeb9a2c4549caeda,3635f7cd6fa703a23ff6b93b5264b527b1846c81
95e5eeb2262ed56d2c617ac5e45a626b7a4bb3a3,3882066f235ad7d31ae6f90780c4b6fd6c7bb9ff,40f23030dc4600301936f826949704112feb440f
708aaa7b97f598f0c378578e491a6e16f5a4bda7,ecf2ad3e53c1ca9ce9486ba1adbd82c117a8473d,ccbdfa91505dfde79e981b12030205933e1b20b4
bf8746ed101c4603ea005db72ef9743ee8cf3a11,d7d4b446c147aa5bbbf485b4665ec9309b14fee2,a9cc89ff46ec68f37a1a0ffcf636d7a9a4cfba99
9e228ff35571d28049571bd55f265993f62a0c57,5adde504a973b765c68268a8f9a9910e13851b30,99b01f66343d9d28c1231953d186a4e5f34b3210
66ff7a928c665e8524160da6004bbd98e0889e0b,30cb20bccd1e2ad966d107c43da4e799463d0bf1,2b0317f400596561c986147c61c9ed7248c4a7e9
7909f00c834b31579aa4a9cb50c5cd719c379732,c1ecfc323ae3c259aa3c085dc7bdb2abb5b0f3e7,64319dc019b03af26fff3b35bb3cb2853e540909
0e46041717a2d5fd81d4a5881c50a2fcce8aad3e,839849085b397690e4337e22fa6f51ef1bd88b5b,e41bfa04951efd43e7b89c16594e994702d33f5a
0ea0b69a30d32333ffa6d336bb3c0ef7aebf8f5a,0d3ec87492b9d2918608839746c34836ba19d3c0,488c389b9b8e6bff675fd486d601efe17f3b52d4
4848327300b0580f23eed91842ea767e0cc60227,8cd10d88cc81868bce6f03f481b0bc83946d6ace,12bde4e9030c2c366b1cfcb62bf163ef77a24632
3ad8b4199c6293ef911ceb53ade968eb336c3478,466561f09fdccac4c599aaa1a337153773f3c99c,b797bbf5dc08ecf002c05c73ec1aec4adfd7195d
6663d5ca63d7ef3498c936bc35a749ccf66a2384,644ffa8e7ae3740c4997ac235a6675002eec4911,e40f997a40868536d6f49024e07f928052c4da23
e82c98bfce885e79fd7f9f10cd8d6c060bb1f90d,4143912b7287ad135e56b079a426b25277a22836,8f3cce556d7c3e3acd3205eb747ed58a5f9236e3
3855625b8da2d403825b5fb27a55ad65fd7cfa88,a807144ead497385572b4af461f240422a517ef8,2a4ca98e852939dc2337b66e0c88b9ddab682e8d
652f21b656cf37ad7cd5c627cf9fece13a86ab8f,4750840e89293d286db914f853154f2dcbb10b96,665670ae015eeb151e39336214cf7c15746b0608
e40996cd2c1a0719f324c68ab31cf7048761ac26,144ee6d51d302376a19099ba98af595c143b80d6,bb407aa135c73da8da59dd9a8122016625b08ef0
289fdc72c5e692069d120e45031bee68b3ca3f20,f720ea3a21cf0d65cd4289b9037f72790252c608,b53034705fda8db007d80a2a866a8e60b4ab3aac
be54d40660a006800d6e55c8cf5f0cc5d48aa84b,24acfb806428a1f6d2136210070022dc20fce15d,60cff917ba595ec388dddd080296b4dd10ad2c42
513ba3c733a23a945c002f5d5b673bcffa06e095,7c64bce04eed17eb0b594a970e38c56d79bae60b,094345871385d9deb3a9138f4aaa287c1f5600cb
46fa168d43ecd2f07bb101ba322d64d22e30d237,219fedfea6ee033ec68d4cd19447595c531e9d61,27476a915b81f5fce5486831db41a0cc3e669ad5
5d104c9115301beba82a7918ae61903cbd6f94ff,647f211aa5622ea9ff21c354cad5d0eff46fc499,a52b3522dc88a5d35c5084523ea5260a1dc737bb
c6effbd676cb27a2b733c3c0d6b467ae6c17f6f5,a3f441b590804111ee5f5912eb78622fb1de0fff,c38cc828e8885d50ee2d71b235c403ee98bd1591
c6d936dc25f443c76983068bf0718b9bf8cc2f81,8ae016fb85a071be24cf1b9de24dbf9cda432df4,c1e2f557f124dd6d00ac869446da0e9ad2ff74c9
5a123d33bab953b780933a6c310fc6217ff3e92a,d24548f8d8a26e19cd306b2f58ea5f2a62b6ae8c,484c178c1591359fbeef7cd3d9ae2092dbd89a9d
071ae41d2485ae3200aadc10757c741f71148acd,3bb2586269c876856a834fb0d72a09928ff9d16b,0515be62b4f9e3b7b9b82c90128489afecb6767a
8696ca652d6f9686f26fa4627b070fe1da589077,bc72021039c8b01e5a76ebbaf5a2285787c6e7e1,ecfff40f960ff65a27ea4cc6f72e21dc9e36b651
a31f37b5e560433aea4eed2162d2dd19c35d7549,fefa163a354885c289f9672673cd65dee2960df6,2005e3c0941051eed2f5d224f493059b47c40e8e
d74d41c5d217d32d2e81e0c65334cb7ac61d2b39,519a102379bf41de2a988f9c0aac508a5d384a51,b4ff9b71d318be9463d054b4c8cc998aadc8affd
c94531645a31d8bfb9cce98e6c8ac7c32e9e7eb7,52147baa0495218ea06c588d1f849106f480c4f3,9b8af14f47176d0c97a7b3b07e70631e8bbc044c
da2649fadefac495f3da024bf955aa889a0e5108,93438ef1a5f157d2acda458c15f5e074f9ce9866,33fb8874799a1c90f79175f108dd21702d696472
60cde554fda8facdd2f7d79db327d628a7dddb69,bebe53ef9f82bab6c8a6396f4c96d53d73db796f,ad69c6e1b5462769798f96d71d4327a5d6eab3b8
c925c1aaa6fbd3091c7917603fcf49cf7faba2f3,3e21d24098ec9822d0b6bac12cfd9492e8521840,a778fb2eaa4c793cd7f6f3c6d4a864dbe308184e
dd09bf64b39e402109394dd0f4d32cc97c2352bb,022d2804a9500d50cf68e02d398af269ea731291,c33f47a707add75d246ab1efb5e63a8f21c9ff24
5cc4096f41544ea8ff8948aa7e6058ae37bcf12c,1f7636612542d76c4a9163de1f126f9d654fa6cf,627fd6bce120c83fd3446f01e44f3cb147df8de3
3770b55ce135c7d2868b6e5bfdc95b17bd97ed1a,3b3a0a660cfd8427674a6d689172b4bc4672ae3e,48556ab039b1b2a6507377ba1f7148655a0e804b
e555eddeda10f75c367d6e1b0bb3dcee6b5a3083,11712658b0ee16f5df5ec56840161afcc1863613,2039509cfb7940fe9a912c776ec1644cc6d76882
a0b78ad1f7859efbd51f3267fc93fafbc9d7de32,8743f72f1134750b0522330904f57d7ebd535eab,84b60d3f001c642e252659e84923d21924da90e3
8b138aa0597d7c12f0a5c5f43564c5818a4f295e,a47a1c093a31e2352d44f94a37698c1e69cc5e23,ca0384172482ab6488ec7efa643c68c96a796671
9daabb2123594cee642baf50ea3c0cc5e7f7ab6e,8cd6606970c8fedda95a3411d684dbd57379b46d,f670ebbb280f5bf5cb198f12498e57ba1dc5bf0e
6ff566350cbc2ecf8615cae6cc6792939a288ec8,3d55ac9d0967620c1a2c196e2aca66cc62a95d9c,c117c0abf576dc47f01257751b8c10109b5c9c6c
e6cbdba0bd6bba9c4dac1333ce0405a14389e3a9,d38dbcac8f21d79c666649301216ec274ad838b7,8eea58f64901b97890fc5eb4b37427a55036b539
9b4366e4f6d565b0a1b2b2d105e350b0744b8d7c,95d7bdc3da9cd08954dc6fb12f8d6b2ac890a7d4,b891cef5d2ffd8af876eff736ec15045eb02ed92
b247302871aa4d46bee7e0d516a96cb8102732df,1a4b97a62a6e6569c3b8146e80d489ef22347df4,80c8575636a7b2e41f9081f78878d6399cea84ed
ad1812f90aa26c0ead768ab1ed32287fb9dccd67,15c95e0ac7f66c4e21033d9e01c1328e00ea2545,c22b6c10b7a29b5375e95102e43ec60fdef32b60
f6cd75add97afbc45461db9befd4d47325a8384c,aedacd916089f2392d89dcc9d5a6c0e2e95fc53a,0f89852908219e54e76a72bb21e1847305166d52
4d62764fa34b7c0fb8a4699e689e3ac8a846ba94,c6b059ede6d90f87e4507c0cc4e258ac8b4461e5,601c8f9c8b23db6102663ecee9b1a697b410bc4b
c67bcf003295d9ba9f56cf06450050e528c3f305,2eb3f5f0b84f60daf562376b0bcf0dd12776aca1,ed748a65b49f64d53e96adc2dd485e34f550af3d
9ea1f6de197d554fefa42bfb2b29b76918460408,0d256f517f57f80933f3e6305e38df55d8277d11,f410d8a77c0e23be19ee87c33fc160b738320a4d
87e49314892e33419c0104dae47ab463bc6e6b91,be0c92c65d684fe637575bc9187273c5883252ce,9d893b5d0d040194bbbb2ec220e03ec5f88f759f
2f1ccd6f2a1451c13f16851c10ea8435254130c0,f800e405958125dd1b05c79dd06617b0860e3d44,d5a538b5908065ecf83b6f5e74625a5eb85393b3
08dca09c7ee43e2b73fd98c319fdf54934a082e3,0b7a771ca945dc531060e0597c8f1e69774a6451,8382c6f5860949eebe1e6e6aefd156c8dae83fad
553cee72eb0349e50f1430f28900fa47c036759a,8acf2e3ff31df8b8396ad0f416df9e1ac221a9b5,389646adeed406d305c0dc7d13c7133ca176963a
322befbf5603040e68207d847ce87f5dab7917fe,c482bafdafe17ba5e23e292e1127e6f103444ce8,535107a700c98bb89e23332f2465f5b896fe6e1c
1930aaa340a808e6ec530093d7463b157646646c,188fc9c11281018efcdb567895f6137a5862552f,76474c85bd7b449a233d409727a53e71869f3c7b
bbedb958f61b03c8af63ca52af882115d051ec71,fce34eb4bf9a70ac0b8a9a5417f0f7b327b8bb37,edbb865260e4033930f266b2f453524a68c48ec9
5c792c438db1a5dca3ee6539ecf5b1c84e52e56f,06f35ae04f229e4cdd54de4bac67e785c043a1ae,62cc594ca469388c8bb45cadd24e73b21437230f
7133ad7ecc46700618193adff85cef84682355b0,251af216ce7c63204152c8cacfffaeab899c8c82,34f1a3ee280a5d2e1e9aff4f2f39c1b9e97c771e
f721210638e919e910d340b4187b2154df8e835c,d97d34ee9c538f4d9d9f0cb4ac1b2fbec6c91deb,3dc64dd67ef64da854e08093e229719ab1e3d49f
c7776d899bba809811549d2dd99b37b80fa361c9,78025d90b3ee3aec45bb100d2bb01e3d931391fc,a20e8b9a3d1c2bda0b5d62d50435a8647bcd7105
c994b5efe8809ce84b3ba52046c32fc37909a65e,78c0c267a5c62e1bb773813d24d12717256d2ca5,1e62913183eaf9906c5ebaf98241a7e14e45dca8
f47ca0c5d102655f5b336f04594f2cc15b9bbe96,92f148e667620fbdc439e5baa13c36f8a66302cc,2cc319bb8e2d21c61e051f77d8d31f0704275289
79d1fcd40d6ee362a0340751051edade7b124027,0261a025de8b59a41b3c43cd07c30d81a8e59567,486f3a0c7f7884895a0e9742a1a3ede419f208a7
e14692f59483e83b1ac55e9741916c93d5699582,21b135a6ecc49cfa6ed65ab0e26bd14aa04cde38,299f942d291fbeb2c3b6e6e653ae57ede9b7e525
70850835597032f7fb37777bf6fe44eea3b0d16a,d3cc97655125c9e8bfd6577c29ad61e3f4ed87f3,125bd9d5e91d67849303f33f47daed55130208f5
a6e0e1fe59ddc7349d9aae062fa264cc215dec7c,28a3223b6b017dec23f867c8ceead32d2b22bd72,d3111517d5cfd1d044e619766e37c3312ebe12fb
fd1f7b2ef8989c9da4fc58adcf90d29b0df6d8c5,2a83972db8c644948b29e3eb745f2796dd868af8,6ffa258abbf7f27a213cf96fac2b94a27e591dfa
e4d5de8d05d4ac260ac9d9c451d176486d88dbd0,2443fd0ad738f0f3232c779e9d2c9d7ff1072ce3,ee97c0ca03cf35ddc2ebb7c7590d57cd7d407e14
b8f8a1dd1f869bd4a09e571a766ccbd2d641193d,699db16fe4d81890f6f9a0ebf525624f34f35245,dde19c01441be3aec285967d6a9aa279332597f1
b49d58a9fa9bab90e1b0501584b0f0d58f01b0dc,69e775630ab21b0a88a13bc5a502a4a96584ec85,681a00a76fef57322c70428202c0dd3e9b68d556
2949d0b5488f58f8fe9cae976a9c3ec00efd30d5,1a410bae128760633dd53f721c7a4865f1d80ab0,82dd70e72f3ab33b1b8737f743e1cdd009d9c8a1
9440b17eea324558acec52a25a1d9fd020ea0408,ffdb789a49f3f5874863bd35bc477a974fc2e267,ff673eadac997e39822148a313b9d343ca9c40f4
22a1acd610072a1c3b57e0a8d60affe0aa8b4aac,13346a42bccca70bd5bacfb1a16021efdaff2879,4096d9b74f2349f9b9b8e3103c02c0be11c70926
50040a2cab9975aff6974bf462a0e2635d9b84ca,1be741681648796d41bfc5f06da5ef26d4581541,24760621984e934604baaf60f7937f0222dddd14
49d66b8f2018386d7512a5abff875efe82ec1a88,35e52b90f5763f65bfb6953d4b4bd0973753ff2a,a9f3906dd552a0a2e467f3c0dc0b40f9f55b306e
dd586da7093bac753ea54a5a7a1ce72a64ca919f,fd0f72303beb9dab2c170cf89ab57e45d7a7514c,2df57e117b52f4cc72b00837141df6ad18405cbe
3b455c1cf2ed22fa5a645aebce67fd1066970e8f,cf4d02ef92340976b686df6b58ceef8965fcb77b,63f91a768c34e0a7cba88de066b9bef0629bbcb1
63642b13c8876671ba96ee0747dbd8119aa4b78d,67f89afe99faebe50c6177a2112aa5c56f676de9,d2edd6fd2f0bd37367b396d23c8c45f9a28c6f64
bcf77c70fdee6bb18be5dda3978659cc8cfe6618,224a7a8a5448442da597dbbad120d46e7b24fac0,fbe64536d1b6bd12b233ba65976f2faa89239782
c96641f901daa34aab14f6ccf88e860039dbbaa7,4f7c2890299bf18f9ae0c274f1eed967005f2799,803a6fea24d5dda205849a092392c555f9d39338
5e6e24ec086b5d71352012f55b713d264f60feb4,e8a03ac8bc1319da1cfac4e3b753066bc83d23dc,ba559329292b7e06efb9cc1b22d86055ddd41a87
f7e4c0f28229269a4e59aeba7fab6243b9eb0e2b,ede47ffea9fab9f2bca9c7bcdfb9a5c6c1f63b7a,dec6255a190cdfb47f7b82167ef7839e317f3bde
a37430c245d8ad18303c18db03d3d98a3061be66,fff60f9f67aafedd5369c1f8297ad56235a6ae02,6ff403139875c45e257ae3f4b291dd6f8254d1f8
0680ea46c85c1482460989a78989cda79f1dc89c,1a26c0ccfea520bed7717b1f72aa5fec6ffe464b,df2488ea6e9f0036a73b18a9375b0e3da1e8777f
16b14c574ee9d97310968fdbb6bbd484ce1dae71,da4980c4c0fcfbc1e588064fc638c63d7a201066,a5f1600275c7a82972a180d1072733d55955e1e8
595402cac7e3e60ba923834b2b5ebdb21f7e0a74,089e7ca6c8a1cfb24f80383afdd26ccea01ad2b6,84f0b94549750466a5f84fc63b9130f865e6b4ef
3a85a5a9cf7e66c8ffecb22e1abd10f3b5376693,11b743fd6ab270a5c34f65ad1a133892d53ed3fa,8e66041b7902f31a3d741ebeaf8b321c2990d171
a3f221e189506777dd25308f67ed457ad121352e,6f5c6ac4107526e2d0856c715208ce4fac011fc5,94cb1c3a49c870888ebcec5c84bba9e42140d4d8
922893ddbb7276d85159ea0ef63f7ebe8f11c2df,c97fa0a05da6fe5fa6e630b4054509974a624bd0,3f4c41b45ffacda2defa96b3fe6df84f3c62e448
e318348372f0017a23830a65f217fe50ec5c5316,267b99a8aadd1517b6afcdc81d4cde4f568e5903,6aa1f3686e3e557bb1d58b1195ef2080416272f9
3892bb265e492f693c20aff1c369c5f186cf0c8a,c48a8ad31fa9b549be358497a7641481c1d98581,3c19adda78114804ebcc8d923b155b43f229b99f
e0c41ebc5a882278c58d56311e9180bc6720c301,ea18d11d410b6b6cb8f98f54cfb9fc1479c474b2,bc7b113e09d921871c1ecb3c5ad108ae7e8ab010
c2173185e7996689cab3b5b41caaf89760b78d73,d911e462b2a85b7160400ce36755003400584282,c4061e49e61398ea21466f63d6b1430efa3b7627
edabca144788a9651c22e624301346aa95b1d9dc,db23f54f8ce5bf8f519d0a7673476210fd747054,0e39e7c12de0812c6daa343796c4d2fd148b1b32
e81cff0408c5008784229ffd1bc1cac39be8854a,5b64e5b9579cadd9baac768a773823d71914f3b2,8b00598cab3618b66c8b68663750d1fffa4ee85b
59128241adc5ca60b513cb47f0316df6d1adbf76,0f07c966b62445ab8bdef939ce15f460c9beae80,9584348c407935d8e306cc9750195c10a4aa4518
ce742b5b4d7f9f750a40581d0219fe2f6d704f78,d50ef3381fa11144a75b300c21c2605ada94b6d3,fc9719f5f989b7785e7d8ea06f82042e49f6229a
bb2e626fc39410627cada94e17d469e8102fe136,23e514621d6e5b0963912debe801603b75f62089,f88ee7b2d8053a1599facaeb0c065c216e58ef43
287ef8e79aac426249c59181a07f217ebe95986b,879f48d2151cc48a54cc11242d0aa07150bf5e8d,38d2f3d58cdfe477b60f3abf4dfe61ab76ec6cc1
f9ecc12e5bac5414286325ae2f940de555304fc8,6f942996a5870c36a5178a27c21cf248c2d3e894,5e9cf637d36db400f9fc7926af8b51b5ab9b8215
b1cec6de2aa6845ad4b891617fab6b134f8ac046,84186db35f1879b102759102797abbc4f9b90e75,b3e64d70e7b712b675d69a3cd57ad089af5c5ccf
da37fabc42ce12bf7bbb5f9ea75a5eec7a8b7b79,545978b290f97ceb0de431e1d7bbc5f11c7cd19a,9f19f582c414a2543d1db7621d1e1fd3db60ec47
84e2613ca87a621d53dca817806f6c66332ecbc2,cf21365a21993c145e9fb7b99f83dfe54b9faa1d,064172d65a4bc04e8205a0c5b560516e70180b83
bf29f2051c6408567e61d428e10b348bd9870861,5486182f568f0151894a6223e8a4255a522b2376,31dff18a61e5ba7bbf0be67c466f0b481c262836
3defa344709ecac3fca36af91829cf48c30f6d22,b521ac967f6ce6e802521d9ec385d34536abc9ac,1fafcbc12557e8cbebf0d50168f1a6c174c511ad
44cda176749d2e50e9b7de9184d475b81f224fa8,acf5675a909452433618b11daa267433a1beac01,b18c10d0d8930b3e49e2e9f4eca8f9b4b09677e9
af1eb33a7502c017a4fa2c7c739b6a3cff6e962e,f4da88726c208fb12331e2bb4ebd8998977fd79b,9f3a50315b1c2fc5c3ab09eaa8b2f5b1c40f7fcc
da47c509dfdaa4bdb4d92a4935c4071191341338,b054febbc8e2a927629eb888105e2a6e0a4a84d9,90e0b426ef479cdd8879cc95b7dadb8d4790d45a
04b28ed5879408ddf5a07015057768b76b2af9f6,a02848632571f0d3cfc676bb8bb38161d4ce1e0e,b5fa73b82c05ae51ff1c0b51f50de32c7a4491f4
7080bcc16000b5f14ea81b0fad40a8ab0b5f9677,526de20d9a1850e6913ae15e599ce8af03fd6666,49ce3f5d2a0e65fd340897a684d73ae370e6e624
beca14334c4a38174c0dd6d628d81e4367ac4969,589fb20386b63be2f90b0fed86868be88d2b878c,0b6faeba68f1cc4083cc753173e8167d4c64e3e0
0ca260e08ced39b0ec1f111b159ada45060dce44,afe2e80673d93a936d245e9adbd6b7ef2f71476e,5fab6cc5e00e52e60bf6155968e9c950d5a4079b
63a8fe07ee7226016f9e2edcd829c03236829584,ade7af52347f580b26312bad7b6a1f1f01f9df22,d53af12a6dab99b71d8598aa82608e24c488b15e
81157e9846ffbca01d1c3e9f49a218d15f51ab96,bc1c93c05fa4d1d595b33a5cae9ed112cae503de,68668c649e5aed88bac022a11a4e78bb3adb3a41
032cbc54a77be957e307acfdf0fcc2636664d173,3f1d62af8e91db86d04cf42c094e17e64eabd258,63879e74cda7c7d2ea7be1680e6308aa7862c87c
1f178d381fe9f66905cdb409c1986dacac061831,c9b88a1cd0f02bddbc5a74c662a2c6ee299bb4a5,6e9521d99a8f1c6002f4b5f0dd55211f2229662d
6e5860cb8753189d62529ab327e07f6b83d0e629,ef1cb852a8fe0d0fab065f2b24eecab37b7bf48c,bc727f9fb220c61518b916307d182a02e5586265
b9668a88c69abcd7061bfb5a4baf74d83db13be9,d98d0c5e62b6fc704ff39364bdc20f66e0dd64d9,6652fa79199d9f0d0c1d433b1c7481571bae9f5c
ddac127347b4dca6ef0c0156bd60f27904431488,5a61f51b3c9cfa8bd2122da0e8747bff97e279f2,4a1db1dc797edb2d8f5aa89ec3b8fe9e8b2137c3
3c34c8b86b456574518ce6565d5ea23d65c63402,e5de38c42d7e767a8625b4042c57ad64bdc941e1,2ed2ca5cf0611267f1f0d58f164625cdfbb6f858
98ef2773e01cb66bfa25c72f6cd84034f6eec22a,ba773e3385d908ad2ecab8c6e50371b19a3c1adb,d72eaaf734e8cc074acbb9ae43bcf25154476ea5
a398da4c72b5a65018ff8f4c1b70ed574a46a95d,439faf0da88cb10015eede0b7b8c6119ad740358,429d2cdf12f628ba3c6ace311d5a590facc4dbcc
29916bc6f64e0a7d0c745df657ad3eb7baaaea01,248082347fc619a7c4381218e01b96ef32545594,6b2e4fa4133a496c1c3f89e3c71fffbdd7c192fb
271f69db12263731e2efb601e27862b7d97a0b8e,2db4cae7aa05c1dbd754744c608ff9c11818fe92,72081c803ee5ea2007ee77a1bdae0f2a02e94c8f
6fd5b86cff2c5e04292da1e4239b93f34c839cf6,dbcab9cc2919b923595e087a9c4aac133390443c,2c89ddf62b1156ac23c85bf5d34c8cbc98d9875b
af40ae2c9192d5c3ad8370d8ca7799e6015d6a23,3a2342fec4e810872748e3ac2613e552dd2f2fc7,f39cfc75fcb7da60b832e745ba7d442e039aae19
ccf631eabd3f52111825846b4911ee6dc918726a,692754b4228c0c97b08b2857362e7321eac7d936,f249987133a617dd1d86cced6e16be1dd36f7205
9eda172a485371faa535561c5428b5d5d256b96d,f2c5bb2bfdd30aaf65514c79899dc4d5dc1eee3c,5649ce150b66e35934033879931cbed15f911aa1
f1e32bb187b6ffaffed39eb94e75d0b26be2c989,34ae77bd3b0c157043dd666e65667cb2c7116039,e1e9a6728f7601f9994be89374720edcf408826c
82f025e9e7505259228cd1b1a1b18e81c9806a82,1f91fe4b11d06cba30801be7852cf0b0be7a3b21,b81b818a7569b762f653584deba78bb0fca2a81d
24fcd05e8cbc84c6cc8281c4914bd560a36fcbdc,aa3f29eec8ef6cf9280699e260ee4f700e13588a,49cb7b256476409924c581145a760b863b9e755d
5c090fce2ce9a099ad52ea4aadf7abbefdeb67f3,3539b4a6f342a641418d0761942352c158128aae,53e7006d56d7e111ba6629d0296806cd02e91f5f
790a58be52aa745633f5c23464a774d774200fa6,78793878611786c74714f3ec66551cb9050b4077,0f8ecb73e73c3a5ed9ba6ce7fce91e7d40c611a5
6bead20fc34cbb19d66c74047a3c23dd9d6d378f,340499dd3a7b22bebf01644f857254d1dff2f814,54eb8de6581fa93531ac048f356261ef565d7a53
34445a912abc41bb8c95281e51388fd9ecb0f241,90e7b2be56ec428191cf6a68581840468b74a054,2626b85984b08a8e1a3d9da1ea07d72da43049d2
a08c937bebbe84aa66173b7484caf0246817ef34,01dbc63735030485dccf5960470de6aa12e6d28a,3bc6340424b6c43a67a1879a4648f1542ecf1d29
e6a3aa345000b3738ee681bbb516d6d1c0ac7e33,57aead9a1487bf0d0f60110780e5b73408bd23d8,e81b062e2d295ad64a692dde3cf6649282049d3e
be56b641d708f31fb418f5d2f6133e3d97613f88,c7880e7bd12117dda3958a7792e31e6145ae69ef,f87a66f1e69891839a5e039a0b36084d21423761
bcb7c069fbf2f13ab209b17384b854b3d9f6e2c2,621699acca8f4f7683795ff8757c247fac6bc57a,c9b407508aee0ac699f5cb6b4a73638776572eb2
36fe4cf43d2945a7123f77bb602af6c4d94dbe97,01d97bea00960c131451ec6f58ee7593a36ab0e6,16c18e845f04fca60341937bcb9117a40784053e
8591f1218c9990918424536446c8751a0edbadae,b2861bacddec80d8fb1a7f84eb30848a4668574f,7d41f5eb92f5d837bd51a6434367122d7e329f67
2ae98a7363e1bef7c369eac8846d622a703b9d26,5a5abe2419afd2f124f821f76c9229f9a7de1a9f,8802c7d489d067ec1ba67b497fa29571701263d9
9063c3c0ed0bd09880b9e6689934b5bf070c85c7,e7f6da4cb09fcfa957cad8bf160a8a22d05ddac5,8a7743b566bffc2bc27033cb208fee09a9a7223b
3121ee136700feef1f966195c5913f4ed8ba4e0e,e3c5d016e0c1f139711edbec8123d9e6b830a5e3,6f7c1b5b4e67c8ab7e59321c457ac6d2fdc55069
10b201c50699cba4a8a2a553f77bf5531dd6516c,e4600f5e3843028ea8c08772860d931a7f57dcd0,818b6e698305326f1d4e5d3b2538a1504d05a7bb
bbb564437d88a8843f1769ce773c79c6ae0ed3c3,e754937ad3a5b4dc97336d476db90141c64c71cb,2ab16a5a8f0374692494351da9bb6b3d54d995fe
50f76a2ffb54c6825f5c1e81816e4e0ae4e77363,56fe6cadc8a6ff57658a3c6cb3dae4b6c83c54c5,23fa8c80b6a1c0892be85eac8e0e73b758621855
8606f13b243891ad0a468fc4d70b6d655f491120,fc7ed302e7c804143223502510288ffe4697d03e,b641687da22a1d868cf4ed0ac05f4c1514e2c9af
272db1b872f59e6a8b5a1f0a2106a77e01dbb318,c6e054dbb94b811cb91bea2f6c75d5ba672bf74c,121e793c37ad31d488da53a7c1ae67e81414362a
e569863a1a8efcd537e440e92ef16da80cebbe22,ee4d77b119cefa866eba5786f34fda261f37bac7,ced7e40c43b3b40ce4bfe37e28b4a8c78d82c041
a0df7c27afd1247988ec3aa3755d0e47b62e03d8,efc4ab792820526df0f7c448323ed09622f5394c,a6d4374f1078ec113f57fa4bbf74f47418bb0c4d
c293d0b7299101e93228925ad239f2472c316c02,4ba064d8942f2fbba8b447951c1ba0bf163572ec,6597f02ebce8d1db39cf44bd6a1a6763532561f9
d25d094d579adceea87cbe96bf0fd64a111eded6,83f383e0041161d8193e392b2c200cfb0d120eb2,3d5a100f7969531e54198bb3721de2f00738d3a8
87a3bfe99d2504740152fd6cd662c35239429c58,4b179ce4fa92d06dc0a4bc44efa58e3665834e3d,4b9e1ab30a5921fa7daa7dc991e044f59cf48313
24972d986167814ccd7d02a4b7da3798463296e5,eeae32669e88af0ae699b0a9bf41551cd9f7759f,605740fd0ad213bc577e3439a6e65c0d478e14d3
791328ccb551ce8c79956271d535eaf6beb9c569,026781b9a36d1afbdf06c0213bf87d8d8e03dbd6,7f30a8765152d85371074c1648cf22a844d612f9
881ca2c52f58c11d44de6ef4f8feb8bee18cb258,a1bdf11d993f03f0d2c4d0f3955b5d9435ee1e38,649438efa63c3534d61cfdcb8481ba41729c85ad
82c52ed12780f83701c05e26d8144a357e3c6131,268a148d3a6e3722781532ba093e539f72453261,bc798695fe74403d2d3e1f5b38ebad4e46c24211
aa296af787968ba25e586b6af2f22f63a842768b,c605da6ab31e678a9f8e23da7b89b4420ade58d8,118e093c974d3b3407976d602a93192f668e815c
3e14d47b92df79b31acba350d748a465b2cd9989,bd606c6b77d18fed794725aa5f8365dede23e882,35f2fb1e8d77df3b8e894b6ab5481aae51106c92
ae93f8de918b71ad9ceda00f1e05b7554aed4cb7,73895d3cbca2ccc3a93516495837a002e6bb7f41,d6c3c74b468f443deb81d9782c781eeb00a1c63a
b5b7cd54eb4acf37cd3d4108df73f8a54986e96e,ab5c5a7e9a20520ae472b30df8b321571317d705,787454d5b2e8c6f8e7c909fcd1a423ed33404977
ca0323d4ca7519d49c9b8c5fcc39feb6b6bdacac,1606d4e28d1809086629c44f4a6cc190417ed9f3,b00454bb0ec8aaf70496b3f441de0547f7f71cf0
1853d1ddd8916104f4087533ba3a861f55fac9fc,ad61db2ff592ee455738b159dc415970e76adca1,569b35dfc4add6006eeb47c7b03815eac6797ad9
7266981c6c55c521ac70f06dc2c287fbba16725c,eb046b07d07fec12b144ebe3fa00b586c6c169b6,7887f4670039897c66ca0f3d904714121e25b98c
0be3fe9ab4b9ccc01ed2bb88b679123bdff2f340,e695edff98f7092adc79ff2a21795941b1593b52,f30a41359d8be3766d6617dcd9363f04da73fd23
f83223c8b2b44437e4b0f1ed5b5eb89268219420,b88b8efbcec52425337044a8ea652d1d738cb6de,541bd66a6ce4d57737709ce9076adb389d172a8e
880eb3658ae80f73662773ca45ad51806a6b9832,4f4beb6225f8c4e907ad0068dc7e35dc1306406b,52f0ec579ed810035db0886b266fecb1934038d2
da8ccd64efd0c6763e414939bb2420c2fe66c660,16c4e0300cf3dd04411b72bb0547e8f80ad72575,b2f31c4112e69e75e29c29f4472a2730547c6004
c342a5f47373ab522ed67ba1f4e95f9a208dc83f,7d6158d5f49b19dc80558318e974d70a6c7b9d32,5583781f4720cd90c579993352fd528649498163
a387accf810bc6c32d07cfe2e9fd7a131cf8e5d0,3c4a1087f33a319b48b99ab6256c48e33f7eda25,2c72b62a0e153f1888e19c988631d0275b0f34f7
d9a67bb16d321cb6ccdae1d1f3132afa8c0d3bbc,ac0c187b56accbcc5f8a72ed9bcabf1fe340f100,946fc370e93ae5e7245ddad0171d006248bc9366
f5dbd38b7eea68cdcc714330eba4e7fb28c95f5b,88a42c3ee0c2c0c53acdb99e2972ab24ecc9faac,507e9eb20aa8129472e348398258bded6c5eb4ba
f4f6a16796a4b3fbbecfcbe9f77d62f6ecc9e54a,1c1dbaf77645efb1c0e6599d0cc3b6d354646f5f,409de5ac96692fea0314aefe5a9c880ab8983599
7747e1f6c8b51cb9c7d04e3a581663d25e1e99bf,e1d56a99445063bfeb640a3c6e0c41688076b65e,c453bac7adfca20397628a8e981c9e92281bfa04
cf79ca16b49445df2332539777dd879f6aad5b36,50986967f52041db50ec176d31342fcb3df7b305,5845bb90951932e8a6863acc0bdda42d3342e434
0b3238bcd37b605701e958099ddf6cd7e4772cbd,69ce966691078a4b344d6691798916b52476ec46,dc4689ba1bf6dbdd5d6cbdb2e5bccaa849b3346e
b361b41a86c1385540e4f85d43263ec4d0716ce9,1e89579766d31975cd605c3f551e58ae6f512c23,12d7d271d6648061fd0c5ced3769578047b0f024
1b2d29ea1a6c28a8828c2dd4acf81054f177db42,7a228bccfc85f23b97ef2d38620463364e24993c,5771245d74a7115ec8a8744c6c91506d40904285
b440f57739efb5d68f18adaf6d71bf0aa126a8b7,4208fc79c702c8c571a8824a7d606774cadf98b8,e6a68b28b6de64dbbf0cf9eb8f859891308f9fb3
880d0333b0b5804ed0e58b71c29447402ae3bad4,408e388af3e48f51925fa2502a3b21a23478418e,9ee13f2937e57b63c014a3764d96606e8218eb1e
167c7bc5656cb7012290bb4d2e683e9f554dab27,2eae62a6e89673af2a083e3f7500c91393ee3f1b,a4121d2201bd3bee71d7425f75f8ae29dc3cf92e
ef796906e9faba606b8a6280c1dc97a88846c71d,cd93050d7e071642ccfce2410d5b8a12161937d4,bbeb98aeefa8d22dad0bcd1ee62c09b91ff205a4
27be091c443b47d9d8a57f21c508fbd678d887f4,f48282d7b34e2d9d276c9e6c2e5ad81dd7a88509,d03963afe9ecd26a7b1cd149ad0ce9a07490aab9
c4a77a832ffda91ba094b260656a19a826df9806,ec206cf4905cdee0764333d3c5ba7fa3adacf095,eaf9a9f1b986c1d2ccbb84972f1ffb3303bfff84
baa81d5275a9cf1137339738fdfe8becf2af779a,5eb5fdabadb5d025613443b09f4b5cafab1cdf9d,c49ac16a195a306d0a60c289658150c4ac24561b
dd1565c667e5bbb60975ea887c7380297286a151,93d38629aa446397d36112cfe853cf00d013e854,952f4bae17dc5a12142ddb7ba7009aee1d7bc604
d83004dee1cc329b640e68e075240354eaef97ad,5fe4ab49bc3c0d58d48ca793677a2ce72c8f85f4,3c08ad4af5be43950c86eeefca448cea9f1c0dae
9a983632f93361100fdb50361f86337760cfacfe,ff4744e0ed1c64879a672e58849875b6189f895a,3724e00169d4780e538a585eb91712512819c35e
995309c20901f2c0e92ebb1ac967c73b00902445,cd9ed54d35fc4573b4adafde00979b15473749e5,81471859075f0835a88bf09bc3d49df5b6fe6c7e
0104edce45a3671d32109db527a2064514336485,f86a9bd5c026c7a10a165a8225bcf83e17c47b25,40cbda6e7e30dc29ddd7bbeeb9f50325c42a8cdb
9a1083c98eef9645ea5c5313496deb321c73ca1f,bb2e2f83e9087ecbd5f5f652c877e694e00660ae,543b341203f415a4886c1452015ca4c70d4556da
ada576e559748a528e2f663345cb20f2c517fbd5,6ab2cd3ce994399872036947cc4c0543818874c8,dfdc4a4d78d0584a1a9d2a69681a52581be4eea5
39c3d5d035a49280859339b4814a27cfc50ec97f,4933d739388bd958c3e3ad2bc6d11f44b7bb0738,a2a85dc7af9390d1fddd43880a544492f9849cdb
d87a6c89d46d8eabad17c67f4d0f8c987f78e3a0,00d8d53c4e4804eb3722f114eda489e94b4e0495,baf9681684c1aabddc3b06c7d994e3f9a9b2acb1
3071ae231ae0bfcd22494ff07164e2f8b821e6ad,f3401c3f5393ec512d2ec14b8f70e453bd7c9b3b,b35c1182441e95912f2930684a419421c8da9e65
dc16426790e06df8a08c9af64d6bfe6df5d51c63,30c8930c30c68ccad17d87f364718b0f94ea843d,1061965ea597e8ae4c7fb6ce04f88887a62d247e
baee5b9fd4b1217b7facb2f7814eb5df55671ecc,e3b6d70f93e2f7831897296d218f32247f13adc7,b679f8bc06f52a3e00d282582703beaf0acb0b98
3fddae4a40d3ed8e2cba9e5256715b14d9a97040,4b2a924ea038f4304e05a4ecd3ed2dff703e44dd,aac37e31795e3dffabe1cb3745e99d6b75d79f8f
49395f2b00b01e65331ba4ce11749df8291cb26f,749688b3b0938d0c59b31d58adf5e64ec276c179,b8db469c48dbce4cd9128ab2843435839145d623
6a9376cb9e3802c9e7efb8f09bcde88829e3942e,7f3ed9e85c45f126b1aea6e69481ce973e8bdf7e,c527437594d7cba7bf028ae69ba0e2058ffeff8f
55002d19056049236f7c61d984657b54b778325c,2de0bcb8d0fc180b1e1b85769ef55b58b5f50b06,79d739baa60261b18826b202799b82d71fa1f294
02b7cc0e56f8a597df74b821f5413d00a3dd7f3e,09accffd2878899c633c8a65155789a84c68b703,962b36a6e843c3d2d7d0e42cd7d9b03cf8db8b44
3121f3f8a08ff1fbca9d2d3c7416faf3d7cc1523,07677f421412915db1e5453d8b483d2fc8306e42,1d48cd7eba33c5059cf840c42073c3a0b624ead9
59c88f4c7927cfbe4b9e4515bc6a2ddf08dfabaf,6b47a03cc97643fdbdf30dad9fb20e7e21ea6d91,033a2ae2e77427bfeb6d20b76c2e762490b446c3
4084da63abcbfcab5ffe1fa83bb2b50f445ad6ef,cd72a8910e3d0430bcca3d02b783b366cd0a78e0,93365f7e38e8c2fb63dda8e50a570b654560191a
9681378d37b4c5653f586785dce888ea03f74ab2,e3f4bad1646c9b16fdd672707c0145fdaa356d38,60e77de115c2ad9fd823ba9684f1b991f8ac3b39
7163a893e9ea8e98731da28347a61854965deb74,dbf6527508b6de8799239fa025fe74221b91d829,f7bfa0e426c6dd8d5ea9adb7fd042d5e33634b16
170c05592b56e987c2d72c660f066c349ccc85e8,82ac4299540a0cec37c545787ebf0dc4c1fe303b,fbcd90f2860903ed0bd7fcac0fe51f7202156a14
3c57eb42f91348c5f066f70d7f7700b843dfbeda,db137d0528f1228abdf90068aac290359cb4009c,020ca55e257c3b3f354211dbeb9f992730578d99
88ffc9e22822e13511a7de1eff2d6723505f51fa,19fe377455f4ef904b4f71034fc714f51bab1b1c,a8b4c0772c18bc98b934815aedb0256fad88f1d3
637c34571e50d78cc1c9368f0ee44128f06a2bc3,74625648cfd30f1244ca56410a0d5a5a87982c83,4c330f2799c68105aeacaeb442365ad6f8da8da6
1fecb46c52c98e1d55ec875987770738237ee1ae,a9316b1953b31f452d32f6d6fb4a52ea81a05104,01246e4d30d7933b6e08b1ce2bcad9121352304c
5f42443db3ff3a04b64361597c650fee9849cba6,1ffef6ed41fb47c1e7dac5a0fc2120c3ce96e303,f65e4f23853f38d6e39221e9d70abb9867c07052
4867d48e99731b11af3d405c621d1f2e945ba95e,03fc5d23235c1b6b7184b9278aae7ebc4546c2c1,04a077707c334705b9ca639642a2db03b6b154a8
42f447257dee02eae4fa1aa194f0bfd387004858,9648463eb544afcb9f6d65c17682ee05a4cc6c1f,7595dd3624f048163ca3b575333d0e0b86d14c92
79f6ee538dc8d81f876c7f32baaf594f5fc9d1cb,7bbd33bcd6fd57b01619449c2f5c9fdf217c2e02,3db060e47afd90db26f7b5cd8ae1584438169a23
fadf43a33b4bf3c5cd4d73f086d8de0c9c02aa6c,6aa49038a5b9a2316e609b3bccee9bc6acca4e2b,47c21fd1bc4700da1e233cc1c8ede88773105057
feb79e0068b27c9c22358fcf6ce84282e9390b3b,981ec64666491aacab8ec00d0f631ac371f31812,c4fc5fc916c4eca14831a70d75dda09df96778e8
8ae28b48463fab579e6194b76c238c5d7779e0ba,71ba76532b7bfd39f9f861cbb8f87ff949796ee8,5eda6e027d305b1708b7f938745ee454a1e58342
11b0b9dc57556caca09bf46bba722979ded5fcc5,ca6fe96360edd68e1a9822a614c507fbf9681aee,5c564ea940001ecad02db8b2dd9320ffa42a93b4
1d1e070ad2fbf3c5b2cfbd41b307d59fc67e40c1,f3e03f048376a63ec50862c54579104b7685480e,b514e979bdf7fd53556ba1d58dd5915bb1308f53
e3b93b07c6a6968cbc0b7c8b1d22353faff60614,2e441609bebd024a9cb9d0eb2c3d6885f4f0b092,05d6e20accbf8ea92b1d17949a5d41d583887c6d
3e06242fd8302a9098a30cfe457357ee3a1927c0,b32573d1ebb4c7a33708efe3a6e275bf2fdbd4a1,2044868c10fa1a330c98b21af704abf5a6631816
d06dd2b0ea1487fd0cc91c5d489c843a2152a375,bac4ca19e7298e0395e7d3d7e7fc370fce1fe769,698d432ccea80b6740fc9b7980c19d973b03ab0a
de03a1b894799e2f9133cbbad05c3f6f46af1423,2055ef4e886888a361bc6fbdd90980a174d29d84,62495c964abcfcc8f12038bd90db3f66a60c15c0
529b64790bb5637ccedb0d10926f9827c905c007,277a3be9b06258b5b439b4ad363d98786985e8d1,97f159e4b2c861df559966142a50682130e8a1f2
560d597c85da4521779cb2dde6d5ea344aaab412,122251f71d6bc2395be342a4f5b1df4353852991,b45aee980f15f4df903989529bd8c178ca1647ed
83b5047931866e5ea58811596b64a633dbed9480,5b27fa93753a42dccf78082c99c580952f87d728,8fa3c57c1bb005d27664e66544a4005758f43dfe
ff3b4adc2773934710b014df680d96897948118d,506634f261efed31de36b3766393d1386fe2bdd4,3f0853692c9397088fee4217a5d8466e3e24f6b4
178687531909624efa0328c8a2cd7ec87f5499e6,d575aa5240840b008186da794007e06097cd3850,2d5c1d43cff48050beccc906049cfb7ebac83c6c
4d5479741d6a7165b1592abe890330207dc4795a,064adbf3f8aa7e1f7f1f85b31d2eeb8988a481ac,18c6e13f45298162520fe8d20f3397b1037c35dc
4cc5cf4d0edcd8b18562af0d41b89b027b1bee74,4cb97dcdb34f5912ff29019b5c9b5ffc20b90db6,f3e667da42bc0994dc51aa92de55a70ca819ef09
24315a7f28237e3dacaa2e5352220fc15f260764,5e0dcfb49b7a970ce61b26ec468b662904218236,4443e83b75b36946e8a35fd0dfebbb93c396c1fb
93ae6261ccaef7c84096785c28d5f2569c1ec60e,3ce07ef6fa90d13b7e6c965bfc489226575b548d,a81715d6ea0651bad3436d09effcd4471e8f2abb
d9317e5df522c6ff359c8650e7a2d542d306dd96,7cd044eae742f33e905dc01ced9a8cb1e31f0adb,ae465fa8dc85ea69180527c3fc1e03b25ecab082
e53620ebdb89140ee851e89d2f3fbdf9ca49a162,6f7481fd24bce9fb1d2481b5f7be3cbe11e0ce5e,1351746a46807cecd8064e873c41c615f9af6ec9
8aa9ac99a6a2796e77a5157aa45b327699eecd83,a5caf91f74d7eb8e4863d155887ae09f60e13c34,881eb0fab5bea2ca1cc283d2aa76d75a1904458e
5298e25c8420f43587d174c6d549f688f514a04a,f8dbb09a46c4b48d6ed0db3656aa6474a1ef2ada,27a2a042799566a069ae6d4772ff77405491e794
2c527cfc01eb10f254fab67623eda3d8180b8fd4,d44cae14f597ddd55b803ca1f8591e816a655de8,4f82fade82a92bb32768602a1098388bebb3b2dc
ac6dc582bed106bcdc44b5ebc16adfd17a6c67ba,f80f1112d4faa565ac5a1266875bb9f22056f980,d7581aa1eefbbe22851baf8e9f8db92e4f99d085
28c4c58b345a72e85026f83d1e49b86a9ab18183,e4bd58d66abe436e1d660baeafcdea25c42c2c54,b4eabbe5ceef3ec4542f3654d7a8ee601200dc5a
d7a486f225448fbaec7e31208a5ce66de71d8a62,462c201ce6a4229e562a351da130491d53eddfc9,c98e160c197b9cc53c41ab131ee8bf5a80164e5b
546de9f7e74d80800d8c0641ab5865965c9bf87a,0bf0f26dd57a32756012e677279f53c7ce81a850,2ba04dbd137012def9d723e90cec51dae6788bee
e073d5f7f79db76d758b96927c9287868a14227d,26855a29c8d0a726653f455704fd2917e89876e2,ddc2259e5eb53d48375865a4ff2a442472a2c042
ed8a05d6979982855e04383141350e0e2068d711,43721f21c4f5da7f8b16745cc9ffbc49df070838,bc0d2293a1a89f2a352fafdb0924a30ede104322
8a48d1bbbcc9a5084d93333460fcddcb7871f69e,2575cbc439e7e7a047ef0eec5c5843988b3cdd0d,629c87efc8c8ca951d624c5ae392348a2a93e6a1
53bf5dc6efa13c3b73e6645f4da47544898f1b0c,eae74aaee07f8dc1ce1e2317bcfad967701ab218,3ed5a4a022db3e68b6c84c0f749dfd9971c70f79
a71cc7158570729c256fc7573b7d556ceada1843,c96ef4902bf78e208033b9226f2475bc97caef82,fe62b3ace8c237d8bd1800beb5969e5cb540723f
57f6ed804ea377783098a2ba25646fcc81c370db,1ee9a39fe2dbd16979b0ae54c6f5ae79f56af8b5,421d67556aae3632415b8d1d585a63be325ae0bb
d9903e6e16852a5f4a21e4cd73fe1db2f71c65c1,e406cbd9c8143219c368fe15a1b80b1338f16c5f,a736a4bba7c7151ad58edb776c51eca69e787cdd
ae927b06896c08a1df957e44e18e4a1da2bfc01b,7a29d8f54d45907913381878f0ee1d06bb1000bb,1e0f6f9f6465cf23899c470dd6d27aac003cdf55
81464433366a9557971399113c5a772f6639f650,852aee489c39868fad7af9061eef8c2bdfe72c07,11200cfaf63413b745a7186718c42e90d9fc98df
1dbde8a79d846dad16169366a06a12dad949917c,ea102d792f2d757d78cb32c884fada058050b317,5e05630713d4bd9fb63ed493dcea80aa83027135
462d0eb07c1be2cad06675bad91e4acfece448e2,ccb1985953b0dc1af1ce31a48a12245e2f99fcf4,af482fde235da37ceec7c58bba42fdfa8c3d4be6
79ed0db6247eed326ea5193a073de03bc826f0c6,906571fa253d0571d779475a69ec3709d9e42f76,a512273976991cad7ad139a3c3ae49097704eb75
728fb7c58c0851de7ce64e7208d16081cb96ef45,a75e453c3081f6ba4318bca58806a1be48c924d7,bf57750436afbfbfb6d0ce08245b5bea0242af21
42c9eb4096ebaa8bd165e8cbdf55277939f418b8,6ac14de9864d08c047b77aadde576778d3803349,64e7dcbc8129b40cc0e1b18122248e7eac4ffe8f
bccc0b195e3727c26db7b18e340896cea6ba82d9,5c890b59e3d68fa8aaa90f826e3cc2fd105d5c94,4e8b1cb97ace5bdfce5bc6db5d7b340456d0494d
91946b78d52af2f88709756ddd130f3b9a2ae851,9cc30829faae560f603a19065591176650a0babe,b8bf295cd18560aade6743aec14d308b1f09b096
3cf7890352fe2febc337c886d51ceb8129f3a92b,a2939e4187f2bb18e00270d44d2977dfc86650b9,3447512e2941ed5504b3308e407a30011262bc90
37c3e86c7fb4ae0c78f63a70310b06b7ce0e39c3,e7f9626592d82d098c554806cdc5466535cb4d8d,7c5847bc70613f8a06bb4249e020bd259fef8c13
37ed03667fab8f0a6c2c4fd97b8bb879b6d787cf,2dcb15f88f6a7dbda19922411b12800bb7d27464,587af1c78eaac3dd94bea5850f1a6397728f9057
21cc89f1e337f55ddb48cae69c819de70f526e85,81d98f5ae246a64c8ca7ee47aeba1552f13c97d3,26a2ae92adc88bef97bfb9c05adf8ae53f470bbf
b367d7c905b476245094bb06bac226b4024e0bbf,f4b9d51aff032689bd9525366201b188b235f0b9,ab65c9889b567e6083596f60fedf5c4246d9e308
91284ba543ef8cb265d1a80cb005f7afa63e0498,472f9be9a6ad0046b97b8d1b1ec9a59c5cf4f926,13f58fe3432a0605a046d37b1b1a32d4dcd79737
0ae014a98f254bbbdc2387d45ea061c553cd74e3,fb821b8c9b45626ac54b26b7a87a5bf176bc6b73,cad21584e5f2383d2f66318d9ef0bd3dfc783ac9
f2d739b93af80dcba155ca836196e626369fb0be,1966ce7c1c94595bf4c7e9c8db6c3c34098a8f17,9da276b352d8d942d6967b8c4867d149b9ac944d
6a28ac53da5123900e10c8c157f8daad01479f53,f9b98092c4c709e605d4d5100cc1a14fff785253,f77b9fa4efffc8983eb392f7ced90b47451cd30b
4769ed948ac11a609bda4c3d489f3b15c1adbace,2c9870f85ab1d9f90f06563d94bf15e32f7b7b55,1bba83cebbc3a6584a2727cc0d4320bd8ea774af
5ea60b97b1551ff26cf0876caff335c988c3fbce,b804fc5164ecb8c5640da684456c248905dca9b5,c21a0f065463d346c9f8e1e982d280da644d6425
0e5da37533baf174b7451e64a1f6ef7b3e982761,ecc16278f087d7266fa3eed85ae6ad24d727f7e6,179fc5848b01d230a25349d614bfc5487f740284
4736cc2360d401731a9fa615b3020a60e2f35c77,dba69917a9664913f85bf54386c1a59aa32c09cb,1ab46c909af6280b56ef3888a4b3e39754b756c7
05f0ceeb26fd3a32c375af1f536525859ef53d5d,4103b3d180a332f4e7905aa72b48fb23103e3ae4,64141c8bddfbb818fe0083220649ff794a9a4639
2b7df4237b210644c13fdd56932dfdee62474cab,bcf320a76ea108831342ce607126ce8c57bebf9d,1dbcba47967b4e3b23476c9289018707f12a1325
325d29307f1ad7b476de9f1578bd73f471abd427,a15dfba97115ccde1cda3ad516a2bb64cbee3fa4,bf2a3566fa7e4c9ff400c9ded3cd83a61e4b6e3a
a907eb49c9c2961818bf610105c87c45cdec67cc,1f2203c304dce7d446d067a138a59f50dd0e3d97,59c77a48b5d4533ab71b5baddfa203186f39b0c2
0fb4fca957e02129140e8303f85a75f8f2b87572,9db42f5e67f25cab39013bd51b0967df70fa108f,cc552c081501670addab1f8c70fdad49a42b0571
821f3e326fb00a4c75ff000852a5152b7dab918d,76687a04e526f0e93ecd3acb819225080254f54d,2e6c3b060d2bc9d5eb14741b0f1f486a323cbff3
f41025f5dd7d1b7fb4367f0aceac021a7a1f8478,b2bc020fd7044c950fc707a16206aec2ec40033c,22de07446dc3b14f4dab989709912a20e7cc7110
a7fe49f38fd3378f24f326b91c90b460d98a4150,f4e955d04fb051456624d46e27a7f4648ab8840e,755d22123009817a35066fc465a6db94d6f7b8f1
4c434ceb08fcfb00a2429559de39de58db0729c4,5086cf7e7236e2abd8d613e4871916f6c60cd28a,594d4cc4f9cfd6c535c20be43f8ccd570a4d23b2
e35403c3b8364f7efdc40ce0af00eefec0226e24,948766a37ad62ce222986c1ea3f474c39f4d41b7,f88622a799cceca94f910ea70d606d10e91c53f5
4378319f874b31534ca92f3828aadecb463f7bb2,e1297e085928a274220a6d5d6da7d8e4f7a2dee2,81b7b80749ce3f65fe899655de51362367b76f67
77c86cafd08020fed213b65882ea4fd3ed411650,e4a0ce2fb5ad8b60b74d98cc92763302517516c1,11b341cc97b521fce9a74405eed2718cbc226e00
ee1916e919ac94a84e35549a8448f61beaeec513,2a46596eddd34d29d8d283a781c9e3f23e08c425,c79361c010621b76e379dfdd9a697f640aa70f85
c3b8b51cb5907c92fbd303d42e6c81e0f86afe91,316e127948efac638f6aa77b282ceb1b5c454372,c52794f94396901717f439233f6d3facc6c44e61
36b511f0572408c1976d1a7ad89dbaa3e76039e7,06fc6f1e6bba325a60098343a3c950f225d0f495,4100f750569162909dbcfae5d3be786ef2d10cb5
99851f22f543106be3cdda8bde9aa54d62ade4c0,b7322ae4c399b69dc11cf82aa76b96944cffde82,dd858f37aaae04757051ef92f915503935d1c779
1fccfd3ee1e48878337a4bf30351b4ae43b927c4,20f9b82543a0414c51c6cf1d57591ecb7d0bc67e,12176d36839702ab84473655e663bf641f3c8d24
ac150e58c81540661ec65cc9dad7926362806b15,9056ab80257b71fb8bcdf90be2f71e2fbbf912b9,7c609ee7c400fc257842d9b0742a8066070d2271
c68ddc5360cf4e1c7a543cfba9e469f21a434ec3,afea558fbe80b4b5688c38b85a622329df4b91eb,8971103a00e24b1f15333afa0e37c5db5415152b
564597a573d450d22cdf649e58e1e0cdcbaa0117,fb3c4ff75be75c367f4f4d505563475ef7accdb5,15398549a4db924a196c5b1405ab532a0e1f67f4
fea8050457728571c56dec8a1b651c0f45ea80ab,2641f65bb7cdd494eb8459daf45bc4f5b1e1e965,f0cc07fe68989577370032c06d9ab21c49158779
0efd3afb8c5e338a7d8c569fe834ed0a1acbd2f7,56d84c92833e87124fb24fe9f04a7a31a511997b,8132ccd42bdc21fd45a37e0e31742238b8085889
c87213085f5d1206bc0497aac77dea261d3be571,13e7f947ea8e1a03774318542f30a626b2795856,a8d496ade781502600a6bf75d509a202a8bd38a5
240739e71dc7f5b47073725d5981bcf757b8bed6,a90691435bbca123be9a9ce39c76bbccb7e70fcc,bf1c674672a48c159fb936e3d20593b7a8c1b734
e88248d453bbaf80cc0e48440d397edb74dadca5,7c3ab69c5076e762120051d4717b9ada1f945b4f,3b8fcfc6ebcc03cb56958b7286f3bf5e7fa4c8d0
b00e9543a72263cd8542b4d138c850f08f78499f,e7716dc05f4099a6488d4e8b25c6e89685b67896,8cdb3deebd6ca62a0fc5a543f62656202c8ca30e
8511b0fc7b82a9fc2919c9e8ba2c84f61190e225,f56587bddd2c7b983e9ead0a55dd74b4f8fef43a,139f2dfe84cf07d03e461e50097a426cd88a0797
2e65a5d458f7fc677442414dfee4058a39dd9b72,80750f7591998694e5849184ed63c17b6ea0bbdc,fd68d3bfbbf3ff8dd6f34287d18435578715883e
550397b98218b7b6b8e1def5bea34175c483c971,eaf24269bc7a77efbdbd0eb0458dcebb77e25dd3,0e9efd07efacd7d4184d5271f6450946e746dfee
7a1ef994b4579a63d4b5cfd9228da6a5ce543d1e,e76c5d96d8446fbbd6c338bc38dea54a95b0f12f,b0d61558e38f7e9ceb3918dbbaab13bc49496320
13fc4075f5a3ab3129f41f8812f0a7448bb2d4f6,1222456c13c21eaa8074279ce737b7e4992160fa,5c46b5116d5e75e4ef12a7ac325a331ace605b0b
0aa851b7f77dc9a0c4cbe808f6af11b4f8fbd56a,b3c1f294ba4b69f2d3bee53730c86af204e456b9,2e9556f2eb28769f913c9b8edb19f58938fa9abd
48eeaf00a4f9beb8313ebbf396f402aec9ef9ca5

Clicking a revision will expand files
 


+ add a comment to the destructor of tsymtable so that others (and maybe me a well) will hopefully see that the destructor of that class is not completely trivial!
Commit consists out of
  • M compiler/symbase.pas


* fixed some issues to get correct values of section_count, works better than before but it is still not perfect for unknown reasons
Commit consists out of
  • M compiler/aasmdata.pas
  • M compiler/cclasses.pas
  • M compiler/cresstr.pas
  • M compiler/nbas.pas
  • M compiler/ncgbas.pas


* forgotten part of 0039750
Commit consists out of
  • M compiler/x86_64/cgcpu.pas
  • M compiler/x86_64/cpupi.pas


+ based on a patch by Laksen, optimize (v>=x) and (v<=y) into (v-x)<(y-x)
Commit consists out of
  • M compiler/nadd.pas


* support aitconst_*bit_unaligned in the intel assembler writer, resolves 0034222
Commit consists out of
  • M compiler/x86/agx86int.pas


* relax formula for max. nodes to inline
Commit consists out of
  • M compiler/ncal.pas


cleanup: remove ARMHF-related comments from RISC-V only codepath. no functional change.
Commit consists out of
  • M compiler/options.pas


* addendum for Mantis 0034333: also complain about number of arguments with the maximum number of arguments for Copy ( = 3 ) is exceeded
Commit consists out of
  • M compiler/ninl.pas


* is_range_test returns false if "lower" bound is greater than "upper" bound
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/tbs/tb0652.pp


* fix building with LLVM=1, thanks to Karl-Michael Schindler for the hint
Commit consists out of
  • M compiler/llvm/llvmbase.pas


+ patch by J. Gareth Moreton to support BMI2 instructions
+ extended avx test generator with the newly added BMI2 instructions
Commit consists out of
  • M compiler/i386/i386att.inc
  • M compiler/i386/i386atts.inc
  • M compiler/i386/i386int.inc
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386op.inc
  • M compiler/i386/i386prop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086att.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/i8086/i8086int.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086op.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc
  • M compiler/x86_64/x8664att.inc
  • M compiler/x86_64/x8664int.inc
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664op.inc
  • M compiler/x86_64/x8664pro.inc
  • M compiler/x86_64/x8664tab.inc
  • M tests/utils/avx/avxopcodes.pas


* Fixed overflow error when calling align() with corner case values such as align($7FFFFFFC, 4) for the longint variant.
Commit consists out of
  • M compiler/cutils.pas


Fix riscv64 compiler compilation with -dEXTDEBUG
Commit consists out of
  • M compiler/riscv64/hlcgcpu.pas


Fix compilation with -dEXTDEBUG
Commit consists out of
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv64/hlcgcpu.pas


Add -Tlinux and -Tembedded help lines for riscv32 and riscv64 compilers
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* Fixed writing of method's RTTI for aarch64 by explicitly writing the $self parameter first.
Commit consists out of
  • M compiler/ncgrtti.pas


* Reverted 0039947. According to Sven, the $self parameters is not required to be first parameter in RTTI. Appropriate tests will be fixed.
Commit consists out of
  • M compiler/ncgrtti.pas


* Fixed overflow error for the qword version of align() when i=0.
Commit consists out of
  • M compiler/cutils.pas


* Undef FPC_HAS_TYPE_EXTENDED for x86_64-android.
Commit consists out of
  • M compiler/options.pas


* Reverted 0039961.
Commit consists out of
  • M compiler/options.pas


* avoid range check errors
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/powerpc/rappcgas.pas


* remove .NOTPARALLEL: from compiler Makefile, accelerates make fullcycle with -j a lot
* few cleanups
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* typo
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* fullinstall builds (and installs) utils now only once
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* use the built compiler to install files, so the version is set correctly
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* make install shall not make assumptions about FPC, if one was provided
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


+ make use of the BFI instruction in tcgaarch64.a_load_ref_reg_unaligned
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* cleanup debug code
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


+ implement assembler optimization Str/LdrAdd/Sub2Str/Ldr Postindex done
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/aarch64/cpubase.pas


* avoid to create a stack frame on aarch64 if possible
Commit consists out of
  • M compiler/aarch64/cgcpu.pas
  • M compiler/armgen/aoptarm.pas
  • M compiler/globtype.pas
  • M compiler/psub.pas
  • M compiler/utils/ppuutils/ppudump.pp


* take care of the fact that x and w registers overlap when carrying out the Str/LdrAdd/Sub2Str/Ldr Postindex optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* Optimized generic implementations of tcg.a_op_const_ref() and tcg.a_op_reg_ref() for PIC and CPUs which need 2 or more instructions to load a symbol's value by reference.
First the symbol's address is taken and then it is used to load the value and also store the result. It eliminates extra calculation of the symbol's address needed to store the result.
x86 and other CPUs which can handle refs ops directly or more efficiently already have overloaded versions of these methods and are not affected by this change.
Commit consists out of
  • M compiler/cgobj.pas


* SetExecutionWeight(): Set execution weight also for nodes with special handling. Minor code cleanup/improvements.
* Restore previous execution weight before exiting secondpass().
* It all improves register allocation for variables inside loops in some cases.
Commit consists out of
  • M compiler/optutils.pas
  • M compiler/pass_2.pas


* version update
Commit consists out of
  • M compiler/ppcppc.lpi


* replaced "is" test with faster field value test
Commit consists out of
  • M compiler/ncal.pas


+ introduce tai_align_abstract.create_max which limits the maximal number of bytes being inserted for alignment
Commit consists out of
  • M compiler/aasmtai.pas


- x86 align does not use a register anymore, code removed
Commit consists out of
  • M compiler/x86/aasmcpu.pas


+ new fields for more precise control of alignment
+ support of new alignment control values for GNU AS writer
+ support of new alignment control values for binary writer
* better alignment settings on i386-win32
* improved inserted align directives for if nodes
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/assemble.pas
  • M compiler/globals.pas
  • M compiler/ncgflw.pas
  • M compiler/options.pas
  • M compiler/scanner.pas
  • M compiler/systems.pas
  • M compiler/systems/i_aix.pas
  • M compiler/systems/i_amiga.pas
  • M compiler/systems/i_android.pas
  • M compiler/systems/i_aros.pas
  • M compiler/systems/i_atari.pas
  • M compiler/systems/i_beos.pas
  • M compiler/systems/i_bsd.pas
  • M compiler/systems/i_embed.pas
  • M compiler/systems/i_emx.pas
  • M compiler/systems/i_gba.pas
  • M compiler/systems/i_go32v2.pas
  • M compiler/systems/i_haiku.pas
  • M compiler/systems/i_jvm.pas
  • M compiler/systems/i_linux.pas
  • M compiler/systems/i_macos.pas
  • M compiler/systems/i_morph.pas
  • M compiler/systems/i_msdos.pas
  • M compiler/systems/i_nativent.pas
  • M compiler/systems/i_nds.pas
  • M compiler/systems/i_nwl.pas
  • M compiler/systems/i_nwm.pas
  • M compiler/systems/i_os2.pas
  • M compiler/systems/i_palmos.pas
  • M compiler/systems/i_sunos.pas
  • M compiler/systems/i_symbian.pas
  • M compiler/systems/i_watcom.pas
  • M compiler/systems/i_wdosx.pas
  • M compiler/systems/i_wii.pas
  • M compiler/systems/i_win.pas
  • M compiler/systems/i_win16.pas


* skip align directives after unconditional jumps
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/i386/aoptcpu.pas


+ factored out TX86AsmOptimizer.PrePeepholeOptIMUL, used now by x86-64 and i386
* generalized and simplified the code
Commit consists out of
  • M compiler/aoptutils.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


Disable three operand overload of MatchOpType for avr and jvm targets, which only have 2 operands max
Commit consists out of
  • M compiler/aoptutils.pas


* Removed 'inline' from public methods of TFPObjectList and TFPHashObjectList since they use private fields and can not be inlined when called from other units.
Commit consists out of
  • M compiler/cclasses.pas


* Reverted 0040181 because the "not inlined" notes are issued not due to access to private fields, but due to string conversion. It need to be fixed by overloaded versions of some methods.
Commit consists out of
  • M compiler/cclasses.pas


* Removed unused local vars.
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/aarch64/cgcpu.pas
  • M compiler/aarch64/ncpucnv.pas
  • M compiler/aarch64/ncpuinl.pas
  • M compiler/aarch64/racpugas.pas
  • M compiler/aasmcnst.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/nadd.pas
  • M compiler/ncgrtti.pas
  • M compiler/ninl.pas
  • M compiler/ogbase.pas
  • M compiler/options.pas
  • M compiler/pdecsub.pas
  • M compiler/psub.pas
  • M compiler/rgobj.pas
  • M compiler/symdef.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/agx86int.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/nx86inl.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/x86/nx86set.pas
  • M compiler/x86_64/cpupara.pas


* Commented out unused "size" local var.
Commit consists out of
  • M compiler/x86_64/cpupara.pas


* Removed unused local vars.
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas


- get rid of MaxOps, it is redundant with max_operands
* MatchOpType with three operands is only available of max_operands>2
Commit consists out of
  • M compiler/aarch64/aoptcpub.pas
  • M compiler/aoptobj.pas
  • M compiler/aoptutils.pas
  • M compiler/arm/aoptcpub.pas
  • M compiler/avr/aoptcpub.pas
  • M compiler/i386/aoptcpub.pas
  • M compiler/i8086/aoptcpub.pas
  • M compiler/jvm/aoptcpub.pas
  • M compiler/m68k/aoptcpub.pas
  • M compiler/mips/aoptcpub.pas
  • M compiler/powerpc/aoptcpub.pas
  • M compiler/powerpc64/aoptcpub.pas
  • M compiler/riscv32/aoptcpub.pas
  • M compiler/riscv64/aoptcpub.pas
  • M compiler/sparcgen/aoptcpub.pas
  • M compiler/x86_64/aoptcpub.pas


Fix 3 operand version of MatchOpType
Commit consists out of
  • M compiler/aoptutils.pas


* Moved inline methods to the beginning in order to allow them to be actually inlined in this unit.
Commit consists out of
  • M compiler/ncgrtti.pas


* Rearranged the code to place implementation of inline methods before their usage within this unit.
Commit consists out of
  • M compiler/cclasses.pas


+ Added overloaded version of stringdup() for ansistring to allow stringdup to be inlined.
Commit consists out of
  • M compiler/cutils.pas


* If a function can't be inline (contains an assembler block, etc) remove the po_inline flag from its procoptions.
Commit consists out of
  • M compiler/psub.pas


* Removed inline for methods which are too big.
Commit consists out of
  • M compiler/symdef.pas


* Removed inline for functions which access private variables and can't be inlined from outside.
Commit consists out of
  • M compiler/machoutils.pas


* Removed inline for Unix2AmigaPath since it is not necessary and can't be inlined anyway due to ansistring conversion.
Commit consists out of
  • M compiler/cfileutl.pas


* Addition to 0040225: Forgot to remove inline in the implementation.
Commit consists out of
  • M compiler/machoutils.pas


* po_inline can't be removed from procoptions when the interface part is already parsed. It changes the interface's CRC and causes other units to recompile.
Commit consists out of
  • M compiler/psub.pas


+ Added the pio_inline_not_possible flag to timplprocoption. It is set if a function can't be inline (contains an assembler block, etc). When calling such functions, no note "Call to subroutine "?" marked as inline is not inlined" is emitted.
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/psub.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


* Changed verbosity of ""???" not yet supported inside inline procedure/function" to note to be consistent with note "Call to subroutine "?" marked as inline is not inlined".
Commit consists out of
  • M compiler/msg/errorct.msg
  • M compiler/msg/errord.msg
  • M compiler/msg/errorda.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg
  • M compiler/msg/errores.msg
  • M compiler/msg/errorf.msg
  • M compiler/msg/errorfi.msg
  • M compiler/msg/errorhe.msg
  • M compiler/msg/errorheu.msg
  • M compiler/msg/errorid.msg
  • M compiler/msg/erroriu.msg
  • M compiler/msg/errorn.msg
  • M compiler/msg/errorpl.msg
  • M compiler/msg/errorpli.msg
  • M compiler/msg/errorpt.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msg/errorr.msg
  • M compiler/msg/errorru.msg
  • M compiler/msg/errorues.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/psub.pas


+ initial work for tls-based threadvar support on arm-linux
Commit consists out of
  • M .gitattributes
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/cpunode.pas
  • M compiler/arm/cpupi.pas
  • A compiler/arm/narmld.pas
  • M compiler/cgbase.pas
  • M compiler/cgobj.pas
  • M compiler/globtype.pas
  • M compiler/ncgld.pas
  • M compiler/nld.pas
  • M compiler/procinfo.pas
  • M compiler/psub.pas
  • M compiler/systems/i_linux.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M rtl/arm/arm.inc


+ check if initialization/finalization code uses implicitly thread vars
Commit consists out of
  • M compiler/psub.pas


+ tsettings.tlsmodel
Commit consists out of
  • M compiler/globals.pas
  • M compiler/globtype.pas
  • M compiler/options.pas
  • M compiler/scanner.pas


+ i386-linux support for tls-based threadvars
Commit consists out of
  • M compiler/cgbase.pas
  • M compiler/x86/agx86att.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86ld.pas
  • M rtl/linux/i386/si_prc.inc
  • M rtl/linux/system.pp


* define renamed into tls_threadvars
Commit consists out of
  • M compiler/systems/i_bsd.pas
  • M compiler/systems/i_linux.pas


* compilation on x86-64 and i8086 fixed
Commit consists out of
  • M compiler/x86/agx86att.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86ld.pas


* non-linux arm targets fixed
Commit consists out of
  • M compiler/psub.pas


+ support for tlsm_general on i386-linux
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/i386/cpupi.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/agx86att.pas
  • M compiler/x86/nx86ld.pas
  • M rtl/inc/system.inc
  • M rtl/inc/threadh.inc
  • M rtl/linux/i386/si_prc.inc
  • M rtl/linux/system.pp
  • M rtl/unix/cthreads.pp


* redundant code removed, work is meanwhile done by aasmcpu.optimize_ref
Commit consists out of
  • M compiler/i386/aoptcpu.pas


* i8086 compiler fixed, resolves 0034552
Commit consists out of
  • M compiler/x86/cgx86.pas


Avoid overflow error in riscv code generator
Commit consists out of
  • M compiler/riscv/nrvadd.pas


* do not re-used gottpoff symbols as they are PC-relative
Commit consists out of
  • M compiler/arm/aasmcpu.pas


Fix riscv32 compilation error introduced in last commit
Commit consists out of
  • M compiler/riscv/nrvadd.pas


Use same parameter type for update_reference_offset override
Commit consists out of
  • M compiler/llvm/nllvmmem.pas


* better alignment on 386-linux
Commit consists out of
  • M compiler/systems/i_linux.pas


* three operand shl for shifting by 2, 4 or 8 can be simulated by lea
Commit consists out of
  • M compiler/x86/cgx86.pas


* set nf_write flag properly for vec. nodes of types with implicit dereferencing
Commit consists out of
  • M compiler/nld.pas
  • M compiler/nmem.pas


* better alignment of while loop heads
Commit consists out of
  • M compiler/ncgflw.pas


* fixed adjustments of lower/upper bounds in range test optimization in case
of strictly smaller/greater comparisons (mantis 0034385)
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw34385.pp


* moved finalization of code generator temps to a node, so it can be getcopy'd
(needed for LLVM, where we need two copies of the finally code: one in case
an exception occurs, and one in case none is raised)
o also first finalize parameters and only then code generator temps, since
in theory the former could create more of the latter
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/i386/n386flw.pas
  • M compiler/nbas.pas
  • M compiler/ncgbas.pas
  • M compiler/node.pas
  • M compiler/nutils.pas
  • M compiler/pass_2.pas
  • M compiler/psub.pas
  • M compiler/x86_64/nx64flw.pas


+ new spilling heuristics which takes care of the usage weigth of a register,
not yet activated, can be selected by passing SPILLING_NEW when compiling the compiler
Commit consists out of
  • M compiler/rgobj.pas


* finalizetemps nodes should never be considered equal and have side effects
Commit consists out of
  • M compiler/nbas.pas
  • M compiler/nutils.pas


* fixes arm
Commit consists out of
  • M compiler/rgobj.pas


* don't generate tempsfinalize nodes in except filter procdefs, as that would
finalize the parent's temps twice (fix for 0040345, mantis 0034574)
Commit consists out of
  • M compiler/psub.pas


+ MovOpMov2MovOp optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* building on i386-linux fixed
Commit consists out of
  • M compiler/x86/aoptx86.pas


* disable MovOpMov2MovOp optimization on x86-64 for now as it seems to break
Commit consists out of
  • M compiler/x86/aoptx86.pas


* pass volatility information to llvm.memcpy
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* thlcgobj.g_unreachable() dummy implementation + llvm override
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/hlcgllvm.pas


* fixed dynamic array constants for llvm
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/llvm/nllvmtcon.pas
  • M compiler/ngtcon.pas


- reverted 0039188, as this hack removes the type correctness of the
instructions, which breaks the llvm code generator. Put such hacks
in CPU-specific overrides
Commit consists out of
  • M compiler/ncginl.pas


+ customint torddef type to create arbitraty bit-width integers
o use this to handle non-power-of-two-sized parameters for llvm
o no general support in the parser/code generator, so don't expose
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/defutil.pas
  • M compiler/htypechk.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/ncgrtti.pas
  • M compiler/psystem.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/utils/ppuutils/ppudump.pp


* fixed dwarf debug info after 0040398 (mantis 0034622)
Commit consists out of
  • M compiler/dbgdwarf.pas


* systematically capitalize first word of errormsg/sentence, patch by J. Gareth Moreton, mantis 34618
Commit consists out of
  • M compiler/msg/errore.msg


Regenerate msgid and msgtxt include files after commit 40422
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


m68k: reinstate the inc/dec tempregister type hack again in an isolated way (it was removed in 0040385, as it was breaking llvm target)
Commit consists out of
  • M compiler/m68k/n68kinl.pas
  • M compiler/ncginl.pas


+ abi tag for i386
* arm abi tag moved into pascal file
Commit consists out of
  • M .gitattributes
  • M compiler/raatt.pas
  • A rtl/linux/arm/abitag.inc
  • M rtl/linux/arm/cprt0.as
  • M rtl/linux/arm/gprt0.as
  • M rtl/linux/arm/prt0.as
  • M rtl/linux/arm/ucprt0.as
  • A rtl/linux/i386/abitag.inc
  • M rtl/linux/system.pp


- disable cs_opt_use_load_modify_store because for llvm because it is
apparently buggy as far as type information is concerned, and it also
results in tons of spilling
Commit consists out of
  • M compiler/globtype.pas


* ensure the generic version of tcgshlshrnode gets used for llvm
Commit consists out of
  • M compiler/llvm/nllvmmat.pas


+ volatile() expression that marks an expression as volatile
* disable matching volatile references in the assembler optimisers, so they
can't be removed (more conservative than needed, but better than removing
too many)
o the CSE optimiser will ignore them by default, because they're an unknown
inline node for it
* also removed no longer used fpc_in_move_x and fpc_in_fillchar_x inline node
identifiers from rtl/inc/innr.inc, and placed fpc_in_unaligned_x at the
right place
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/avr/aoptcpu.pas
  • M compiler/compinnr.pas
  • M compiler/m68k/aoptcpu.pas
  • M compiler/ncginl.pas
  • M compiler/ninl.pas
  • M compiler/nutils.pas
  • M compiler/pexpr.pas
  • M compiler/psystem.pas
  • M compiler/x86/aoptx86.pas
  • M rtl/inc/innr.inc


* only free the temp holding the function result after we've loaded it into
the function return register (so we won't load from an already freed
temp once we emit lifetime info for temps on LLVM)
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/ncgutil.pas


* emit temp lifetime information for llvm
o also allow freeing temps in the middle of a routine for llvm (we won't
reuse them, but it results in better lifetime information)
Commit consists out of
  • M compiler/llvm/tgllvm.pas
  • M compiler/tgobj.pas


* add nocapture and dereferenceable/dereferenceable_or_null decorators to
parameters for llvm where appropriate
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* fixed bug that caused the "sret" argument attribute to never be used (and
a guaranteed internalerror on AArch64/llvm)
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* fixed paraloc def when changing the size to OS_32
Commit consists out of
  • M compiler/aarch64/cpupara.pas


* fixed shifval for big endian (bits instead of bytes)
Commit consists out of
  • M compiler/aarch64/cpupara.pas


* set paralocations correctly for LLVM/AArch (must be register-type instead
of parameter-type based)
Commit consists out of
  • M compiler/aarch64/cpupara.pas


* only coerce the type of the leftover bytes of a record if the location
size doesn't match the number of remaining bytes
o prevents a second "single" field of a record getting interpreted as a
"cardinal"
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* support OS_32/OS_64 in AArch64 cgsize2subreg() for MM registers (can happen
for records with floating point fields with the LLVM code generator)
Commit consists out of
  • M compiler/aarch64/cpubase.pas


* initialise cgpara with valid data for the C-style "array of const" para
(necessary for the LLVM backend)
Commit consists out of
  • M compiler/aarch64/cpupara.pas


* replaced some stray cpointerdef.create() calls with cpointerdef.getreusable()
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* pass dynamic array parameters of cdecl routines by value on AArch64
(like on onther platforms)
o it was passed by reference as a side effect of the fact arrays in C are
pointers, but a dynamic array already is a pointer
Commit consists out of
  • M compiler/aarch64/cpupara.pas


* fixed type consistency in handler for array parameters on platforms where
these have to be passed on the caller side (i.e., AArch64)
Commit consists out of
  • M compiler/ncal.pas


+ internal sqrt support for LLVM (faster on all platforms, necessary on
platforms that don't have RTL support for it, as the the generic
fpc_sqrt_real just calls runerror)
Commit consists out of
  • M compiler/llvm/nllvminl.pas
  • M rtl/inc/llvmintr.inc


* fixed dynamic array constants for non-Darwin LLVM platforms
Commit consists out of
  • M compiler/llvm/nllvmtcon.pas


* support for compiling the objects unit methods that expect local procedure/
function pointers using {$modeswitch nestedprocvars} functionality, activate
this for LLVM and also activate that modeswitch for a test that uses this
o also convert the IDE units to use this functionality
o requires extra typecasts because implicit type conversions from
procvar(p: psometype) to procvar(p: pointer) are not supported; on the
plus side, even those type conversions are checked for validity
o note: requires {$modeswitch nestedprocvars} in all programs/units
that rely on this functionality
Commit consists out of
  • M compiler/browcol.pas
  • M packages/fv/src/app.pas
  • M packages/fv/src/platform.inc
  • M packages/fv/src/tabs.pas
  • M packages/fv/src/views.pas
  • M packages/ide/fpcodcmp.pas
  • M packages/ide/fpcodtmp.pas
  • M packages/ide/fpcompil.pas
  • M packages/ide/fpdebug.pas
  • M packages/ide/fphelp.pas
  • M packages/ide/fpide.pas
  • M packages/ide/fpini.pas
  • M packages/ide/fpmfile.inc
  • M packages/ide/fpmsrch.inc
  • M packages/ide/fpmwnd.inc
  • M packages/ide/fpswitch.pas
  • M packages/ide/fpsymbol.pas
  • M packages/ide/fptools.pas
  • M packages/ide/fpviews.pas
  • M packages/ide/globdir.inc
  • M packages/ide/wcedit.pas
  • M packages/ide/weditor.pas
  • M packages/ide/whelp.pas
  • M packages/ide/whtmlhlp.pas
  • M packages/ide/whtmlscn.pas
  • M packages/ide/wini.pas
  • M packages/ide/wnghelp.pas
  • M packages/ide/wresourc.pas
  • M packages/ide/wutils.pas
  • M packages/ide/wwinhelp.pas
  • M packages/rtl-extra/src/inc/objects.pp
  • M tests/tbs/tb0268.pp


* cleaned up blockaddress instruction (add type rather than hardcoding it
in the assembler writer)
* fixed taking the address of a label in a typed const for llvm (fixes
tbs/tb0468a)
Commit consists out of
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/nllvmld.pas
  • M compiler/llvm/nllvmtcon.pas


* fixed <> comparisons with NaNs (use LLVM "unordered" comparison: succeed
if either operand is a NaN)
Commit consists out of
  • M compiler/llvm/nllvmadd.pas


* use ccallnode.createintern() instead of
ccallcnode.createinternfromunit('SYSTEM')
Commit consists out of
  • M compiler/llvm/nllvminl.pas


+ LLVM support for the FMA intrinsics
Commit consists out of
  • M compiler/llvm/nllvminl.pas
  • M rtl/inc/llvmintr.inc


* fixed LLVM code generator not taking into account constalignmin/max
settings for typed constants
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/llvm/nllvmtcon.pas


* fixed used resulttype of char-to-shortstring typeconversion in case the
shortstring type is smaler than 255 chars
Commit consists out of
  • M compiler/ncgcnv.pas


* simplify all type conversions for formal constants even for LLVM and JVM
(since these happen at compile time and don't result in generated code,
they never need extra type conversions in the code)
Commit consists out of
  • M compiler/llvm/nllvmcnv.pas
  • M compiler/ncnv.pas


* force pointer-based self parameters of inlined routines in temps for LLVM
to ensure that their type gets updated
Commit consists out of
  • M compiler/llvm/nllvmcal.pas
  • M compiler/ncal.pas


* fixed result cgsize of LLVM's second_nothing type conversion node (new
size instead of original size, which can be different in case of going
from void to something else)
Commit consists out of
  • M compiler/llvm/nllvmcnv.pas


* in constructors, free the temp holding self only after loading the function
result, as self is the function result there (follow up to 40501)
Commit consists out of
  • M compiler/ncgutil.pas


* fixed string constant length when going from utf-8 to single-byte code page
(mantis 0033666, patch by engkin)
Commit consists out of
  • M .gitattributes
  • M compiler/ncon.pas
  • A tests/webtbs/tw33666.pp


* handle constructor function results that have been migrated to the
parentfpstruct the same as regular function results (see 0032687)
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/jvm/symcpu.pas
  • M compiler/nflw.pas
  • M compiler/ngenutil.pas
  • M compiler/symdef.pas


* addition to 0040631: also force inline self parameters that are already in
a temp into a new temp for LLVM, so their type gets updated
Commit consists out of
  • M compiler/ncal.pas


* (modified) patch by Gareth Moreton: Speed improvement in case blocks, resolves 000034762
This patch improves the compiler where "case" statements are concerned, using jump tables more often and creating more efficient machine code in some situations:
* If a case block only contains one branch (not including the else block), the initial range check is removed, since this becomes wasted effort.
* If the else block is empty, the else label is set to the end label - though this doesn't decrease the code size, it takes a bit of strain off the peephole optimizer.
* On -O2 and above, some node analysis is now done on the branch labels. Most of the time this just redirects it to the end
label for empty blocks, but if the block contains a goto statement, it will redirect it to its destination instead,
thus increasing performance by not having multiple jumps (this won't get picked up by the peephole optimiser if the label addresses are in a jump table).
* Some checks now use what I call the 'true count' rather than the 'label count'. The true count includes each
individual value in a range - for example, 0..2 counts as 3. This increases the chance that a jump table will be
utilised in situations where it is more efficient than a linear list.
* For jump tables, if the case block almost covers the entire range (32 entries or fewer from full coverage),
the initial range check is removed and the gaps included in the jump table (pointing to the else label).
Commit consists out of
  • M .gitattributes
  • M compiler/ncgset.pas
  • M compiler/nset.pas
  • M compiler/x86/nx86set.pas
  • M compiler/x86_64/nx64set.pas
  • A tests/bench/bcase.pp


* pass used tls model to the assembler
Commit consists out of
  • M compiler/arm/agarmgas.pas


* better code alignment for x86_64-win64 and x86_64-linux
Commit consists out of
  • M compiler/systems/i_linux.pas
  • M compiler/systems/i_win.pas


* not all targets support the tls-model switch, use it only if section thread vars are used
Commit consists out of
  • M compiler/arm/agarmgas.pas


* changed maxjumpalign:10 to 16
* changed (max)jumalign for Darwin/x86_64 from 0 to 16
Commit consists out of
  • M compiler/systems/i_bsd.pas
  • M compiler/systems/i_linux.pas
  • M compiler/systems/i_win.pas


* fixed wrong change of jumpalignmax from 10 to 16 in previous commit
o renamed jumpalignmax and coalescealignmax to jumpalignskipmax/
coalescealignskipmax to better reflex the meaning of these setting
(and the difference in meaning to e.g. constalignmax)
Commit consists out of
  • M compiler/globals.pas
  • M compiler/ncgflw.pas
  • M compiler/scanner.pas
  • M compiler/systems.pas
  • M compiler/systems/i_aix.pas
  • M compiler/systems/i_amiga.pas
  • M compiler/systems/i_android.pas
  • M compiler/systems/i_aros.pas
  • M compiler/systems/i_atari.pas
  • M compiler/systems/i_beos.pas
  • M compiler/systems/i_bsd.pas
  • M compiler/systems/i_embed.pas
  • M compiler/systems/i_emx.pas
  • M compiler/systems/i_gba.pas
  • M compiler/systems/i_go32v2.pas
  • M compiler/systems/i_haiku.pas
  • M compiler/systems/i_jvm.pas
  • M compiler/systems/i_linux.pas
  • M compiler/systems/i_macos.pas
  • M compiler/systems/i_morph.pas
  • M compiler/systems/i_msdos.pas
  • M compiler/systems/i_nativent.pas
  • M compiler/systems/i_nds.pas
  • M compiler/systems/i_nwl.pas
  • M compiler/systems/i_nwm.pas
  • M compiler/systems/i_os2.pas
  • M compiler/systems/i_palmos.pas
  • M compiler/systems/i_sunos.pas
  • M compiler/systems/i_symbian.pas
  • M compiler/systems/i_watcom.pas
  • M compiler/systems/i_wdosx.pas
  • M compiler/systems/i_wii.pas
  • M compiler/systems/i_win.pas
  • M compiler/systems/i_win16.pas


* update alignment values for Darwin
Commit consists out of
  • M compiler/systems/i_bsd.pas


* (modified) path by Gareth Moreton to fix case handling
Commit consists out of
  • M compiler/ncgset.pas
  • M compiler/x86/nx86set.pas


* more case fixes
Commit consists out of
  • M compiler/ncgset.pas
  • M compiler/x86/nx86set.pas


* when optimizing range checks in case nodes, unsigned comparisions must be used, resolves 0034782
Commit consists out of
  • M compiler/ncgset.pas
  • M compiler/x86/nx86set.pas


* fixed LLVM memory leaks
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/hlcgobj.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/ncgmat.pas
  • M compiler/symcreat.pas


* don't emit 0-sized parameters for LLVM: clang doesn't either, and some
LLVM backends (like the AArch64 one) trigger internal errors when
encountering them
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/parabase.pas


* patch by Simon Ameis: adds mcu STM32F091* to compiler unit t_embed.pas; thus internal error 200902011 is not raised anymore, resolves 0034570
Commit consists out of
  • M compiler/systems/t_embed.pas


* more robust fix of 0027543
Commit consists out of
  • M compiler/pstatmnt.pas


* improved explanation for warning 9034
Commit consists out of
  • M compiler/msg/errore.msg


tabs to spaces cleanup. no functional change
Commit consists out of
  • M compiler/aasmtai.pas


* fixed several places where the interface crc could change:
o unsetting po_inline while parsing the implementation for various reasons
(interprocedural goto/label, accessing a local in a parent frame,
having nested procedures)
o instead handle this via the pio_inline_not_possible flag
o noreturn can no longer be specified only in the implementation
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/nld.pas
  • M compiler/pexpr.pas
  • M compiler/pparautl.pas
  • M compiler/pstatmnt.pas
  • M compiler/psub.pas
  • M compiler/rautils.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


Change default debugging format for x86_64-haiku to dwarf-2, as stabs is normally disabled on 64-bit systems
Commit consists out of
  • M compiler/systems/i_haiku.pas


* modified patch by Gareth Moreton to make ie unique, resolves 0034849
Commit consists out of
  • M compiler/x86/cpubase.pas


* when deciding about the case code generation in case of size optimization, the number of labels is relevant, not the covered range, resolves 0034818
Commit consists out of
  • M .gitattributes
  • M compiler/ncgset.pas
  • A tests/webtbs/tw34818.pp


* -tls-dialect is not a as option, removed it, resolves 0034901
Commit consists out of
  • M compiler/arm/agarmgas.pas


* constrained generics are also compatible with formaldefs, resolves 0034893
Commit consists out of
  • M .gitattributes
  • M compiler/defcmp.pas
  • A tests/webtbs/tw34893.pp


* modified patch by Gareth Moreton to pool TmpUsedRegs in the assembler optimizers, resolves 0034679
Commit consists out of
  • M compiler/aopt.pas
  • M compiler/aoptobj.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/avr/aoptcpu.pas
  • M compiler/sparcgen/aoptcpu.pas
  • M compiler/x86/aoptx86.pas


* fix and enable MovOpMov2MovOp optimization on x86-64
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ patch by Marģers to support the x86 assembler instructions blsi, blsr, blsmsk, adcx, adox, movbe, pclmulqdq, resolves 0034815 and 0034799
+ avxopcodes tests also movbe and pclmulqdq
Commit consists out of
  • M compiler/i386/i386att.inc
  • M compiler/i386/i386atts.inc
  • M compiler/i386/i386int.inc
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386op.inc
  • M compiler/i386/i386prop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086att.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/i8086/i8086int.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086op.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc
  • M compiler/x86_64/x8664att.inc
  • M compiler/x86_64/x8664int.inc
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664op.inc
  • M compiler/x86_64/x8664pro.inc
  • M compiler/x86_64/x8664tab.inc
  • M tests/utils/avx/avxopcodes.pas


* fix MovOpMov2MovOp optimization if no -Cpcoreavx2 is used
Commit consists out of
  • M compiler/x86/aoptx86.pas


* open arrays and arrays of consts might be only stack tainting if they are passed by value
Commit consists out of
  • M compiler/symdef.pas


* avoid assembler errors for the MovOpMov2MovOp optimziation in case the size of the instruction
gets changed and the first one contains a constant, resolves 0034933
Commit consists out of
  • M compiler/x86/aoptx86.pas


* factored out OptPass1FSTP, used by x86-64 now as well
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* better recognization of procedure exit code
Commit consists out of
  • M compiler/x86/aoptx86.pas


* factored out OptPass1FLD, used bx x86-64 now as well
- removed unused function
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


+ tls support for x86_64-linux (not yet enabled by default)
Commit consists out of
  • M compiler/cgbase.pas
  • M compiler/systems/i_linux.pas
  • M compiler/x86/agx86att.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86ld.pas
  • M compiler/x86_64/cpunode.pas
  • M rtl/linux/si_impl.inc
  • M rtl/linux/system.pp
  • M rtl/linux/x86_64/si_prc.inc


* do not call the internal assembler if -s is passed
Commit consists out of
  • M compiler/options.pas


* cosmetics
Commit consists out of
  • M compiler/arm/narmld.pas
  • M compiler/arm/raarmgas.pas


+ support msr regf,reg32 on arm in the internal assembler
Commit consists out of
  • M compiler/arm/armins.dat
  • M compiler/arm/armnop.inc
  • M compiler/arm/armtab.inc


* do not load always the references into a register in g_concatcopy
Commit consists out of
  • M compiler/arm/cgcpu.pas


* correctly handle LDRD in TAoptBaseCpu.RegModifiedByInstruction
Commit consists out of
  • M compiler/arm/aoptcpub.pas


+ sanity check
Commit consists out of
  • M compiler/arm/agarmgas.pas


* first step towards supporting 32 bit targets with the LLVM code generator:
use the generic code in more cases when cpuhighleveltarget is defined
Commit consists out of
  • M compiler/cgutils.pas
  • M compiler/fpcdefs.inc
  • M compiler/hlcg2ll.pas
  • M compiler/hlcgobj.pas
  • M compiler/nadd.pas
  • M compiler/ncgadd.pas
  • M compiler/ncgbas.pas
  • M compiler/ncgcal.pas
  • M compiler/ncgcnv.pas
  • M compiler/ncgcon.pas
  • M compiler/ncginl.pas
  • M compiler/ncgld.pas
  • M compiler/ncgmat.pas
  • M compiler/ncgset.pas
  • M compiler/ncgutil.pas
  • M compiler/ninl.pas
  • M compiler/nmat.pas
  • M compiler/parabase.pas


* perform extension of parameters to 32 bit for Darwin in the paraloc instead
of in the cgpara (cgpara should always correspond to the real parameter)
Commit consists out of
  • M compiler/i386/cpupara.pas


* fixed type correctness of and simplified the threadvar loading size
optimisation
Commit consists out of
  • M compiler/ncgld.pas


* initialse the cgpara for the C-style varargs on ARM (needed for LLVM)
Commit consists out of
  • M compiler/arm/cpupara.pas


* fix loading of constants in registers in the LLVM CG if the constant
does not fit in ptrsinttype
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* compilation fixed
Commit consists out of
  • M compiler/arm/cgcpu.pas


+ nolinline modifier to specify that a routine must never be inlined
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/pdecsub.pas
  • M compiler/psub.pas
  • M compiler/symconst.pas
  • M compiler/symsym.pas
  • M compiler/tokens.pas
  • M compiler/utils/ppuutils/ppudump.pp


* let de LLVM parameter manager merge multiple paralocs used to represent a
single ordinal, as such splitting is handled by LLVM itself (and handling
such split locations is currently not supported by our LLVM code generator)
Commit consists out of
  • M compiler/llvm/llvmpara.pas


* set default Mac OS X target version to 10.6 for LLVM (earlier versions did
not include libunwind in libSystem, causing linking errors when compiling
on later versions)
Commit consists out of
  • M compiler/options.pas


* always emit UAL when using LLVM (clang does not and will not support
pre-UAL)
Commit consists out of
  • M compiler/arm/agarmgas.pas


* removed unnecessary replacements of the paraloc def with arraydefs on ARM
Commit consists out of
  • M compiler/arm/cpupara.pas


* fixed ARM paraloc defs (for LLVM)
Commit consists out of
  • M compiler/arm/cpupara.pas


* update the stack alignment field of parameters when doing so for paralocs
Commit consists out of
  • M compiler/arm/cpupara.pas


* LLVM does not support 128 bits arithmetic on 32 bit platforms, which we
need for overflow checking -> use RTL built-ins
Commit consists out of
  • M compiler/nadd.pas


* fixed thlcgobj.g_rangecheck() for cpuhighleveltarget when targetting a
cpu32bitalu
Commit consists out of
  • M compiler/hlcgobj.pas


* fixed the default external assembler for llvm when using -s
Commit consists out of
  • M compiler/options.pas


Fix bug report 0035065 using provided patch by J. Gareth Moreton
Commit consists out of
  • M compiler/aasmtai.pas


* properly quote pathes for objcopy calls, resolves 0035072
Commit consists out of
  • M compiler/systems/t_embed.pas


* ppudump: Use buffered write when outputting to json or xml. It improves the output speed a lot.
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/utils/ppuutils/ppujson.pp
  • M compiler/utils/ppuutils/ppuout.pp
  • M compiler/utils/ppuutils/ppuxml.pp


* ppudump: Fixed warnings with -O3.
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* arm: Fixed crash while loading double constants with PIC enabled. This is the regression after 0041129. The crash has occurred due to usage of a rare code path. It will be fixed in the next commit.
Commit consists out of
  • M compiler/arm/cgcpu.pas


* arm: Include pi_needs_got to current_procinfo.flags when the GOT register is accessed. It forces proper initialization of the GOT register at the beginning of a procedure. This fixes storing of a double constant to a field in a packed record and other rare copy operations when PIC is enabled.
Commit consists out of
  • M compiler/arm/cgcpu.pas


* aarch64: According to ARM64 ABI, function's arguments and the result are not required to be sign/zero extended to a full register size. Obey this rule for all targets except iOS where sign/zero extension is required.
Commit consists out of
  • M .gitattributes
  • M compiler/aarch64/cpupara.pas
  • A tests/test/taarch64abi.pp


* don't use cg64.a_load64_loc_cgpara() for 64 bit records passed in
non-integer registers
Commit consists out of
  • M compiler/hlcg2ll.pas


* move the homogenous float aggregate determination function to a common
unit for ARM and AArch64
Commit consists out of
  • M .gitattributes
  • M compiler/Makefile
  • M compiler/Makefile.fpc
  • M compiler/aarch64/cpupara.pas
  • M compiler/arm/cpupara.pas
  • A compiler/armgen/armpara.pas
  • M compiler/ppcaarch64.lpi
  • M compiler/ppcarm.lpi
  • M packages/ide/fpmake.pp


* keep track of whether a routine has a C-style variadic parameter in the
procoptions even when it's through an array-of-const parameter
* always call create_varargs_paraloc_info() instead of create_paraloc_info()
in the former case, even when no varargs parameters are specified (because
on some platforms even some non-variadic parameters need to be passed
differently, such as on ARM with gnueabihf)
Commit consists out of
  • M compiler/aarch64/cpupara.pas
  • M compiler/arm/cpupara.pas
  • M compiler/avr/cpupara.pas
  • M compiler/defutil.pas
  • M compiler/i386/cpupara.pas
  • M compiler/i8086/cpupara.pas
  • M compiler/jvm/cpupara.pas
  • M compiler/m68k/cpupara.pas
  • M compiler/mips/cpupara.pas
  • M compiler/ncal.pas
  • M compiler/paramgr.pas
  • M compiler/pdecsub.pas
  • M compiler/powerpc/cpupara.pas
  • M compiler/powerpc64/cpupara.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cpupara.pas
  • M compiler/sparcgen/sppara.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/x86_64/cpupara.pas


* add support for HFA parameter passing for ARM hardfloat
(fixes test/cg/tcalext6)
Commit consists out of
  • M compiler/arm/cpupara.pas


* give an error when trying to call through to a C varargs routine with a
high level code generator
o we cannot create a high-level stub in that case
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/psub.pas


* type left-over parts of parameters as arrays of "stack slot alignment" if
they're an exact multiple of the ialignment size on LLVM. This prevents
both overalignment (e.g. remainder of 8 individual bytes on ARM
would be aligned to 8 bytes instead of 4 if typed as int64) and
underalignment (e.g. 32 bytes remainder of a record that needs to be
aligned to 8 bytes would be aligned to 1 or 4 bytes if types as
array of resp. bytes or longints)
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* remove double "nocapture" attributes
* also add "noalias nocapture" to sret parameters
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* use ` instead of ^ as replacement character in LLVM asmnodes, as ^ can
appear in ARM inline assembly
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/nllvmbas.pas


* properly set 8 byte parameter alignment for first parameter on ARM if
applicable
Commit consists out of
  • M compiler/arm/cpupara.pas


* also specify the byval alignment at the callee side
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* support OS_32/OS_64 in cgsize2subreg for ARM MM registers to handle
records passed in MM registers
Commit consists out of
  • M compiler/arm/cpubase.pas


Fix fullcycle/fullinstall by adding missing armgen directory -Fu option if PPC_TARGET is armeb
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* Removed unused local vars.
Commit consists out of
  • M compiler/arm/narmld.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/pdecvar.pas
  • M compiler/rgobj.pas


* Removed inline, since inherited is not supported.
Commit consists out of
  • M compiler/cclasses.pas


* Do not set pi_needs_got in current_procinfo.flags at the node level, since the GOT usage can only be estimated there. Instead set the pi_needs_got flag at places where the GOT register is accessed during the code generation. This eliminates generation of the unneeded initialization of the GOT register and fixes linker errors when the _GLOBAL_OFFSET_TABLE_ symbol is referenced but no actual GOT references are present.
Commit consists out of
  • M compiler/i386/cgcpu.pas
  • M compiler/i386/hlcgcpu.pas
  • M compiler/nbas.pas
  • M compiler/ncal.pas
  • M compiler/ncgrtti.pas
  • M compiler/ncnv.pas
  • M compiler/ncon.pas
  • M compiler/nflw.pas
  • M compiler/nld.pas
  • M compiler/nmem.pas
  • M compiler/psub.pas
  • M compiler/x86/nx86ld.pas
  • M compiler/x86/nx86set.pas


* i386: Minor PIC initialization improvement if the GOT register is forced to EBX.
Commit consists out of
  • M compiler/i386/cgcpu.pas


* i386 PIC: Do not force EBX as a GOT register if tf_section_threadvars is not set. Actually forcing EBX here is a bad idea anyway.
Commit consists out of
  • M compiler/i386/cpupi.pas


* i386: Do not request GOT for every function call. GOT is requested only for external calls in thlcgcpu.a_call_name(). Local calls are always PC relative.
Commit consists out of
  • M compiler/x86/cgx86.pas


* track va_uses_float_reg also for varargs functions without varargs
parameters (see e.g. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23070 )
Commit consists out of
  • M compiler/powerpc/cpupara.pas
  • M compiler/powerpc64/cpupara.pas


* better alignment values
Commit consists out of
  • M compiler/systems/i_linux.pas


* fix for 0041416: 64 bit values on 32 bit platforms can of course also be
passed in memory
Commit consists out of
  • M compiler/hlcg2ll.pas


* initialize function result for variadic functions (fixup for 0041420)
Commit consists out of
  • M compiler/sparcgen/sppara.pas


Fix tmoddiv4.pp test failure with -O1 option for powerpc64 as suggested by Jonas
Commit consists out of
  • M compiler/powerpc64/nppcmat.pas


* ppudump: Fixed a warning regarding text clipping.
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* patch by J. Gareth Moreton which avoids that the optimizer causes reads of invalid memory, resolves 0035187
Commit consists out of
  • M .gitattributes
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw35187.pp


* only add hidden parameters for objectdef methods after generating the vmt,
so that they take into account inherited calling conventions (mantis 0035233)
o don't needlessly calculate the paraloc info when generating a JVM mangled
name
Commit consists out of
  • M .gitattributes
  • M compiler/jvm/jvmdef.pas
  • M compiler/jvm/pjvm.pas
  • M compiler/jvm/symcpu.pas
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas
  • M compiler/pdecsub.pas
  • M compiler/pdecvar.pas
  • M compiler/pgenutil.pas
  • M compiler/pparautl.pas
  • M compiler/ptype.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas
  • A tests/webtbs/tw35233.pp


* also accept {$elsif} after {$if(n)def} (mantis 0034858)
Commit consists out of
  • M .gitattributes
  • M compiler/scanner.pas
  • A tests/webtbs/tw34858.pp


* fix msgtxt array size if the text size is an exact multiple of 240
Commit consists out of
  • M compiler/utils/msg2inc.pp


* clean up some things regarding explicit paraloc handling. this should fix m68k-amiga and powerpc-morphos builds after 0041716
Commit consists out of
  • M compiler/i386/cpupara.pas
  • M compiler/m68k/cpupara.pas
  • M compiler/pdecsub.pas
  • M compiler/powerpc/cpupara.pas
  • M compiler/riscv32/cpupara.pas


* reinstate the internalerror removed in 0041730 for i386, as that was a valid condition to verify
Commit consists out of
  • M compiler/i386/cpupara.pas


+ Add variables to use gppc386 utils more easily:
Use DEBUG_CYCLE=1 to generate cycle using gppcXX at each stage,
i.e. running ppcXX through gdbpas, using utils/gppc386.pp source,
compiled and copied to gppcXX.
+ Add other DEBUG_XXX varialbes, allowing to use gppcXX binary
at a specific level in cycle.
if DEBUG_PPXX is set, PPXXPREFIX variable will be set to 'g'
leading to the use of g$(PPXX) compiler, which will run $(ppXX)
compiler through gdbpas.

Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* added extra header to ppu inside a subsection, so we won't run into
trouble when the ppu version hits 255
* also moved several ppu flags to a set inside that section
Commit consists out of
  • M compiler/cresstr.pas
  • M compiler/dbgdwarf.pas
  • M compiler/dbgstabs.pas
  • M compiler/entfile.pas
  • M compiler/fmodule.pas
  • M compiler/fpcp.pas
  • M compiler/fppu.pas
  • M compiler/globtype.pas
  • M compiler/jvm/njvmutil.pas
  • M compiler/link.pas
  • M compiler/ngenutil.pas
  • M compiler/pcp.pas
  • M compiler/pdecobj.pas
  • M compiler/pdecsub.pas
  • M compiler/pexports.pas
  • M compiler/pexpr.pas
  • M compiler/pkgutil.pas
  • M compiler/pmodules.pas
  • M compiler/ppu.pas
  • M compiler/scandir.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/utils/ppuutils/ppuout.pp


* hopefully fix fpu emulation ppu header flag check after 0041846
Commit consists out of
  • M compiler/fppu.pas


* documented usage of ppuversion and ppulongversion
Commit consists out of
  • M compiler/ppu.pas


* check CurrentPPULongVersion in ppumove
Commit consists out of
  • M compiler/utils/ppumove.pp


- Add support for .option directive in riscv assembler.
- Use addiw when adjusting U32 to S32
Commit consists out of
  • M .gitattributes
  • M compiler/aasmtai.pas
  • M compiler/assemble.pas
  • M compiler/fpcdefs.inc
  • A compiler/riscv/rarvgas.pas
  • M compiler/riscv64/cgcpu.pas
  • M compiler/riscv64/rarv64gas.pas


- Port RISC-V64 startup code to native inline routines.
Commit consists out of
  • M .gitattributes
  • M compiler/systems.pas
  • M rtl/linux/Makefile
  • M rtl/linux/Makefile.fpc
  • D rtl/linux/riscv64/cprt0.as
  • D rtl/linux/riscv64/dllprt0.as
  • D rtl/linux/riscv64/gprt0.as
  • D rtl/linux/riscv64/prt0.as
  • A rtl/linux/riscv64/si_c.inc
  • A rtl/linux/riscv64/si_dll.inc
  • A rtl/linux/riscv64/si_prc.inc


- Fix UTX* optimizations that didn't consider the optional ROR parameter.
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* insert the hidden parameters for objectdef methods after resolving
overrides but before generating the VMT, so that these hidden parameters
are part of the procdefs stored in the VMT (fixes some LLVM type errors
after 0041716)
Commit consists out of
  • M compiler/jvm/pjvm.pas
  • M compiler/nobj.pas
  • M compiler/pdecl.pas
  • M compiler/pgenutil.pas


* use ".set" for aliasing global symbols on Darwin, instead of declaring
symbols after each other
o removed the .reference hack that was used previously
Commit consists out of
  • M compiler/hlcgobj.pas


* replaced TCmdStrListItem getter function with a property
Commit consists out of
  • M compiler/cclasses.pas


* moved sleb/uleb128 helpers to cutils and use SarInt64() intrinsic (based on
patch by J. Gareth Moreton, mantis 0035327)
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/cutils.pas


* micro-optimization for tentryfile.getbyte() (based on patch by
J. Gareth Moreton, mantis 0035406)
Commit consists out of
  • M compiler/entfile.pas


* optimized and simplified tai_aggregatetypedconst destruction
Commit consists out of
  • M compiler/aasmcnst.pas


- removed ttypedconstkind parameter from tai_simpletypedconst constructor,
as it always has to be tck_simple anyway
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/llvm/llvmtype.pas
  • M compiler/llvm/nllvmtcon.pas


* fixed double free in LLVM code generator after 0041963
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/llvm/nllvmtcon.pas


+ add support for MultiHelpers modeswitch by Ryan Joseph for Mantis 0035159
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/globtype.pas
  • M compiler/htypechk.pas
  • M compiler/symtable.pas
  • A tests/test/tmshlp1.pp
  • A tests/test/tmshlp10.pp
  • A tests/test/tmshlp11.pp
  • A tests/test/tmshlp12.pp
  • A tests/test/tmshlp13.pp
  • A tests/test/tmshlp14.pp
  • A tests/test/tmshlp15.pp
  • A tests/test/tmshlp16.pp
  • A tests/test/tmshlp2.pp
  • A tests/test/tmshlp3.pp
  • A tests/test/tmshlp4.pp
  • A tests/test/tmshlp5.pp
  • A tests/test/tmshlp6.pp
  • A tests/test/tmshlp7.pp
  • A tests/test/tmshlp8.pp
  • A tests/test/tmshlp9.pp
  • A tests/test/umshlp1.pp
  • A tests/test/umshlp15a.pp
  • A tests/test/umshlp15b.pp


* set correct fileinfo for statements_til_end() block
Commit consists out of
  • M compiler/pstatmnt.pas


* fix case completeness and unreachable code warnings in compiler that would
be introduced by the next commit
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/aarch64/aoptcpub.pas
  • M compiler/aarch64/cgcpu.pas
  • M compiler/aarch64/cpupara.pas
  • M compiler/aarch64/racpu.pas
  • M compiler/aarch64/racpugas.pas
  • M compiler/aarch64/rgcpu.pas
  • M compiler/aasmsym.pas
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/aopt.pas
  • M compiler/aoptobj.pas
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/arm/aoptcpub.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/cpubase.pas
  • M compiler/arm/cpuelf.pas
  • M compiler/arm/cpupara.pas
  • M compiler/arm/cpupi.pas
  • M compiler/arm/narmadd.pas
  • M compiler/arm/narmcnv.pas
  • M compiler/arm/raarmgas.pas
  • M compiler/arm/rgcpu.pas
  • M compiler/assemble.pas
  • M compiler/cfidwarf.pas
  • M compiler/cgobj.pas
  • M compiler/dbgbase.pas
  • M compiler/dbgcodeview.pas
  • M compiler/dbgdwarf.pas
  • M compiler/dbgstabs.pas
  • M compiler/dbgstabx.pas
  • M compiler/defcmp.pas
  • M compiler/defutil.pas
  • M compiler/fppu.pas
  • M compiler/gendef.pas
  • M compiler/hlcg2ll.pas
  • M compiler/hlcgobj.pas
  • M compiler/htypechk.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/i386/cgcpu.pas
  • M compiler/i386/cpuelf.pas
  • M compiler/i386/cpupara.pas
  • M compiler/i386/n386add.pas
  • M compiler/i8086/aoptcpu.pas
  • M compiler/i8086/cgcpu.pas
  • M compiler/i8086/cpupara.pas
  • M compiler/i8086/n8086add.pas
  • M compiler/i8086/symcpu.pas
  • M compiler/jvm/agjasmin.pas
  • M compiler/jvm/aoptcpu.pas
  • M compiler/jvm/cpupara.pas
  • M compiler/jvm/dbgjasm.pas
  • M compiler/jvm/hlcgcpu.pas
  • M compiler/jvm/jvmdef.pas
  • M compiler/jvm/njvmcnv.pas
  • M compiler/jvm/njvmcon.pas
  • M compiler/jvm/njvminl.pas
  • M compiler/jvm/rgcpu.pas
  • M compiler/jvm/tgcpu.pas
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvmtype.pas
  • M compiler/llvm/nllvmbas.pas
  • M compiler/llvm/nllvmld.pas
  • M compiler/llvm/nllvmtcon.pas
  • M compiler/llvm/rgllvm.pas
  • M compiler/mips/aasmcpu.pas
  • M compiler/mips/aoptcpu.pas
  • M compiler/mips/cgcpu.pas
  • M compiler/mips/cpubase.pas
  • M compiler/mips/cpuelf.pas
  • M compiler/mips/cpupara.pas
  • M compiler/mips/hlcgcpu.pas
  • M compiler/mips/itcpugas.pas
  • M compiler/mips/ncpuadd.pas
  • M compiler/mips/ncpuld.pas
  • M compiler/nadd.pas
  • M compiler/nbas.pas
  • M compiler/ncal.pas
  • M compiler/ncgbas.pas
  • M compiler/ncgcal.pas
  • M compiler/ncgcnv.pas
  • M compiler/ncgcon.pas
  • M compiler/ncgld.pas
  • M compiler/ncgmem.pas
  • M compiler/ncgnstld.pas
  • M compiler/ncgrtti.pas
  • M compiler/ncgset.pas
  • M compiler/ncgutil.pas
  • M compiler/ncgvmt.pas
  • M compiler/ncnv.pas
  • M compiler/ncon.pas
  • M compiler/ngenutil.pas
  • M compiler/ngtcon.pas
  • M compiler/ninl.pas
  • M compiler/nmat.pas
  • M compiler/nmem.pas
  • M compiler/nopt.pas
  • M compiler/nset.pas
  • M compiler/nutils.pas
  • M compiler/ogbase.pas
  • M compiler/ogcoff.pas
  • M compiler/ogelf.pas
  • M compiler/ogmacho.pas
  • M compiler/ogomf.pas
  • M compiler/omfbase.pas
  • M compiler/optdfa.pas
  • M compiler/options.pas
  • M compiler/optloop.pas
  • M compiler/opttail.pas
  • M compiler/optutils.pas
  • M compiler/optvirt.pas
  • M compiler/parabase.pas
  • M compiler/paramgr.pas
  • M compiler/parser.pas
  • M compiler/pbase.pas
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas
  • M compiler/pdecsub.pas
  • M compiler/pdecvar.pas
  • M compiler/pexports.pas
  • M compiler/pexpr.pas
  • M compiler/pgenutil.pas
  • M compiler/pkgutil.pas
  • M compiler/powerpc/agppcmpw.pas
  • M compiler/powerpc/aoptcpu.pas
  • M compiler/powerpc/cgcpu.pas
  • M compiler/powerpc/cpubase.pas
  • M compiler/powerpc/cpupara.pas
  • M compiler/powerpc/nppcadd.pas
  • M compiler/powerpc/nppcmat.pas
  • M compiler/powerpc/rappcgas.pas
  • M compiler/powerpc64/cgcpu.pas
  • M compiler/powerpc64/cpubase.pas
  • M compiler/powerpc64/cpupara.pas
  • M compiler/powerpc64/nppcadd.pas
  • M compiler/powerpc64/rappcgas.pas
  • M compiler/pparautl.pas
  • M compiler/ppcgen/aasmcpu.pas
  • M compiler/ppcgen/agppcgas.pas
  • M compiler/ppcgen/cgppc.pas
  • M compiler/ppcgen/ngppcadd.pas
  • M compiler/psub.pas
  • M compiler/ptype.pas
  • M compiler/rautils.pas
  • M compiler/rgobj.pas
  • M compiler/riscv/aasmcpu.pas
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv32/aoptcpu.pas
  • M compiler/riscv32/cpubase.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv32/cpupi.pas
  • M compiler/riscv32/nrv32cnv.pas
  • M compiler/riscv32/rarv32gas.pas
  • M compiler/riscv64/aoptcpu.pas
  • M compiler/riscv64/cgcpu.pas
  • M compiler/riscv64/cpubase.pas
  • M compiler/riscv64/cpupara.pas
  • M compiler/riscv64/cpupi.pas
  • M compiler/riscv64/rarv64gas.pas
  • M compiler/scanner.pas
  • M compiler/sparc/cgcpu.pas
  • M compiler/sparc/cpupara.pas
  • M compiler/sparc64/cpugas.pas
  • M compiler/sparc64/cpupara.pas
  • M compiler/sparcgen/aoptcpu.pas
  • M compiler/sparcgen/cgsparc.pas
  • M compiler/sparcgen/cpugas.pas
  • M compiler/sparcgen/itcpugas.pas
  • M compiler/sparcgen/rgcpu.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas
  • M compiler/symtype.pas
  • M compiler/symutil.pas
  • M compiler/systems/t_amiga.pas
  • M compiler/systems/t_bsd.pas
  • M compiler/systems/t_embed.pas
  • M compiler/systems/t_macos.pas
  • M compiler/systems/t_nds.pas
  • M compiler/systems/t_win.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/agx86att.pas
  • M compiler/x86/agx86int.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/cpubase.pas
  • M compiler/x86/nx86add.pas
  • M compiler/x86/nx86cnv.pas
  • M compiler/x86/nx86ld.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/x86/nx86mem.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/rax86att.pas
  • M compiler/x86/rax86int.pas
  • M compiler/x86/rgx86.pas
  • M compiler/x86/symx86.pas
  • M compiler/x86_64/aoptcpu.pas
  • M compiler/x86_64/cpuelf.pas
  • M compiler/x86_64/cpupara.pas
  • M compiler/x86_64/nx64flw.pas
  • M compiler/x86_64/win64unw.pas


+ support for verifying whether a case statements handles all possibilities
(based on patch by Martok)
o enabled by default in ISO and Extended Pascal: compile-time error if not
the case in ISO mode, warning and run-time error in Extended Pascal mode
o warning enabled by default in all other modes for boolean, enumeration and
subrange integer types with ranges different from the default ones
(i.e., different from 0..255, -128..127, 0..65536, etc)
o warnings for all ordinal types can be enabled in all modes with
-CC
Commit consists out of
  • M .gitattributes
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ncgset.pas
  • M compiler/nset.pas
  • M compiler/options.pas
  • M compiler/optutils.pas
  • M compiler/scandir.pas
  • M compiler/scanner.pas
  • M compiler/x86/nx86set.pas
  • M compiler/x86_64/nx64set.pas
  • A tests/test/tcasecov1.pp
  • A tests/test/tcasecov2.pp
  • A tests/test/tcasecov3.pp
  • A tests/test/tcasecov4.pp
  • A tests/test/tcasecov5.pp
  • A tests/test/tcasecov6.pp
  • A tests/test/tcasecov7.pp
  • A tests/test/tcasecov8.pp
  • A tests/test/tcasecov9.pp


* fix overflow errors in case coverage code
Commit consists out of
  • M compiler/nset.pas


* fixed crashes on platforms using parentfpstructs with generic routines
that contain nested functions (when specialised, procedures don't have
the main function of the unit/program as parent procinfo)
Commit consists out of
  • M compiler/ncgnstld.pas
  • M compiler/ncgnstmm.pas
  • M compiler/symdef.pas


Remove two warnings about missing case (others are still present in ppudump.pp source)
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/utils/ppuutils/ppuout.pp


Fix arm-aros rtl compilation
Commit consists out of
  • M compiler/arm/aasmcpu.pas


* DFA now takes case-completeness into account (mantis 0035598)
Commit consists out of
  • M .gitattributes
  • M compiler/optdfa.pas
  • A tests/test/opt/tdfa19.pp
  • A tests/test/opt/tdfa20.pp


* updated German message files (patch by Karl-Michael Schindler,
mantis 0035559)
Commit consists out of
  • M compiler/msg/errord.msg
  • M compiler/msg/errordu.msg


* append rather than insert the alias symbols for the program/procedure
initialisation/finalisation routines
o this ensures the procdef's mangled name and its first symbol match,
which is required for Darwin when generating debug information and
using ".set" directives to define alias symbols, because a symbol
defined via ".set" cannot be used in a data relocations (and the DWARF
debug generator uses the default mangled name, which used to correspond
to the alias symbol due to the "insert" instead of "append")
Commit consists out of
  • M compiler/pmodules.pas


* don't double-define function aliases for Darwin defined via ".set" directive
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/hlcgobj.pas


* fixed loading parent frame pointer for nested procvars on targets that
that use explicit parentfp structs (fixes webtbs/tw17379 for llvm)
Commit consists out of
  • M compiler/ncgld.pas
  • M tests/webtbs/tw17379.pp


* fixed memory leak
Commit consists out of
  • M compiler/pexpr.pas


* made the fields array parameter of llvmgettemprecorddef "const", as it
doesn't get modified and hence doesn't need to be copied
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* abstracted registration of library init/fini routines (to be able to add
LLVM support)
Commit consists out of
  • M compiler/ngenutil.pas
  • M compiler/pmodules.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M rtl/inc/compproc.inc
  • M rtl/inc/system.inc


Add DEBUG_PPU conditional code to be able to debug ppu changes (only useful for debugging purposes)
Commit consists out of
  • M compiler/entfile.pas
  • M compiler/ppu.pas


* disable regular array -> dynamic array type coversion support unless
{$modeswitch arraytodynarray} is active (mantis 0035576)
o changed compiler to compile without this modeswitch
o added the modeswitch to a test that depends on it
Commit consists out of
  • M compiler/aarch64/cpupara.pas
  • M compiler/arm/cpupara.pas
  • M compiler/defcmp.pas
  • M compiler/globtype.pas
  • M compiler/i386/cpupara.pas
  • M compiler/i8086/cpupara.pas
  • M compiler/jvm/cpupara.pas
  • M compiler/m68k/cpupara.pas
  • M compiler/mips/cpupara.pas
  • M compiler/paramgr.pas
  • M compiler/powerpc/cpupara.pas
  • M compiler/powerpc64/cpupara.pas
  • M compiler/x86_64/cpupara.pas
  • M tests/webtbs/tw2983.pp


* fix mantis 00035656
Commit consists out of
  • M compiler/symdef.pas


Fix division of constants on ARM thumb without long multiplication.
Commit consists out of
  • M compiler/arm/narmmat.pas


* support for handling subsetrefs with bitlen > AIntBits in a_load_subsetref_reg() and
a_load_const/reg_subsetref() (needed for handling 32 bit platforms using a purely
high level code generator like LLVM's, and may also improve the situation for
16 bit platforms)
o can probably be optimized to split them into parts that cover partial word loads
and complete word loads (to reduce useless merging)
Commit consists out of
  • M compiler/hlcgobj.pas


* fixed cbool "and" with full boolean evaluation, and cbool "xor"
(mantis 0035272)
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw35272.pp


Added T2 form of LDR/STR for SP relative forms.
Commit consists out of
  • M compiler/arm/armins.dat
  • M compiler/arm/armnop.inc
  • M compiler/arm/armtab.inc


+ added TNewExeHeaderFlags type, describing the flags in the header of win16 executables
Commit consists out of
  • M compiler/ogomf.pas


+ added enum TNewExeTargetOS
Commit consists out of
  • M compiler/ogomf.pas


+ added type TNewExeAdditionalHeaderFlags
Commit consists out of
  • M compiler/ogomf.pas


- removed "cmp 0/1, pasbool1" optimization for llvm because this discards
the upper 7 bits of the boolean, while other platforms take it into
account (even though they're technically always required to be 0, and
the value is undefined if they're not)
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* fix bootstrapping with 3.0.x and -O3
Commit consists out of
  • M compiler/fpcdefs.inc


* lazarus version update
Commit consists out of
  • M compiler/pp.lpi


* GBA port updated
Commit consists out of
  • M compiler/systems/t_gba.pas
  • M packages/libgbafpc/Makefile.fpc.fpcmake
  • M packages/libgbafpc/src/gba/gba_sound.inc
  • M rtl/gba/cprt0.as
  • M rtl/gba/prt0.as


* Nintendo DS port updated to libnds ver.1.7.3
Commit consists out of
  • M .gitattributes
  • M compiler/systems/t_nds.pas
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/audio_modes.pp
  • M packages/libndsfpc/examples/audio/maxmod/reverb/reverb.pp
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/song_events_example.pp
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/song_events_example2.pp
  • M packages/libndsfpc/examples/audio/maxmod/streaming/streaming.pp
  • M packages/libndsfpc/examples/audio/micrecord/micrecord.pp
  • M packages/libndsfpc/examples/card/eeprom/eeprom.pp
  • M packages/libndsfpc/examples/ds_motion/dsMotion.pp
  • M packages/libndsfpc/examples/dswifi/ap_search/apSearch.pp
  • M packages/libndsfpc/examples/dswifi/autoconnect/autoconnect.pp
  • M packages/libndsfpc/examples/dswifi/httpget/httpget.pp
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/libfatdir.pp
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/3DBothScreens.pp
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/BoxTest.pp
  • M packages/libndsfpc/examples/graphics/3D/Display_List/DisplayList.pp
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/DisplayList2.pp
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/EnvMapping.pp
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/MixedText3D.pp
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Ortho.pp
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/PalettedCube.pp
  • M packages/libndsfpc/examples/graphics/3D/Picking/Picking.pp
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/SimpleQuad.pp
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/SimpleTri.pp
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/TexturedCube.pp
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/TexturedQuad.pp
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/ToonShading.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/lesson01.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/lesson02.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/lesson03.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/lesson04.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/lesson05.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/lesson06.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/lesson07.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/lesson08.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/lesson09.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/lesson10.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/lesson10b.pp
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/lesson11.pp
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/BackgroundAllInOne.pp
  • M packages/libndsfpc/examples/graphics/Makefile.fpc
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/AnsiConsole.pp
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/ConsoleWindows.pp
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/CustomFont.pp
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/printBothScreens.pp
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/RotscaleText.pp
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/AllocationTest.pp
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/BitmapSprites.pp
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/FireAndSprites.pp
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/data/ball.pcx
  • A packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • A packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile.fpc
  • A packages/libndsfpc/examples/graphics/grit/256colorTilemap/gfx/tilemap.grit
  • A packages/libndsfpc/examples/graphics/grit/256colorTilemap/gfx/tilemap.png
  • A packages/libndsfpc/examples/graphics/grit/256colorTilemap/tilemap_256_color.pp
  • A packages/libndsfpc/examples/graphics/grit/Makefile.fpc
  • M packages/libndsfpc/examples/hello_world/helloWorld.pp
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile.fpc
  • M packages/libndsfpc/src/dswifi/inc/dswifi9.inc
  • M packages/libndsfpc/src/fat/fat.inc
  • M packages/libndsfpc/src/fat/gbfs.pp
  • A packages/libndsfpc/src/nds/arm7/aes.inc
  • M packages/libndsfpc/src/nds/arm7/audio.inc
  • M packages/libndsfpc/src/nds/arm7/clock.inc
  • A packages/libndsfpc/src/nds/arm7/codec.inc
  • M packages/libndsfpc/src/nds/arm7/sdmmc.inc
  • M packages/libndsfpc/src/nds/arm7/touch.inc
  • A packages/libndsfpc/src/nds/arm9/cache_asm.inc
  • M packages/libndsfpc/src/nds/arm9/dldi.inc
  • A packages/libndsfpc/src/nds/arm9/dldi_asm.inc
  • M packages/libndsfpc/src/nds/arm9/guitarGrip.inc
  • M packages/libndsfpc/src/nds/arm9/math.inc
  • A packages/libndsfpc/src/nds/arm9/nand.inc
  • M packages/libndsfpc/src/nds/arm9/sassert.inc
  • M packages/libndsfpc/src/nds/arm9/sprite.inc
  • M packages/libndsfpc/src/nds/arm9/video.inc
  • M packages/libndsfpc/src/nds/card.inc
  • M packages/libndsfpc/src/nds/disc_io.inc
  • M packages/libndsfpc/src/nds/dma.inc
  • M packages/libndsfpc/src/nds/fifocommon.inc
  • M packages/libndsfpc/src/nds/fifomessages.inc
  • M packages/libndsfpc/src/nds/interrupts.inc
  • M packages/libndsfpc/src/nds/libversion.inc
  • M packages/libndsfpc/src/nds/memory.inc
  • M packages/libndsfpc/src/nds/ndsinclude.inc
  • M packages/libndsfpc/src/nds/ndstypes.inc
  • M packages/libndsfpc/src/nds/registers_alt.inc
  • A packages/libndsfpc/src/nds/rsa.inc
  • A packages/libndsfpc/src/nds/sha1.inc
  • M packages/libndsfpc/src/nds/system.inc
  • M packages/libndsfpc/src/nds7.pp
  • M packages/libndsfpc/src/nds9.pp
  • M rtl/nds/cprt07.as
  • M rtl/nds/cprt09.as
  • M rtl/nds/prt07.as
  • M rtl/nds/prt09.as
  • M rtl/nds/system.pp


+ added set TNewExeSegmentFlags
Commit consists out of
  • M compiler/ogomf.pas


* prettify the "Use of +offset(%ebp) is not compatible with regcall convention"
and "Use of +offset(%ebp) for parameters invalid here" warning messages by
showing the exact register used (bp, ebp or rbp) and using the original asm
syntax (Intel: [EBP+offset]; AT&T: +offset(%ebp) )
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/x86/rax86.pas


* prettify the "Use of -offset(%ebp) is not recommended for local variable
access" warning by showing the exact register used (bp, ebp or rbp) and using
the original asm syntax
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/x86/rax86.pas


+ introduced the asmmodes_x86_intel constant set
Commit consists out of
  • M compiler/systems.pas
  • M compiler/x86/rax86.pas


+ add asmmode_standard to the asmmodes_x86_intel set on i8086, because i8086 defaults to intel syntax
Commit consists out of
  • M compiler/systems.pas


* prettify the "Use of -offset(%esp), access may cause a crash or value may be
lost" warning by showing the exact register used (esp or rsp) and using the
asm syntax (Intel or AT&T) used originally in the code
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/x86/rax86.pas


+ added the asmmodes_x86_att set constant - similar to asmmode_x86_intel, but for AT&T asm syntax
Commit consists out of
  • M compiler/systems.pas


* suppress warning for targets without MM registers
Commit consists out of
  • M compiler/hlcg2ll.pas


* Updated Wii port to libogc 1.8.22
Commit consists out of
  • M compiler/systems/t_wii.pas
  • M packages/libogcfpc/src/network.pp
  • M packages/libogcfpc/src/ogc/arqmgr.inc
  • M packages/libogcfpc/src/ogc/cast.inc
  • M packages/libogcfpc/src/ogc/dsp.inc
  • M packages/libogcfpc/src/ogc/gx.inc
  • M packages/libogcfpc/src/ogc/isfs.inc
  • M packages/libogcfpc/src/ogc/lwp_watchdog.inc
  • M packages/libogcfpc/src/ogc/si.inc
  • M packages/libogcfpc/src/ogc/system.inc
  • M packages/libogcfpc/src/ogc/usbstorage.inc
  • M packages/libogcfpc/src/ogcsys.inc
  • M packages/libogcfpc/src/sdcard/card_io.inc


+ added class TNewExeHeader that encapsulates a NewExe header and allows writing it to a file
Commit consists out of
  • M compiler/ogomf.pas


+ initialize some defaults in the TNewExeHeader constructor
Commit consists out of
  • M compiler/ogomf.pas


+ added class TNewExeOutput. Not functional yet.
Commit consists out of
  • M compiler/ogomf.pas


+ added a win16 internal linker class. Not functional yet.
Commit consists out of
  • M compiler/systems.inc
  • M compiler/systems/t_win16.pas


+ implement TInternalLinkerWin16.DefaultLinkScript by copying the MS-DOS
implementation (not correct, but a good starting point)
Commit consists out of
  • M compiler/systems/t_win16.pas


- remove the tiny memory model code from TInternalLinkerWin16.DefaultLinkScript,
because the Win16 target doesn't support the tiny memory model
Commit consists out of
  • M compiler/systems/t_win16.pas


+ register a win16 dll scanner. Not functional yet.
Commit consists out of
  • M compiler/systems/t_win16.pas


+ added constants for the known CC_OmfExtension record subtypes (IMPDEF and
EXPDEF are the ones we care about - they are used in win16 dll import and
export libraries)
Commit consists out of
  • M compiler/omfbase.pas


+ dispatch the IMPDEF and EXPDEF records to the newly introduced ReadImpDef and
ReadExpDef methods (not implemented yet)
Commit consists out of
  • M compiler/ogomf.pas


+ use the new CC_OmfExtension_EXPDEF constant instead of the direct magic value
when writing export libraries
Commit consists out of
  • M compiler/systems/t_win16.pas


+ use the new CC_OmfExtension_IMPDEF constant instead of the direct magic value
when writing IMPDEF records
Commit consists out of
  • M compiler/ogomf.pas


+ introduced the TOmfRecord_COMENT_Subtype abstract class
Commit consists out of
  • M compiler/omfbase.pas


+ introduced the TOmfRecord_COMENT_IMPDEF class. Use it to encode the IMPDEF
records instead of encoding them directly.
Commit consists out of
  • M compiler/ogomf.pas
  • M compiler/omfbase.pas


+ introduced the TOmfRecord_COMENT_EXPDEF class. Use that to generate export
libraries instead of generating the magic string directly.
Commit consists out of
  • M compiler/omfbase.pas
  • M compiler/systems/t_win16.pas


+ Implemented TOmfRecord_COMENT_EXPDEF.DecodeFrom
Commit consists out of
  • M compiler/omfbase.pas


+ keep (certain) arrays in registers if they are used with constants indices only
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/hlcgobj.pas
  • M compiler/ncgmem.pas
  • M compiler/ncnv.pas
  • M compiler/nmem.pas
  • M compiler/symdef.pas


* building on powerpc and arm fixed
Commit consists out of
  • M compiler/ncgmem.pas


+ implemented TOmfRecord_COMENT_IMPDEF.DecodeFrom
Commit consists out of
  • M compiler/omfbase.pas


* disable array and record regvars for all cpuhighleveltarget platforms
Commit consists out of
  • M compiler/symdef.pas


Commit of new debug feature implemented by J. Gareth Moreton
Allows compilation of compiler using -dDEBUG_NODE_XML
which will generate a NAME-node-dump.xml file for each
unit, program or library compiled,
containing a XML description of the nodes handled during
compilation of the unit, program or library.
Commit consists out of
  • M compiler/finput.pas
  • M compiler/i8086/n8086con.pas
  • M compiler/nbas.pas
  • M compiler/ncal.pas
  • M compiler/ncnv.pas
  • M compiler/ncon.pas
  • M compiler/nflw.pas
  • M compiler/ninl.pas
  • M compiler/nld.pas
  • M compiler/nmem.pas
  • M compiler/node.pas
  • M compiler/nset.pas
  • M compiler/pmodules.pas
  • M compiler/psub.pas


* one more disable location of DoPipe in case not on a Unix platform
(mantis 0035743)
Commit consists out of
  • M compiler/assemble.pas


* partial fix for Mantis 0035346: more "inline" directives for TCStream and TCMemoryStream methods
Commit consists out of
  • M compiler/cstreams.pas


* remaining fix for Mantis 0035346: add "inline" directives to various methods of tentryfile
Commit consists out of
  • M compiler/entfile.pas


* simplify and optimize generated LLVM code for case statements
Commit consists out of
  • M .gitattributes
  • M compiler/llvm/llvmnode.pas
  • A compiler/llvm/nllvmset.pas


* also register symbols referenced from assembler via asolutevarsyms
Commit consists out of
  • M compiler/rautils.pas


* volatile syms should never be regable
Commit consists out of
  • M compiler/symsym.pas


* LLVM-specific support for bsr*/bsf*
Commit consists out of
  • M compiler/llvm/nllvminl.pas
  • M compiler/nbas.pas
  • M compiler/ninl.pas
  • M compiler/options.pas
  • M rtl/inc/llvmintr.inc


* LLVM-specific support for popcnt
Commit consists out of
  • M compiler/llvm/nllvminl.pas
  • M rtl/inc/llvmintr.inc


* record in ppu flag whether or not symbols are ansistrings, and use that
flag in ppudump rather than hardcoding targets (it's also the case for
LLVM)
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/globtype.pas
  • M compiler/utils/ppuutils/ppudump.pp


- removed remnants of old ppu file support (ppudump does not support any
other ppu version than the current one anyway)
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* fixed compilation with -dTest_Double_checksum_write
Commit consists out of
  • M compiler/fppu.pas


Commit patch submitted in bug report 0035787 by Gareth Moreton
Commit consists out of
  • M compiler/node.pas
  • M compiler/psub.pas


* fixed range test optimization for signed types and enabled it for them
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw34385a.pp


- Fix bug in 64bit softfloat double negation.
- Clean up handling of CPU/FPU type handling in RISCV.
- Do more fixes to get RISCV32 working.
- Fix most soft multiplication handling for generic RISCV code. Still missing a few.
- Add RISCV embedded targets.
Commit consists out of
  • M compiler/globals.pas
  • M compiler/ncgmat.pas
  • M compiler/options.pas
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv/nrvadd.pas
  • M compiler/riscv/nrvinl.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv32/nrv32mat.pas
  • M compiler/riscv64/cpuinfo.pas
  • M compiler/systems/i_embed.pas
  • M compiler/systems/t_embed.pas


* maybereplacewithtemp/maybereplacewithtempref: also create a temp in case
of possible side effects
Commit consists out of
  • M compiler/nbas.pas


- disabled ogmacho, as it can no longer deal with the assembly we generate
Commit consists out of
  • M compiler/i386/cputarg.pas


* on Mach-O, PECOFF and ELF platforms, write local symbols as hidden/
private_extern (or plain global in case of PECOFF, as the effect is
the same there): visible across object files, but they become local
when linked into a binary/library. This enables cross-unit inlining
of functions accessig implementation-only symbols.
Commit consists out of
  • M compiler/aarch64/hlcgcpu.pas
  • M compiler/aasmbase.pas
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/arm/hlcgcpu.pas
  • M compiler/elfbase.pas
  • M compiler/hlcgobj.pas
  • M compiler/i386/hlcgcpu.pas
  • M compiler/i8086/hlcgcpu.pas
  • M compiler/llvm/nllvmutil.pas
  • M compiler/m68k/hlcgcpu.pas
  • M compiler/mips/hlcgcpu.pas
  • M compiler/ncal.pas
  • M compiler/ncgutil.pas
  • M compiler/ngenutil.pas
  • M compiler/ngtcon.pas
  • M compiler/ogbase.pas
  • M compiler/ogcoff.pas
  • M compiler/ogelf.pas
  • M compiler/ppcgen/hlcgppc.pas
  • M compiler/psub.pas
  • M compiler/riscv/hlcgrv.pas
  • M compiler/sparcgen/hlcgcpu.pas
  • M compiler/systems.pas
  • M compiler/systems/i_android.pas
  • M compiler/systems/i_aros.pas
  • M compiler/systems/i_bsd.pas
  • M compiler/systems/i_haiku.pas
  • M compiler/systems/i_linux.pas
  • M compiler/systems/i_nativent.pas
  • M compiler/systems/i_sunos.pas
  • M compiler/systems/i_win.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/hlcgcpu.pas


* factored out checks whether a procdef's symbol needs to be global, and
the generation of the procdef's asmsymbols
o also removed unnecessary definition of procdef alias symbols for Darwin
(they are already defined in ncgutil.alloc_proc_symbol)
Commit consists out of
  • M compiler/aasmdata.pas
  • M compiler/hlcgobj.pas
  • M compiler/ncgutil.pas
  • M compiler/psub.pas
  • M compiler/symdef.pas


* fix tobjectdef.vmt_def to search in the correct symtable
* always register vmt defs (so they get written to the ppu) in case of llvm,
because it may need this def in case a method from a class defined in the
implementation of unit gets called from an inlined routine that gets
inlined in another unit (normally that vmt def would not get written to
the ppu file, as it can't be referenced from the interface and it's also
not necessarily directly referenced from the inline routine's nodes)
(fixes sdo_dataobject compilation with LLVM after enabling cross-unit
inlining of methods accessing static symbol table symbols)
Commit consists out of
  • M compiler/nobj.pas
  • M compiler/symdef.pas


+ parse the IMPDEF record in TOmfObjInput.ReadImpDef
Commit consists out of
  • M compiler/ogomf.pas


Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 1/3]

Implemented attributes for class types and properties (based on work by Joost van der Sluis). Added TCustomAttribute - a base class for attributes. Added TUnitInfo record to RTTI. It contains the unit name and unit options (for now only a flag which specifies if the unit contains attributes). Added several tests for attributes.
Commit consists out of
  • M .gitattributes
  • M compiler/fmodule.pas
  • M compiler/globals.pas
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/ncgrtti.pas
  • M compiler/ngenutil.pas
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas
  • M compiler/pmodules.pas
  • M compiler/psub.pas
  • M compiler/ptype.pas
  • M compiler/symconst.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas
  • M packages/rtl-objpas/src/inc/rtti.pp
  • M rtl/inc/objpas.inc
  • M rtl/inc/objpash.inc
  • M rtl/objpas/typinfo.pp
  • A tests/test/tclassattribute1.pp
  • A tests/test/tclassattribute10.pp
  • A tests/test/tclassattribute2.pp
  • A tests/test/tclassattribute3.pp
  • A tests/test/tclassattribute4.pp
  • A tests/test/tclassattribute5.pp
  • A tests/test/tclassattribute6.pp
  • A tests/test/tclassattribute7.pp
  • A tests/test/tclassattribute8.pp
  • A tests/test/tclassattribute9.pp


Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 2/3]

Regenerated compiler/msgidx.inc and compiler/msgtxt.inc.
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 3/3]

Added FPC_REQUIRES_PROPER_ALIGNMENT to TUnitInfo definition. Added FPC_HAS_EXTENDED_RTTI define.
Commit consists out of
  • M compiler/ngenutil.pas
  • M compiler/options.pas
  • M rtl/objpas/typinfo.pp


* rename trtti_attributesdef to trtti_attributes_list
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas
  • M compiler/ptype.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas


* change boolean parameters for try_consume_unitsym to a set
Commit consists out of
  • M compiler/pbase.pas
  • M compiler/pexpr.pas
  • M compiler/pstatmnt.pas
  • M compiler/ptype.pas


* instead of declaring another type with a 'attribute' suffix, *search* for another type with a 'ATTRIBUTE' suffix (Delphi allows declaring both a TFoo and TFooAttribute in the same unit)
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/globals.pas
  • M compiler/pbase.pas
  • M compiler/pdecl.pas
  • M compiler/pexpr.pas
  • A tests/test/tcustomattr11.pp


* fix typo
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas


* instead of embedding the attributes inside the class' and property's type data only store a reference to a table of attributes
Commit consists out of
  • M compiler/ncgrtti.pas
  • M packages/rtl-objpas/src/inc/rtti.pp
  • M rtl/objpas/typinfo.pp


* always write a class' reference to the attribute table, even if the unit does not have attributes
Commit consists out of
  • M compiler/ncgrtti.pas
  • M rtl/objpas/typinfo.pp


- remove unit info and related code again as that will be handled similar, but differently with dynamic packages
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/ncgrtti.pas
  • M compiler/ngenutil.pas
  • M compiler/options.pas
  • M compiler/pdecl.pas
  • M compiler/pmodules.pas
  • M rtl/inc/objpas.inc
  • M rtl/objpas/typinfo.pp


* considering that at least in theory every symbol and every def can carry RTTI attributes (Delphi only supports property and field symbols), move the rtti_attribute_list to tstoredsym/tstoreddef
Commit consists out of
  • M compiler/symdef.pas
  • M compiler/symsym.pas


* as attributes can be part of any type they are best suited in a common part of TTypeData
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas
  • M rtl/inc/dynarr.inc
  • M rtl/inc/objpas.inc
  • M rtl/inc/rttidecl.inc
  • M rtl/inc/system.inc
  • M rtl/objpas/typinfo.pp


* fix code formatting (no code changes)
Commit consists out of
  • M compiler/pdecl.pas


* check that we indeed have a type node and nothing else
* with a type node it's not necessary to check whether it's typedef is assigned
Commit consists out of
  • M compiler/pdecl.pas


* fix code formatting (no code changes)
Commit consists out of
  • M compiler/pdecl.pas


* rework code for parsing attributes to only allow constant expressions; Delphi only allows those as well and better we don't open *that* pandora's box just yet
Commit consists out of
  • M compiler/pdecl.pas


* fix code formatting (no code changes)
Commit consists out of
  • M compiler/symdef.pas


* store the parameter nodes in the attribute object as well (we need to write them to the RTTI as well as store them in the PPU)
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/symdef.pas


* ensure that any potentially created constructor call is freed if the attribute is not bound to a def or sym
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas
  • M compiler/symdef.pas


* instead of collecting the raw parameters we need to collect the parameters as passed to the call as there might be type conversions involved
Commit consists out of
  • M compiler/pdecl.pas


* better check for a valid call node
Commit consists out of
  • M compiler/pdecl.pas


* take a copy of the constructor assignment node (and free it together with the attribute)
Commit consists out of
  • M compiler/symcreat.pas
  • M compiler/symdef.pas


+ add methods for the const nodes to directly emit their constant data to a constant builder
Note: reduce code duplication, especially for the tsetconstnode (with its descendant tcgsetconstnode)
Commit consists out of
  • M compiler/ncon.pas


* the RTTI of an attribute not only consists of the creation function, but also of the attribute's type, a pointer to the constructor and a data blob containing the constant parameters
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas
  • M rtl/objpas/typinfo.pp
  • A tests/test/tcustomattr13.pp


* add a remark that's going to be important once extended RTTI is supported (Delphi programs crash if an attribute's constructor is used that does not have any extended RTTI)
Commit consists out of
  • M compiler/pdecl.pas


* move binding of a dangling attribute list to a sym's/def's attribute list to a class procedure of trtti_attribute_list
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas
  • M compiler/symdef.pas


* make the reference to the TCustomAttribute type global
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/symdef.pas
  • M compiler/symtable.pas


* generate construction function for the attributes used in a unit using a more straight forward approach
ToDo: "collect" attributes of same type and same argument list and generate constructor only once for them
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/ncgrtti.pas
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas
  • M compiler/pmodules.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas


* trtti_attribute_list.bind already checks whether the dangling attribute list is assigned or not
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas


- remove code to create an attribute using a synthetic function
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/symconst.pas
  • M compiler/symcreat.pas
  • M compiler/symtable.pas


- remove functionality to get the code block when parsing again (let's open this pandora's box only when really needed...)
Commit consists out of
  • M compiler/psub.pas


- symbolname field is no longer required
Commit consists out of
  • M compiler/symdef.pas


+ add functions for syms and defs and write sub entries of the sym/def to PPU and loads them again
Commit consists out of
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas


* explicitely store the procdef of the picked constructor of the attribute
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/symdef.pas


* store attribute information in PPU; this is less important for the compiler, but more for e.g. Lazarus when dealing with binary only units
* increase ppu version
+ added test
* adjust ppudump to handle attributes as well
ToDo: output parameter nodes as well
Commit consists out of
  • M .gitattributes
  • M compiler/ppu.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/utils/ppuutils/ppuout.pp
  • A tests/test/tcustomattr14.pp
  • A tests/test/ucustomattr14a.pp
  • A tests/test/ucustomattr14b.pp


* disable [...] syntax for procedure directives if modeswitch "prefixed attributes" is enabled; they conflict otherwise and it's not easily resolveable
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pdecsub.pas
  • A tests/test/tcustomattr15.pp
  • A tests/test/tcustomattr16.pp


* use two empty lines between method definitions (no code changes)
Commit consists out of
  • M compiler/symdef.pas


* correct identation (no code changes)
Commit consists out of
  • M compiler/pdecl.pas


* allow custom attributes for all type declarations that are not a simple alias
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/pdecl.pas
  • A tests/test/tcustomattr17.pp
  • A tests/test/tcustomattr18.pp


* don't free the constructor call in trtti_attribute_list as that is already freed in the destructor of trtti_attribute
Commit consists out of
  • M compiler/symdef.pas


* free unbound attributes
Commit consists out of
  • M compiler/pdecl.pas


* check for unbound attributes inside classes (currently they are only allowed for published properties)
Note: no tests yet as sooner or later most will be dropped once extended RTTI is added
Commit consists out of
  • M compiler/pdecobj.pas


* allow use of multiple, comma separated attributes as Delphi allows that as well
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pdecl.pas
  • A tests/test/tcustomattr19.pp


* adjust error message when attributes are unbound
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/pdecl.pas


* regenerate msg*.inc files
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


fixed the messy state of messages after recent custom attributes merge. fixed a typo, fixed double definition of message 3350, restored a message that was removed but still used, so the build passes at least.
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/psub.pas


* get rid of the scanner message for attributes for real this time (sometimes I *really* hate Git -.-)
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecobj.pas


* first bunch of fixes for rtti for arm after attribute commits, fixes mostly alignment issues
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas
  • M rtl/inc/sstrings.inc


- removed maxcrecordalign parameter/field from recordsymtables, as this value
cannot be modified in the settings (so we can directly use the one from
current_settings)
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/cresstr.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvmpi.pas
  • M compiler/llvm/nllvmtcon.pas
  • M compiler/llvm/nllvmutil.pas
  • M compiler/ncal.pas
  • M compiler/ncgrtti.pas
  • M compiler/ncgvmt.pas
  • M compiler/ngenutil.pas
  • M compiler/nobj.pas
  • M compiler/objcgutl.pas
  • M compiler/pdecvar.pas
  • M compiler/pgenutil.pas
  • M compiler/pparautl.pas
  • M compiler/psystem.pas
  • M compiler/ptype.pas
  • M compiler/symdef.pas
  • M compiler/symtable.pas


* properly align rtti for orddefs
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas


* compilation fixed
Commit consists out of
  • M compiler/ncgrtti.pas


* fix for Mantis 0023071: also store local symtable in the PPU if the procdef is generic as we need it to resolve genericdefs to nested types
Commit consists out of
  • M .gitattributes
  • M compiler/symdef.pas
  • A tests/webtbs/tw23071.pp
  • A tests/webtbs/uw23071.pp


* increase PPU version now that all generic procdefs store their local symtables
Commit consists out of
  • M compiler/ppu.pas


* don't reuse defs for attribute lists or individual attributes with parameters, as
they don't have a constant size
o fixes LLVM internalerror 2015122402 for test/tcustomattr{12,13,19}
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas


* search dynamic string data record in correct symtable in
tllvmtai_typedconstbuilder.emit_string_offset
o fixes LLVM internalerror 2014080406 for test/tcustomattr14
Commit consists out of
  • M compiler/llvm/nllvmtcon.pas


* fix for Mantis 0035866: parse_paras does not check whether the expressions are really constant, so check that manually
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pdecl.pas
  • A tests/webtbf/tw35866.pp


* don't bother finding the correct constructor if the attribute isn't a TCustomAttribute descendant anyway; simply skip the parameters in that case
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/pdecl.pas
  • A tests/test/tcustomattr20.pp
  • A tests/test/tcustomattr21.pp


* more fixes to rtti after attribute branch merging
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas
  • M rtl/inc/dynarr.inc
  • M rtl/inc/rtti.inc
  • M rtl/inc/rttidecl.inc
  • M rtl/objpas/typinfo.pp


* fixed field alignment when reusing an anonymous recorddef for LLVM and
the LLVM layout of an instance does not match the original one
(e.g. because it contains procdefs of procedures with different
signatures)
Commit consists out of
  • M compiler/llvm/nllvmtcon.pas


* reverted 0042463, the internalerrors were caused by a bug in the LLVM typed
constant builder
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas


* some runtime errors fixed, if compiled with -CrR
Commit consists out of
  • M compiler/cfidwarf.pas
  • M compiler/pdecl.pas
  • M compiler/symdef.pas


* don't apply user-specified constant alignments to RTTI data
Commit consists out of
  • M compiler/ncgrtti.pas


- fixed check for determining whether requesting the size of an array is
an invalid operation after 0042479, as regular arrays can have high=-1
(mantis 0035874, already checked by trange3)
Commit consists out of
  • M compiler/symdef.pas


* generate correctly aligned string RTTI, fixes trtti7 on ARM
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas


* fix writing of floating point attribute parameters
Commit consists out of
  • M compiler/ncon.pas


+ enable the win16 internal linker if the compiler is compiled with the
WIN16_INTERNAL_LINKER define. Since the win16 internal linker isn't completed
yet, this define is not enabled by default.
Commit consists out of
  • M compiler/systems/i_win16.pas


* (non-ancient) Delphi versions that accept explicit ordinal -> floating
point typecasts behave the same as FPC (convert the value) rather than
as Turbo Pascal (reinterpret the bit pattern) (mantis 0035886)
Commit consists out of
  • M .gitattributes
  • M compiler/defcmp.pas
  • A tests/webtbs/tw35886.pp


* use the size of the generated anonymous record instead of the manual tracked size so that any padding is picked up as well
Commit consists out of
  • M compiler/ncgrtti.pas


* set sharedlibext for win16 to '.dll'
Commit consists out of
  • M compiler/systems/i_win16.pas


+ implemented TNewExeOutput.GenerateLibraryImports, based on the ogcoff implementation
Commit consists out of
  • M compiler/ogomf.pas


+ fpu_capabilities for arm
* some code converted to use fpu_capabilities
Commit consists out of
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/cpupara.pas
  • M compiler/arm/narmcal.pas
  • M compiler/arm/narmcnv.pas
  • M compiler/arm/narmcon.pas
  • M compiler/arm/narminl.pas


* make stack non executable on arm-linux
Commit consists out of
  • M compiler/systems/t_linux.pas


* insert FPC_THROWFPUEXCEPTION call into the correct assembler list
Commit consists out of
  • M compiler/arm/cgcpu.pas


+ added an ImportLibraryList property to TOmfObjData
Commit consists out of
  • M compiler/ogomf.pas


+ added method TOmfObjData.AddImportSymbol, which adds symbols, imported from an
external dll to TOmfObjData.ImportLibraryList (similar to
TInternalLinker.AddImportSymbol)
Commit consists out of
  • M compiler/ogomf.pas


+ call TOmfObjData.AddImportSymbol for every ImpDef record read from an object file
Commit consists out of
  • M compiler/ogomf.pas


+ also add and resolve import symbols coming from OMF object modules
Commit consists out of
  • M compiler/ogomf.pas


+ create a TNewExeSection class
Commit consists out of
  • M compiler/ogomf.pas


+ split the win16 executable into sections
Commit consists out of
  • M compiler/systems/t_win16.pas


+ added an TNewExeOutput.Order_ObjSectionList override and sort obj sections by
class name first, then by name, then by initial order
Commit consists out of
  • M compiler/ogomf.pas


+ write the NewExe header in TNewExeOutput.writeData
Commit consists out of
  • M compiler/ogomf.pas


* don't crash in TOmfObjSection.MemPosStr if MZExeUnifiedLogicalSegment isn't set
Commit consists out of
  • M compiler/ogomf.pas


+ added dummy overrides for TInternalLinkerWin16.GetCodeSize, .GetDataSize and
.GetBssSize, because the default ones crash
Commit consists out of
  • M compiler/systems/t_win16.pas


* fix for Mantis 0035903: apply patch by J. Gareth Moreton to update the copyright year to 2019
Commit consists out of
  • M compiler/msg/errorct.msg
  • M compiler/msg/errord.msg
  • M compiler/msg/errorda.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg
  • M compiler/msg/errores.msg
  • M compiler/msg/errorf.msg
  • M compiler/msg/errorfi.msg
  • M compiler/msg/errorhe.msg
  • M compiler/msg/errorheu.msg
  • M compiler/msg/errorid.msg
  • M compiler/msg/erroriu.msg
  • M compiler/msg/errorn.msg
  • M compiler/msg/errorpl.msg
  • M compiler/msg/errorpli.msg
  • M compiler/msg/errorpt.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msg/errorr.msg
  • M compiler/msg/errorru.msg
  • M compiler/msg/errorues.msg
  • M compiler/msgtxt.inc


* fix for Mantis 0035918: don't set the mangledname for the attribute's constructor function; let the compiler do its job instead
Commit consists out of
  • M .gitattributes
  • M compiler/symcreat.pas
  • A tests/webtbs/tw35918.pp
  • A tests/webtbs/uw35918a.pp
  • A tests/webtbs/uw35918b.pp
  • A tests/webtbs/uw35918c.pp


* create NewExe sections, corresponding to 64kb segments
Commit consists out of
  • M compiler/ogomf.pas


* override MemPos_Start for the NewExe exe output and perform the whole MemPos
stage inside of it, because the linker script contains only dummy section
names and thus none of the sections get their MemPos set, while using the
default implementation
Commit consists out of
  • M compiler/ogomf.pas


+ add a segment number (MemBasePos) to TNewExeSection
Commit consists out of
  • M compiler/ogomf.pas


+ introduced TExeSection.MemPosStr - a virtual method for converting the
section's memory position to string for the linker map file. This can be
overriden e.g. for segmented exe formats.
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogmap.pas


+ added an TNewExeSection.MemPosStr override that outputs a segment:offset string
Commit consists out of
  • M compiler/ogomf.pas


* combine the data, bss, stack and heap into the same NewExe segment
Commit consists out of
  • M compiler/ogomf.pas
  • M compiler/systems/t_win16.pas


+ adapted TOmfObjSymbol.AddressStr to show correct segment:offset for NewExe files as well
Commit consists out of
  • M compiler/ogomf.pas


+ adapted TOmfObjSection.MemPosStr to output segment:offset for NewExe executables
Commit consists out of
  • M compiler/ogomf.pas


* reset CurrMemPos after each NewExeSection to ensure each segment starts at 0 offset
Commit consists out of
  • M compiler/ogomf.pas


+ fill the auto data segment number in the NewExe header
Commit consists out of
  • M compiler/ogomf.pas


+ fill the program entry point address in the NewExe header
Commit consists out of
  • M compiler/ogomf.pas


+ set the initial SS:SP in the NewExe header
Commit consists out of
  • M compiler/ogomf.pas


* factored out the conditions under which add nodes need to perform
overflow checks
o in particular ensure that cpu-specific overrides don't perform overflow
checks when nf_internal is set
Commit consists out of
  • M .gitattributes
  • M compiler/arm/narmadd.pas
  • M compiler/i386/n386add.pas
  • M compiler/i8086/n8086add.pas
  • M compiler/m68k/n68kadd.pas
  • M compiler/mips/ncpuadd.pas
  • M compiler/ncgadd.pas
  • M compiler/powerpc/nppcadd.pas
  • M compiler/powerpc64/nppcadd.pas
  • M compiler/sparcgen/ncpuadd.pas
  • M compiler/x86/nx86add.pas
  • M compiler/x86_64/nx64add.pas
  • A tests/tbs/tb0658.pp


* an incomplete case statement is not an error in ISO Pascal (mantis 0035910)
* give a compile-time error in ISO/Extended Pascal if the compiler can prove
the case selector value is not handled, and a warning in other modes
(mantis 0035915)
o trigger the case node simplification at the end of the case node typecheck
pass, like for other nodes
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/nset.pas
  • M tests/test/tcasecov1.pp
  • M tests/test/tcasecov3.pp
  • A tests/test/tcasecov3a.pp
  • A tests/test/tcasecov3b.pp
  • A tests/test/tcasecov3c.pp
  • A tests/test/tcasecov3d.pp
  • A tests/test/tcasecov3e.pp
  • M tests/test/tcasecov4.pp
  • M tests/test/tcasecov5.pp
  • M tests/test/tcasecov6.pp
  • M tests/test/tcasecov7.pp
  • M tests/test/tcasecov8.pp
  • M tests/test/tcasecov9.pp


Fix internal error by using same code to set checkoverflow variable as in powerpc/nppcadd unit
Commit consists out of
  • M compiler/powerpc64/nppcadd.pas


+ fill the segment table start offset in the NewExe header
Commit consists out of
  • M compiler/ogomf.pas


+ added the missing NewExe segment attributes as properties to the
TNewExeSection class and create the NewExe segment table into the .exe file.
Not all of the properties are initialized yet, though.
Commit consists out of
  • M compiler/ogomf.pas


+ initialize the flags for the code and data segments in the NewExe header
Commit consists out of
  • M compiler/ogomf.pas


+ recognize stack segments and fill the total stack size in the NewExe header
Commit consists out of
  • M compiler/ogomf.pas


* convert the internal name from IMPDEF records to upper case if the
CaseSensitiveSymbols option is off
Commit consists out of
  • M compiler/ogomf.pas


+ detect heap sections and fill the local heap size in the NewExe header
Commit consists out of
  • M compiler/ogomf.pas


m68k/vasm: remove bits of Linux support. this combination has never really been tested or supported, and got broken recently. m68k-elf-linux has good enough GNU binutils anyway
Commit consists out of
  • M compiler/m68k/ag68kvasm.pas


Fix change_endian code to read double and single float data
Commit consists out of
  • M compiler/entfile.pas


* Issue file change before line and column change in token writes to allow for better display in ppudump utility
Commit consists out of
  • M compiler/scanner.pas


+ write the resource table (empty for now) to NewExe files
Commit consists out of
  • M compiler/ogomf.pas


+ create the resident name table in the NewExe file writer
Commit consists out of
  • M compiler/ogomf.pas


+ added constructor to TNewExeResidentNameTableEntry that allows you to
initialize this entry's ordinal number
Commit consists out of
  • M compiler/ogomf.pas


+ added property that determines the resident name table size in bytes and use
it to fill the offset to the start of the module reference table in NewExe
files
Commit consists out of
  • M compiler/ogomf.pas


+ fill and write the NewExe imported name table
Commit consists out of
  • M compiler/ogomf.pas


* small optimization in TNewExeOutput.FillImportedNameTable - only add the
library name once, instead of trying to add it (which causes a look up) for
every imported symbol
Commit consists out of
  • M compiler/ogomf.pas


+ calculate the table offset of each string in the NewExe imported name table
Commit consists out of
  • M compiler/ogomf.pas


* strip the '.dll' extension from the library names before adding them to the
NewExe imported name table
Commit consists out of
  • M compiler/ogomf.pas


* when reading ImpDef records, add '.dll' to the libname if it has no extension,
in order to be consistent with externals, declared in pascal files. The '.dll'
extension will be stripped later, when generating the NewExe file.
Commit consists out of
  • M compiler/ogomf.pas


+ fill the NewExe module reference table
Commit consists out of
  • M compiler/ogomf.pas


* fixed wrong typecast in TNewExeImportedNameTable.GetSize
Commit consists out of
  • M compiler/ogomf.pas


* strip the '.dll' extension from the library name when creating import
libraries as well. This ensures that NewExe binaries, created by the external
linker don't have the '.dll' extension in them.
Commit consists out of
  • M compiler/systems/t_win16.pas


+ fill the NewExe entry table offset
Commit consists out of
  • M compiler/ogomf.pas


+ added class for writing the NewExe entry table - not fully implemented yet
Commit consists out of
  • M compiler/ogomf.pas


+ parse ExpDef OMF records and delegate them to a new method
TOmfObjData.AddExportSymbol (not implemented yet)
Commit consists out of
  • M compiler/ogomf.pas


+ implemented TOmfObjData.AddExportSymbol - the exported symbols are recorded in
the newly introduced TOmfObjData.ExportedSymbolList
Commit consists out of
  • M compiler/ogomf.pas


+ assign ordinals to all exported symbols
Commit consists out of
  • M compiler/ogomf.pas


+ added class TNewExeEntryPoint and methods/properties to TNewExeEntryTable to
make it hold a list of entry points
Commit consists out of
  • M compiler/ogomf.pas


+ add entry points to the entry table for all exported NewExe symbols
Commit consists out of
  • M compiler/ogomf.pas


+ write the entry table to the NewExe file
Commit consists out of
  • M compiler/ogomf.pas


* the resident table entry/table classes renamed "export table", because the
same classes can be used both for the resident and nonresident tables (they
share the same structure)
Commit consists out of
  • M compiler/ogomf.pas


+ also write the nonresident name table
Commit consists out of
  • M compiler/ogomf.pas


+ write the module description as the first entry to the nonresident names table
Commit consists out of
  • M compiler/ogomf.pas


- suppress the warning that the $D directive is not supported on i8086-win16
Commit consists out of
  • M compiler/scandir.pas


+ pass the description option to wlink to set the module description string when
using the external linker on the win16 target
Commit consists out of
  • M compiler/systems/t_win16.pas


+ add all exported by name symbols to the resident or the nonresident name table
Commit consists out of
  • M compiler/ogomf.pas


+ also copy ResidentName in TOmfObjData.AddExportSymbol
Commit consists out of
  • M compiler/ogomf.pas


+ enable the ISSHAREDLIBRARY option for the win16 internal linker when creating a dll
Commit consists out of
  • M compiler/systems/t_win16.pas


+ enable the IsDll flag in the NewExe header when creating dlls with the
internal linker. Also make a SINGLEDATA (instead of MULTIPLEDATA) executable
and entry points in this case.
Commit consists out of
  • M compiler/ogomf.pas


+ allow creating win16 dlls with the wlink external linker as well
Commit consists out of
  • M compiler/systems/t_win16.pas


+ added system_i8086_win16 to the supported targets of the i8086 omf internal
assembler/object writer
Commit consists out of
  • M compiler/ogomf.pas


+ pass the ParmCount parameter from the ExpDef OMF record to the NewExe entry
point
Commit consists out of
  • M compiler/ogomf.pas


* applied patch by Blaise.ru to reduce code duplication in trecorddef.create_global_internal()
Commit consists out of
  • M compiler/symdef.pas


* apply patch by Blaise.ru to pass the record name for an internal record more efficiently
Commit consists out of
  • M compiler/symdef.pas

Merge: fc46b6c57c 70a2b0b260

-- Zusammenführen der Unterschiede zwischen Projektarchiv-URLs in ».«:
U compiler/i8086/008086int.inc
U compiler/i8086/008086nor.inc
U compiler/i8086/008086rni.inc
U compiler/i8086/008086std.inc
U compiler/i386/i386prop.inc
U compiler/i386/i386att.inc
U compiler/i386/i386atts.inc
U compiler/i386/i386int.inc
U compiler/i8086/i8086int.inc
U compiler/i8086/i8086op.inc
U compiler/i8086/008086dwrf.inc
U compiler/i8086/008086ari.inc
U compiler/i8086/008086con.inc
U compiler/i8086/008086nasm.inc
U compiler/i8086/008086num.inc
U compiler/i8086/008086stab.inc
U compiler/i386/i386nop.inc
U compiler/i386/i386op.inc
U compiler/i386/i386tab.inc
U compiler/i386/r386ot.inc
U compiler/i386/r386ari.inc
U compiler/i386/r386att.inc
U compiler/i386/r386con.inc
U compiler/i386/r386dwrf.inc
U compiler/i386/r386int.inc
U compiler/i386/r386iri.inc
U compiler/i386/r386nasm.inc
U compiler/i386/r386nor.inc
U compiler/i386/r386nri.inc
U compiler/i386/r386num.inc
U compiler/i386/r386rni.inc
U compiler/i386/r386sri.inc
U compiler/i386/r386stab.inc
U compiler/i386/r386std.inc
U compiler/i8086/i8086prop.inc
U compiler/i8086/i8086att.inc
U compiler/i8086/i8086atts.inc
U compiler/i8086/i8086nop.inc
U compiler/i8086/i8086tab.inc
U compiler/i8086/008086ot.inc
U compiler/i8086/008086att.inc
U compiler/i8086/008086iri.inc
U compiler/i8086/008086nri.inc
U compiler/i8086/008086sri.inc
U compiler/x86/agx86int.pas
U compiler/x86/rax86int.pas
U compiler/x86/aasmcpu.pas
U compiler/x86/rax86.pas
U compiler/x86/x86ins.dat
U compiler/x86/agx86att.pas
U compiler/x86/cpubase.pas
U packages/rtl-objpas/src/inc/rtti.pp
U packages/rtl-objpas/tests/tests.rtti.pas
U rtl
U compiler/x86_64/x8664att.inc
U compiler/x86_64/x8664tab.inc
U compiler/x86_64/008664con.inc
U compiler/x86_64/008664nasm.inc
U compiler/x86_64/008664sri.inc
U compiler/aasmtai.pas
U compiler/scanner.pas
U tests/utils/avx/readme.txt
U compiler/x86_64/x8664ats.inc
U compiler/x86_64/x8664op.inc
U compiler/x86_64/008664att.inc
U compiler/x86_64/008664iri.inc
U compiler/x86_64/008664rni.inc
U compiler/pp.lpi
U compiler/msgtxt.inc
U compiler/ppcx64.lpi
U compiler/x86_64/x8664pro.inc
U compiler/x86_64/x8664nop.inc
U compiler/x86_64/008664ari.inc
U compiler/x86_64/008664int.inc
U compiler/x86_64/008664num.inc
U compiler/x86_64/008664std.inc
U compiler/msgidx.inc
U compiler/utils/mkx86ins.pp
U compiler/x86/x86reg.dat
D compiler/x86/cx86innr.inc
U compiler/x86_64/x8664int.inc
U compiler/x86_64/008664ot.inc
U compiler/x86_64/008664dwrf.inc
U compiler/x86_64/008664nor.inc
U compiler/x86_64/008664stab.inc
U compiler/msg/errore.msg
U compiler/utils/mkx86reg.pp
U tests/utils/avx/asmtestgenerator.pas
U tests/utils/avx/options.pas
U tests/utils/avx/avxtestgenerator.pp
U tests/test/units/character/tissurrogatepair2.pp
U tests/test/units/character/tissurrogatepair.pp
U tests/utils/avx/avxopcodes.pas
U .
-- Aufzeichnung der Informationen für Zusammenführung zwischen Projektarchiv-URLs in ».«:
U .
U packages/rtl-objpas/src/inc/rtti.pp
U packages/rtl-objpas/tests/tests.rtti.pas
U rtl


* compilation on i386 fixed
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas


* intel asm reader: try to read avx512 extensions only if the instruction supports them
* cleanup
Commit consists out of
  • M .gitattributes
  • M compiler/scanner.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/rax86int.pas
  • A tests/webtbs/tw35953.pp


- don't create a heap segment for win16
Commit consists out of
  • M compiler/i8086/n8086util.pas
  • M compiler/ogomf.pas


* fixed quoting of the "description" wlink option on Windows
Commit consists out of
  • M compiler/systems/t_win16.pas


* limit the heapsize to 65520 bytes on win16 (the $M directive in win16 only
sets the size of the "local heap", which is limited to a single segment. The
actual heap in the large memory model is the "global heap", which doesn't have
a set limit, but grows with the memory allocated)
Commit consists out of
  • M compiler/scandir.pas


+ fill MinAllocSize in the NewExe segment table
Commit consists out of
  • M compiler/ogomf.pas


+ fill SizeInFile properly in the NewExe segment table
Commit consists out of
  • M compiler/ogomf.pas


* fix detection of floating point constants for arm
Commit consists out of
  • M compiler/arm/cpubase.pas


* fix return registers for hfa's containing singles
Commit consists out of
  • M compiler/arm/cpupara.pas


* enable TCpuAsmOptimizer.RemoveSuperfluousVMov for VLDR
* fixed TCpuAsmOptimizer.RemoveSuperfluousVMov to be actually applied
Commit consists out of
  • M compiler/arm/aoptcpu.pas

Merge: 416c974d3f ad791e8e34

-- Zusammenführen von 0042652 bis 0042673 in ».«:
U compiler/x86/aasmcpu.pas
-- Aufzeichnung der Informationen für Zusammenführung von 0042652 bis 0042673 in ».«:
U .


* compilation on i386-linux fixed
Commit consists out of
  • M compiler/x86/aasmcpu.pas


* fix BccB2Cond optimization on arm
Commit consists out of
  • M compiler/arm/aoptcpu.pas


+ added class, representing a NewExe relocation entry
Commit consists out of
  • M compiler/ogomf.pas


* reworked arm vfp capability handling to use fpu_capabilites
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/cpupi.pas
  • M compiler/arm/narmadd.pas
  • M compiler/arm/narmcnv.pas
  • M compiler/arm/narminl.pas
  • M compiler/arm/narmmat.pas
  • M compiler/options.pas
  • M compiler/symdef.pas


+ create defines with FPU capabilites
+ make use of FPU capability defines in the rtl
Commit consists out of
  • M compiler/arm/cpuinfo.pas
  • M compiler/fpcdefs.inc
  • M compiler/options.pas
  • M rtl/arm/arm.inc
  • M rtl/arm/math.inc
  • M rtl/arm/mathu.inc


+ basic Neon support in the assembler writer
+ make use of VEOR if possible to clear VFP registers
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/armatt.inc
  • M compiler/arm/armatts.inc
  • M compiler/arm/armins.dat
  • M compiler/arm/armnop.inc
  • M compiler/arm/armop.inc
  • M compiler/arm/armtab.inc
  • M compiler/arm/cgcpu.pas


* building with -Cfvfpv2 hopefully fixed
Commit consists out of
  • M compiler/arm/cgcpu.pas


* forgotten part of previous commit: fix BccB2Cond optimization on arm
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* fix tarminlinenode.first_sqrt_real
Commit consists out of
  • M compiler/arm/narminl.pas


+ added and implemented method TNewExeRelocation.EncodeTo
Commit consists out of
  • M compiler/ogomf.pas


* fixed compilation with -Sew
Commit consists out of
  • M compiler/ogomf.pas


+ added constant NewExeRelocationRecordSize
Commit consists out of
  • M compiler/ogomf.pas


Check that inserttypeconv really change node type to ttypeconvnode before setting convtype field (should fix taddbool.pp bytebool failure on powerpc)
Commit consists out of
  • M compiler/nadd.pas


* fix building for targets with no vfp support
Commit consists out of
  • M compiler/arm/narmmat.pas


* ensure that aprocdef is initialized to Nil to catch problems with compare_defs_ext() easier
Commit consists out of
  • M compiler/ncnv.pas


+ x86 makes use of fpu_capabilities
* moved CPUX86_HAS_AVXUNIT to FPUX86_HAS_AVXUNIT
+ mm register allocator can be initialized with 32 mm registers of AVX512
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/cpubase.pas
  • M compiler/x86_64/cgcpu.pas
  • M compiler/x86_64/cpuinfo.pas


Avoid error with -CR option in tobjectdef.vmt_def method
Commit consists out of
  • M compiler/symdef.pas


o overhaul-base.patch by J. Gareth Moreton, base for further patches
+ some inline directives added
+ some functions exported from units
Commit consists out of
  • M compiler/aopt.pas
  • M compiler/aoptbase.pas
  • M compiler/aoptobj.pas
  • M compiler/aoptutils.pas

Merge: 9230ae5aab a5e158f8d6

-- Zusammenführen von 0042706 bis 0042724 in ».«:
U tests/utils/avx/avxopcodes.pas
U compiler/x86/aasmcpu.pas
U compiler/x86/rax86.pas
-- Aufzeichnung der Informationen für Zusammenführung von 0042706 bis 0042724 in ».«:
U .


* fix RemoveSuperfluousVMov if the VMov destination reg is an integer register, resolved 0035978
Commit consists out of
  • M compiler/arm/aoptcpu.pas


+ VMovVMov2VMov optimization
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* factored out inlinenode check whether it may have a side effect
o also added register assert as having a side-effect (if asserts are
enabled)
Commit consists out of
  • M compiler/ninl.pas
  • M compiler/nutils.pas


m68k: fpu capabilities support
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/m68k/cpuinfo.pas


Avoid range check error for avr/i8086 CPU by changing local variable dist type to asizeuint
Commit consists out of
  • M compiler/ncgset.pas


+ added and implemented the TNewExeRelocationList class
Commit consists out of
  • M compiler/ogomf.pas


+ added a getter for the NewExeSegmentFlags property, that returns the
nesfHasRelocationData flag according to whether the Relocations list is
non-empty
Commit consists out of
  • M compiler/ogomf.pas


m68k: added more cpu capabilities. changed the CG at a few places to actually use them
Commit consists out of
  • M compiler/m68k/cgcpu.pas
  • M compiler/m68k/cpuinfo.pas


m68k: rework of the inline nodes to use fpu_capabilities. added fast path for round/trunc (enabled for fastmath only)
Commit consists out of
  • M compiler/m68k/n68kcnv.pas
  • M compiler/m68k/n68kinl.pas


* support unique copies of currencies which are handles by torddef, resolves 0036013
Commit consists out of
  • M .gitattributes
  • M compiler/defcmp.pas
  • A tests/webtbs/tw36013.pp


+ FMA support for aaarch64
Commit consists out of
  • M .gitattributes
  • M compiler/aarch64/ncpuadd.pas
  • M compiler/aarch64/ncpuinl.pas
  • A tests/test/tfma1a64.pp


+ AArch64: support for vX.8b/vX.16b register names
+ support for more than 256 registers in the register dat files
- removed totherregisterset
+ AArch64: use vmov to load immediates if possible
+ AArch64: use eor to clear mm registers
+ small command line tool for quick creating of vfp register list in a64reg.dat
Commit consists out of
  • M .gitattributes
  • A compiler/utils/gena64vfp.pp


somehow committing went wrong, second part of last commit:
+ AArch64: support for vX.8b/vX.16b register names
+ support for more than 256 registers in the register dat files
- removed totherregisterset
+ AArch64: use vmov to load immediates if possible
+ AArch64: use eor to clear mm registers
Commit consists out of
  • M compiler/aarch64/a64att.inc
  • M compiler/aarch64/a64atts.inc
  • M compiler/aarch64/a64ins.dat
  • M compiler/aarch64/a64op.inc
  • M compiler/aarch64/a64reg.dat
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cpubase.pas
  • M compiler/aarch64/cpunode.pas
  • M compiler/aarch64/ra64con.inc
  • M compiler/aarch64/ra64dwa.inc
  • M compiler/aarch64/ra64nor.inc
  • M compiler/aarch64/ra64num.inc
  • M compiler/aarch64/ra64rni.inc
  • M compiler/aarch64/ra64sri.inc
  • M compiler/aarch64/ra64sta.inc
  • M compiler/aarch64/ra64std.inc
  • M compiler/aarch64/ra64sup.inc
  • M compiler/arm/cpubase.pas
  • M compiler/avr/cpubase.pas
  • M compiler/cgbase.pas
  • M compiler/jvm/cpubase.pas
  • M compiler/m68k/cpubase.pas
  • M compiler/mips/cpubase.pas
  • M compiler/powerpc/cpubase.pas
  • M compiler/powerpc64/cpubase.pas
  • M compiler/rgbase.pas
  • M compiler/riscv32/cpubase.pas
  • M compiler/riscv64/cpubase.pas
  • M compiler/sparcgen/cpubase.pas
  • M compiler/utils/mka64reg.pp
  • M compiler/x86/cpubase.pas


* another missing part of 0042916 ...
Commit consists out of
  • M .gitattributes
  • A compiler/aarch64/ncpucon.pas


* avoid that -0.0 is handled by the eor optimization
Commit consists out of
  • M compiler/aarch64/ncpucon.pas


m68k: try to optimize realconst operands into B/W/L sized integer operands. these are shorter to encode - which almost always means faster on m68k
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


+ AArch64: FoldShiftProcess optimization
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/aarch64/cpubase.pas
  • M compiler/aarch64/racpugas.pas


m68k: refactoring to use fpu_capabilities at more places instead of hardwiring certain fpu types
Commit consists out of
  • M compiler/m68k/cgcpu.pas
  • M compiler/m68k/n68kinl.pas


m68k: refactor some code to not fail when the tasmop set will be bigger than 256 elements
Commit consists out of
  • M compiler/m68k/ag68kgas.pas
  • M compiler/m68k/cpubase.pas
  • M compiler/m68k/ra68kmot.pas


m68k: added the most important FPU instructions with explicit rounding precision (eg. FSADD/FDADD)
Commit consists out of
  • M compiler/m68k/cpubase.pas
  • M compiler/m68k/itcpugas.pas


m68k: added the remaining instructions with explicit rounding precision. fixed fsflmul to be fsglmul (this is also typo in the original 68k PRM)
Commit consists out of
  • M compiler/m68k/cpubase.pas
  • M compiler/m68k/itcpugas.pas


m68k: more refactoring for fpu_capabilities instead of hardwired fpu types. 68040 and 68060 fpu types should now work
Commit consists out of
  • M compiler/m68k/n68kadd.pas


Suppress range check/invalid typecast errors when compiling with -CriotR option
Commit consists out of
  • M compiler/symdef.pas


m68k: added some handling for the explicit precision FPU instructions in the spilling and optimizer. fixed a_fsabs and a_fdabs names
Commit consists out of
  • M compiler/m68k/aasmcpu.pas
  • M compiler/m68k/aoptcpu.pas
  • M compiler/m68k/cpubase.pas


m68k: make sure we're not trying to allocate a subregister for float paras when R_SUBWHOLE <> R_SUBNONE
Commit consists out of
  • M compiler/m68k/cpupara.pas


m68k: use cpu_capabilities when deciding to inject scaling into a ref. also allow scaling in more cases.
Commit consists out of
  • M compiler/m68k/n68kmem.pas


m68k: cleanup of the ancient mess from cgsize2subreg
Commit consists out of
  • M compiler/m68k/cpubase.pas


+ AArch64: CMPB.E/NE2CBNZ/CBZ optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ AArch64: FoldShiftProcess fixed
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ AArch64: implemented TCpuAsmOptimizer.OptPass1Data
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


m68k: added CPUM68K_HAS_BYTEWORDMATH and CPUM68K_HAS_INDEXWORD capabilities
Commit consists out of
  • M compiler/m68k/cpuinfo.pas


m68k: build fix (premature commits are the root of all evil too)
Commit consists out of
  • M compiler/m68k/cpuinfo.pas


* support taking the address of labels defined in assembler blocks in the
LLVM code genrator (for the rtti unit's thunk hacking)
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/nllvmtcon.pas
  • M compiler/rautils.pas


* different definitions for the same Objective-C class (can happen with
external class declarations) need a type conversion in LLVM (because
they're represented by different LLVM types)
Commit consists out of
  • M compiler/llvm/nllvmcnv.pas


+ AAarch64: TCpuAsmOptimizer.OptPass1Shift makes use of RemoveSuperfluousMove
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ AArch64: implementation of taarch64casenode.genlinearlist
Commit consists out of
  • M compiler/aarch64/ncpuset.pas


* document how tgotonode/tlabelnode copying works
Commit consists out of
  • M compiler/nflw.pas


* fixed loading the address of a copied labelnode in a loadnode
(mantis 0035877)
Commit consists out of
  • M .gitattributes
  • M compiler/nld.pas
  • A tests/test/units/rtl-generics/tw35877.pp


* fix potential crash with copied goto nodes on nestedparentfp platforms
o as described in the comment for the tgotonode.labsym field, it will
be null for copied gotonodes
Commit consists out of
  • M compiler/ncgnstfl.pas


* changed resulttype and firstpass processing from recursion into loop, based
on patch/idea by J. Gareth Moreton (as part of his patch in 0035857)
Commit consists out of
  • M compiler/pass_1.pas


* fixed occasional rounding error with currency constants on the LLVM targets
(fixes test/tcustomattr13.pp)
Commit consists out of
  • M compiler/llvm/nllvmcon.pas


+ add "thunk" attribute for stubs/thunks and emit it for LLVM
- also removed wrong "noreturn" attribute for interface thunks generated
for high level code generator targets
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/ncgvmt.pas
  • M compiler/psub.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


* cutils.pas (size_2_align): Move to..
globals.pas (size_2_align): ...here.
Change parameter type to asizeuint to avoid overflows.
(var_align_size, const_align_size): Also change parameter type to asizeuint.
i386/cpupara.pas, i8086/cpupara.pas, x86_64/cpupara.pas: Add globals
to implementation uses clause because of size_2_align move.
Commit consists out of
  • M compiler/cutils.pas
  • M compiler/globals.pas
  • M compiler/i386/cpupara.pas
  • M compiler/i8086/cpupara.pas
  • M compiler/x86_64/cpupara.pas


* assemble.pas (TInternalAssembler.TreePass0): Avoid range/overflow check error.
(TInternalAssembler.TreePass2): Check that objsymend and objsym are in same section
and avoid range/overflow check error.
Commit consists out of
  • M compiler/assemble.pas


m68k: add subregisters. on 68k, these are not as universal as on x86 and work differently, but the compiler needs this infrastructure to do 16bit math (which is a massive improvement on '000) or word-size indexes on CPUs which support it
Commit consists out of
  • M .gitattributes
  • M compiler/m68k/ag68kgas.pas
  • M compiler/m68k/cpubase.pas
  • M compiler/m68k/itcpugas.pas
  • M compiler/m68k/m68kreg.dat
  • M compiler/m68k/r68kcon.inc
  • M compiler/m68k/r68kgas.inc
  • A compiler/m68k/r68kgasf.inc
  • M compiler/m68k/r68kgri.inc
  • M compiler/m68k/r68knor.inc
  • M compiler/m68k/r68knum.inc
  • M compiler/m68k/r68krni.inc
  • M compiler/m68k/r68ksri.inc
  • M compiler/m68k/r68ksta.inc
  • M compiler/m68k/r68kstd.inc
  • A compiler/m68k/r68kstdf.inc
  • M compiler/m68k/r68ksup.inc
  • M compiler/utils/mk68kreg.pp


m68k: allow vecnode to use word size index registers
Commit consists out of
  • M compiler/m68k/n68kmem.pas


m68k: also handle OS_64 register sizes in cgsize2subreg
Commit consists out of
  • M compiler/m68k/cpubase.pas


* try to avoid to use pic based calls
Commit consists out of
  • M compiler/ncgcal.pas


* if we load a got depends only if one is needed, not if PIC is generated as this could be also caused by tls support
Commit consists out of
  • M compiler/i386/cgcpu.pas


+ x86-64: implemented support for relocation needed by tls threadvars in the binary elf writer
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogelf.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86_64/cpuelf.pas


* we have to use __tls_get_addr from the dyn. linker lib else tls on programs with pure pascal dyn. libraries fail
Commit consists out of
  • M compiler/systems/t_linux.pas
  • M rtl/linux/x86_64/si_prc.inc


+ support tls threadvars with the internal assembler
Commit consists out of
  • M compiler/i386/cpuelf.pas
  • M compiler/ogbase.pas
  • M compiler/ogelf.pas
  • M compiler/x86/aasmcpu.pas
  • M rtl/linux/i386/si_prc.inc


+ command line switch -CV to select the threadvar model for section threadvars
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


* section thread vars need to be access with the symbol type AT_TLS
Commit consists out of
  • M compiler/ncgld.pas


* loading a got depends only on the fact if a got is needed and not if pic shall be generated
Commit consists out of
  • M compiler/i386/cpupi.pas
  • M compiler/i8086/cgcpu.pas
  • M compiler/psub.pas


* the general section threadvar model needs a got but pic is not required
Commit consists out of
  • M compiler/x86/nx86ld.pas


* be able to set an AT_* for datablocks
* set AT_TLS if needed
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/i8086/n8086util.pas
  • M compiler/ngenutil.pas
  • M compiler/raatt.pas


* fix LLVM compilation after 0043076
Commit consists out of
  • M compiler/llvm/nllvmutil.pas


* add "readonly" attribute for constant pointer parameters on LLVM
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* finally implement tdynamicarray.equal so that exact match comdat sections work as well
Commit consists out of
  • M compiler/cclasses.pas


* disable the use of C-operators inside the compiler's sources
Commit consists out of
  • M compiler/fpcdefs.inc


* renamed tls model switches and symbols to match gcc
Commit consists out of
  • M Makefile
  • M Makefile.fpc
  • M compiler/arm/cpuelf.pas
  • M compiler/globtype.pas
  • M compiler/i386/cpupi.pas
  • M compiler/options.pas
  • M compiler/x86/nx86ld.pas


+ new relocations for arm tls
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/assemble.pas
  • M compiler/cgbase.pas
  • M compiler/ogbase.pas


+ support pi_needs_tls
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* cosmetics
Commit consists out of
  • M compiler/x86_64/cpuelf.pas


* it must be decided in g_maybe_tls_init if a tls is loaded
Commit consists out of
  • M compiler/psub.pas


+ tls models tlsm_general_dynamic and tlsm_local_exec for arm
Commit consists out of
  • M compiler/arm/narmld.pas


+ support for the gnu2 general-dynamic tls model on arm, use it instead of the gnu one as the gnu2 one can be relaxed (access optimizations by the linker)
+ support pic relocations in the internal assembler writer
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/cpuelf.pas
  • M compiler/arm/narmld.pas
  • M compiler/assemble.pas
  • M compiler/cgbase.pas
  • M compiler/ogbase.pas


* it must be decided in allocate_tls_register if a tls register is allocated
Commit consists out of
  • M compiler/psub.pas


* general-dynamic -> global-dynamic
Commit consists out of
  • M Makefile
  • M Makefile.fpc
  • M compiler/arm/aoptcpu.pas
  • M compiler/arm/narmld.pas
  • M compiler/globtype.pas
  • M compiler/i386/cpupi.pas
  • M compiler/options.pas
  • M compiler/x86/nx86ld.pas


* arm-linux uses dwarf debug info by default
Commit consists out of
  • M compiler/systems/i_linux.pas


+ dwarf support for tls threadvars
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/arm/cpuelf.pas
  • M compiler/assemble.pas
  • M compiler/dbgdwarf.pas
  • M compiler/i386/cpuelf.pas
  • M compiler/ogbase.pas
  • M compiler/x86_64/cpuelf.pas


* several linux targets switches from stabs to dwarf
Commit consists out of
  • M compiler/systems/i_linux.pas


+ support for arm attributes
* abi notes fixed
Commit consists out of
  • M .gitattributes
  • M compiler/aasmbase.pas
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/cpunode.pas
  • A compiler/arm/narmutil.pas
  • M compiler/assemble.pas
  • M compiler/elfbase.pas
  • M compiler/ogbase.pas
  • M compiler/ogcoff.pas
  • M compiler/ogelf.pas
  • M compiler/psabiehpi.pas
  • M compiler/raatt.pas
  • M rtl/linux/arm/abitag.inc


* compilation of x86 and PowerPC fixed
Commit consists out of
  • M compiler/omfbase.pas
  • M compiler/powerpc/agppcmpw.pas
  • M compiler/ppcgen/agppcgas.pas
  • M compiler/x86/agx86int.pas
  • M compiler/x86/agx86nsm.pas


* reduce amount of software floating point exception checking, VSTR, VMOV, VLDR do not raise those
Commit consists out of
  • M compiler/arm/cgcpu.pas


* moved array stride back to array entry (mantis 0036144)
Commit consists out of
  • M compiler/dbgdwarf.pas


* fixed peephole opitimizer removing some infinite loops (mantis 0036139)
Commit consists out of
  • M compiler/aoptobj.pas


+ x86: LeaLea2Lea optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ LeaCallLeaRet2Jmp optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ makefiles use -Sew, so added to the project as well
* updated for new format
Commit consists out of
  • M compiler/ppcarm.lpi


* fix Dwarf 3 array location broken in 0043171 (fix by Martin Friebe,
mantis 0036144)
Commit consists out of
  • M compiler/dbgdwarf.pas


* don't try to bitpack arrays of non-ordinals (mantis 0036157)
Commit consists out of
  • M .gitattributes
  • M compiler/ngtcon.pas
  • A tests/webtbs/tw36157.pp


* give an error if an explicit enumeration valid exceeds the valid range, resolves 0034633
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ptype.pas
  • A tests/webtbf/tw34633.pp


Fix parsing error in GNU linker script, KEEP needs braces
Commit consists out of
  • M compiler/systems/t_linux.pas


* i386: with a fixed stack, exception handling does not need a frame pointer
Commit consists out of
  • M compiler/psub.pas


* change TObjData.sectiontype2options to a class function so that it can be called without an instance of TObjData
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogcoff.pas
  • M compiler/ogmacho.pas
  • M compiler/ogomf.pas


+ add a method to TObjData to retrieve the TSectionProcBits and TSectionFlags values for a given section type
Commit consists out of
  • M compiler/ogbase.pas


* fix for Mantis 0036174: correctly initialize secprocbits and secflags given the section type
Commit consists out of
  • M compiler/aasmtai.pas


* generate better code for length()=0, resolves 0036060
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/nutils.pas


* fixed compilation for Darwin and AIX after addition of section attributes
Commit consists out of
  • M compiler/aggas.pas


* optimizing length()=0 is not possible for jvm
Commit consists out of
  • M compiler/nadd.pas


* fixed i8086 compilation after 0043265
Commit consists out of
  • M compiler/ogomf.pas

Merge: 5bfebeea4e 99d44ce40e

-- Zusammenführen von 0042725 bis 0043306 in ».«:
A tests/webtbs/tw32219.pp
U tests/utils/avx/avxopcodes.pas
U tests/utils/avx/asmtestgenerator.pas
U compiler/i386/i386tab.inc
U compiler/i386/i386nop.inc
U compiler/i8086/i8086tab.inc
U compiler/i8086/i8086nop.inc
U compiler/x86_64/x8664tab.inc
U compiler/x86_64/x8664nop.inc
U compiler/x86/aasmcpu.pas
U compiler/x86/x86ins.dat
U compiler/x86/rax86.pas
-- Aufzeichnung der Informationen für Zusammenführung von 0042706 bis 0043306 in ».«:
U .


Fix compilation error for i8086 cpu target
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Change parent class of trv32aatreader to trvattreader
Commit consists out of
  • M compiler/riscv32/rarv32gas.pas


+ include -Avasm into the help screen
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


morphos: in SDK 3.14, the binutils is finally upgraded to 2.32 (from 2.9.1), which makes section smartlinking working with binutils, and also has finally properly working stabs relocations for lineinfo, etc. so it's the default again both cross and native compilations
Commit consists out of
  • M compiler/options.pas
  • M compiler/systems/i_morph.pas


* more precise estimation of subscript node complexity
Commit consists out of
  • M compiler/nutils.pas


* load nodes for variables in registers do not generated instructions, so their complexity is zero
Commit consists out of
  • M compiler/nutils.pas


* clean up TX86AsmOptimizer.OptPass1MOV
Commit consists out of
  • M compiler/x86/aoptx86.pas


* optimize TAOptBase.SuperRegistersEqual
Commit consists out of
  • M compiler/aoptbase.pas


+ MovMov2Mov 6 and MovMov2Mov 7 optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix length()=0 optimization, resolves 0036215
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw36215.pp


* also type casts to booleans benefit if unneeded type widenings are removed
Commit consists out of
  • M compiler/ncnv.pas


* fix compilation on PE/COFF based systems with GNU AS as there the progbits are not supported
Commit consists out of
  • M compiler/aggas.pas


* fix for Mantis 0036223: when parsing a helper type its extendeddef might be Nil
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/symtable.pas
  • A tests/webtbf/tw36223.pp


* avr: apply LdiOp2Opi optimization also to and and sub
Commit consists out of
  • M compiler/avr/aoptcpu.pas


+ add a Flush method to TExeMap which is useful when debugging internal errors or crashes where the exemap instance has not yet been destroyed
Commit consists out of
  • M compiler/ogmap.pas


* allow cmov with memory reference if it is a pure symbol or a rip relative symbol: as the symbol is
allocated within the image of the program, this should never cause a seg. fault, so it is save
to use cmov with it
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix i386 building
Commit consists out of
  • M compiler/x86/aoptx86.pas


* unified TX86AsmOptimizer.OptPass1MOVAP and TX86AsmOptimizer.OptPass1VMOVAP
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* CallRet2Jmp works with PIC
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ LeaCallLeaRet2Jmp
Commit consists out of
  • M compiler/x86/aoptx86.pas


* more aggressive LeaCallLeaRet2Jmp
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


Avoid warnings for m68k compiler
Commit consists out of
  • M compiler/m68k/aoptcpu.pas
  • M compiler/m68k/aoptcpub.pas
  • M compiler/m68k/cgcpu.pas
  • M compiler/m68k/cpupara.pas
  • M compiler/m68k/n68kadd.pas
  • M compiler/m68k/ra68kmot.pas
  • M compiler/m68k/rgcpu.pas
  • M compiler/options.pas
  • M compiler/systems/t_atari.pas


Remove ALLOW_WARNINGS=1 for m68k compiler
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* replaced tentryfile.get/putsmall/normalset() with a common tget/putset
that expects an open array of byte, and use it for all sets
o since all sets need to be typecasted to an array type of the appropriate
size, we'll get a compilation error in case this needs to be done and
that also tells us at the same time that the ppu version will need to
be increased
* enabled {$packset 1} for the compiler, as this is now safe with the above
changes
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/entfile.pas
  • M compiler/fpcdefs.inc
  • M compiler/fppu.pas
  • M compiler/nbas.pas
  • M compiler/ncal.pas
  • M compiler/ncnv.pas
  • M compiler/ncon.pas
  • M compiler/nflw.pas
  • M compiler/nld.pas
  • M compiler/nmem.pas
  • M compiler/node.pas
  • M compiler/ppu.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas
  • M compiler/utils/ppuutils/ppudump.pp


* do not allocate an extra register for some integer operations if not needed
Commit consists out of
  • M compiler/cgobj.pas
  • M compiler/x86/nx86add.pas


* removed accidently committed debug statement
Commit consists out of
  • M compiler/cgobj.pas


* update generic linker script
Commit consists out of
  • M compiler/systems/t_linux.pas


* do not write section flags/progbits for .data, .rodata .data.norel as the compiler will ignore them anyways and warn about it
Commit consists out of
  • M compiler/aggas.pas


* parameters declared as out must be initialized
Commit consists out of
  • M compiler/ogbase.pas


* fixed default value for progbits
Commit consists out of
  • M compiler/ogbase.pas


+ MIPS: take care of setnoat
Commit consists out of
  • M compiler/mips/cgcpu.pas
  • M compiler/mips/cpupi.pas


* read more types of references properly
Commit consists out of
  • M compiler/mips/racpugas.pas


* patch by J. Gareth Moreton, issue 0036271, part 1: general rework of the jump optimizer
Commit consists out of
  • M compiler/aoptobj.pas


* patch by J. Gareth Moreton, issue 0036271, part 2: x86 specific rework of the jump optimizer
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton, issue 0036271, part 3: support for the other architectures
Commit consists out of
  • M compiler/aarch64/cpubase.pas
  • M compiler/arm/cpubase.pas
  • M compiler/avr/cpubase.pas
  • M compiler/m68k/cpubase.pas
  • M compiler/mips/cpubase.pas
  • M compiler/powerpc/cpubase.pas
  • M compiler/powerpc64/cpubase.pas
  • M compiler/riscv32/cpubase.pas
  • M compiler/riscv64/cpubase.pas
  • M compiler/sparcgen/cpubase.pas
  • M compiler/x86/cpubase.pas

Merge: e1e8986462 47bb71efc4

-- Zusammenführen von 0043307 bis 0043443 in ».«:
D tests/webtbs/tw32219.pp
U compiler/i386/i386att.inc
U compiler/i386/i386atts.inc
U compiler/i386/i386int.inc
U compiler/i386/i386nop.inc
U compiler/i386/i386op.inc
U compiler/i386/i386prop.inc
U compiler/i386/i386tab.inc
U compiler/i8086/i8086att.inc
U compiler/i8086/i8086atts.inc
U compiler/i8086/i8086int.inc
U compiler/i8086/i8086nop.inc
U compiler/i8086/i8086op.inc
U compiler/i8086/i8086prop.inc
U compiler/i8086/i8086tab.inc
U compiler/x86/x86ins.dat
U compiler/x86_64/x8664ats.inc
U compiler/x86_64/x8664att.inc
U compiler/x86_64/x8664int.inc
U compiler/x86_64/x8664nop.inc
U compiler/x86_64/x8664op.inc
U compiler/x86_64/x8664pro.inc
U compiler/x86_64/x8664tab.inc
U tests/utils/avx/avxopcodes.pas
-- Aufzeichnung der Informationen für Zusammenführung von 0042706 bis 0043443 in ».«:
U .


* swapped decrefs and StripLabelFast as proposed by Gareth on the mailing list
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix and improve MovImul2Imul: we cannot insert the move target into imul if the imul is 64 bit and the mov 32 bit as
we cannot ensure that the upper 32 bits of the move target are really clear
Commit consists out of
  • M compiler/x86/aoptx86.pas


* load left properly into a register in tx86addnode.second_addordinal, resolves 0036287
Commit consists out of
  • M compiler/x86/nx86add.pas


* packed tabstractvarsym.addr_taken/different_scope fields into a set
Commit consists out of
  • M compiler/ppu.pas
  • M compiler/symconst.pas
  • M compiler/symsym.pas
  • M compiler/utils/ppuutils/ppudump.pp


* patch by J. Gareth Moreton to clean up TX86AsmOptimizer.OptPass2Jcc, resolves 0036295
Commit consists out of
  • M compiler/x86/aoptx86.pas


* improve ShlAddLeaSubIncDec2Lea to take care of foldable LEAs
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: fix compilation with debug info after 0043441 and friends, resolves 0036299
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas


+ LeaOp2Op optimization
* replaced some manual removels of p by RemoveCurrentP calls
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ added comments for LeaOp2Op
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fix ppudump after commit 0043450
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* be carefully with references using RIP when doing LeaOp2Op optimizations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* check in the internal assembler for references with incorrect use of RIP
+ test
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/x86/aasmcpu.pas
  • A tests/tbf/tb0271.pp


* do not remove cfi_endproc after jmps
Commit consists out of
  • M compiler/aoptobj.pas


+ separate JUMP_DEBUG define
Commit consists out of
  • M compiler/aoptobj.pas


* i386 does not use anymore its own assembler optimizer loops
Commit consists out of
  • M compiler/i386/aoptcpu.pas


* i386: more clean up of TCPUAsmOPtimizer.PeepHoleOptPass1Cpu
Commit consists out of
  • M compiler/i386/aoptcpu.pas


* patch by J. Gareth Moreton: fix building for armv6m after 0043441
Commit consists out of
  • M compiler/aoptobj.pas


Regenerate all Makefile's after commit 0043472
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile


* disable condition jump optimization on MIPS for now for the time being
Commit consists out of
  • M compiler/aoptobj.pas


* -P option for ppumove
Commit consists out of
  • M compiler/utils/ppumove.pp
  • M utils/fpcm/fpcmake.inc
  • M utils/fpcm/fpcmake.ini


* optimization Move removed 4 fixed
Commit consists out of
  • M compiler/mips/aoptcpu.pas


* fix usage of ppumove generated shared libraries
Commit consists out of
  • M compiler/pmodules.pas


* cse adjusted
Commit consists out of
  • M compiler/nutils.pas
  • M compiler/optcse.pas


* values passed to const parameters are not limited to registers and constants
Commit consists out of
  • M compiler/ncgcal.pas


* relax conditions in tcallnode.optimize_funcret_assignment, resolves 0036279
Commit consists out of
  • M .gitattributes
  • M compiler/ncal.pas
  • A tests/tbs/tb0660.pp


* MM registers which might not be changed can be still used in 3 op mathematical operations as source
Commit consists out of
  • M compiler/x86/nx86add.pas


Fix invalid typecast revealed by -CriotR by changing order of terms in boolean expression
Commit consists out of
  • M compiler/nutils.pas


o patch by J. Gareth Moreton:
* fix jump optimizer for MIPS(EL).
+ New method called "MakeUnconditional" introduced that can do platform-specific changes
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/mips/aoptcpu.pas


+ patch by J. Gareth Moreton: new method TAOptObj.CanDoJumpOpts and arm specific implementation
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/arm/aoptcpu.pas


* do not generate conditional jump with full references
+ more assembler optimizer output
Commit consists out of
  • M compiler/x86/aoptx86.pas


* write assembler optimizer messages into output file if DEBUG_AOPTOBJ is set
Commit consists out of
  • M compiler/aoptobj.pas


Use same entered_paren local variable as 64-bit counterpart and fix register names
Commit consists out of
  • M compiler/riscv32/rarv32gas.pas


Fixes by Gareth Moreton for problems exposed by use of -CriotR option
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas


* define renamed
Commit consists out of
  • M compiler/aoptobj.pas


* make use of RemoveCurrentP
Commit consists out of
  • M compiler/x86/aoptx86.pas


* also generate indirect symbols for AB_PRIVATE_EXTERN symbols as these might be used from a unit in another package due to inlining
Commit consists out of
  • M compiler/aasmdef.pas


* ensure that nothing assembly related is generated for generics when a typed constant (this also includes local variable initializations) are parsed
Commit consists out of
  • M compiler/ptconst.pas


* restore localswitch settings after the initialization and finalization code was generated
Commit consists out of
  • M compiler/psub.pas


* reference FPC_ABSMASK_SINGLE/-DOUBLE using the indirect symbol if required for dynamic packages
Commit consists out of
  • M compiler/x86/nx86inl.pas


* register constant symbols
Commit consists out of
  • M compiler/pdecl.pas


* symbols called by g_call might need to be imported from dynamic packages as well
Commit consists out of
  • M compiler/cgobj.pas


* check the localswitches of the node instead of the global ones
Commit consists out of
  • M compiler/ncgld.pas


* correctly check for the system unit
Commit consists out of
  • M compiler/ncgld.pas


* ensure that generic symbols are not tried to be exported
Commit consists out of
  • M compiler/pkgutil.pas


* when creating the static field of a generic, insert it into the generic instead of the global symtable as it isn't really used anyway
Commit consists out of
  • M compiler/symcreat.pas


* the VMT of the exception class needs to be referenced indirectly
Commit consists out of
  • M compiler/i386/n386flw.pas
  • M compiler/x86_64/nx64flw.pas
  • M rtl/win/syswin.inc


* keep track of static symbols that a global function references, as those must now be exported from a dynamic package as well if the function can potentially be inlined
Commit consists out of
  • M compiler/htypechk.pas
  • M compiler/ncal.pas
  • M compiler/ncnv.pas
  • M compiler/nflw.pas
  • M compiler/pkgutil.pas
  • M compiler/procinfo.pas
  • M compiler/psub.pas
  • M compiler/symconst.pas
  • M compiler/symtable.pas
  • M compiler/utils/ppuutils/ppudump.pp


* the symbol of the interface wrapper function needs to be considered as referenced as well
Commit consists out of
  • M compiler/nobj.pas


+ add a description for the link_e_comdat_selection_differs message
Commit consists out of
  • M compiler/msg/errore.msg


+ add error messages for undefined symbols (both with a known object file and without)
Commit consists out of
  • M compiler/msg/errore.msg


* regenerate msg*.inc files after adding new error messages for undefined symbols
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* use translateable error messages for undefined symbols and also report in which object file the symbol was first found
Commit consists out of
  • M compiler/ogbase.pas


* fix condition for including a unit's object files or not when compiling with packages
Commit consists out of
  • M compiler/pmodules.pas


* use a different name for the packages' entry point and use _DLLMainCRTStartup as an alias to avoid problems with the C-prefix
Commit consists out of
  • M compiler/pmodules.pas


* ensure that the required functions are referenced for Win32 SEH for packages as well
Commit consists out of
  • M compiler/i386/n386flw.pas


Patch by Gareth Moreton.
* TAOptObj.CollapseZeroDistJump: Change hp1 to local variable,
initialized as p.next, to avoid problems of dangling pointers
revealed by use of "-CriotR -O2" compilation arguments.
Commit consists out of
  • M compiler/aoptobj.pas


Use correct macro to for 64-bit riscv CPU
Commit consists out of
  • M compiler/riscv/nrvadd.pas


Minimalist change to avoid Invalid Typecast error on class when compiled with '-CriotR -O2' for i386-go32v2 target
Commit consists out of
  • M compiler/i386/aoptcpu.pas


o patch by J. Gareth Moreton, resolves 0036352:
* The supplied patch cleans up some vestigial code from the i386 peephole
optimizer that has since been superseded by the jump optimisations over
at 0036271.
* The PrePeepholeOptsCPU method has had a minor restructuring to better
handle the rare case where InsContainsSegRef() returns True and
p becomes something that is no longer an instruction (it ultimately
removes a conditonal check and some overhead from repeated function calls).
Commit consists out of
  • M compiler/i386/aoptcpu.pas


* factored out TX86AsmOptimizer.OptPass1Cmp
* fixed it
* activated it for x86-64
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


- removed code not used for years
Commit consists out of
  • M compiler/i386/aoptcpu.pas


* more RemoveCurrentP usage
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ optimize integer expressions like 2*x*4; which were not found by the node simplifier yet
Commit consists out of
  • M compiler/nadd.pas


* cleaned up safecall support: use a hidden localvarsym instead of result
register hacking
o this also allowed fixing/adding safecall support for LLVM
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/i386/n386flw.pas
  • M compiler/jvm/symcpu.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/ncgcal.pas
  • M compiler/ncgflw.pas
  • M compiler/ncgutil.pas
  • M compiler/nflw.pas
  • M compiler/ngenutil.pas
  • M compiler/paramgr.pas
  • M compiler/pparautl.pas
  • M compiler/symdef.pas


o patch by J. Gareth Moreton:
* adds an extra optimisation to "PostPeepholeOptMov" in compiler/x86/aoptx86.pas:
If the instruction "MOV REG, -1" (Intel notation) is found, where REG is either
a 32- or 64-bit register, it is changed to "OR REG, -1" instead.
The effect is the same and takes exactly the same speed to execute, but the encoding is much smaller.
As it cause false data dependencies, it is only applied in -Os mode

For 16-bit registers, only AX is optimised this way because it has its own encoding for OR that takes fewer bytes.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixed safecall for non-LLVM after 0043578
Commit consists out of
  • M compiler/hlcgobj.pas


* fix Linux/i386 and Win32 after 0043578
Commit consists out of
  • M compiler/i386/n386flw.pas
  • M compiler/ncgutil.pas


* treat a missing genericdef with no symname set as an internal error
Commit consists out of
  • M compiler/pgenutil.pas


- the error recovery handling is no longer required
Commit consists out of
  • M compiler/pgenutil.pas


* warn only in delphi mode if an explicit enumeration value exceeds the range, relaxes 0043191
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ptype.pas
  • M tests/webtbf/tw34633.pp
  • A tests/webtbs/tw34633a.pp


o patch by J. Gareth Moreton, resolves 0036355
+ This patch serves to extend the JMP -> RET optimisation in OptPass2JMP by also doing the same
for JMP -> MOV/RET, since there are often cases where the result (e.g. EAX) is set just
prior to the function exiting.
* RemoveDeadCodeAfterJump will now drop out if it detects SEH information -
this stops exception information from being stripped if it is called on the final RET instruction.
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas


* avoid overflow error
Commit consists out of
  • M compiler/x86/aoptx86.pas


o patch by J. Gareth Moreton, seeks to improve maintainability, safety and efficiency
in the peephole optimizer by slightly modifying some function headers based
on their intended purpose, resolves 0036353
* Non-virtual methods and class methods that don't need to access any fields from
the current object are now static methods, thus removing the hidden "Self"
parameter and reducing overhead. This includes a large number of
frequently-used functions such as SkipEntryExitMarker and SuperRegistersEqual.
* GetNextInstruction, GetLastInstruction, SkipEntryExitMarker and
SkipLabels have had their 'var' parameter changed to an 'out' parameter because
they shouldn't depend on its input value. This will cause the compiler to throw warnings
if you start using the value without initialising it first, and may open up optimisation
opportunities in the future (e.g. storing written values in a temporary register
and only writing it to the actual variable when the routine exits).
Commit consists out of
  • M compiler/aoptbase.pas
  • M compiler/aoptobj.pas
  • M compiler/aoptutils.pas
  • M compiler/x86/aoptx86.pas


* do not convert cmp 0,... into test ...,... before the post pass of the peephole optimizer
as this conversion might result in missing further optimizer opportunities
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cgx86.pas


Also accept -a5 for older binutils for mips and mpisel cpus
Commit consists out of
  • M compiler/options.pas


Add '.module nomips16' at assembly entry for mips/mipsel unless -a5 option is used
Commit consists out of
  • M compiler/mips/cpugas.pas


Fix trv32notnode, by using same code as for riscv64 CPU
Commit consists out of
  • M compiler/riscv32/nrv32mat.pas


Change parameter type to tcgint for is_imm12 and is_lui_imm functions to avoid range check errors
Commit consists out of
  • M compiler/riscv32/cpubase.pas
  • M compiler/riscv64/cpubase.pas


* unified internalerror, resolves 0036378
Commit consists out of
  • M compiler/hlcgobj.pas


* patch by J. Gareth Moreton: x86 implementation of RegModifiedByInstruction, resolves 0036376
Commit consists out of
  • M compiler/x86/aoptx86.pas


* better error recovery, resolves 0036377
Commit consists out of
  • M .gitattributes
  • M compiler/ptype.pas
  • A tests/webtbf/tw36377.pp


Add explicit smallint typecast to first marameter of SarSmallint call to avoid range check errors
Commit consists out of
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv/rgcpu.pas
  • M compiler/riscv64/cgcpu.pas


Comparison nodes are always in LOC_REGISTER, never in LOC_JUMP for riscv32 or riscv64 CPUs
Commit consists out of
  • M compiler/riscv/nrvadd.pas


* use tdef.unique_id_str to generate the unique internal name for anonymous record defs as using the count of the deflist is no longer correct
Commit consists out of
  • M compiler/symdef.pas


* adapt register if the size of the paraloc and the register differ, resolves 0034409
Commit consists out of
  • M .gitattributes
  • M compiler/ncgbas.pas
  • A tests/webtbs/tw34409.pp


* simplified and improved TX86AsmOptimizer.RegModifiedByInstruction
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ add a method to tdef to initialize the defid from within a constructor
Commit consists out of
  • M compiler/symtype.pas


* initialize the defid in trecorddef.create_global_internal as unique_id_str needs it
Commit consists out of
  • M compiler/symdef.pas


* apply (adjusted) patch by Blaise.ru: vmtentries is always created since 2008, so treat it as such (also fixes a memory leak in tobjectdef.getcopy)
Commit consists out of
  • M compiler/ncgvmt.pas
  • M compiler/nobj.pas
  • M compiler/symdef.pas


* apply patch by Blaise.ru to remove last remnants of VMT regeneration which is no longer needed/used
Commit consists out of
  • M compiler/nobj.pas
  • M compiler/symdef.pas


* better error recovery, resolves 0036397
Commit consists out of
  • M .gitattributes
  • M compiler/pexpr.pas
  • A tests/webtbf/tw36397.pp


* check in CheckLive* if a register allocator is initialized for a certain register type
Commit consists out of
  • M compiler/arm/aoptcpu.pas


o patch by J. Gareth Moreton, resolves 0036371:
* This patch makes some minor improvements to the cross-platform code that deals with jump optimisations.
More specifically, it attempts to do more in a single pass which has the nice side-effect of
fixing a couple of minor mistakes (in some situations, it would erroneously remove an alignment entry).
- Most improvements are with dealing with Jcc/JMP pairs and their equivalents on other platforms, by
collapsing label clusters and stripping dead code as soon as it has enough information to do so, and being
more intelligent before calling Continue to see if another optimisation can be performed in the same sitting.

- RemoveDeadCodeAfterJump is now a function that returns True if a jump was found among the dead code,
thus allowing the ability to flag the peephole optimizer for another iteration of Pass 1 - the
destination label may have appeared earlier in the code and become dead as a result of the removal
of the jump, thus opening up new optimisations with instructions that sat either side of the label.

- Preliminary tests show that it does sometimes reduce the number of passes required to optimise a subroutine
under -O3.
Commit consists out of
  • M compiler/aoptobj.pas


* fix J. Gareth Moreton to resolve 0036389
Commit consists out of
  • M .gitattributes
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw36389.pp


* Remove duplicate ibextraheader handling.
* Move SymAnsiStr boolean setting inside parseextraheader function.
* Only accept same CurrentPPULongVersion in parseextraheader function.
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* TVMTBuilder.build_interface_mappings does not need to be public (based on patch by Blaise.ru)
Commit consists out of
  • M compiler/nobj.pas


* move the common sequence to build a VMT for an objectdef into a separate procedure (based on a patch by Blaise.ru)
Commit consists out of
  • M compiler/jvm/pjvm.pas
  • M compiler/nobj.pas
  • M compiler/pdecl.pas
  • M compiler/pgenutil.pas


* clear up file comment (based on patch by Blaise.ru)
Commit consists out of
  • M compiler/nobj.pas


* more correct method names (based on patch by Blaise.ru)
Commit consists out of
  • M compiler/nobj.pas


* fix number of last parser_* message entry
Commit consists out of
  • M compiler/msg/errore.msg


* use value_real rather than value_curency when writing currency
realconstnodes (fixes tcurrency1, tw33439 and tw36179 with LLVM)
o we need to load the fpu representation of the currency values,
not the scaled currency value
Commit consists out of
  • M compiler/llvm/nllvmcon.pas


- removed LLVM support for clang < 7.0 and Xcode < 10.0: those versions
contain various bugs and can't even complete "make all", so there is no
point in keeping them
o changed default LLVM target version to 7.0
Commit consists out of
  • M compiler/globals.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/llvminfo.pas


* regenerate msg*.inc files after adding a new error message related to C blocks
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


+ recognise LLVM 9.0 (no changes needed compared to LLVM 8.0)
Commit consists out of
  • M compiler/llvm/llvminfo.pas


* patch by J. Gareth Moreton to fix an ie 2018061400 on darwin
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix typo in comment
Commit consists out of
  • M compiler/symtable.pas


* in PeepHoleOptPass1Cpu when an instruction contains a segment, don't replace the current instruction with the next, cause then we get an infinite loop when compiling on Win32 with -dTEST_WIN32_SEH -O4
Commit consists out of
  • M compiler/i386/aoptcpu.pas


+ MULX instruction
* change information for RORX corrected
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


+ make use of mulx instruction, if available
Commit consists out of
  • M compiler/i386/n386add.pas


* missing +')' added
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by Bart Broersma to allow to declare "LongInt = AnsiString" comparison
operator in non-macpas modes, resolves 0029460
Commit consists out of
  • M .gitattributes
  • M compiler/htypechk.pas
  • A tests/webtbs/tw29460.pp


* do not crash when an unsupported code page is encountered, resolves 0035581
Commit consists out of
  • M .gitattributes
  • M compiler/ncon.pas
  • A tests/webtbf/tw35581.pp


* some cleanup
Commit consists out of
  • M compiler/ccharset.pas
  • M compiler/widestr.pas


* optimize case statements with a single branch into if statements (ord const only)
Commit consists out of
  • M compiler/nset.pas


* last commit was not complete/earlier version committed
Commit consists out of
  • M compiler/nset.pas


* common naming for fpu_none string
Commit consists out of
  • M compiler/arm/cpuinfo.pas
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/mips/cpuinfo.pas
  • M compiler/powerpc64/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas
  • M compiler/sparc/cpuinfo.pas
  • M compiler/sparc64/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


+ tf_init_final_units_by_calls
* arm-embedded generates direct calls for unit init/final now as well
Commit consists out of
  • M compiler/arm/narmutil.pas
  • M compiler/hlcgobj.pas
  • M compiler/options.pas
  • M compiler/systems.pas
  • M compiler/systems/i_embed.pas
  • M rtl/inc/system.inc


* renamed getintparaloc to getcgtempparaloc
o it can be used for more than integer parameters
Commit consists out of
  • M compiler/aarch64/cgcpu.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/cpupara.pas
  • M compiler/avr/cgcpu.pas
  • M compiler/cgexcept.pas
  • M compiler/hlcgobj.pas
  • M compiler/i8086/cpupara.pas
  • M compiler/i8086/n8086ld.pas
  • M compiler/i8086/n8086mem.pas
  • M compiler/jvm/cpupara.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmpara.pas
  • M compiler/llvm/llvmpi.pas
  • M compiler/llvm/tgllvm.pas
  • M compiler/m68k/cgcpu.pas
  • M compiler/mips/cgcpu.pas
  • M compiler/ncgcal.pas
  • M compiler/ncgflw.pas
  • M compiler/ncgld.pas
  • M compiler/ncgmat.pas
  • M compiler/ncgmem.pas
  • M compiler/paramgr.pas
  • M compiler/powerpc/cpupara.pas
  • M compiler/powerpc64/cpupara.pas
  • M compiler/ppcgen/cgppc.pas
  • M compiler/psabiehpi.pas
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cgcpu.pas
  • M compiler/riscv64/cpupara.pas
  • M compiler/sparcgen/cgsparc.pas
  • M compiler/x86/nx86ld.pas
  • M compiler/x86_64/cgcpu.pas


* support for marking arraydefs as vectors
Commit consists out of
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/utils/ppuutils/ppudump.pp


* LLVM support for writing vector types
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* fix paraloc def for vectors with vectorcall calling convention (was a single
element instead of a vector)
Commit consists out of
  • M compiler/x86_64/cpupara.pas


* fixed writing of calling convention for function declarations/definitions
in LLVM
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* added is_normal_fieldvarsym() helper and use it
o fixes several places where there was a check whether something is a
fieldvarsym, but not whether it's an instance rather than a class field
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/arm/cpupara.pas
  • M compiler/armgen/armpara.pas
  • M compiler/browcol.pas
  • M compiler/dbgstabs.pas
  • M compiler/htypechk.pas
  • M compiler/ncgrtti.pas
  • M compiler/powerpc64/symcpu.pas
  • M compiler/symtable.pas
  • M compiler/symutil.pas
  • M compiler/x86/rax86int.pas
  • M compiler/x86_64/cpupara.pas


* increase support for multilib binutils for RISC V by passing the ABI to the assembler
Commit consists out of
  • M compiler/riscv/agrvgas.pas


* increase support for multilib binutils for RISC V by passing the correct ABI to the linker
Commit consists out of
  • M compiler/systems/t_linux.pas


* correctly handle local reference in the RISC V assembler readers (both 32 and 64 bit)
Commit consists out of
  • M compiler/riscv32/rarv32gas.pas
  • M compiler/riscv64/rarv64gas.pas


* when copying goto nodes take care if the label node is part of the copied tree
or not, resolves 0035820
Commit consists out of
  • M .gitattributes
  • M compiler/nflw.pas
  • M compiler/node.pas
  • A tests/webtbs/tw35820.pp


* write a proper error message if / is encountered while no
floating point support is available, resolves 0032006
Commit consists out of
  • M compiler/nadd.pas


* use 64 bit code page in tppcshlshrnode.pass_generate_code for all 64 bit types,
resolves 0033582
Commit consists out of
  • M compiler/powerpc/nppcmat.pas


* correctly handle reading of class/object pointers in combination with @, resolves 0026326
Commit consists out of
  • M .gitattributes
  • M compiler/htypechk.pas
  • M compiler/nmem.pas
  • A tests/webtbs/tw26326.pp


* comment fixed
Commit consists out of
  • M compiler/htypechk.pas


+ inline high(), resolves 0028536
Commit consists out of
  • M compiler/ncginl.pas
  • M compiler/ninl.pas
  • M compiler/x86/nx86inl.pas


+ support for LLVM metadata constant string parameters
o they are implemented as a new metadata register class, whereby the
subregister indicates the metadata type (currently always a string)
and the superregister is an index in the metadata array (which
contains the strings). LLVM metadata can only be passed as parameters
to intrinsics in bitcode, so moves of metadata into other registers
triggers internal errors and when moving them into parameters, we
replace the parameter's register with the metadata register (and look
up the corresponding string when writing out the bitcode)
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/cgbase.pas
  • M compiler/fmodule.pas
  • M compiler/llvm/aasmllvmmetadata.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvmpara.pas
  • M compiler/llvm/nllvmcon.pas
  • M compiler/psystem.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/cpubase.pas


* support nf_internal to ignore currency conversion adjustments also on
platforms that implement currency using a floating point type
Commit consists out of
  • M compiler/llvm/nllvmcnv.pas
  • M compiler/ncnv.pas


* record whether a function uses fastmath, and define the function as
strictfp if it doesn't (so LLVM doesn't perform transformations that can
change the fp/exception behaviour)
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/utils/ppuutils/ppudump.pp


* use constrained LLVM fp intrinsics for add/sub/mul/slash/fma/sqrt
operations when fastmath is not enabled
Commit consists out of
  • M compiler/llvm/nllvmadd.pas
  • M compiler/llvm/nllvminl.pas
  • M rtl/inc/llvmintr.inc


* use LLVM constrained fpext/fptrunc intrinsics when fastmath is not enabled
for accurate exception behaviour
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvminfo.pas
  • M rtl/inc/llvmintr.inc


* fix LLVM code generator after 0043808
o share the high/length code for LLVM rather than duplicating it, since
LLVM will optimize away the minor inefficiencies
o removed temp reference in the old code, as it was useless (it doesn't
prevent spilling to get to an SSA representation since the same
register is written at least twice in all cases)
Commit consists out of
  • M compiler/llvm/nllvminl.pas


* set default target iOS/iPhoneSim version to 9.0 so we no longer depend
on crt.o existing, which is not shipped with the current SDKs anymore
Commit consists out of
  • M compiler/options.pas


* unified loadnf_load_self_pointer into loadnf_load_addr
+ var parameters are now allowed when doing tail recursion optimziation, resolves 0032811
Commit consists out of
  • M .gitattributes
  • M compiler/nld.pas
  • M compiler/nutils.pas
  • M compiler/opttail.pas
  • A tests/webtbs/tw32811.pp


-- Zusammenführen von 0031198 in ».«:
C compiler/arm/aasmcpu.pas
U compiler/arm/aoptcpu.pas
-- Aufzeichnung der Informationen für Zusammenführung von 0031198 in ».«:
U .
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/aoptcpu.pas


* the llvm.experimental.constrained.fpext intrinsic doesn't have a rounding
mode parameter
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas
  • M rtl/inc/llvmintr.inc


* support for constrained sitofp/uitofp with (the upcoming) LLVM 10.0
(fixes most of test/units/math/troundm, although there's still an LLVM
optimizer/code generation bug that breaks some qword -> double
conversions)
Commit consists out of
  • M compiler/llvm/aasmllvmmetadata.pas
  • M compiler/llvm/llvminfo.pas
  • M compiler/llvm/nllvmcnv.pas
  • M rtl/inc/llvmintr.inc


* use maytrap instead of strict FP exception behaviour in LLVM, so constant
propagation is still allowed
Commit consists out of
  • M compiler/llvm/aasmllvmmetadata.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/nllvmadd.pas
  • M compiler/llvm/nllvminl.pas


* fixed missing sign extension when adding a signed integer variable with
size < sizeof(pointer) to a pointer for LLVM (fixes tfmtbcd)
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* fixed (harmless) wrong typecast
Commit consists out of
  • M compiler/nutils.pas


* fixed TAOptBase.SkipEntryExitMarker() not initialising out parameter in
all cases (patch by J. Gareth Moreton, mantis 0036372)
Commit consists out of
  • M compiler/aoptbase.pas


* Add riscv-embedded to targets that don't support non-constant leb128's.
Commit consists out of
  • M compiler/dbgdwarf.pas


* triggered by 0036505, removed CmpJxxDecJmp2SubJcc optimization as it was wrong anyways
Commit consists out of
  • M compiler/x86/aoptx86.pas


* look further forward in TX86AsmOptimizer.OptPass1_V_MOVAP
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: avoid to put variables into registers if they are handled by the x87-FPU
Commit consists out of
  • M compiler/x86/nx86add.pas


+ MovMovMov2XChg optimization by J. Gareth Moreton
Commit consists out of
  • M compiler/x86/aoptx86.pas


* copy fpu parameters using fld/fst onto the stack
Commit consists out of
  • M compiler/x86/cgx86.pas


* fixed LLVM compilation after 0043860
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* cleanup
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixes TX86AsmOptimizer.OptPass1_V_MOVAP after 0043855
Commit consists out of
  • M compiler/x86/aoptx86.pas


* avoid invalid type cast
Commit consists out of
  • M compiler/x86/aoptx86.pas


* let the operation do the type conversion for x87 floating point operations
Commit consists out of
  • M compiler/x86/nx86add.pas


* Fixed safecall on win32 with -Ooregvar by making sure that $safecallresult
is never stored in a register.
Commit consists out of
  • M compiler/pparautl.pas


+ infrastructure to profile different stages of the compiler
Commit consists out of
  • M .gitattributes
  • M compiler/aopt.pas
  • A compiler/cprofile.pp


* missing part of last commit
Commit consists out of
  • M compiler/cprofile.pp


* proper naming
Commit consists out of
  • M .gitattributes
  • R100 compiler/cprofile.pp compiler/cprofile.pas


* fix X86AsmOptimizer.RegModifiedByInstruction for VMOVSS/VMOVSD/IMUL
Commit consists out of
  • M compiler/x86/aoptx86.pas


o patch by J. Gareth Moreton:
* applies some optimisations to OptPass1MOV. Repeated checks to the "GetNextInstruction_p Boolean"
variable are factored out, since all of the optimisations bar the first one require a
succeeding instruction.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* add forgotten exits, fixes 0043874
Commit consists out of
  • M compiler/x86/aoptx86.pas


* do prefetching correctly
* more prefetching inserted
* unnecessary/wrong UpdateUsedRegs removed
Commit consists out of
  • M compiler/aopt.pas
  • M compiler/aoptbase.pas
  • M compiler/aoptobj.pas
  • M compiler/cclasses.pas


+ forgotten file
Commit consists out of
  • M .gitattributes
  • A compiler/cepiktimer.pas


* fixed for targets where currency is implemented via int64 after 0043829
Commit consists out of
  • M compiler/llvm/nllvmcnv.pas


* AArch64: fixed parameter defs for smallsets passed in registers whose size
is not a power of two
Commit consists out of
  • M compiler/aarch64/cpupara.pas


* handle non-smallset sets in registers in LLVM like arrays and records
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* constrained sitofp is not yet supported in LLVM for all targets
Commit consists out of
  • M .gitattributes
  • A compiler/llvm/llvmfeatures.pas
  • M compiler/llvm/llvminfo.pas
  • M compiler/llvm/nllvmcnv.pas


* LLVM/AArch64: don't perform the parameter location extension workarounds
for LLVM, as that results in LLVM assuming exactly the opposite of
what's intended (namely that the extended locations contain valid
rather than invalid bits)
Commit consists out of
  • M compiler/aarch64/cpupara.pas


* accept locals replaced by symbols in inline assembly by the LLVM code
generator in the AArch64 assembler writer
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* explicitly emit a sub instruction in tx86inlinenode.second_high, resolves 0036530
Commit consists out of
  • M compiler/x86/nx86inl.pas


+ CalcUseSum: calculates a sum of all use sets of the current node and its children
Commit consists out of
  • M compiler/optbase.pas
  • M compiler/optutils.pas


* renamed sum -> defsum to avoid confusion with usesum
Commit consists out of
  • M compiler/optutils.pas


- cleanup comment
Commit consists out of
  • M compiler/nflw.pas


* factored out tcgprocinfo.OptimizeNodeTree
Commit consists out of
  • M compiler/psub.pas


* moved conversion of for into while loops in a separate pass, so node optimizations on the node tree can be
carried out without losing information from for loops
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/optdfa.pas
  • M compiler/psub.pas


* some fixes to loop strength reduction
Commit consists out of
  • M compiler/optloop.pas


* more fixes for loop strength reduction
Commit consists out of
  • M compiler/optloop.pas
  • M compiler/optutils.pas


* fix for 0036554
Commit consists out of
  • M .gitattributes
  • M compiler/pstatmnt.pas
  • A tests/webtbf/tw36554.pp


* patch by J. Gareth Moreton: EAX -> EDX:EAX sign extension shortcuts, and MOVSX shortcuts for AX register, part 1 of 0036551
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: EAX -> EDX:EAX sign extension shortcuts, and MOVSX shortcuts for AX register, part 2 of 0036551
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* patch by J. Gareth Moreton: Some cleaning up of OptPass2JMP and OptPass2MOV, resolves 0036553
Commit consists out of
  • M compiler/x86/aoptx86.pas


* compilation on i386 fixed
Commit consists out of
  • M compiler/x86/aoptx86.pas


* ensure the rtl and the packages for embedded compile with features exceptions and classes disabled
Commit consists out of
  • M compiler/psub.pas
  • M packages/rtl-extra/src/inc/sortalgs.pp
  • M rtl/inc/objpash.inc
  • M rtl/inc/rtti.inc
  • M rtl/inc/sortbase.pp
  • M rtl/inc/systemh.inc


- Handle jump optimizations on RISC-V
Commit consists out of
  • M compiler/aoptobj.pas


- RISC-V: Share optimizations between 32 and 64-bit.
Commit consists out of
  • M .gitattributes
  • A compiler/riscv/aoptcpurv.pas
  • M compiler/riscv32/aoptcpu.pas
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv32/cpubase.pas
  • M compiler/riscv64/aoptcpu.pas


- RISC-V: Add controller types for common RV32 MCUs.
- Adds initial controller units for these MCUs.

Code contributed by Michael Ring
Commit consists out of
  • M .gitattributes
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/systems/t_embed.pas
  • M rtl/embedded/Makefile
  • M rtl/embedded/Makefile.fpc
  • A rtl/embedded/riscv32/fe310g000.pp
  • A rtl/embedded/riscv32/fe310g002.pp
  • A rtl/embedded/riscv32/gd32vf103xx.pp
  • A rtl/embedded/riscv32/riscv32_start.inc


* first part of merging parts of Jeppe's intrinsics patch, mainly 0031135
is merged by this commit with a lot of adaptions
Commit consists out of
  • M .gitattributes
  • M compiler/Makefile
  • M compiler/Makefile.fpc
  • M compiler/cgbase.pas
  • M compiler/compinnr.pas
  • M compiler/defutil.pas
  • M compiler/ncginl.pas
  • M compiler/ncgutil.pas
  • M compiler/ninl.pas
  • M compiler/psystem.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • A compiler/utils/mkx86inl.pp
  • M compiler/x86/cgx86.pas
  • M compiler/x86/cx86innr.inc
  • A compiler/x86/cx86mminnr.inc
  • M compiler/x86/nx86inl.pas
  • A compiler/x86/x86intr.dat
  • A compiler/x86/x86mmfirst.inc
  • A compiler/x86/x86mmsecond.inc
  • A compiler/x86/x86mmtype.inc
  • M rtl/i386/cpuh.inc
  • M rtl/i386/cpuinnr.inc
  • A rtl/i386/cpumminnr.inc
  • A rtl/i386/cpummprocs.inc
  • M rtl/inc/innr.inc
  • M rtl/inc/systemh.inc
  • M rtl/x86_64/cpuh.inc
  • M rtl/x86_64/cpuinnr.inc
  • A rtl/x86_64/cpumminnr.inc
  • A rtl/x86_64/cpummprocs.inc


* voidcodepointertype => voidpointertype as suggested by Pierre
Commit consists out of
  • M compiler/opttail.pas


* compilation fixed
Commit consists out of
  • M compiler/avr/ccpuinnr.inc


* do for-loop unrolling after for-loop simplification, resolves 0036589
Commit consists out of
  • M .gitattributes
  • M compiler/nflw.pas
  • A tests/webtbs/tw36589.pp


* patch by J. Gareth Moreton: get rid of another pass through the assembler list by integrating OptReferences
into the post optimizer pass
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/i8086/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


+ insert alignments after break/goto/exit/continue jmp instructions, if it is
superfluous, the assembler optimizer will take care of it
Commit consists out of
  • M compiler/ncgflw.pas


* enable tail recursion optimization also for const and constref open arrays
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/opttail.pas
  • A tests/tbs/tb0667.pp


* also allow by-value open array parameters for the tail recursion optimization
* adjusted test
Commit consists out of
  • M compiler/opttail.pas
  • M tests/tbs/tb0667.pp


* fix for 0032352: a unit does not need to be re-deref'ed if it just had been recompiled
Commit consists out of
  • M compiler/fppu.pas


* patch by Robert Roland to support the RaspberryPi 2 as a bare metal embedded target, resolves 0035236
Commit consists out of
  • M .gitattributes
  • M compiler/arm/cpuinfo.pas
  • M compiler/systems/t_embed.pas
  • M rtl/embedded/Makefile
  • M rtl/embedded/Makefile.fpc
  • A rtl/embedded/arm/raspi2.pp


* take care of m_duplicate_names when checking for duplicate locals, resolves 0033221
Commit consists out of
  • M .gitattributes
  • M compiler/symtable.pas
  • A tests/webtbs/tw33221.pp


* patch by J. Gareth Moreton: x86 CMP/TEST/Jcc optimisations, resolves 0036624
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: x86 SUB and LEA optimisations, resolves 0036622
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* avoid internalerror for dec/inc(...,v) with v>high(int64), resolves 0035298
Commit consists out of
  • M .gitattributes
  • M compiler/ncginl.pas
  • A tests/webtbs/tw35298.pp


* do_loopvar_at_end is not possible if the loop counter would overflow with
the last iteration
Commit consists out of
  • M compiler/nflw.pas


* last commit fixing calculation of do_loopvar_at_end was not complete,
hopefully finally fixed
Commit consists out of
  • M compiler/nflw.pas


* take care of for loop counter read after loop
Commit consists out of
  • M compiler/optdfa.pas


+ in some language modes the loop counter is undefined after the loop by language definition
Commit consists out of
  • M compiler/pstatmnt.pas


* do not throw a warning about unreachable code if the responsible node was generated internally
Commit consists out of
  • M compiler/nflw.pas


* 0042239 broke the tw13948b test for aarch64. Fixed this and improved the test.
Commit consists out of
  • M compiler/ncgmem.pas
  • M tests/webtbs/tw13948b.pp


* Removed lot of unused local vars. It is useful to turn on the notes in options. :)
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/aoptobj.pas
  • M compiler/cutils.pas
  • M compiler/dbgstabx.pas
  • M compiler/hlcgobj.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/i386/n386flw.pas
  • M compiler/link.pas
  • M compiler/mips/cpugas.pas
  • M compiler/ncgmem.pas
  • M compiler/ncgrtti.pas
  • M compiler/pgenutil.pas
  • M compiler/powerpc/agppcmpw.pas
  • M compiler/powerpc/cpupara.pas
  • M compiler/powerpc/nppcmat.pas
  • M compiler/powerpc/rappcgas.pas
  • M compiler/ppcgen/agppcgas.pas
  • M compiler/ppcgen/cgppc.pas
  • M compiler/ppcgen/ngppccnv.pas
  • M compiler/psabiehpi.pas
  • M compiler/symtable.pas
  • M compiler/systems/t_beos.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/rax86int.pas


* Removed inline since it is not supported with open array parameters.
Commit consists out of
  • M compiler/entfile.pas


* improve LeaLea2Lea optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix internalerror if adding the object info for LLVM requires creating new defs
Commit consists out of
  • M compiler/llvm/nllvmutil.pas


* disable cs_opt_regvar on all platforms when compiled for LLVM (LLVM does
that itself, our LLVM code generator can't handle it, and if it did then
afterwards we would have to spill 90% of those register variables again
to make them SSA)
Commit consists out of
  • M compiler/aarch64/cpuinfo.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/avr/cpuinfo.pas
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/m68k/cpuinfo.pas
  • M compiler/mips/cpuinfo.pas
  • M compiler/powerpc/cpuinfo.pas
  • M compiler/powerpc64/cpuinfo.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas
  • M compiler/sparc64/cpuinfo.pas


* use same Windows platform name as clang
Commit consists out of
  • M compiler/llvm/llvmbase.pas


* never inline routines that call get_frame (otherwise get_frame would return
the frame of the caller rather than of the current routine, which could
cause e.g. stackframes to be missed in RTL helpers that are known to be
only called from run time error routines)
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/ninl.pas
  • M compiler/psub.pas
  • M compiler/utils/ppuutils/ppudump.pp


+ new pio_inline_forbidden flag to indicate that while parsing the
implementation the compiler determined the routine must never be
inlined
o difference with po_noinline: can also be set in the implementation
o difference with pio_inline_not_possible: it indicates that e.g.
LLVM must not inline the routine either
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/psub.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


* safecall support is meanwhile generic, so enabled for all linux targets
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/powerpc/cpuinfo.pas
  • M compiler/powerpc64/cpuinfo.pas
  • M compiler/systems/i_linux.pas


* might_have_sideeffects takes care of absolute
Commit consists out of
  • M .gitattributes
  • M compiler/nutils.pas
  • A tests/test/tabsvr6.pp
  • A tests/test/tabsvr7.pp


* when optimizing boolean expressions, might_have_sideeffects is only relevant if the expression would be optimized away
Commit consists out of
  • M compiler/nadd.pas


+ might_have_sideeffects takes care of vo_volatile now (it is not exposed yet)
Commit consists out of
  • M compiler/nutils.pas


* patch by J. Gareth Moreton: x86 "OptPass1MOV" improvements - Part 2, resolves 0036608
Commit consists out of
  • M compiler/x86/aoptx86.pas


* armhf/armel aligns sections to 16 byte, so allow a maximum c alignment of 16
Commit consists out of
  • M compiler/systems/i_linux.pas


* cosmetics
Commit consists out of
  • M compiler/ncal.pas


* fixes copying of tcgpara
Commit consists out of
  • M compiler/parabase.pas


* fix PowerPC compilation
Commit consists out of
  • M compiler/parabase.pas


* patch by J. Gareth Moreton, avoid illegal MovAdd2Lea and MovSub2Lea optimziations, resolves 0036630
Commit consists out of
  • M compiler/x86/aoptx86.pas


* added information about -M allowing to specify modeswitches
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* reverted 0044119
Commit consists out of
  • M compiler/hlcgobj.pas


* patch by J. Gareth Moreton: CMOV extensions: frame/stack pointer relative references are always valid, resolves 0036675
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: conditional Jump Inversion stoploop variable, resolves 0036680
Commit consists out of
  • M compiler/aoptobj.pas


Modify code to avoid error when compiling with -CriotR option
Commit consists out of
  • M compiler/rgobj.pas


* patch by J. Gareth Moreton: deadstore removal improvement, resolves 0036669
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Fixed 0043577 for cases when the size of the new result of a simplified node after typecheckpass is smaller than the size of the original node's result. This caused internal errors or invalid assembly in some cases. Issue 0036587.
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw36587.pp


* patch by J. Gareth Moreton: processor-aware MOVZX optimisation cleanup, part one of 0036687
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixed Mov2Movz optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* simplified TX86AsmOptimizer.OptPass1Movx
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: cleanup TX86AsmOptimizer.OptPass1MOV after DeepMov changes, first part of 0036670
Commit consists out of
  • M compiler/x86/aoptx86.pas


* do not fold constants if the resulttypes do not match, improved fix for #tw26587
Commit consists out of
  • M compiler/nadd.pas


* patch by J. Gareth Moreton: cleanup TX86AsmOptimizer.OptPass2MOV after DeepMov changes, second part of 0036670
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix for Mantis 0036652: gracefully handle the error if one tries to implement a method of a type from another unit
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/pparautl.pas
  • M compiler/psub.pas
  • A tests/webtbf/tw36652.pp
  • A tests/webtbf/uw36652.pp


* regenerate msg*.inc after last commit
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* do not allow constraints in headers of procedure implementations in delphi mode, resolves 0036584
* better error message if a constraint is found at a wrong location
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecsub.pas
  • M compiler/pgenutil.pas
  • A tests/webtbf/tw36584.pp


* make maxpushedparasize a SizeInt: it must store an address size and not an alu value
Commit consists out of
  • M compiler/procinfo.pas


* set nf_* correctly when an inc/dec node is converted into an add/sub node
* do not firstpass during dead store removal as it disturbes the for each calls
Commit consists out of
  • M compiler/ninl.pas
  • M compiler/optdeadstore.pas


+ propagate constants across call nodes
Commit consists out of
  • M compiler/optconstprop.pas


* patch by J. Gareth Moreton: optimize MOVSXD as well, resolves 0036700
Commit consists out of
  • M compiler/x86_64/aoptcpu.pas


* fix global generic functions with constraints in mode Delphi by handling implementations with defines outside of parse_generic_parameters
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/pdecsub.pas
  • M compiler/pparautl.pas
  • A tests/test/tgenfunc20.pp
  • A tests/test/tgenfunc21.pp
  • A tests/test/tgenfunc22.pp


* there is no exit stackframe needed if a subroutine never returns
Commit consists out of
  • M compiler/x86_64/cgcpu.pas


+ CallRet2Call optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* (V)MOVA*(V)MOVS*2(V)MOVS* 1 optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixed tdel1/2 tests again for AArch64/LLVM
Commit consists out of
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvmpara.pas
  • M compiler/pparautl.pas
  • M compiler/symconst.pas


* AArch64 and i386: omit exit stackframe, same as 0044191 for x86-64
Commit consists out of
  • M compiler/aarch64/cgcpu.pas
  • M compiler/i386/cgcpu.pas


* in case a 32x32 -> 64 multiplication is converted into shl, the type casts need to be restored
Commit consists out of
  • M compiler/nadd.pas


* fold also pointer additions/subtractions
Commit consists out of
  • M compiler/nadd.pas


+ AAarch64: optimize divisions by constant
Commit consists out of
  • M compiler/aarch64/ncpumat.pas
  • M compiler/x86/aoptx86.pas


* revert accidently committed code
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fix linking error, in which libc.so.6 is not found on aarch64-linux when libdl.so is loaded, by adding appropriate directory
Commit consists out of
  • M compiler/systems/t_linux.pas


+ AArch64: profiler support for aarch64-linux
Commit consists out of
  • M compiler/aarch64/cgcpu.pas
  • M compiler/options.pas
  • M compiler/x86/aoptx86.pas


* reverted accidently committed changes again
Commit consists out of
  • M compiler/x86/aoptx86.pas


* throw an error if the forward interface type and the actual interface type do not match, resolves 0036720
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecl.pas
  • A tests/webtbf/tw36720.pp
  • A tests/webtbf/uw36720a.pp
  • A tests/webtbf/uw36720b.pp


* (modified) patch by J. Gareth Moreton: processor-aware MOVZX optimisation cleanup, resolves 0036687
Commit consists out of
  • M .gitattributes
  • M compiler/x86/aoptx86.pas
  • A tests/test/cg/tcnvint3a.pp
  • A tests/test/cg/tcnvint3c.pp


* debug statement removed
Commit consists out of
  • M compiler/x86/aoptx86.pas


* track used register better: if a deallocation is moved/removed, the used register may not be removed from the current register used register set
Commit consists out of
  • M compiler/aopt.pas


* LeaCallLeaRet2Jmp is done in TX86AsmOptimizer.PostPeepholeOptLea
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ GetNextInstructionUsingRegTrackingUse
* better MovAnd2Mov optimization
+ TOptsToCheck to track expensive optimizations, needs more work
Commit consists out of
  • M compiler/x86/aoptx86.pas


* ARM: optimize mov rX,#0 .... mul/mla/umull ...,rX,...
Commit consists out of
  • M compiler/arm/aoptcpu.pas


+ ARM: MovMLA2MUL optimization
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* ARM: look further ahead when optimizing mov rX, yyyy
* ARM: fix Mov0 and MovMLA2MUL optimizations
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* several fixes to get better reg. allocations in the arm assembler optimizer
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/aoptcpu.pas


+ take care of addn and subn in is_loop_invariant
Commit consists out of
  • M compiler/optloop.pas


* improve is_loop_invariant for load nodes
Commit consists out of
  • M compiler/optloop.pas


* CallRet2* optimization may not misalign the stack, reported by C Western on fpc-devel
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixed JccAdd/Inc/Dec2*Adc/Sbb optimizations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* calculate complexity of an rtti node correctly
Commit consists out of
  • M compiler/nutils.pas


* more use of RemoveCurrentP(p)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix precedence of IS operator, resolves 0035909
Commit consists out of
  • M .gitattributes
  • M compiler/tokens.pas
  • M packages/fcl-report/src/fpreport.pp
  • A tests/webtbf/tw35909.pp


+ JccAdd2SetccAdd optimization
* take care of C_C/C_NC in JccAdd/Inc/Dec2(Cmc)Adc/Sbb
Commit consists out of
  • M compiler/x86/aoptx86.pas


* simple record accesses have not side effects
Commit consists out of
  • M compiler/nutils.pas


* do not do full boolean evaluation on LOC_FLAGS
Commit consists out of
  • M compiler/nadd.pas


* fix Peephole Optimization: Cmpcc2Testcc - condition AE/NB/NC/NO --> Always optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


movhlps/movlhps only take xmm registers.
Handle spilling of SSE registers.
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rgx86.pas


Add most SSE instructions as intrinsics.
Commit consists out of
  • M compiler/ninl.pas
  • M compiler/utils/mkx86inl.pp
  • M compiler/x86/cx86mminnr.inc
  • M compiler/x86/x86intr.dat
  • M compiler/x86/x86mmfirst.inc
  • M compiler/x86/x86mmsecond.inc
  • M compiler/x86/x86mmtype.inc
  • M rtl/i386/cpumminnr.inc
  • M rtl/i386/cpummprocs.inc
  • M rtl/x86_64/cpuinnr.inc
  • M rtl/x86_64/cpumminnr.inc
  • M rtl/x86_64/cpummprocs.inc


* Show message about creating fppkg/conf.d directory
Commit consists out of
  • M compiler/utils/samplecfg


* add FreebSD to weaklinking targets.
Commit consists out of
  • M compiler/systems.pas


+ OptimizeForLoop: convert for-loops into zero-based backward for-loops if possible, for most architectures, this results in simpler code
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/optloop.pas
  • M compiler/psub.pas


tgobj: Change direction of stack.
Commit consists out of
  • M compiler/tgobj.pas


* fix LLVM backend compilation (mantis 0036833)
Commit consists out of
  • M compiler/llvm/llvmbase.pas


Fix handling of parameters with size below the size of a full register
Commit consists out of
  • M compiler/cgobj.pas


+ -XlS option to specify a suffix for externally called LLVM utilities,
e.g. -XlS-7 to call clang-7 instead of clang)
* IMPORTANT: changed the -CL llvm code generation options to -Cl, for
consistency with the new -Xl option (-XL was already taken)
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/globals.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems.pas


* cosmetics
Commit consists out of
  • M compiler/psystem.pas


* cleanup
Commit consists out of
  • M compiler/arm/narmcnv.pas


* add support for creating non-address-only procvars to
cprocvar.getreusableprocaddr()
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/nllvmld.pas
  • M compiler/llvm/nllvmtcon.pas
  • M compiler/ncgcal.pas
  • M compiler/ncgld.pas
  • M compiler/ncgrtti.pas
  • M compiler/ncgvmt.pas
  • M compiler/ngtcon.pas
  • M compiler/nobj.pas
  • M compiler/symdef.pas


* use tprocvardef.getreusableprocaddr also for non-address-only copies of
proc(var)defs
Commit consists out of
  • M compiler/llvm/nllvmcnv.pas
  • M compiler/llvm/nllvmld.pas
  • M compiler/llvm/nllvmutil.pas
  • M compiler/ncgcnv.pas
  • M compiler/ncnv.pas


* use typenames in more cases in the generated LLVM IR (results in smaller
IR in textual form)
Commit consists out of
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvmtype.pas


* factor out first_addfloat_soft
Commit consists out of
  • M compiler/nadd.pas


* cosmetics
Commit consists out of
  • M compiler/nld.pas


* compilation fixed
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/ncgutil.pas


* better setting of expectloc
Commit consists out of
  • M compiler/ncnv.pas
  • M compiler/nmat.pas


* Add FPCBINDIR macro for paths
Commit consists out of
  • M compiler/globals.pas


* Do not expand FPCBINDIR on darwin
Commit consists out of
  • M compiler/globals.pas


* Use exepath on all platforms
Commit consists out of
  • M compiler/globals.pas


* Use exepath on all platforms
Commit consists out of
  • M compiler/globals.pas


+ fpu_fpv4_sp_d32
* some fixes to make fpv4-sp-d32 work
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/narmutil.pas


* reorganized arm cpu flags
Commit consists out of
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/narmadd.pas
  • M compiler/arm/narmcnv.pas
  • M compiler/arm/narminl.pas
  • M compiler/arm/narmmat.pas


* arm: more fixes for fpu_fpv4_sp_d16
* take care of FPUARM_HAS_VFP_DOUBLE
* use FPUARM_HAS_VFP_EXTENSION instead of checking fpu_vfp_first and ...last
Commit consists out of
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/cpupara.pas
  • M compiler/arm/narmadd.pas
  • M compiler/arm/narmcon.pas
  • M compiler/symdef.pas


* simplify tc_bool_2_int
Commit consists out of
  • M compiler/ncnv.pas


+ arm: optimize sxth/sxtb
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* fixes compilation on WinCE
Commit consists out of
  • M compiler/arm/narmcnv.pas


* get rid of fpu_vfp_first/last hack
Commit consists out of
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/narmcal.pas
  • M compiler/arm/narmcnv.pas
  • M compiler/arm/narminl.pas


* load 0 into unaligned memory in a simpler way
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* Aarch64: UTX/STX instructions include now the postfix, so it is the same as for ARM
Commit consists out of
  • M compiler/aarch64/a64att.inc
  • M compiler/aarch64/a64atts.inc
  • M compiler/aarch64/a64ins.dat
  • M compiler/aarch64/a64op.inc
  • M compiler/aarch64/cgcpu.pas


Handle all existing possible values for init_settings.fputype to set Tag_FP_Arch .eabi_attribute
Commit consists out of
  • M compiler/arm/narmutil.pas


+ common assembler optimizer base class for arm and aarch64
Commit consists out of
  • M .gitattributes
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • A compiler/armgen/aoptarm.pas


* check for stup instead of stp
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* factored out TARMAsmOptimizer.OptPass1UXTB
* several other routines being very similar for ARM and AAarch64 moved to aoptarm
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/aarch64/cpubase.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


Avoid invalid typecast in tarmunaryminusnode.pass_1 method
Commit consists out of
  • M compiler/arm/narmmat.pas


* factored out TARMAsmOptimizer.OptPass1UXTH
* AArch64: use TARMAsmOptimizer.OptPass1UXTH
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* factored out TARMAsmOptimizer.OptPass1SXTB
* AArch64: use TARMAsmOptimizer.OptPass1SXTB
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* factored out TARMAsmOptimizer.OptPass1SXTH
* AArch64: use TARMAsmOptimizer.OptPass1SXTH
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* fix comment
Commit consists out of
  • M compiler/sparc64/tgcpu.pas


* fix typo
Commit consists out of
  • M compiler/scanner.pas


* re-added assembler optimization accidently removed in 0044738 as noted by margers on the mailing list
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


m68k-amiga: hack to avoid a linker (vlink) warning about merging sections with different flags together. Amiga doesn't support true read only sections anyway
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/m68k/ag68kvasm.pas


+ AAarch64: FOpFMov2FOp assembler optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ AAarch64: assembler optimization Bl2B
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* regenerated makefiles
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcm/revision.inc
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile


* bail out early if possible
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ AArch64: TCpuAsmOptimizer.OptPass1Mov
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* FreeRTOS: try not to build native binaries
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* factored out and improved TARMAsmOptimizer.RedundantMovProcess
+ AArch64: use TARMAsmOptimizer.RedundantMovProcess
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* TARMAsmOptimizer.RemoveSuperfluousMove should not mess with PC
Commit consists out of
  • M compiler/armgen/aoptarm.pas


+ take care of OPTNEW when building utils
Commit consists out of
  • M compiler/utils/Makefile
  • M compiler/utils/Makefile.fpc


* regenerated
Commit consists out of
  • M compiler/utils/Makefile


+ initial support for arm-freertos largely based on patch by Michael Ring
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/cpuelf.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/cputarg.pas
  • M compiler/options.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_freertos.pas
  • M compiler/systems/t_embed.pas
  • M compiler/systems/t_freertos.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M rtl/freertos/Makefile.fpc
  • M utils/fpcm/fpcmake.inc
  • M utils/fpcm/fpcmake.ini
  • M utils/fpcm/fpcmmain.pp
  • M utils/fpcm/revision.inc


Add several missing -T options in help
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* fix for Mantis 0036935: apply patch by J. Gareth Moreton to fix a typo in cs_opt_remove_empty_proc
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/ncal.pas
  • M compiler/ncgvmt.pas
  • M compiler/psub.pas
  • M compiler/utils/ppuutils/ppudump.pp


* for PE+ specific checks use a constant in systems.pas instead of an explicit list (easier to extend this way)
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/assemble.pas
  • M compiler/ogcoff.pas
  • M compiler/systems.pas
  • M compiler/systems/t_win.pas


+ implement relocations for Aarch64 for the internal COFF linker
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogcoff.pas


+ implement initial compiler support for Win64 on Aarch64
Commit consists out of
  • M compiler/aarch64/cputarg.pas
  • M compiler/gendef.pas
  • M compiler/ogcoff.pas
  • M compiler/options.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_win.pas
  • M compiler/systems/t_win.pas
  • M compiler/utils/ppuutils/ppudump.pp


+ add a GAS compatible variant of the Clang assembler (currently used for Aarch64-Win64 as no GNU AS exists for that target, yet)
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/systems.inc


* Windows does not support a GOT, so rely on page relative addressing
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* Windows on AArch64 does not support ProgBits either
Commit consists out of
  • M compiler/aggas.pas


* Windows on Aarch64 requires a relocation section
Commit consists out of
  • M compiler/pmodules.pas


* Windows on AArch64 requires some DllCharacteristics in the header to be always set
Commit consists out of
  • M compiler/ogcoff.pas


+ add functionality to store a node tree's required temp nodes and their flag upon entering the tree
Commit consists out of
  • M compiler/psub.pas


- remove sectiontype2options overload for mach-O, because the relevant sections have the correct flags in the base method already
Commit consists out of
  • M compiler/ogmacho.pas


* it's rather useless that sectiontype2options is virtual as we can't use a class type, not to mention that the classes doing the overriding are for the internal assemblers/linkers, but we need it also for external
Thus we move the functionality of the overloads to the basemethod and remove the virtual directive; maybe we'll find a better solution in the future...
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogcoff.pas
  • M compiler/ogomf.pas


* rename the local sectionflags and sectionprogbits variables to the more clear usesectionflags and usesectionprogbits
Commit consists out of
  • M compiler/aggas.pas


+ introduce a virtual method for writing the section flags
Commit consists out of
  • M compiler/aggas.pas


* the clang assembler for COFF requires at least an "r" to generate a readonly section
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* use COFF sectionattrs for aarch64-win64 as well
Commit consists out of
  • M compiler/aggas.pas


* at least clang can savely generate relocatable readonly sections, so use "r" for aarch64-win64
Commit consists out of
  • M compiler/aggas.pas


* as a variant for SEH exception filters we allow them to be *duplicated* instead of being extracted; this can be done unconditionally as for extracted ones their code is set to Nil after they're done and thus won't be picked up by generate_code_exceptionfilters
Commit consists out of
  • M compiler/psub.pas


+ implement compiler support for SEH on Win64

Note: due to the way we access variables in a nested function (which in this case includes exception filters) we can not extract the finally handlers and call them (like we do on i386 and x86_64, but instead we duplicate the finally code)
Commit consists out of
  • M .gitattributes
  • M compiler/aarch64/cgcpu.pas
  • M compiler/aarch64/cpunode.pas
  • M compiler/aarch64/cpupi.pas
  • A compiler/aarch64/ncpuflw.pas
  • M compiler/aarch64/racpugas.pas
  • M compiler/aasmtai.pas
  • M compiler/ogcoff.pas
  • M compiler/psub.pas
  • M compiler/x86_64/win64unw.pas


* the .pdata section currently only needs to be always included for arm-wince (at least until we have full SEH support there as well)
Commit consists out of
  • M compiler/ogcoff.pas


+ add an error message if the size of a function is invalid (in case of aarch64-win64: not a multiple of 4, the instruction size)
Commit consists out of
  • M compiler/msg/errore.msg


+ add Win64 target to help text
Commit consists out of
  • M compiler/msg/errore.msg


* regenerate msg{idx,txt}.inc
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* the clang assembler does not provide support for the SEH directives we need (only the LLVM backend would be able to use them), thus we need to manually convert them to data sections
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* due to an apparent bug in the clang assembler for COFF when assembling ADRP instructions we can't use symbols that are offset into their section
Commit consists out of
  • M compiler/aasmcnst.pas


* generate jump tables into the same section as the code as otherwise we'll get bogus relocations (in case of clang.exe) or a future support for armasm64.exe will reject the relative symbols outright
Commit consists out of
  • M compiler/aarch64/ncpuset.pas


* register the DLL scanner for aarch64-win64
Commit consists out of
  • M compiler/systems/t_win.pas


* set implicitframe for copied tryfinally nodes as well
Commit consists out of
  • M compiler/nflw.pas


* implement dogetcopy for the Aarch64 variant of the tryfinally node
Commit consists out of
  • M compiler/aarch64/ncpuflw.pas


+ assembler optimization MovxMov2Movx
Commit consists out of
  • M compiler/x86/aoptx86.pas


* correctly set register size
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix for Mantis 0035140: apply patch by Ryan Joseph together with some further changes by me to add support for constant parameters in generics
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/defcmp.pas
  • M compiler/htypechk.pas
  • M compiler/ncnv.pas
  • M compiler/ncon.pas
  • M compiler/nmat.pas
  • M compiler/node.pas
  • M compiler/nset.pas
  • M compiler/pass_1.pas
  • M compiler/pdecl.pas
  • M compiler/pdecsub.pas
  • M compiler/pdecvar.pas
  • M compiler/pexpr.pas
  • M compiler/pgentype.pas
  • M compiler/pgenutil.pas
  • M compiler/pparautl.pas
  • M compiler/ppu.pas
  • M compiler/pstatmnt.pas
  • M compiler/ptype.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A tests/test/tgenconst1.pp
  • A tests/test/tgenconst10.pp
  • A tests/test/tgenconst11.pp
  • A tests/test/tgenconst12.pp
  • A tests/test/tgenconst13.pp
  • A tests/test/tgenconst14.pp
  • A tests/test/tgenconst15.pp
  • A tests/test/tgenconst16.pp
  • A tests/test/tgenconst17.pp
  • A tests/test/tgenconst18.pp
  • A tests/test/tgenconst19.pp
  • A tests/test/tgenconst2.pp
  • A tests/test/tgenconst20.pp
  • A tests/test/tgenconst21.pp
  • A tests/test/tgenconst22.pp
  • A tests/test/tgenconst23.pp
  • A tests/test/tgenconst24.pp
  • A tests/test/tgenconst25.pp
  • A tests/test/tgenconst26.pp
  • A tests/test/tgenconst27.pp
  • A tests/test/tgenconst28.pp
  • A tests/test/tgenconst29.pp
  • A tests/test/tgenconst3.pp
  • A tests/test/tgenconst30.pp
  • A tests/test/tgenconst4.pp
  • A tests/test/tgenconst5.pp
  • A tests/test/tgenconst6.pp
  • A tests/test/tgenconst7.pp
  • A tests/test/tgenconst8.pp
  • A tests/test/tgenconst9.pp


* fix tc_bool_2_int simplification in case pass typecheck runs again, e.g.
after getting a copy of the node during CSE (fixes taddset4 compilation
with LLVM after 0044712)
Commit consists out of
  • M compiler/ncnv.pas


* destroying constnone constsyms can occur when parsing a generic with a constant parameter that results in an error (e.g. unsupported type)
Commit consists out of
  • M compiler/symsym.pas


* fix for Mantis 0036975: arraydefs are not allowed for generic types (this is only used for type declarations; for specializing constant strings which are char arrays are still allowed)
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pgenutil.pas
  • A tests/webtbf/tw36975.pp


+ add an explicit error message if a type is not supported for a generic constant parameter
Commit consists out of
  • M compiler/msg/errore.msg


* regenerate msg{txt,idx}.inc
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* use a more detailed error message if a type is not allowed for a generic constant parameter
Commit consists out of
  • M compiler/pgenutil.pas


* fixed SetIsEmpty
Commit consists out of
  • M compiler/symdef.pas


+ initialize variables, so compilation with -O3 works
Commit consists out of
  • M compiler/pgenutil.pas


* patch by J. Gareth Moreton: refactor RemoveCurrentP
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/avr/aoptcpu.pas
  • M compiler/x86/aoptx86.pas

Merge: a084c8829f a857e60dc1

* merged the z80 branch

z80 merge in + makefile regen



- removed GetHigh, GetNextReg, GetLastReg, GetOffsetReg and GetOffsetReg64 from cpubase. The methods
in cg should be used instead, because they do better error checking on the register used.
Commit consists out of
  • M compiler/z80/cpubase.pas
  • M compiler/z80/nz80mem.pas


+ added Z80 helper functions is_regpair and split_regpair
Commit consists out of
  • M compiler/z80/cpubase.pas


+ added another helper for register pairs: register_in
Commit consists out of
  • M compiler/z80/cpubase.pas


z80: sdasz80 won't do section smartlinking for us, but it's used for the zx spectrum target
Commit consists out of
  • M compiler/z80/agsdasz80.pas


z80: added quick & dirty vasm assembler support to the target
Commit consists out of
  • M .gitattributes
  • M compiler/systems.inc
  • M compiler/systems/i_zxspectrum.pas
  • A compiler/z80/agz80vasm.pas
  • M compiler/z80/cputarg.pas


* unfortunately tf_smartlink_sections is mutually exclusive with
tf_smartlink_library, and defining both breaks sdasz80, so put this behind
ifdef Z80_SMARTLINK_SECTIONS
Commit consists out of
  • M compiler/systems/i_zxspectrum.pas


Fix cross-compilation on aarch64-linux using -dFPC_SOFT_FPUX80 option
Commit consists out of
  • M compiler/z80/agsdasz80.pas
  • M compiler/z80/agz80vasm.pas


Fixed LLVM compilation after 0045143
Commit consists out of
  • M compiler/llvm/llvmbase.pas


+ z80: added range checking for d in the (IX+d) and (IY+d) addressing modes in
the sdasz80 assembler writer, because sdasz80 silently truncates d to shortint
which produces broken code and hides bugs in the z80 code generator. The check
is behind ifdef, because the system unit doesn't compile, when this check is
enabled, due to bugs that were previously unnoticed. When these bugs are
fixed, the ifdef will be removed.
Commit consists out of
  • M compiler/z80/agsdasz80.pas


+ z80: generate correct code in do_spill_read and do_spill_written for spilling to temp offsets outside the range -128..127
Commit consists out of
  • M compiler/z80/rgcpu.pas


+ enable the sdasz80 lameness check permanently, because the system unit now
compiles, and it's important to catch other similar errors also
Commit consists out of
  • M compiler/z80/agsdasz80.pas


* do not generate moves unncesssarily in tcgloadparentfpnode.pass_generate_code
Commit consists out of
  • M compiler/ncgmem.pas


z80: fix global symbols and section attributes in the vasm writer
Commit consists out of
  • M compiler/z80/agz80vasm.pas


z80: fix typo in the previous commit
Commit consists out of
  • M compiler/z80/agz80vasm.pas


zxspectrum: added support for linking via vlink, and for pascal sysinit code. also some cleanup in the linker code
Commit consists out of
  • M compiler/systems.pas
  • M compiler/systems/t_zxspectrum.pas


* fixed bug, causing the global variable stacksize to be destroyed
Commit consists out of
  • M compiler/z80/cgcpu.pas


* added comment, stating that Z80 has no condition subsets
Commit consists out of
  • M compiler/z80/cpubase.pas


+ build an instruction table cache for the Z80
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ added Z80 register AF'
Commit consists out of
  • M compiler/z80/rz80con.inc
  • M compiler/z80/rz80dwa.inc
  • M compiler/z80/rz80nor.inc
  • M compiler/z80/rz80num.inc
  • M compiler/z80/rz80rni.inc
  • M compiler/z80/rz80sri.inc
  • M compiler/z80/rz80sta.inc
  • M compiler/z80/rz80std.inc
  • M compiler/z80/rz80sup.inc
  • M compiler/z80/z80reg.dat


+ partial implementation of taicpu.Matches
Commit consists out of
  • M compiler/z80/aasmcpu.pas


* Z80: fixed code generation for pure assembler routines, that have no parameters, no local variables
and no 'nostackframe'
Commit consists out of
  • M compiler/z80/cgcpu.pas


* do not use an extra register in tcginlinenode.second_IncDec if not needed
Commit consists out of
  • M compiler/cg64f32.pas
  • M compiler/cgobj.pas
  • M compiler/ncginl.pas


+ z80: added condition checking in taicpu.Matches
Commit consists out of
  • M compiler/z80/aasmcpu.pas
  • M compiler/z80/cpubase.pas


- z80: oops, forgot to delete some code from taicpu.Matches
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ z80: implemented taicpu.FindInsentry
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ z80: implemented taicpu.CheckIfValid
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ handle OT_IMM_PORT in taicpu.Matches
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ handle OT_REG8_C_PORT in taicpu.Matches
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ handle OT_RELJMP8 in taicpu.Matches
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ handle OT_IMM8 and OT_IMM16 for getting symbol addresses in taicpu.Matches
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ added Z80 inline asm instruction validation
Commit consists out of
  • M compiler/ncgbas.pas


+ z80: add operand info to the result of taicpu.GetString, this makes the
compiler produce nicer error messages, when it encounters an invalid
instruction in inline asm code
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ started work on the Z80 internal assembler
Commit consists out of
  • M .gitattributes
  • A compiler/ogrel.pas
  • M compiler/systems.inc
  • M compiler/z80/cputarg.pas


+ added class TRelObjOutput
Commit consists out of
  • M compiler/ogrel.pas


* fix LLVM after 0045177
Commit consists out of
  • M compiler/ncginl.pas


m68k: have an arch-specific second_length implementation, to make sure length() doesn't return its result in an address register
Commit consists out of
  • M compiler/m68k/n68kinl.pas


* increase PPU version so that 3.2.0 correctly ignores 3.3.1 PPUs instead of fatally failing on the extended header entry
Commit consists out of
  • M compiler/ppu.pas


* GetCopyAndTypeCheck forces correct type
* propagate forinline flag through simplify
Commit consists out of
  • M compiler/nadd.pas


* allow recursive inlines, meanwhile, there are other means to avoid too deep recursion of inlining
Commit consists out of
  • M compiler/ncal.pas


+ enable the Z80 internal asm (which doesn't work, yet) if the compiler is compiled with -dZ80_INTERNAL_ASM
Commit consists out of
  • M compiler/systems/i_embed.pas
  • M compiler/systems/i_zxspectrum.pas


+ added an override of the abstract method TRelObjOutput.writeData (not implemented, yet)
Commit consists out of
  • M compiler/ogrel.pas


* remove tempref mess for simple inlined functions
Commit consists out of
  • M compiler/nbas.pas
  • M compiler/nutils.pas


* compilation with -Oodfa fixed
Commit consists out of
  • M compiler/systems/t_freertos.pas


ppudump: catch exception on illegal datetime (mainly cross compiled units)
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* properly force the result type after 0045217
Commit consists out of
  • M compiler/nbas.pas


* correctly handle result type of string constant nodes for internally created
nodes
Commit consists out of
  • M .gitattributes
  • M compiler/ncnv.pas
  • A tests/tbs/tb0671.pp


* handle generic parameters in Ord()
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/ninl.pas
  • A tests/tbs/tb0672.pp


* compilation with -Oodfa fixed
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


+ added build mode that enables the Z80 internal assembler
Commit consists out of
  • M compiler/ppcz80.lpi


+ added class TRelObjData
Commit consists out of
  • M compiler/ogrel.pas


+ override the abstract methods from TObjData.sectionname() and .writereloc(). Only sectionname() is implemented for now.
Commit consists out of
  • M compiler/ogrel.pas


+ write the .rel file header and the list of external symbols
Commit consists out of
  • M compiler/ogrel.pas


* the areas global symbols count must be in hex in the .rel format
Commit consists out of
  • M compiler/ogrel.pas


+ write the areas (sections) in the .rel output
Commit consists out of
  • M compiler/ogrel.pas


+ added the global symbols to the .rel output file
Commit consists out of
  • M compiler/ogrel.pas


+ implemented pass1 (calcsize) of the instruction encoding for the Z80 internal asm
Commit consists out of
  • M compiler/z80/aasmcpu.pas


* Z80: match both signed and unsigned 16-bit constants as OT_IMM16 in the asm instab lookup
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ partial implementation of pass2 asm opcode generation for the Z80 internal asm writer
Commit consists out of
  • M compiler/ogrel.pas
  • M compiler/z80/aasmcpu.pas


+ Z80 internal asm: produce correct opcodes for register operands
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ actually produce relocations in TRelObjData.writeReloc
Commit consists out of
  • M compiler/ogrel.pas


* Xtensa: patch by Christo Crause: fix addmi/addi handling, resolves 0037015
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


+ write the section data in the .rel internal object writer (relocations aren't written, yet)
Commit consists out of
  • M compiler/ogrel.pas


+ introduced the TRelRelocation class
Commit consists out of
  • M compiler/ogrel.pas


+ added TRelRelocationFlags
Commit consists out of
  • M compiler/ogrel.pas


+ initialize size and relflags in TRelRelocation
Commit consists out of
  • M compiler/ogrel.pas


+ added method TRelRelocation.EncodeFlags that encodes the flags to string that can be included in the .rel file
Commit consists out of
  • M compiler/ogrel.pas


* Put all code adding cs_fp_emulation by default inside one big
{$ifdef cpufpemu}
* Add system_arm_freertos and system_xtena_linux to the list
of systems that automatically add cs_fp_emulation to
init_settings.moduleswitches.
+ Do not use controller specfic default fputype for xtensa-linux
target that does not support use of -Wp option to set controller type.
Commit consists out of
  • M compiler/options.pas


Add -Wp option description for riscv32 and xtensa compiler
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Do not use inherited first_int_to_real when arm FPU_HAS_FPA is in fpu_capabilities
Commit consists out of
  • M compiler/arm/narmcnv.pas


+ also write the relocations in the .rel internal obj writer
Commit consists out of
  • M compiler/ogrel.pas


* the parameter of WriteWord should be word, not byte :)
Commit consists out of
  • M compiler/z80/aasmcpu.pas


* xtensa-embedded: fix setting of the fpu and abi
Commit consists out of
  • M compiler/options.pas
  • M compiler/systems/i_embed.pas
  • M compiler/xtensa/cpuinfo.pas


* Release registers which have been used for a function call before adjusting the stack pointer. On i386 this allows to use eax,ecx,edx in POP instructions for stack adjustment.
Commit consists out of
  • M compiler/ncgcal.pas


+ lots of fixes to the Z80 internal asm writer
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogrel.pas
  • M compiler/z80/aasmcpu.pas


+ Z80 internal asm: support OT_REF_ADDR16 in taicpu.gencode.WrinteNN
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ support conditional operations in the Z80 internal asm
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ fix for conditional JP in the Z80 internal asm writer
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ support creating ar files in the Z80 internal obj writer
Commit consists out of
  • M compiler/ogrel.pas


+ align files in generated .a files not by #0, but by #10 (Line Feed). This is
compatible with GNU ar and others, and fixes linking with sdcc-sdld.
Commit consists out of
  • M compiler/owar.pas


* preserve the actual file size (before aligning it to even bytes), when adding files to .a archives
Commit consists out of
  • M compiler/owar.pas


+ support the RST instruction in the Z80 internal asm writer
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ support relative jumps in the Z80 internal asm writer
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ Z80: support conditional JR
Commit consists out of
  • M compiler/z80/cpubase.pas


+ support the 'in A,(n)' and 'out (n),A' instrunction in the Z80 internal asm writer
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ support instructions like BIT, SET and RES in the Z80 internal asm writer
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ support signed 8-bit immediate constants in the Z80 internal asm writer as well
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ call ApplyAsmSymbolRestrictions for symbols that should be exported from ar files
Commit consists out of
  • M compiler/ogbase.pas


+ added internal error in taicpu.gencode.WriteNN to catch unhandled asm instructions
Commit consists out of
  • M compiler/z80/aasmcpu.pas


- reverted previous commit, since it was incorrect
Commit consists out of
  • M compiler/z80/aasmcpu.pas


+ fix for writing absolute relocations in the .rel format
Commit consists out of
  • M compiler/ogrel.pas


* fixed the TRelocDataInt to avoid truncating 16-bit addresses to 8-bit on 8-bit CPUs
Commit consists out of
  • M compiler/ogbase.pas


- removed commented out writeln
Commit consists out of
  • M compiler/z80/aasmcpu.pas


* x86: Fixed peephole optimization introduced in 0044233. tb0219 and tb0548 tests have failed with -O2 since then.
* Added variants of the tb0219 and tb0548 tests with forced -O2.
Commit consists out of
  • M .gitattributes
  • M compiler/x86/aoptx86.pas
  • A tests/tbs/tb0219a.pp
  • A tests/tbs/tb0548a.pp


* If a nested procedure does not access its parent's frame pointer, optimize it by removing the hidden $parentfp parameter.
* Improved the tisogoto1.pp test.
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/nmem.pas
  • M compiler/pexpr.pas
  • M compiler/procinfo.pas
  • M compiler/pstatmnt.pas
  • M compiler/psub.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M tests/test/tisogoto1.pp


* fixed fpmake invokation when building an i386-linux snapshot on a x86_64-linux host
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcm/fpcmake.inc
  • M utils/fpcm/fpcmake.ini
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihx2tzx/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile


* only call cg64.a_XXX_loc for LOC_(C)REFERENCE and LOC_(C)REGISTER locations in
tcginlinenode.second_AndOrXorShiftRot_assign
Commit consists out of
  • M compiler/ncginl.pas


* i8086 compilation fixed after 0045302
Commit consists out of
  • M compiler/i8086/cgcpu.pas


+ generate more optimal code for OP_NOT and OP_NEG in tcg64f8086.a_op64_ref
Commit consists out of
  • M compiler/i8086/cgcpu.pas


* call inherited in tcg64f8086.a_op64_reg_ref for OP_NEG and OP_NOT, because it is handled differently after 0045302
Commit consists out of
  • M compiler/i8086/cgcpu.pas


- remove unused files, resolves 0037032
Commit consists out of
  • M .gitattributes
  • D compiler/cpid.pas
  • D compiler/cwindirs.pp


m68k: preparations for upcoming full instruction tables, mostly converting code away from using sets of opcodes
Commit consists out of
  • M compiler/m68k/ag68kgas.pas
  • M compiler/m68k/aoptcpu.pas
  • M compiler/m68k/cgcpu.pas
  • M compiler/m68k/ra68kmot.pas
  • M compiler/m68k/rgcpu.pas


+ use ApplyAsmSymbolRestrictions on all symbols in the NASM writer
Commit consists out of
  • M compiler/x86/agx86nsm.pas


m68k: added a full instruction table (minus CF MAC/EMAC instructions for now), based on vasm, and the required tool to process it
Commit consists out of
  • M .gitattributes
  • A compiler/m68k/m68kins.dat
  • A compiler/utils/mk68kins.pp


m68k: add the converted includes, based on m68kins.dat
Commit consists out of
  • M .gitattributes
  • A compiler/m68k/m68knop.inc
  • A compiler/m68k/m68kop.inc
  • A compiler/m68k/m68kstd.inc
  • A compiler/m68k/m68ktab.inc


m68k: migrate the compiler to the new instruction tables and drop the old ones
Commit consists out of
  • M compiler/m68k/ag68kgas.pas
  • M compiler/m68k/cpubase.pas
  • M compiler/m68k/itcpugas.pas


m68k: fixed instruction code formatting in the generated include
Commit consists out of
  • M compiler/m68k/m68ktab.inc
  • M compiler/utils/mk68kins.pp


* fixed -Cl options now showing in the help of an LLVM compiler (and fixed
them to read -Cl rather than -CL)
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgtxt.inc


* propagate forinline
Commit consists out of
  • M compiler/nadd.pas


* Always use parentfp for forward-declared nested procedures.
Commit consists out of
  • M .gitattributes
  • M compiler/ncal.pas
  • M compiler/symdef.pas
  • A tests/test/tnest2.pp


* Do not perform optimization of nested procedures for:
- targets which use a special struct to access parent's variables;
- pure assembler procedures (for compatibility with old code).
Commit consists out of
  • M compiler/psub.pas


* Code formatting.
Commit consists out of
  • M compiler/procinfo.pas
  • M compiler/symdef.pas


* avoid unncessary conversions of constants in 64 bit ints when doing constant folding
Commit consists out of
  • M compiler/nadd.pas


* cosmetics
Commit consists out of
  • M compiler/nadd.pas


* improved heuristics for auto-inlining
Commit consists out of
  • M compiler/psub.pas


* generate CFI data only if we're either using it for exception handling or if debug output is enabled (or should this only be generated for targets that in theory support DWARF exception handling?). This removes unnecessary bloat from e.g. Windows binaries
Commit consists out of
  • M compiler/cfidwarf.pas


- cleaned up some x86-specific code from the Z80 inline asm reader
Commit consists out of
  • M compiler/z80/raz80asm.pas


+ also recognize alternate registers in the Z80 inline asm scanner. This allows
the "EX AF,AF'" instruction to be accepted and assembled as well.
Commit consists out of
  • M compiler/z80/raz80asm.pas


+ added the alternate Z80 register pairs BC', DE' and HL'
Commit consists out of
  • M compiler/z80/rz80con.inc
  • M compiler/z80/rz80dwa.inc
  • M compiler/z80/rz80nor.inc
  • M compiler/z80/rz80num.inc
  • M compiler/z80/rz80rni.inc
  • M compiler/z80/rz80sri.inc
  • M compiler/z80/rz80sta.inc
  • M compiler/z80/rz80std.inc
  • M compiler/z80/rz80sup.inc
  • M compiler/z80/z80reg.dat


+ added a correct implementation of TAOptBase.SuperRegistersEqual for the Z80
Commit consists out of
  • M compiler/aoptbase.pas
  • M compiler/z80/cpubase.pas


+ Z80: added a registers_interfere helper function
Commit consists out of
  • M compiler/z80/cpubase.pas


+ introduced TAOptBase.RegistersInterfere (which might not always be equivalent to SuperRegistersEqual)
Commit consists out of
  • M compiler/aoptbase.pas


* use RegistersInterfere instead of SuperRegistersEqual in TAoptBase.RegInOp and TAoptBase.RegInRef
Commit consists out of
  • M compiler/aoptbase.pas


+ added subregisters for the Z80 flags
Commit consists out of
  • M compiler/cgbase.pas


+ added the Z80 individual flag bits as subregisters
Commit consists out of
  • M compiler/rgbase.pas
  • M compiler/z80/rz80con.inc
  • M compiler/z80/rz80dwa.inc
  • M compiler/z80/rz80nor.inc
  • M compiler/z80/rz80num.inc
  • M compiler/z80/rz80rni.inc
  • M compiler/z80/rz80sri.inc
  • M compiler/z80/rz80sta.inc
  • M compiler/z80/rz80std.inc
  • M compiler/z80/rz80sup.inc
  • M compiler/z80/z80reg.dat


+ MovAndTest2Test optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ Z80: implemented TCpuAsmOptimizer.InstructionLoadsFromReg
Commit consists out of
  • M compiler/z80/aoptcpu.pas


+ support the LD instruction in TCpuAsmOptimizer.RegLoadedWithNewValue
Commit consists out of
  • M compiler/z80/aoptcpu.pas


+ Z80: support all the flags subregisters in super_registers_equal
Commit consists out of
  • M compiler/z80/cpubase.pas


+ Z80: support the flags subregisters in the registers_interfere function
Commit consists out of
  • M compiler/z80/cpubase.pas


* handle OP_XOR for a full mm register correctly in tcgx86.opmm_loc_reg
Commit consists out of
  • M compiler/x86/cgx86.pas


* simplify constant expressions after re-ordering, resolves 0037062
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw37062.pp


- removed tabstractrecorddef.get_unit_symtable, which did not always return the unit
symtable (when you had a local recorddef in a procdef)
* modified tdef.get_top_level_symtable() so you can specify whether you want to
skip procdefs or not
* changed tobjectdef.vmt_def() to no longer require a typesym for the tobjectdef
(based on patch by Blaise)
Commit consists out of
  • M compiler/symcreat.pas
  • M compiler/symdef.pas
  • M compiler/symtable.pas
  • M compiler/symtype.pas


* fix a typo in a comment. no functional change
Commit consists out of
  • M compiler/aasmcnst.pas


* patch by Reynaldo to generate kernel image for the raspi2 embedded port, resolves 0027052
Commit consists out of
  • M compiler/systems/t_embed.pas


+ handle the flags register bits for many Z80 instructions in TCpuAsmOptimizer.RegLoadedWithNewValue
Commit consists out of
  • M compiler/z80/aoptcpu.pas


* improved LeaLea2Lea
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ Z80: report flags register information in TCpuAsmOptimizer.RegLoadedWithNewValue for 16-bit ADD,ADC,SBC,INC and DEC
Commit consists out of
  • M compiler/z80/aoptcpu.pas


m68k: add support for bitfield instructions as CPU capability
Commit consists out of
  • M compiler/m68k/cpuinfo.pas


* fix spilling for PAND, POR and PXOR, resolves 0037084
Commit consists out of
  • M compiler/x86/rgx86.pas


m68k: tabs to spaces and indentation fix, no functional change
Commit consists out of
  • M compiler/m68k/cgcpu.pas


+ Z80: report the flags usage for all the remaining instructions in TCpuAsmOptimizer.RegLoadedWithNewValue
Commit consists out of
  • M compiler/z80/aoptcpu.pas


+ z80: handle all instructions in TCpuAsmOptimizer.RegLoadedWithNewValue
Commit consists out of
  • M compiler/z80/aoptcpu.pas


* fixed IsJumpToLabelUncond for the Z80
Commit consists out of
  • M compiler/aoptobj.pas


- z80: disable regvars, because they don't work
Commit consists out of
  • M compiler/z80/cpuinfo.pas


* boolean or/and nodes might be swapped when they have no side effect, in case
of short boolean evaluation, firstcomplex is not called so this does not
hurt short boolean evaluation
Commit consists out of
  • M compiler/ncgutil.pas


* call x86 addordinal for non short boolean evaluated boolean nodes
as this results in better code
Commit consists out of
  • M compiler/x86/nx86add.pas


* when auto-inlining is used, do not require that inlining is explicitly turned on
Commit consists out of
  • M compiler/psub.pas


* Z80: JR can be both conditional and uncoditional jump, just like JP
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/z80/aoptcpub.pas


+ PXorPXor2PXor optimization
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* Reworked the optimization of unused $parentfp for nested routines.
- Do not remove the $parentfp parameter as was done in the previous optimization approach. Instead when $parentfp is unused to the following:
- On the caller side: Omit passing the value for $parentfp for targets where tcgcallparanode.push_zero_sized_value_para=false (classic CPU targets).
Pass 0/nil as $parentfp for targets where tcgcallparanode.push_zero_sized_value_para=true;
- On the callee side: Prevent allocation of registers/resources for $parentfp.
- When possible keep $parentfp in a register.
- Set the pio_nested_access flag in tprocinfo.set_needs_parentfp() to properly handle deep nesting levels;
Commit consists out of
  • M compiler/dbgbase.pas
  • M compiler/defcmp.pas
  • M compiler/ncgcal.pas
  • M compiler/ncgmem.pas
  • M compiler/ncgnstmm.pas
  • M compiler/ncgutil.pas
  • M compiler/nld.pas
  • M compiler/nmem.pas
  • M compiler/pparautl.pas
  • M compiler/procinfo.pas
  • M compiler/psub.pas
  • M compiler/symdef.pas


* Fixed the jvm target after 0045436.
Commit consists out of
  • M compiler/ncgnstmm.pas


* It is needed to mark $parentfp as used for all targets.
Commit consists out of
  • M compiler/pparautl.pas


* Added the thlcgobj.a_load_undefined_cgpara() method to pass an undefined value as a parameter to a routine. The generic version passes the 0/nil value if the parameter's location is not a register.
* Use a_load_undefined_cgpara() to load values for unused parameters.
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/ncgcal.pas


* exceptions are side effects which must be considered in boolean expressions
Commit consists out of
  • M compiler/ncgutil.pas


* patch by Karl-Michael Schindler to update the German help files, resolves 0037122
Commit consists out of
  • M compiler/msg/errord.msg
  • M compiler/msg/errordu.msg


* Reg1ReadDependsOnReg2 moved to TAoptBaseCpu
* use Reg1ReadDependsOnReg2 in TAoptBaseCpu.RegModifiedByInstruction to handle properly Z80 subregisters
Commit consists out of
  • M compiler/z80/aoptcpu.pas
  • M compiler/z80/aoptcpub.pas


+ Z80: handle all instructions that modify registers, that are not an operand in TAoptBaseCpu.RegModifiedByInstruction
Commit consists out of
  • M compiler/z80/aoptcpub.pas


* compilation fixed after 0045450
Commit consists out of
  • M compiler/z80/aoptcpub.pas


+ Z80: handle the flags register in TAoptBaseCpu.RegModifiedByInstruction
Commit consists out of
  • M compiler/z80/aoptcpub.pas


* Do not use the LOC_VOID location to indicate unused parameters.
* Added the tprocdef.parentfpsym property. Set parentfpsym.varstate to vs_read instead of using the pio_needs_parentfp flag.
* Replaced tcgcallparanode.push_zero_sized_value_para by tparamanager.has_strict_proc_signature.
Commit consists out of
  • M compiler/jvm/cpupara.pas
  • M compiler/jvm/njvmcal.pas
  • M compiler/llvm/llvmpara.pas
  • M compiler/llvm/nllvmcal.pas
  • M compiler/ncal.pas
  • M compiler/ncgcal.pas
  • M compiler/ncgmem.pas
  • M compiler/ncgnstmm.pas
  • M compiler/ncgutil.pas
  • M compiler/nmem.pas
  • M compiler/paramgr.pas
  • M compiler/pparautl.pas
  • M compiler/procinfo.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/utils/ppuutils/ppudump.pp


* implemented a_load_undefined_cgpara for LLVM, fixes LLVM code generator
after the changes to optimize unused parentfp parameters
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* replaced custom packed record with tmethod
Commit consists out of
  • M compiler/ncnv.pas


* patch by Christo Crause: fix register search on xtensa, resolves 0037121
Commit consists out of
  • M compiler/xtensa/cpubase.pas
  • M compiler/xtensa/itcpugas.pas


m68k: atari syscalls might also destroy D2 and A2
Commit consists out of
  • M compiler/m68k/cpupara.pas


m68k: avoid more vlink warnings regarding changed section attributes, when the target system has no write-protected sections
Commit consists out of
  • M compiler/aggas.pas


* x86-64: adjust stack by push/pop if possible
Commit consists out of
  • M compiler/x86/cgx86.pas
  • M compiler/x86_64/cgcpu.pas


* adapt optimizer to handle push/pop for stack alignment
* adapt test
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas
  • M tests/test/tasm23b.pp


* do not load unused parameters, as their localloc has not been set (and
there is no point in doing so if it were)
o fixes compilation of RTL with LLVM/AArch64
Commit consists out of
  • M compiler/hlcgobj.pas


* compilation on i386 fixed
Commit consists out of
  • M compiler/x86/aoptx86.pas


* re-activate copy_mm: using it instead of movs might reduce register pressure
Commit consists out of
  • M compiler/x86/cgx86.pas


* x86 has to use newalignment as well
Commit consists out of
  • M compiler/x86/nx86mem.pas


+ x86: track use of full ymm registers and generate vzeroupper if needed
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/i386/cgcpu.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/x86_64/cgcpu.pas


* create vpxor instead of pxor in avx mode
Commit consists out of
  • M compiler/x86/cgx86.pas


* factored out OptPass1VPXor
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* improve copy_avx gencopy mode
Commit consists out of
  • M compiler/x86/cgx86.pas


* fix several double ;
Commit consists out of
  • M compiler/aarch64/racpugas.pas
  • M compiler/aasmtai.pas
  • M compiler/cgexcept.pas
  • M compiler/fmodule.pas
  • M compiler/jvm/cpupara.pas
  • M compiler/nbas.pas
  • M compiler/nset.pas
  • M compiler/objcgutl.pas
  • M compiler/paramgr.pas
  • M compiler/pkgutil.pas
  • M compiler/powerpc64/nppcadd.pas
  • M compiler/rautils.pas
  • M compiler/symtable.pas
  • M compiler/utils/ppuutils/ppuout.pp
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/cgcpu.pas


* always use 1-byte section alignment for the rel internal obj writer
Commit consists out of
  • M compiler/ogrel.pas


* the len parameter of TObjData.alloc changed to TObjSectionOfs
Commit consists out of
  • M compiler/ogbase.pas


+ also write sections with no data in the .rel internal obj writer
Commit consists out of
  • M compiler/ogrel.pas


+ enable the Z80 internal assembler
Commit consists out of
  • M compiler/systems/i_embed.pas
  • M compiler/systems/i_zxspectrum.pas


+ Z80: added the JRJP pseudo instruction
Commit consists out of
  • M compiler/z80/z80ins.dat
  • M compiler/z80/z80nop.inc
  • M compiler/z80/z80op.inc
  • M compiler/z80/z80stdopnames.inc
  • M compiler/z80/z80tab.inc


+ added JRJP to various instruction lists
Commit consists out of
  • M compiler/z80/aasmcpu.pas
  • M compiler/z80/aoptcpu.pas
  • M compiler/z80/aoptcpub.pas
  • M compiler/z80/cpubase.pas
  • M compiler/z80/raz80asm.pas


* translate jrjp to jp in the sdcc-sdasz80 asm writer
Commit consists out of
  • M compiler/z80/agsdasz80.pas


* insert fwait after fcompp, resolves 0037136
Commit consists out of
  • M .gitattributes
  • M compiler/x86/nx86add.pas
  • A tests/webtbs/tw37136.pp


Reorder and complete list of supported CPUs
Commit consists out of
  • M compiler/pp.pas


+ Z80: implemented the JRJP pseudo instruction in the Z80 internal asm writer
Commit consists out of
  • M compiler/z80/aasmcpu.pas


* z80: use the JRJP pseudo instruction to generate shorter code (it is
translated to JR wherever possible, otherwise to JP)
Commit consists out of
  • M compiler/z80/cgcpu.pas


* use const_align(sizeof(pint)) alignment instead of sizeof(pint) for various
compiler-generated structures, so they don't waste any extra alignment space
on 8-bit CPUs like the Z80 and the AVR
Commit consists out of
  • M compiler/ngenutil.pas


* ARM: (V)LDM do not load from the registers in the reg. set
Commit consists out of
  • M compiler/arm/aoptcpu.pas


+ started work on the Z80 internal linker
Commit consists out of
  • M compiler/ogrel.pas
  • M compiler/systems.inc
  • M compiler/systems/t_zxspectrum.pas


* ARM: get rid of more unneeded sxtb/h uxtb/h instructions
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* ARM: factor out TARMAsmOptimizer.OptPass1And
Commit consists out of
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


+ implemented TRelObjInput.CanReadObjData
Commit consists out of
  • M compiler/ogrel.pas


- removed the z80_internal_asm build mode, since it's now a feature enabled by default, not hidden behind an ifdef
Commit consists out of
  • M compiler/ppcz80.lpi


* enable the Z80 internal linker (not working yet) if the compiler is compiled with the Z80_INTERNAL_LINKER define
Commit consists out of
  • M compiler/systems/i_zxspectrum.pas


+ added 'z80_internal_linker' build mode to the z80 lazarus project
Commit consists out of
  • M compiler/ppcz80.lpi


* AArch64: enable TARMAsmOptimizer.OptPass1And
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ override TInternalLinkerZXSpectrum.InitSysInitUnitName
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


+ set cobjdata in TRelObjInput.create
Commit consists out of
  • M compiler/ogrel.pas


+ set cobjdata in TIntelHexExeOutput.create;
Commit consists out of
  • M compiler/ogrel.pas


+ create a linker script for the ZX Spectrum internal linker
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


+ override TInternalLinkerZXSpectrum.GetCode/Data/BssSize to avoid access violation error
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


* buffered text reading functions moved from being local to TRelObjInput.CanReadObjData
to being class members, so they can be used by ReadObjData as well
Commit consists out of
  • M compiler/ogrel.pas


+ partial implementation of TRelObjInput.ReadObjData
Commit consists out of
  • M compiler/ogrel.pas


+ parse the REL header
Commit consists out of
  • M compiler/ogrel.pas


+ parse the area records of REL files
Commit consists out of
  • M compiler/ogrel.pas


* a nil node is also a constant pointer node
+ convert (v1=const1) and (v2=const2) into ((v1 xor const1) or (v2 xor const2))=0 if the expressions have no side effects
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/node.pas


+ parse the REL symbol records
Commit consists out of
  • M compiler/ogrel.pas


* TRelObjInput.ReadObjData: return success, if file was read correctly
Commit consists out of
  • M compiler/ogrel.pas


* return the correct size for files in ar archive. This is required by the REL
reader, which reads files until the end of file
Commit consists out of
  • M compiler/owar.pas
  • M compiler/owbase.pas


* set MaxMemPos to $FFFF in the Z80 internal linker
Commit consists out of
  • M compiler/ogrel.pas


+ add .text, .data and .bss exe sections and define the entry point in the ZX Spectrum internal linker script
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


* group T and R records together and call a function (not implemented yet) to handle them in pairs
Commit consists out of
  • M compiler/ogrel.pas


+ implemented reading of T and R records
Commit consists out of
  • M compiler/ogrel.pas


* extended 0045555 to take care of chars as well
Commit consists out of
  • M compiler/nadd.pas


* renamed some REL sections to follow a similar naming convention
Commit consists out of
  • M compiler/ogrel.pas
  • M compiler/systems/t_zxspectrum.pas
  • M compiler/z80/agsdasz80.pas


* avoid setting the oso_Data flag on bss sections
Commit consists out of
  • M compiler/ogrel.pas


+ set IMAGEBASE in the Z80 internal linker script
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


* ImageBase changed to qword (same type as CurrMemPos) to avoid truncating to 8-bit on Z80
Commit consists out of
  • M compiler/ogbase.pas


* ImageBase changed to qword to avoid 8-bit truncation in the internal linker map file
Commit consists out of
  • M compiler/ogmap.pas


* avoid 8-bit truncation of the sizes in the internal linker map
Commit consists out of
  • M compiler/ogmap.pas


+ implemented IHX writing in the Z80 internal linker
Commit consists out of
  • M compiler/ogrel.pas


- removed the GetCode/Data/BssSize overrides in the ZX Spectrum internal linker,
since the default implementation, inherited from parent now works
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


+ implemented TIntelHexExeOutput.DoRelocationFixup
Commit consists out of
  • M compiler/ogrel.pas


+ ZX Spectrum internal linker: invoke the ihx2tzx to postprocess the ihx file,
produced by the internal linker (in the future, the code of this utility may
be integrated into the compiler)
* changed the exe extension of ZX Spectrum to '.tzx'
Commit consists out of
  • M compiler/systems/i_zxspectrum.pas
  • M compiler/systems/t_zxspectrum.pas


+ enabled the ZX Spectrum internal linker
Commit consists out of
  • M compiler/systems/i_zxspectrum.pas


- removed the z80_internal_linker build mode from the lazarus project
Commit consists out of
  • M compiler/ppcz80.lpi


+ allow specifying the program load address for the ZX Spectrum target via the -WB option
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems/t_zxspectrum.pas


+ x86: optimziation MovMov2MovMov 2
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ add support for DEFB and DEFW directives to the internal assembler reader
Commit consists out of
  • M compiler/z80/raz80asm.pas


* also handle single character register names (needed on Z80 for example)
Commit consists out of
  • M compiler/pstatmnt.pas


* with ihx2tzx now also supporting binary output it makes sense to rename it to something more generic
Commit consists out of
  • M .gitattributes
  • M compiler/systems/t_zxspectrum.pas
  • M utils/fpmake_add.inc
  • M utils/fpmake_proc.inc
  • R100 utils/ihx2tzx/Makefile utils/ihxutil/Makefile
  • R100 utils/ihx2tzx/Makefile.fpc utils/ihxutil/Makefile.fpc
  • R076 utils/ihx2tzx/fpmake.pp utils/ihxutil/fpmake.pp
  • R100 utils/ihx2tzx/ihxreader.pas utils/ihxutil/ihxreader.pas
  • R094 utils/ihx2tzx/ihx2tzx.lpi utils/ihxutil/ihxutil.lpi
  • R092 utils/ihx2tzx/ihx2tzx.lpr utils/ihxutil/ihxutil.lpr
  • R100 utils/ihx2tzx/tzxwriter.pas utils/ihxutil/tzxwriter.pas
  • R100 utils/ihx2tzx/zxbasic.pas utils/ihxutil/zxbasic.pas


+ add compiler support for the Z80 MSX-DOS target
Commit consists out of
  • M .gitattributes
  • M compiler/ngenutil.pas
  • M compiler/ogrel.pas
  • M compiler/options.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • A compiler/systems/i_msxdos.pas
  • A compiler/systems/t_msxdos.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/z80/agsdasz80.pas
  • M compiler/z80/agz80vasm.pas
  • M compiler/z80/cputarg.pas


* allow executable/library name to be changed for an intermediate file
Commit consists out of
  • M compiler/link.pas


* regenerate Makefiles
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile


* change exe extension for MSX-DOS from exe to com
Commit consists out of
  • M compiler/systems/i_msxdos.pas


+ add MSX-DOS to help text for -T
Commit consists out of
  • M compiler/msg/errore.msg


* regenerate msg{txt,idx}.inc after adding MSX-DOS to help text
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* better rules if a 3 op mul operation is tried
Commit consists out of
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86add.pas


+ add intrinsics for Z80 port IN/OUT
Commit consists out of
  • M .gitattributes
  • A compiler/z80/ccpuinnr.inc
  • M compiler/z80/cpunode.pas
  • A compiler/z80/nz80inl.pas
  • M rtl/z80/cpuh.inc
  • A rtl/z80/cpuinnr.inc


* include the Z80 specific intrinsic values
Commit consists out of
  • M compiler/compinnr.pas


+ some basic stuff for mips64el
Commit consists out of
  • M .gitattributes
  • M compiler/fpcdefs.inc
  • M compiler/mips/cgcpu.pas
  • A compiler/ppcmips64el.lpi
  • M utils/fpcm/fpcmmain.pp


+ added the 'AREA' directive support to the Z80 inline assembler, that allows
you to define custom sections
Commit consists out of
  • M compiler/ogrel.pas
  • M compiler/z80/agsdasz80.pas
  • M compiler/z80/agz80vasm.pas
  • M compiler/z80/raz80asm.pas


+ support the OFFSET directive in the Z80 inline assembler reader
Commit consists out of
  • M compiler/z80/raz80asm.pas


+ add the _BSSEND section after the _BSS section
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


* the len parameter of TObjData.writebytes changed to TObjSectionOfs to avoid 8-bit truncation on Z80
Commit consists out of
  • M compiler/ogbase.pas


* use qword instead of aword for bsssize to avoid 8-bit truncation on Z80
Commit consists out of
  • M compiler/link.pas


* fixed a bug in the Z80 internal linker when reading symbol offsets from .rel files
Commit consists out of
  • M compiler/ogrel.pas


+ optimize real operations with 0 and 1 if fast math is turned on
Commit consists out of
  • M compiler/nadd.pas
  • M tests/webtbs/tw3160a.pp


* optimize a/a and a-a if fast math is on
Commit consists out of
  • M compiler/nadd.pas


* swap fpu stack correctly when moving data into xmm registers
Commit consists out of
  • M compiler/x86/nx86add.pas


* ensure that the BSS section for MSX-DOS is correctly initialized to 0
Commit consists out of
  • M compiler/systems/t_msxdos.pas
  • M rtl/msxdos/si_prc.pp


* fix typo (no code changes)
Commit consists out of
  • M compiler/psub.pas


* for adding procdefs to forwarddefs check for the specialization flag instead of whether it's a full specialization; fixes implicit finalization handlers on x86_64-win64 not being found
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/pparautl.pas
  • A tests/tbs/tb0673.pp
  • A tests/tbs/tb0674.pp
  • A tests/tbs/ub0674.pp


* Aarch: handle 0 in AndAnd2And and check if the resulting constant
is really a shifter constant, resolves 0037203
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* slash and divn might have an exception as side effect
Commit consists out of
  • M compiler/nutils.pas


* write length/code page when writing the string type
Commit consists out of
  • M compiler/symdef.pas


* temporarily fix 0037034 by disabling the problematic optimization until the real cause is fixed
Commit consists out of
  • M .gitattributes
  • M compiler/nbas.pas
  • A tests/webtbs/tw37034.pp


+ might_have_sideeffects checks also if the tempinitcode of a tempref node might have side effects
Commit consists out of
  • M compiler/nutils.pas


* better check for short boolean evaluation in firstcomplex
Commit consists out of
  • M compiler/ncgutil.pas


* fixed copy&paste error of 0045658
Commit consists out of
  • M compiler/ncgutil.pas


* Optimize parentfp when optimization level 1 and higher to be debugger friendly.
Commit consists out of
  • M compiler/ncgcal.pas


z80: vasm doesn't support the JRJP pseudo instruction, so change it to JP during write
Commit consists out of
  • M compiler/z80/agz80vasm.pas


* Fixed the parentfp optimization for some cases when nested procvars are used.
Commit consists out of
  • M .gitattributes
  • M compiler/nld.pas
  • A tests/test/tnest3.pp


* Improved the parentfp optimization to properly handle cases when a nested routine calls other nested routines.
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/ncgcal.pas
  • M compiler/nld.pas
  • M compiler/nmem.pas
  • M compiler/paramgr.pas
  • M compiler/procinfo.pas


* Added optimization option cs_opt_unused_para. It is enabled for -O2 and higher. The parentfp optimization is tied to cs_opt_unused_para.
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/paramgr.pas


* compilation fixed
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


+ support z80 in the fpc launcher utility
Commit consists out of
  • M compiler/utils/fpc.pp


* fix -Agas-darwin to say Aas-darwin for x86-64, and also add it for i386
(mantis 0037230)
Commit consists out of
  • M compiler/msg/errore.msg


* regenerated message files
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


o patch for Xtensa by Christo Crause, resolves 0037099
+ Added postfix parsing in tattreader.GetToken
- Removed all postfixed versions of OpCodes from the instruction list
+ Added all missing OpCodes from Xtensa ISA
* Changed branch OpCode to A_B, similar to ARM
+ Added missing branch condition flags BCI and BSI
* Updated existing compiler code that referred to the old postfixed instructions
+ Added prefix and postfix handling in TxtensaInstrWriter.WriteInstruction
* Updated TCPUAddNode.second_addfloat to specify .S postfix
* Updated tcpuunaryminusnode.second_float to specify .S postfix
+ Implemented prefix and postfix identification in txtensaattreader.is_asmopcode
* Adapted branch condition extraction to respect postfixes
* Changed itcpugas to call findreg_by_name_table from raatt.pas (same as issue 000037121, difficult to test these changes without including a fix for the register name search problem)
Commit consists out of
  • M .gitattributes
  • M compiler/raatt.pas
  • M compiler/xtensa/aasmcpu.pas
  • M compiler/xtensa/agcpugas.pas
  • M compiler/xtensa/aoptcpub.pas
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/cpubase.pas
  • M compiler/xtensa/ncpuadd.pas
  • M compiler/xtensa/ncpumat.pas
  • M compiler/xtensa/racpugas.pas
  • M compiler/xtensa/raxtensa.pas
  • M compiler/xtensa/xtensaatt.inc
  • M compiler/xtensa/xtensaop.inc
  • A tests/webtbs/tw37099.pp


* Xtensa: MatchInstruction requires a postfix parameter
Commit consists out of
  • M compiler/xtensa/aoptcpu.pas


* Reworked tprocdef.is_implemented to fix a bug with the parentfp optimization. The bug was detected when using the llvm backend.
+ Added a test.
Commit consists out of
  • M .gitattributes
  • M compiler/ncal.pas
  • M compiler/psub.pas
  • M compiler/symdef.pas
  • A tests/test/tnest4.pp


* limit the ZX Spectrum programs address space up to $FDFC, because the RTL now
installs an interrupt handler at $FDFD
Commit consists out of
  • M compiler/ogrel.pas
  • M compiler/systems/t_zxspectrum.pas


+ Xtensa: patch by Christo Crause to add optional MAC16 registers, resolves 0037130
Commit consists out of
  • M .gitattributes
  • M compiler/cgbase.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/xtensa/rxtensacon.inc
  • M compiler/xtensa/rxtensadwa.inc
  • M compiler/xtensa/rxtensanor.inc
  • M compiler/xtensa/rxtensanum.inc
  • M compiler/xtensa/rxtensarni.inc
  • M compiler/xtensa/rxtensasri.inc
  • M compiler/xtensa/rxtensasta.inc
  • M compiler/xtensa/rxtensastd.inc
  • M compiler/xtensa/rxtensasup.inc
  • M compiler/xtensa/xtensareg.dat
  • A tests/webtbs/tw37130.pp


* fix typo (no code changes)
Commit consists out of
  • M compiler/symdef.pas


+ Xtensa: patch by Christo Crause: support call0 abi in init final code part of 0037242
Commit consists out of
  • M compiler/xtensa/ncpuutil.pas


* patch by Christo Crause: support call0 abi in entry/exit code, part of 0037242
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* fix for Mantis 0037251: apply patches by Bi0T1N to implement the IsConstValue() intrinsic
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/compinnr.pas
  • M compiler/ninl.pas
  • M compiler/pexpr.pas
  • M compiler/psystem.pas
  • A tests/test/tisconstvalue1.pp
  • A tests/test/tisconstvalue2.pp
  • A tests/test/tisconstvalue3.pp
  • A tests/test/tisconstvalue4.pp


* Xtensa: patch by Christo Crause: fix controller date for esp8266, part of 0037242
Commit consists out of
  • M compiler/xtensa/cpuinfo.pas


* Xtensa: patch by Christo Crause: add IDF_PATH variable, read from the appropriate environment variable, part of 0037242
Commit consists out of
  • M compiler/systems/t_freertos.pas


* building for arm fixed
Commit consists out of
  • M compiler/systems/t_freertos.pas


* fix for Mantis 0037272: also allow the empty set for dynamic array parameters; Delphi probably started to allow that together with array constructors.
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/defcmp.pas
  • M compiler/ncnv.pas
  • A tests/webtbf/tw37272b.pp
  • A tests/webtbs/tw37272a.pp


* reverted some stuff accidently committed in 0045704
Commit consists out of
  • M compiler/systems/t_freertos.pas


* correctly handle sign/zero extensions for optimization "var3", resolves 0037254
Commit consists out of
  • M .gitattributes
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw37254.pp


* delay setting of pd_body and pd_implement till the header of a generic
procedure is parsed, resolves 0037261
Commit consists out of
  • M .gitattributes
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw37261.pp


* use the fpu on suitable x86 targets to copy extended values
Commit consists out of
  • M compiler/ncgld.pas


* set mm register subreg properly when cleaning them with xor
Commit consists out of
  • M compiler/hlcgobj.pas


* fix compilation with newer FPC
Commit consists out of
  • M compiler/utils/mkx86inl.pp


+ add intrdat target
Commit consists out of
  • M compiler/Makefile.fpc


* regenerated
Commit consists out of
  • M compiler/Makefile


+ handle OS_128 in mm code
Commit consists out of
  • M compiler/x86/cgx86.pas


bump ppudump copyright year
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* (modified) patch by Michael Ring from the mailing list to fix linking for arm-freertos
Commit consists out of
  • M compiler/systems/t_freertos.pas


+ Xtensa: more cpu capabilites
+ Xtensa: set cpu for xtensa-linux as call window support is required
Commit consists out of
  • M compiler/options.pas
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/cpuinfo.pas
  • M compiler/xtensa/ncpuadd.pas


* fix abs() intrinsic optimisation, resolves 0037301
Commit consists out of
  • M .gitattributes
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw37301.pp


Fix overflow when value is high(int64) in OptPass1And method
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* clean up
Commit consists out of
  • M compiler/utils/mkarmins.pp


* AAarch64: handle initializations of vector registers with zero properly
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* properly calc new src register for OP_XOR
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* patch by Christo Crause: fix volatile registers for call0 abi, resolves 0037317
Commit consists out of
  • M compiler/xtensa/cpupara.pas


Try to fix tarmunaryminusnode.pass_1
Commit consists out of
  • M compiler/arm/narmmat.pas


Only try to use softfpu functions when fputype is fpu_soft
Commit consists out of
  • M compiler/arm/narmcnv.pas


Add z80 to PPC_TARGETS to reove ppcz80 on clean
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


tarmunaryminusnode.pass_1 must call inherited method for system_arm_wince
Commit consists out of
  • M compiler/arm/narmmat.pas


Do not use .hidden for systems_wince, as is done for systems_windows
Commit consists out of
  • M compiler/aggas.pas


* regenerated Makesfiles
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile


* regenerated Makefiles again
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile


* scalar operations should take single/double values and not full registers
Commit consists out of
  • M compiler/x86/x86intr.dat


* regenerated
Commit consists out of
  • M compiler/x86/x86mmfirst.inc
  • M compiler/x86/x86mmsecond.inc
  • M compiler/x86/x86mmtype.inc
  • M rtl/i386/cpummprocs.inc
  • M rtl/x86_64/cpumminnr.inc
  • M rtl/x86_64/cpummprocs.inc


* TAOptObj.MakeUnconditional: Set as internal error for MIPS cpu:
MIPS conditional instructions conntain the
computation of the condition itself, so
changing the instruction to unconditional
should never be done.
* TAOptObj.OptimizeConditionalJump: Return false early if
the conditional instruction has more than one operand.
Commit consists out of
  • M compiler/aoptobj.pas


* tcg.a_load_cgparaloc_ref: Always enable SHR instruction for mips/mipsel CPUs
This is normally only used on big-endian targets, to re-convert records
of size < OS_INT into values fitting inside the byte size of the record,
after it was left-shifted to comply with ABI stipulating it but be
writable as a full-size register into a OS_INT size memory.
Commit consists out of
  • M compiler/cgobj.pas


Do not set value of stoploop to avoid infinite loop
Commit consists out of
  • M compiler/aoptobj.pas


Also check that HP1 is a jump instruction with more than one operand to exit early
Commit consists out of
  • M compiler/aoptobj.pas


Fix several warnings about uninitialized local variables
Commit consists out of
  • M compiler/ogrel.pas
  • M compiler/z80/aasmcpu.pas
  • M compiler/z80/cgcpu.pas


* Handle R_SUBMMWHOLE in reg_cgsize for R_MMREGISTER type
* Disable range and overflow checking inside is_continuous_mask function.
Commit consists out of
  • M compiler/arm/cpubase.pas


* generate soft float code for arm vfp units which have no double operation support
Commit consists out of
  • M compiler/arm/narmmat.pas


* completely disable records containing float fields in registers again, as
the code generator does not support subsetreg loads of floats
Commit consists out of
  • M compiler/symdef.pas


* enable putting records that contain a single field into records on all
targets (patch by J. Gareth Moreton, mantis 0037343)
Commit consists out of
  • M compiler/optcse.pas
  • M compiler/symsym.pas


* properly handle boolean64 xor boolean64 on i386
Commit consists out of
  • M compiler/x86/nx86add.pas


* revert part of 0044879: flock must use kernel_off_t: off_t breaks e.g. i386
Commit consists out of
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M rtl/linux/ostypes.inc


+ patch by J. Gareth Moreton: SHL-centric peephole optimisations, resolves 0037389
Commit consists out of
  • M compiler/x86/aoptx86.pas


Try to fix mipsel-android by making sure P does not point to a freed instruction
Commit consists out of
  • M compiler/mips/aoptcpu.pas


* revert part of 0045810 which was accidently committed
Commit consists out of
  • M compiler/symdef.pas
  • M compiler/symsym.pas


Avoid wrong overflow error when using -Criot options
Commit consists out of
  • M compiler/ogrel.pas


Avoid overflow errors on z80 CPU by changing local variable type from aint to tcgint
Commit consists out of
  • M compiler/ncgld.pas
  • M compiler/ncnv.pas


Add list of generated executable to svn:ignore
Commit consists out of
  • M .gitignore


* float operations can have an exception as a side effect, resolves 0037398
Commit consists out of
  • M .gitattributes
  • M compiler/nutils.pas
  • A tests/webtbs/tw37398.pp


* Fixed the peephole optimization of conditional movs for mips.
Commit consists out of
  • M compiler/mips/aoptcpu.pas


z80: preserve system ID and linker ID for the Amstrad CPC
Commit consists out of
  • M compiler/systems.inc
  • M compiler/utils/ppuutils/ppudump.pp


* Fixed indentations of the interference graph.
* Added register names to the interference graph.
Commit consists out of
  • M compiler/rgobj.pas


* Improved 0045832.
Commit consists out of
  • M compiler/rgobj.pas


* To check the size of a register(s) corresponding to a variable it is needed to use localloc.size instead of def_cgsize(vardef).
Commit consists out of
  • M compiler/ncgutil.pas


* Try to avoid spilling of an imm register if it contains a value loaded from an already spilled imm register. It likely leads to an endless loop and the register allocation fails.
This fixes the register allocation for i8086 when handling registers for very constrained instructions such as "mov ireg1,[ireg2+ireg3]".
Here ireg2 can be only BX or BP. So in most cases only BX is available. When ireg2 is spilled, its value must be loaded to BX only.
Coloring of the ireg which holds the spilled value must be as early as possible to be able to assign BX to this ireg.
This fix should also help register allocation for other constrained/old CPUs.
Commit consists out of
  • M compiler/rgobj.pas


* i8086: Removed internal error, since global vars can be in registers if used only in pascalmain.
Commit consists out of
  • M compiler/i8086/n8086ld.pas


* i8086: Fixed referencing using BP and SP as base when FAR or HUGE memory model is used.
Commit consists out of
  • M compiler/i8086/hlcgcpu.pas


* i8086: Enabled the cs_opt_regvar optimization. It works fine now.
Commit consists out of
  • M compiler/i8086/cpuinfo.pas


- removed no longer used -target $TARGET parameter (triplet is used instead)
Commit consists out of
  • M compiler/llvm/agllvm.pas


+ optimize mod for x86-64 as well
Commit consists out of
  • M compiler/x86/nx86mat.pas


* In Delphi mode throw a conversion error when trying to typecast a pointer to a procdef when they use different memory models.
Commit consists out of
  • M compiler/defcmp.pas


* Changed tsuperregisterworklist.get() to always return the last item from the list.
* Reversed sort order of simplifyworklist so nodes with most interferences will get their colors first.
Since degree of nodes in simplifyworklist before sorting is always
less than the number of usable registers this should not trigger spilling
and should lead to a better register allocation in some cases.

After these changes sysutils.o for i386-win32 is 80 bytes less. :)
Commit consists out of
  • M compiler/cgbase.pas
  • M compiler/rgobj.pas


* patch by J. Gareth Moreton: fix for incorrect alignment removal, resolves 0037420
Commit consists out of
  • M compiler/aoptobj.pas


* modified patch by J. Gareth Moreton: MovOpMov2Op/Lea2Add/Lea2Sub consolidation, resolves 0037422
Commit consists out of
  • M compiler/x86/aoptx86.pas


* mips: Added support for unaligned load/store. It greatly improves performance and prevents bus errors on systems which do not emulate unaligned memory access.
Commit consists out of
  • M compiler/mips/cgcpu.pas


* Aarch64: set register size correctly for AndStrb2Strb optimization, resolves 0037427
Commit consists out of
  • M .gitattributes
  • M compiler/armgen/aoptarm.pas
  • A tests/webtbs/tw37427.pp


* Re-enabled safe generic jump optimizations for mips.
Commit consists out of
  • M compiler/aoptobj.pas


* Fixed TAOptObj.CollapseZeroDistJump to properly handle delay slots.
Commit consists out of
  • M compiler/aoptobj.pas


* patch by J. Gareth Moreton: Minor oversight in MovAnd2Mov 3 optimisation, resolves 0037442
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ simplify "x mod -1", resolves 0037449
Commit consists out of
  • M .gitattributes
  • M compiler/nmat.pas
  • A tests/webtbs/tw37449.pp


* reject overloads if they only differ in the result types (as long as they aren't operator overloads)
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/pparautl.pas
  • A tests/test/tover5.pp
  • A tests/test/tover6.pp
  • A tests/test/tover7.pp
  • A tests/test/tover8.pp
  • A tests/test/tover9.pp


* do not throw an internal error later on in case of a recursive call, if the declaration of the function was faulty, resolves 0037460
Commit consists out of
  • M .gitattributes
  • M compiler/x86_64/cpupara.pas
  • A tests/webtbf/tw37460.pp


* do not throw an internal error if an errorneous type is passed to str, resolves 0037462
Commit consists out of
  • M .gitattributes
  • M compiler/ninl.pas
  • A tests/webtbf/tw37462.pp


* Count the number of interferences with real registers.
* Do not coalesce registers 'u' and 'v' if 'u' is the last usable real register available for imaginary register 'n' which also interferences with 'v'.
This prevents endless spilling in some cases for constrained CPUs such as AVR. Resolves issue 0037421.
Also this reduces the number of spilled registers in some cases and even eliminates spilling completely for some simple routines for i386 and AVR.
* Added a debug output of the number of spilled registers for each routine. This allows to easily compare results after changes in spilling algorithms.
Commit consists out of
  • M compiler/rgobj.pas


* allow overloads with same result type for external Java classes due to Java supporting covariant return types for interfaces
Commit consists out of
  • M compiler/pparautl.pas


* replace explicit (sometimes incomplete) tests with calls to doshortbooleval()
* the c-style boolean evaluation of "and" is independent of short-circuit evaluation
(you always have to consider the complete values in case the first one is <> 0)
Commit consists out of
  • M compiler/nadd.pas


* Enhanced the debug output of spilling statistics. Now it includes efficiency of the spilling which is based on
weight and usage count of registers. Range 0-100%. Such statistics are very handy when you modify the register allocator.

Commit consists out of
  • M compiler/rgobj.pas


* Count only usable real registers.
Commit consists out of
  • M compiler/rgobj.pas


* Early during register allocation, spill registers which interfere with all usable real registers.
It is pointless to keep them for further processing. Also it may
cause endless spilling.
This can happen when compiling for very constrained CPUs such as
i8086 where indexed memory access instructions allow only
few registers as arguments and additionally the calling convention
provides no general purpose volatile registers.
Commit consists out of
  • M compiler/rgobj.pas


* Removed the i8086 specific hack. Since 0046199 the register allocator is able to handle the problem code.
Commit consists out of
  • M compiler/i8086/cgcpu.pas


* For 8 and 16 bit CPUs preload the ref base and index to a separate temp register in the generic implementation of a_load64_reg_ref() and a_load64_ref_reg().
This reduces spilling and produces a better code.
Commit consists out of
  • M compiler/cg64f32.pas


* i8086: When a ref points to the 32-bit data, preload the ref base to a temp register to reduce spilling.
Commit consists out of
  • M compiler/i8086/cgcpu.pas


* fixed LLVM register allocator after 0046199
Commit consists out of
  • M compiler/llvm/rgllvm.pas
  • M compiler/rgobj.pas


* fixed peephole optimizer replace lea by add even if the flags were in use
(patch by J. Gareth Moreton)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix for Mantis 0036775: apply patch by J. Gareth Moreton
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw36775.pp
  • A tests/webtbs/tw36775a.pp
  • A tests/webtbs/tw36775b.pp
  • A tests/webtbs/tw36775c.pp


Disable limitation of handling of negative shift values, can be enalbed again by setting LIMIT_NEG_SHIFTVALUES macro
Commit consists out of
  • M compiler/cgobj.pas


* For 8/16 bit CPUs and TP mode, disable expansion to a larger integer type for subtract operations on unsigned integers. This is TP7 compatible.
Commit consists out of
  • M compiler/nadd.pas


* patch by J. Gareth Moreton: unifies internalerrors, resolves 0037471
Commit consists out of
  • M compiler/x86/rax86int.pas
  • M compiler/z80/raz80asm.pas


* made internalerror unique
Commit consists out of
  • M compiler/llvm/aasmllvm.pas


* reworked usage of tcgnotnode.handle_locjump
Commit consists out of
  • M compiler/aarch64/ncpumat.pas
  • M compiler/arm/narmmat.pas
  • M compiler/avr/navrmat.pas
  • M compiler/m68k/n68kmat.pas
  • M compiler/mips/ncpumat.pas
  • M compiler/ncgmat.pas
  • M compiler/powerpc/nppcmat.pas
  • M compiler/powerpc64/nppcmat.pas
  • M compiler/riscv32/nrv32mat.pas
  • M compiler/riscv64/nrv64mat.pas
  • M compiler/sparcgen/ncpumat.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/z80/nz80mat.pas


* reverted 0046220 as it is fixed now properly
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw37493.pp


- do not call firstpass in tinnode.pass_typecheck as it prevents further optimizations
Commit consists out of
  • M compiler/nset.pas


* In assembly comments include all used registers by a variable for 8/16 bit CPUs.
* Do not add comments about unused varlocs.
Commit consists out of
  • M compiler/rgobj.pas


* msdos: Include debug info only when it is enabled by options.
Commit consists out of
  • M compiler/systems/t_msdos.pas


* Added virtual function TObjSection.GetAltName to be able to specify additional section name by descendants.
* OMF: Use the name of the first global symbol as an addition section name. This name is visible in the linker map file and helps tracking of section references.
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogomf.pas


* setelementn cannot be the root node of a cse domain, resolves 0037477
Commit consists out of
  • M .gitattributes
  • M compiler/optcse.pas
  • A tests/webtbs/tw37477.pp


+ optimize a in [a]
Commit consists out of
  • M compiler/nset.pas


m68k: fixed a long standing issue, where FPU registers would be clamped to single precision during spilling
Commit consists out of
  • M compiler/m68k/aasmcpu.pas


* insert type casts when creating new unaryminus nodes during simplification, resolves 0037508
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw37508.pp


* do not spill_replace if the register is used another time in the instruction
Commit consists out of
  • M compiler/m68k/rgcpu.pas


- no need to call add_move_instruction if data is moved between different register classes
Commit consists out of
  • M compiler/m68k/cgcpu.pas


* simplified code
Commit consists out of
  • M compiler/m68k/rgcpu.pas


* update version
- -Oodfa removed
Commit consists out of
  • M compiler/pp.lpi


* patch by J. Gareth Moreton: Long-range MOV + MOVS/Z optimisation, resolves 0037390
Commit consists out of
  • M compiler/x86/aoptx86.pas


* attempt to correct bitpacked arrays on big-endian systems after 0043186. this fixed tparray13 test on m68k at least
Commit consists out of
  • M compiler/ngtcon.pas


* patch by Kai Burghardt to use https urls, resolves 0037522
Commit consists out of
  • M compiler/msg/errorct.msg
  • M compiler/msg/errord.msg
  • M compiler/msg/errorda.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg
  • M compiler/msg/errores.msg
  • M compiler/msg/errorf.msg
  • M compiler/msg/errorfi.msg
  • M compiler/msg/errorhe.msg
  • M compiler/msg/errorheu.msg
  • M compiler/msg/errorid.msg
  • M compiler/msg/erroriu.msg
  • M compiler/msg/errorn.msg
  • M compiler/msg/errorpl.msg
  • M compiler/msg/errorpli.msg
  • M compiler/msg/errorpt.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msg/errorr.msg
  • M compiler/msg/errorru.msg
  • M compiler/msg/errorues.msg


* regenerated
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* better complexity handling of mul, slash, div, mod
Commit consists out of
  • M compiler/nutils.pas


+ add option -FF to force the use of fpcres as RC compiler

Note: if we merge this to 3.2.x then we can switch to this by default once 3.2.2 is released
Commit consists out of
  • M compiler/comprsrc.pas
  • M compiler/options.pas
  • M compiler/rescmn.pas


* make sure that the resource compiler related globals are reset
Commit consists out of
  • M compiler/comprsrc.pas


* fix order of options
Commit consists out of
  • M compiler/msg/errore.msg


* document -FF option
Commit consists out of
  • M compiler/msg/errore.msg


* regenerate msg*.inc files
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


+ add a constant that describes all internal COFF writers (be it PE/COFF or not)
Commit consists out of
  • M compiler/systems.pas


* fix for Mantis 0037559: the adjustment of the section type should only be done for internal COFF writers
Commit consists out of
  • M compiler/ogbase.pas


* Accidental commit.
Commit consists out of
  • M compiler/aasmdata.pas
  • M compiler/ncal.pas
  • M compiler/ncgcal.pas
  • M compiler/psub.pas


* Reverted accidentally committed files.
Commit consists out of
  • M compiler/aasmdata.pas
  • M compiler/ncal.pas
  • M compiler/ncgcal.pas
  • M compiler/psub.pas


* patch by Christo Crause to make nostackframe with the windowed xtensa abi working, resolves 0037550
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* Fixed nasm writer by adding a new line after the GLOBAL directive.
Commit consists out of
  • M compiler/x86/agx86nsm.pas


* 8086: Fixed calling of local routines with the near attribute in the 'far code' memory models.
Commit consists out of
  • M compiler/i8086/hlcgcpu.pas


* msdos: By default external routine names with the pascal calling convention must be all upper case. This is TP and TASM compatible.
Commit consists out of
  • M compiler/pdecsub.pas


* 8086: Do not force far calls in the TP mode by default. This is TP compatible. Other modes need forced far calls by default in order to compile non-TP code.
Commit consists out of
  • M compiler/scanner.pas


* do not try to unroll a loop if previously an error was thrown, resolves 0037475
Commit consists out of
  • M .gitattributes
  • M compiler/optloop.pas
  • A tests/webtbf/tw37475.pp


* don't convert lea to add/inc/dec/sub if there's a symbol in the reference
o fixes make cycle on Darwin/i386
Commit consists out of
  • M compiler/x86/aoptx86.pas


* when a function returns a value in a register, but normally that type
would never be put in that kind of register by the compiler, store
it to memory to avoid issues down the line
o fixes tcalext6 on darwin/i386
Commit consists out of
  • M compiler/ncgcal.pas


* do not apply range test optimization if the variable is a string being compared against a char constants, resolves 0037476
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbf/tw37476.pp


* 8086: enable cs_force_far_calls when m_nested_procvars is enabled.
* 8086: when the compiler mode switches to a non-TP mode, enable cs_force_far_calls.
Commit consists out of
  • M compiler/scanner.pas


* msdos: Force names of external routines to be all uppercase only in TP mode.
Commit consists out of
  • M compiler/pdecsub.pas


* execute the tempinitcode whent the tempcreate node gets processed rather
than when the first temprefnode to it gets processed. Solves the issue
the foreachnodestatic processes the tempinitcode when seeing the
tempcreatenode and ignores it when seeing temprefnodes, even though
it may actually be executed/generated for the temprefnode. It's
impossible to easily process it for the "correct" temprefnode
(since there may be multiple temprefnodes for the same tempcreatenode)
o fixes tarray12 for Darwin/i386 and Linux/i386
Commit consists out of
  • M compiler/nbas.pas
  • M compiler/ncgbas.pas
  • M compiler/nutils.pas


- reverted 0046457, accidentally committed (breaks -Oooptcse)
Commit consists out of
  • M compiler/nbas.pas
  • M compiler/ncgbas.pas
  • M compiler/nutils.pas


* RTTI: Offset of record fields is defined as SizeInt not ptruint.
Commit consists out of
  • M compiler/ncgrtti.pas


+ AAarch64: FMovFMov2FMov optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* wlib: Explicitly specify the smallest possible record align to reduce the size of .a files.
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems.pas


+ Xtensa: L32IMov2L32I optimization
Commit consists out of
  • M compiler/xtensa/aoptcpu.pas


+ Xtensa: consider also floating point stores in TCpuAsmOptimizer.RegLoadedWithNewValue
Commit consists out of
  • M compiler/xtensa/aoptcpu.pas


* In the TP mode for 16-bit CPUs uint8+uint8 is extended to sint16+sint16. This is TP compatible.
Commit consists out of
  • M compiler/nadd.pas
  • M tests/test/cpu16/taddint1.pp


* 8086: Fixed Ofs() for far routines.
resultdef of typeconvnode.typecheck_proc_to_procvar() is reused every time you get an address of a proc. So it is forbidden to change the far/near attribute of resultdef - it leads to mess during code generation.
Instead it is needed to use separate reusable resultdefs with new flags pc_far_address and pc_offset.
Commit consists out of
  • M compiler/i8086/n8086cnv.pas
  • M compiler/symdef.pas


* fixed a typo.
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* fix for Mantis 0037579: mark the 'German' tokens with the characters they represent
Commit consists out of
  • M compiler/tokens.pas


* 8086: Fixed an internal error for cases like FarPtr2 := FarPointer($12345678) + int16;
Commit consists out of
  • M compiler/i8086/n8086add.pas


* 8086: More fixes for Ofs() handling.
Commit consists out of
  • M compiler/i8086/n8086cnv.pas
  • M compiler/i8086/symcpu.pas


* Added on option to implement library based smartlinking of the dead stripable vectorized lists (e.g. resource strings index). By default smartlinking of such lists only supported when the section based smartlinking (tf_smartlink_sections) is enabled for a target.
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/cresstr.pas
  • M compiler/llvm/nllvmtcon.pas


* msdos: Implemented library based smartlinking of the dead stripable vectorized lists. It is enabled for the internal linker and wlink. These linkers sort sections by name by default.
Commit consists out of
  • M compiler/systems/t_msdos.pas
  • M compiler/x86/agx86nsm.pas


* Allow library based smartlinking of indirect symbol entries.
Commit consists out of
  • M compiler/aasmcnst.pas


* Corrected 0046481. Use both tcalo_new_section and tcalo_make_dead_strippable flags since only the default implementation implies a new section creation when tcalo_make_dead_strippable is specified.
Commit consists out of
  • M compiler/aasmcnst.pas


* wlib: calculate the record size according to the number of files in the library.
Commit consists out of
  • M compiler/link.pas


* Xtensa: set abi correctly
Commit consists out of
  • M compiler/options.pas


* internal error unified
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* 8086: Fixed loading a 32-bit ref to a register in case the target register is used as the ref base or index.
Commit consists out of
  • M compiler/i8086/cgcpu.pas


* 8086: Also fixed loading a register to a 32-bit ref in case the source register is used as the ref base or index.
Commit consists out of
  • M compiler/i8086/cgcpu.pas


* do not throw an internal error on illegal assembler expressions, resolves 0037439
Commit consists out of
  • M .gitattributes
  • M compiler/x86/rax86att.pas
  • A tests/webtbf/tw37459.pp


* msdos: Fixed section based smartlinking after my recent changes.
Commit consists out of
  • M compiler/systems/t_msdos.pas


Do not set EXCLUDE_80BIT_TARGETS to 1 if OPT variable contains -dFPC_SOFT_FPUX80
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


Fix error in previous commit
Try to avoid unneeded steps for fullinstallsymlink
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* 8086: Fixed very long section names when $HUGECODE is ON and section based smartlinking is used.
* Added a utility function TrimStrCRC32().
Commit consists out of
  • M compiler/fpccrc.pas
  • M compiler/ogomf.pas
  • M compiler/x86/agx86nsm.pas


* When optimization is off always load unused parentfp to a local location to be debugger friendly.
Commit consists out of
  • M compiler/ncgutil.pas


* msdos: Fixed AV in the internal linker in some cases when code or data exceeds 64k.
Commit consists out of
  • M compiler/ogomf.pas


* If parentfp is passed in the stack it can be skipped only if po_delphi_nested_cc is set for the routine.
Commit consists out of
  • M compiler/ncgcal.pas


x86: It is more optimal to push some register (NR_FRAME_POINTER_REG) instead of a constant value in a_load_undefined_cgpara().
Commit consists out of
  • M compiler/x86/hlcgx86.pas


* Added assembler comments about unused parameters.
Commit consists out of
  • M compiler/ncgcal.pas


* patch by Christo Crause, resolves 0037335
* ESP8266 support for t_freertos.pas
+ -Ff switch to be able to pass the IDF_PATH without using an evironment variable
Commit consists out of
  • M compiler/globals.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems/t_freertos.pas


* insert literals after the section start which belongs to the current procedure
Commit consists out of
  • M compiler/xtensa/hlcgcpu.pas


* Remove debug ECHO lines
* Fix detection of -dFPC_SOFT_FPUX80, as OPT is reset after
being copied over to LOCALOPT.
+ Add FULL_TARGETS that list all targets concerned by fullcyle and associated targets.
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* reset idfpath when globals are initialized (needed for the textmode IDE)
Commit consists out of
  • M compiler/globals.pas


* cleanup ARM remainders
* locals can have 0 as offset, force a reference in this case
Commit consists out of
  • M compiler/xtensa/racpugas.pas


* Xtensa: needs no mul helper, all variants have the MULL instruction
Commit consists out of
  • M compiler/fpcdefs.inc


* ait_varloc instructions are handled and removed by Trgobj.translate_registers() and never left for an assembler.
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/x86/agx86nsm.pas


* fix for Mantis 0037616: apply patch by Kai Burghardt to complain about the correct type used by setjmp/longjmp
Commit consists out of
  • M compiler/psub.pas


+ Xtensa: make use of muluh/mulsh instructions
Commit consists out of
  • M compiler/xtensa/cpuinfo.pas
  • M compiler/xtensa/ncpuadd.pas


* Xtensa: make use of divide extension if available
Commit consists out of
  • M compiler/xtensa/cpuinfo.pas
  • M compiler/xtensa/ncpumat.pas


* cosmetics
Commit consists out of
  • M compiler/xtensa/cpupara.pas


+ Xtensa: implemented TCPUAddNode.second_cmp64bit properly
Commit consists out of
  • M compiler/xtensa/ncpuadd.pas


* Xtensa: fixed tcg64fxtensa.a_op64_reg_reg_reg for unsigned operations
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* ait_comment,ait_regalloc,ait_tempalloc,ait_varloc instructions produce only comments in the external assembler output. Moved handling of these instructions to TExternalAssembler.WriteComments().
This eliminates code duplication and improves maintainability.
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/assemble.pas
  • M compiler/jvm/agjasmin.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/z80/agsdasz80.pas
  • M compiler/z80/agz80vasm.pas


* Xtensa: more fixes to tcg64fxtensa.a_op64_const_reg_reg and tcg64fxtensa.a_op64_reg_reg_reg
Commit consists out of
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/ncpuadd.pas
  • M rtl/inc/systemh.inc


* Use TExternalAssembler.WriteComments() also by nasm and intel assembler writers.
Commit consists out of
  • M compiler/x86/agx86int.pas
  • M compiler/x86/agx86nsm.pas


* 8086: Use CX as a scratch register instead of BX.
Commit consists out of
  • M compiler/x86/cgx86.pas


* Xtensa: optimize some shifts by constants
Commit consists out of
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/ncpumat.pas


* 8086: If a far procvar is called, it must be in a memory location. This fixes a hack to emulate CALL reg1:reg2.
Commit consists out of
  • M compiler/i8086/cgcpu.pas
  • M compiler/i8086/hlcgcpu.pas
  • M compiler/i8086/n8086cal.pas


* 8086: Fixed using far procvars in a near code memory model and vice versa.
Commit consists out of
  • M compiler/i8086/hlcgcpu.pas


* 8086: Do not destroy contents of the BX parameter when calling a procvar by ref with a base.
Commit consists out of
  • M compiler/i8086/n8086cal.pas
  • M compiler/x86/nx86cal.pas


* 8086: Fixed register allocation failure after 0046559.
Commit consists out of
  • M compiler/i8086/n8086cal.pas


* 8086: Reverted 0046557. It must be implemented differently.
Commit consists out of
  • M compiler/i8086/cgcpu.pas
  • M compiler/i8086/hlcgcpu.pas
  • M compiler/i8086/n8086cal.pas


* 8086: Proper implementation of: If a far procvar is called, it must be in a memory location. This fixes a hack to emulate CALL reg1:reg2.
Commit consists out of
  • M compiler/i8086/cgcpu.pas
  • M compiler/i8086/hlcgcpu.pas
  • M compiler/i8086/n8086cal.pas
  • M compiler/ncal.pas


* never create a regular temp for inline parameters that can be modified by
the caller (mantis 0037465)a
o in theory, the regular checks for doing so should never trigger, but due
to compiler-generated nodes (such as calls to fpc_ansistr_unique), they
could. Internal address nodes can deal with taking the address of the
function result in this case.
Commit consists out of
  • M .gitattributes
  • M compiler/ncal.pas
  • A tests/webtbs/tw37465.pp


+ Xtensa: use extui for and with constants
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* Xtensa: tcpunotnode.second_boolean fixed
Commit consists out of
  • M compiler/ncgutil.pas
  • M compiler/xtensa/ncpumat.pas


* emit the correct declaration for procdefs used to force a procname in LLVM
o fixes lazarus startup on macOS/AArch64 when compiled with the LLVM cg
Commit consists out of
  • M compiler/jvm/njvmcal.pas
  • M compiler/llvm/nllvmcal.pas
  • M compiler/ncal.pas
  • M compiler/ncgcal.pas


* add Xcode-11.0 as LLVM target version versin
Commit consists out of
  • M compiler/llvm/llvminfo.pas


* Xtensa: fixed TCPUAddNode.second_cmpsmallset
Commit consists out of
  • M compiler/xtensa/ncpuadd.pas


Fix EXTDEBUG code: tai_comment requires use of strpnew function with constant string
Commit consists out of
  • M compiler/powerpc64/nppcadd.pas


Replace outdated cgop2string function by tcgsize2str function from cgbase unit to fix EXTDEBUG cycle on powerpc64le-linux
Commit consists out of
  • M compiler/powerpc64/cgcpu.pas
  • M compiler/powerpc64/hlcgcpu.pas
  • M compiler/ppcgen/cgppc.pas
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv64/hlcgcpu.pas


* Xtensa: force correct location into a register in tcpunotnode.second_boolean
Commit consists out of
  • M compiler/xtensa/ncpumat.pas


* reverted 46417: if a assembler subroutine needs an entry instruction, it should be added explicitly
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* Xtensa: OP_NOT fixed
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* Xtensa: several issues with parameter passing of the windowed api fixed
Commit consists out of
  • M compiler/psub.pas
  • M compiler/xtensa/cpupara.pas
  • M compiler/xtensa/cpupi.pas
  • M compiler/xtensa/symcpu.pas


* Xtensa: some issues with large parameters fixed
Commit consists out of
  • M compiler/xtensa/cpupara.pas


* Xtensa: record alignment is upto 8 bytes done
Commit consists out of
  • M compiler/systems/i_freertos.pas


* Xtensa: fix single<>single
Commit consists out of
  • M compiler/xtensa/ncpuadd.pas


+ Xtensa: implemented tcpuparamanager.ret_in_param according to API
* fixed passing of variant parameters
Commit consists out of
  • M compiler/xtensa/cpupara.pas


+ Xtensa: reused constant pool entries if possible
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* Xtensa: various stack handling fixes
Commit consists out of
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/cpupi.pas


* better calculation of estimated stack frame size
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/nld.pas
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/cpupara.pas
  • M compiler/xtensa/cpupi.pas


* Xtensa: rewrote parameter handling
* Xtensa: aggregate types up to 16 bytes are returned in registers
Commit consists out of
  • M compiler/xtensa/cpupara.pas
  • M compiler/xtensa/cpupi.pas


* Xtensa: fix operand size and location handling in TCPUAddNode.second_cmp
Commit consists out of
  • M compiler/xtensa/ncpuadd.pas


* stack size estimation again improved
Commit consists out of
  • M compiler/xtensa/cpupi.pas


* Xtensa: set expectloc of not nodes correctly
Commit consists out of
  • M compiler/xtensa/ncpumat.pas


* fix for Mantis 0037650: apply adjusted patch by Ryan Joseph do not range check the length of ShortStrings if their length parameter is based on a generic constant
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pexpr.pas
  • A tests/webtbs/tw37650.pp


* Xtensa: arrays are always passed as by reference but still returned in up to 4 registers
Commit consists out of
  • M compiler/xtensa/cpupara.pas


* fix tw3930 after 0037927
o "unique" class (and interface) type aliases should actually not exist at
all except for overload resolution. All the rest (VMT, UUID, RTTI, ...)
should be taken from the aliased class/interface
o there is one Delphi-incompatibily left after this change, but it shouldn't
matter: tw8180 does not compile if you change the declaration to
"tcl=class(TInterfacedObject,XStr,iinterface)", while Kylix does compile
that. It doesn't really matter though, because in Kylix this actually
adds iinterface twice as implemented interface, so there is no point
in accepting this.
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/ncgvmt.pas
  • M compiler/pdecl.pas
  • M compiler/symdef.pas
  • M compiler/symtable.pas
  • M tests/webtbs/tw29367.pp
  • M tests/webtbs/tw8180.pp


* prevent quadratic complexity in the size of the inheritance chain when
comparing objectdefs for equality
Commit consists out of
  • M compiler/defcmp.pas


* Improved output of spilling statistics:
- Do not use count_uses, since weight already represents a usage count of a register.
- Do not count spills of registers with weight less than 100.
Commit consists out of
  • M compiler/rgobj.pas


* Use the initial location of stack parameters as a spilling location if spilling is needed. This leads to the following optimizations:
- no spill temp is allocated;
- no load of a stack parameter to a spill temp;
- if a stack parameter is used only once do not preload it to a register. The parameter can be accessed directly in the stack if the target CPU supports this.
Commit consists out of
  • M compiler/ncgutil.pas
  • M compiler/rgobj.pas


* Fixed 0046776: With -O3 do not "coalesce" spilled nodes if the initial location is set.
Commit consists out of
  • M compiler/rgobj.pas


* Xtensa: tcgcpu.g_concatcopy uses OC_NE so the branch requires one instruction less
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* Xtensa: tcpuunaryminusnode.second_float fixed for double
Commit consists out of
  • M compiler/xtensa/ncpumat.pas


* Xtensa: tcgcpu.g_concatcopy makes use of loop extensions if available
Commit consists out of
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/cpuinfo.pas


* Xtensa-freeRTOS: fix linking against libc
Commit consists out of
  • M compiler/systems/t_freertos.pas


* more ABI compliant parameter passing
Commit consists out of
  • M compiler/xtensa/cpupara.pas


* Xtensa: handle references with offset only properly
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* Fixed the stack parameters optimization (0046776) for big endian CPUs.
Commit consists out of
  • M compiler/ncgutil.pas
  • M compiler/rgobj.pas


* improve call0 calling conventions
Commit consists out of
  • M compiler/psub.pas
  • M compiler/xtensa/cpupara.pas
  • M compiler/xtensa/cpupi.pas


* Do not use stack parameter location for spilling if its size is less than the register size for all CPU targets except x86.
Commit consists out of
  • M compiler/ncgutil.pas


* Fixed 0046801 for the case of int64 params with a single paralocation.
Commit consists out of
  • M compiler/ncgutil.pas


* RiscV32: corrected tcpuparamanager.getcgtempparaloc, resolves 0037709
* cleanup
Commit consists out of
  • M compiler/riscv32/cpupara.pas


* Xtensa: taicpu.spilling_get_operation_type improved
Commit consists out of
  • M compiler/xtensa/aasmcpu.pas


* Xtensa: trgcpu.do_spill_op fixed
* cleanup
Commit consists out of
  • M compiler/xtensa/cpupi.pas
  • M compiler/xtensa/rgcpu.pas


* Xtensa: stack size calculation for the call0 abi fixed
Commit consists out of
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/cpupara.pas


* Include stack location of spilled variables in the assembler output.
Commit consists out of
  • M compiler/rgobj.pas


* Moved spilling of registers which have the initial memory location and are used only once to a stage after coalescing is done. This produces a better code.
Commit consists out of
  • M compiler/rgobj.pas


* a classrefdef might also be created with a forwarddef, so handle that correctly
Commit consists out of
  • M compiler/symdef.pas


+ Xtensa: make use of ABS.S
+ extended test for abs(...) with single tests
Commit consists out of
  • M compiler/xtensa/aasmcpu.pas
  • M compiler/xtensa/ncpuinl.pas
  • M tests/test/units/system/tabs.pp


* Reverted 0046836, since it does not work as expected for yet unknown reason.
Commit consists out of
  • M compiler/rgobj.pas


+ introduce tcgobj.a_loadfpu_reg_intreg
+ make use of it in tcgtypeconvnode.second_nothing
+ Xtensa: implementation of a_tcgcpu.a_loadfpu_intreg_reg and tcgcpu.a_loadfpu_reg_intreg
Commit consists out of
  • M compiler/cgobj.pas
  • M compiler/fpcdefs.inc
  • M compiler/hlcg2ll.pas
  • M compiler/ncgcnv.pas
  • M compiler/xtensa/cgcpu.pas


* RiscV32 correctly set operands of div/mod operations, resolves 0037743
Commit consists out of
  • M compiler/riscv32/nrv32mat.pas


* patch by J. Gareth Moreton: introduce RemoveInstruction and make as much as possible use of RemoveCurrentP, resolves 0037399
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas


* write a proper error message if types are read/written which are not supported in iso mode, resolves 0037763
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ninl.pas
  • A tests/webtbf/tw37763.pp


* m68k: fix index register usage in memory references, when the index is 8 or 16 bit wide and unsigned
Commit consists out of
  • M compiler/m68k/n68kmem.pas


* fix for Mantis 0037221: apply adjusted patch by Ondrej Pokorny to allow the use of Copy() on open array parameters (the result will be a dynamic array)
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/ninl.pas
  • M rtl/inc/compproc.inc
  • M rtl/inc/dynarr.inc
  • A tests/test/tarray22.pp


* fix for Mantis 0036909: apply patch by Ryan Joseph so that array constructors can be used for static arrays as well.
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/defcmp.pas
  • M compiler/ncnv.pas
  • A tests/test/tarrconstr10.pp
  • A tests/test/tarrconstr11.pp
  • A tests/test/tarrconstr12.pp
  • A tests/test/tarrconstr13.pp
  • A tests/test/tarrconstr14.pp
  • A tests/test/tarrconstr15.pp
  • A tests/test/tarrconstr9.pp


* small formatting adjustments for the sake of consistency
Commit consists out of
  • M compiler/ncnv.pas


* correctly handle static arrays with a lower index <> 0
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/ncnv.pas
  • A tests/test/tarrconstr16.pp


+ allow in ISO mode that { ... } and (* ... *) comments are paired, resolves at least partly 0037428
Commit consists out of
  • M compiler/scanner.pas
  • M tests/webtbs/tw37428.pp


* don't print range check warnings when evaluating inlined explicit typecasts
Commit consists out of
  • M .gitattributes
  • M compiler/ncnv.pas
  • A tests/tbs/tb0676a.pp


* don't perform "(x=y) or (z=u)" -> "(x xor y) or (z xor u)" optimization
if z or u may raise exceptions (mantis 0037780)
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw37780.pp


* do not set nonlocal for inter-procedural labels, this is not needed, they use
the jmpbuf to reach the target
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/pexpr.pas
  • M compiler/pstatmnt.pas


* MovzAnd2Movz* optimization improved
+ MovzAnd2And optimization introduced
Commit consists out of
  • M compiler/x86/aoptx86.pas


* extended AndMovzToAnd to support more variants
Commit consists out of
  • M compiler/x86/aoptx86.pas


* compilation on i386 fixed
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix for Mantis 0037779: use init RTTI instead of full RTTI when copying an array
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/ninl.pas
  • A tests/webtbs/tw37779.pp


Disable af_smartlink_sections option for Z80 vasm and z80asm assemblers, as it leads to errors
Commit consists out of
  • M compiler/z80/agz80asm.pas
  • M compiler/z80/agz80vasm.pas


+ modified patch by J. Gareth Moreton: Aarch64: LDR/STR pairing optimisation, resolves 0037580
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* better error message in case of illegal nodes for string constants, resolves 0034054
Commit consists out of
  • M compiler/ngtcon.pas


Avoid range check error in a_op_const_reg_reg method when compiled with -CriotR
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* another error message changed into a better one
Commit consists out of
  • M compiler/ngtcon.pas


* do not copy unused paravarsyms
Commit consists out of
  • M compiler/hlcgobj.pas


* x86: ImulMov2Imul optimization
* x86: apply OptPass1VOP also to vsqrts*
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* xtensa-freertos: patch by Alfred for better tool search, resolves 0037308
Commit consists out of
  • M compiler/systems/t_freertos.pas


* Xtensa: set is_jmp flag so branch optimization works
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/xtensa/cgcpu.pas


* xtensa-freertos: run python helpers only on non unix by directly calling python
Commit consists out of
  • M compiler/systems/t_freertos.pas


+ xtensa: make use of float.s instruction
Commit consists out of
  • M compiler/xtensa/ncpucnv.pas


+ xtensa: make use of nsau to implement Bsr*
Commit consists out of
  • M compiler/options.pas
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/cpuinfo.pas
  • M rtl/inc/systemh.inc


* patch (with little modification) by J. Gareth Moreton: refactor ARM/Aarch64 peephole optimizer, first part of 0037526
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


patch by J. Gareth Moreton: GetNextInstructionUsingReg drops out earlier, second part of 0037526
Commit consists out of
  • M compiler/armgen/aoptarm.pas


z80: cleaned up some tabs vs. spaces indentation mess in the vasm writer. no functional change.
Commit consists out of
  • M compiler/z80/agz80vasm.pas


z80: re-enabled af_smartlink_sections for vasm which is required for the vasm + vlink combo, partially reverting 0046916
Commit consists out of
  • M compiler/z80/agz80vasm.pas


z80: added handling of sections provided by the startup code to the vlink linker script. this fixes executable building, but the resulting executables still don't work at this point
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


+ evaluate typeinfo()=/<>typeinfo() at compile time, resolves 0030260
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw30260.pp


* use fld/fst on i386 to copy doubles
Commit consists out of
  • M compiler/ncgld.pas


Add conversion from "$" to "." for i386-watcom target and avoid iteration if no char modification is wanted in ApplyAsmSymbolRestrictions function
Commit consists out of
  • M compiler/aasmbase.pas


Use ApplyAsmSymbolRestrictions function and limit label sie to 247 for watcom assembler
Commit consists out of
  • M compiler/x86/agx86int.pas


Rename pvmt internal type to lower_pvmt for i386-watcom as watcom assembler is not case sensitive
Commit consists out of
  • M compiler/psystem.pas


* Fix NaN for watcom assembler (C000h is considered as a label, use 0xC000 instead)
* Also use ApplyAsmSymbolRestrictions for label names (required for units using embedded '.'
* Add ':' after a label if there is hp^.next is not assigned
Commit consists out of
  • M compiler/x86/agx86int.pas


+ x86: FstpFld2Fst optimization (re-enabled for safe cases)
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M tests/tbs/tb0519.pp
  • M tests/test/tthlp4.pp
  • M tests/test/units/sysutils/tfloattostr.pp
  • M tests/webtbs/tw25121.pp


+ optimize comparisons of constant pointers
Commit consists out of
  • M compiler/nadd.pas


* set default processor for i386 to Pentium2
Commit consists out of
  • M compiler/globals.pas


* AVR: MovMov2Mov 2 optimization
Commit consists out of
  • M compiler/avr/aoptcpu.pas


z80-zxspectrum: fix the the linking order in the bss section, so the startup code doesn't crash when linked with vlink
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


Treat metadata as data in agppcmpw.pas
Commit consists out of
  • M compiler/powerpc/agppcmpw.pas


+ support all XSAVE instructions, resolves 0037864
Commit consists out of
  • M compiler/i386/i386att.inc
  • M compiler/i386/i386atts.inc
  • M compiler/i386/i386int.inc
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386op.inc
  • M compiler/i386/i386prop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086att.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/i8086/i8086int.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086op.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc
  • M compiler/x86_64/x8664att.inc
  • M compiler/x86_64/x8664int.inc
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664op.inc
  • M compiler/x86_64/x8664pro.inc
  • M compiler/x86_64/x8664tab.inc
  • M tests/utils/avx/avxopcodes.pas


Refactor setting of NoNativeBinaries:
Added NO_NATIVE_COMPILER_CPU_LIST and NO_NATIVE_COMPILER_OS_LIST
Set NoNativeBinaries if target CPU is different from source CPU
and target CPU is in NO_NATIVE_COMPILER_CPU_LIST.
Set NoNativeBinaries if target OS is different from source OS
and target CPU is in NO_NATIVE_COMPILER_CPU_LIST.
Add FORCE_NATIVE_BINARIES variable to be able to overrule
default behavior of NoNativeBinaries=1
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


+ use pxor/vpxor to load 0.0
Commit consists out of
  • M compiler/x86/nx86con.pas


+ more pxor/vpxor optimizations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* inline more aggressively, if the ie for the initial change re-appears, it must be fixed differently
Commit consists out of
  • M compiler/ncal.pas


* don't do illegal type conversions on GetNextInstructionUsingReg results
Commit consists out of
  • M compiler/x86/aoptx86.pas


* avx-512 has 32 mm registers
Commit consists out of
  • M compiler/x86/cpubase.pas


* load 0.0 by (V)XORPS/D instead of (V)PXOR in mm registers
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/nx86con.pas
  • M compiler/x86_64/aoptcpu.pas


* use (V)XORPS/D for unary minus
Commit consists out of
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86mat.pas


* use V* instructions if possible
* fix i386 compilation
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/cgx86.pas


* mm registers 16-31 are also volatile during a call
Commit consists out of
  • M compiler/x86_64/cpupara.pas


+ make use of avx-512 instructions vcvtuis2s* if possible
Commit consists out of
  • M compiler/x86/nx86cnv.pas
  • M compiler/x86_64/cpuinfo.pas
  • M compiler/x86_64/nx64cnv.pas


* improved (V)MOVA*(V)MOVA*2(V)MOVA* 2 optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* proper change information for avx-512 vcvt* instructions
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* generate simplified code for unary minus when sse/avx is used
Commit consists out of
  • M compiler/x86/nx86mat.pas


* copy only the instruction table related inc files during make insdat
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* is_signed does not check the ordtype but the ranges, so it cannot be used to
check for valid types for cvtsi2sd/s
Commit consists out of
  • M compiler/x86/nx86cnv.pas


* patch by Marģers to unify internal error numbers, resolves 0037888
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cgcpu.pas
  • M compiler/aarch64/cpupara.pas
  • M compiler/aarch64/hlcgcpu.pas
  • M compiler/aarch64/ncpuflw.pas
  • M compiler/aarch64/racpugas.pas
  • M compiler/aasmbase.pas
  • M compiler/aasmcnst.pas
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/cpuelf.pas
  • M compiler/arm/cpupara.pas
  • M compiler/arm/hlcgcpu.pas
  • M compiler/arm/narmadd.pas
  • M compiler/arm/narmcnv.pas
  • M compiler/arm/narminl.pas
  • M compiler/arm/narmld.pas
  • M compiler/arm/narmmat.pas
  • M compiler/arm/raarmgas.pas
  • M compiler/arm/rgcpu.pas
  • M compiler/assemble.pas
  • M compiler/avr/aasmcpu.pas
  • M compiler/avr/agavrgas.pas
  • M compiler/avr/cgcpu.pas
  • M compiler/avr/cpupara.pas
  • M compiler/avr/navrmat.pas
  • M compiler/avr/raavrgas.pas
  • M compiler/cg64f32.pas
  • M compiler/cgobj.pas
  • M compiler/dbgdwarf.pas
  • M compiler/dbgstabs.pas
  • M compiler/fpcp.pas
  • M compiler/hlcg2ll.pas
  • M compiler/hlcgobj.pas
  • M compiler/i386/cgcpu.pas
  • M compiler/i386/cpuelf.pas
  • M compiler/i386/cpupara.pas
  • M compiler/i386/hlcgcpu.pas
  • M compiler/i386/n386add.pas
  • M compiler/i386/n386flw.pas
  • M compiler/i386/n386mat.pas
  • M compiler/i8086/cgcpu.pas
  • M compiler/i8086/cpupara.pas
  • M compiler/i8086/hlcgcpu.pas
  • M compiler/i8086/n8086add.pas
  • M compiler/i8086/n8086inl.pas
  • M compiler/i8086/n8086ld.pas
  • M compiler/i8086/n8086mat.pas
  • M compiler/i8086/n8086mem.pas
  • M compiler/i8086/symcpu.pas
  • M compiler/jvm/agjasmin.pas
  • M compiler/jvm/hlcgcpu.pas
  • M compiler/jvm/jvmdef.pas
  • M compiler/jvm/njvmcnv.pas
  • M compiler/jvm/njvmmem.pas
  • M compiler/jvm/njvmtcon.pas
  • M compiler/jvm/pjvm.pas
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvmpara.pas
  • M compiler/llvm/llvmpi.pas
  • M compiler/llvm/llvmtype.pas
  • M compiler/llvm/nllvmmem.pas
  • M compiler/llvm/nllvmtcon.pas
  • M compiler/m68k/cgcpu.pas
  • M compiler/m68k/cpupara.pas
  • M compiler/m68k/n68kadd.pas
  • M compiler/m68k/n68kcal.pas
  • M compiler/m68k/n68kmat.pas
  • M compiler/m68k/n68kmem.pas
  • M compiler/mips/aasmcpu.pas
  • M compiler/mips/cgcpu.pas
  • M compiler/mips/cpuelf.pas
  • M compiler/mips/cpugas.pas
  • M compiler/mips/hlcgcpu.pas
  • M compiler/mips/ncpucnv.pas
  • M compiler/mips/ncpuinln.pas
  • M compiler/mips/racpugas.pas
  • M compiler/nadd.pas
  • M compiler/nbas.pas
  • M compiler/ncgadd.pas
  • M compiler/ncgcal.pas
  • M compiler/ncgcon.pas
  • M compiler/ncginl.pas
  • M compiler/ncnv.pas
  • M compiler/ngenutil.pas
  • M compiler/ngtcon.pas
  • M compiler/ninl.pas
  • M compiler/nmat.pas
  • M compiler/ogbase.pas
  • M compiler/ogcoff.pas
  • M compiler/ogomf.pas
  • M compiler/ogrel.pas
  • M compiler/omfbase.pas
  • M compiler/options.pas
  • M compiler/optloadmodifystore.pas
  • M compiler/optvirt.pas
  • M compiler/pbase.pas
  • M compiler/pdecobj.pas
  • M compiler/pdecsub.pas
  • M compiler/pexports.pas
  • M compiler/pexpr.pas
  • M compiler/pkgutil.pas
  • M compiler/powerpc/agppcmpw.pas
  • M compiler/powerpc/cgcpu.pas
  • M compiler/powerpc/cpupi.pas
  • M compiler/powerpc/nppcadd.pas
  • M compiler/powerpc/nppcmat.pas
  • M compiler/powerpc/rappcgas.pas
  • M compiler/powerpc64/cgcpu.pas
  • M compiler/powerpc64/nppcadd.pas
  • M compiler/powerpc64/nppcmat.pas
  • M compiler/powerpc64/rappcgas.pas
  • M compiler/ppcgen/agppcgas.pas
  • M compiler/ppcgen/cgppc.pas
  • M compiler/ppcgen/hlcgppc.pas
  • M compiler/ppcgen/ngppcadd.pas
  • M compiler/ppcgen/ngppcinl.pas
  • M compiler/ppcgen/rgcpu.pas
  • M compiler/psub.pas
  • M compiler/rgobj.pas
  • M compiler/riscv/hlcgrv.pas
  • M compiler/riscv32/rarv32gas.pas
  • M compiler/riscv64/rarv64gas.pas
  • M compiler/sparc/cgcpu.pas
  • M compiler/sparc64/cpugas.pas
  • M compiler/sparcgen/aasmcpu.pas
  • M compiler/sparcgen/cpugas.pas
  • M compiler/sparcgen/ncpucnv.pas
  • M compiler/sparcgen/racpugas.pas
  • M compiler/sparcgen/rgcpu.pas
  • M compiler/symbase.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas
  • M compiler/symtype.pas
  • M compiler/systems/t_win16.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/agx86att.pas
  • M compiler/x86/agx86int.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/cpubase.pas
  • M compiler/x86/nx86add.pas
  • M compiler/x86/nx86cnv.pas
  • M compiler/x86/nx86inl.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/rax86att.pas
  • M compiler/x86/symx86.pas
  • M compiler/x86_64/cpuelf.pas
  • M compiler/x86_64/hlcgcpu.pas
  • M compiler/x86_64/rax64int.pas
  • M compiler/x86_64/win64unw.pas
  • M compiler/xtensa/aasmcpu.pas
  • M compiler/xtensa/cgcpu.pas
  • M compiler/xtensa/cpupara.pas
  • M compiler/xtensa/ncpuadd.pas
  • M compiler/xtensa/ncpumat.pas
  • M compiler/xtensa/ncpumem.pas
  • M compiler/xtensa/racpugas.pas
  • M compiler/z80/aasmcpu.pas
  • M compiler/z80/agsdasz80.pas
  • M compiler/z80/agz80vasm.pas
  • M compiler/z80/aoptcpu.pas
  • M compiler/z80/aoptcpub.pas
  • M compiler/z80/cgcpu.pas
  • M compiler/z80/cpubase.pas
  • M compiler/z80/cpupara.pas
  • M compiler/z80/nz80add.pas
  • M compiler/z80/tgcpu.pas


powerpc: added support for 64bit explicit locations in legacy MorphOS syscalls. improved error handling of various corner cases or explicit paraloc handling
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/powerpc/cpupara.pas


* turn the recently added 3357 warning into an error, to avoid another compiler IE later
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/powerpc/cpupara.pas


* when setting up the symbol for the SEH data don't check whether it is global, instead check whether it's a function
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* reset the stored symbol for SEH data once a new section is encountered
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* use the name of the symbol instead of the name of the section as the later is always lowercased
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* (slightly) modified (formatting, warning) patch by Jan Bruns to speed up overloading search, resolves 0036666
Commit consists out of
  • M compiler/htypechk.pas
  • M compiler/symdef.pas


* naturally align threadvar lists/tables
o required for (future) Darwin arm64e target, and a good idea elsewhere too
(on constrained targets, it won't make a difference because the alignment
of pointers won't be > sizeof(longint))
Commit consists out of
  • M compiler/ngenutil.pas
  • M compiler/options.pas
  • M rtl/inc/threadvr.inc


* AArch64: added SIMD instructions (only plain ARMv8-A for now)
o added AArch64 regset parsing support in assembler reader, means that "{"
no longer starts comments there (like in the ARM assembler reader)
o added AArch64 indexed SIMD register support and removed old cg hacks
that worked around its absence
Commit consists out of
  • M .gitattributes
  • M compiler/aarch64/a64att.inc
  • M compiler/aarch64/a64atts.inc
  • M compiler/aarch64/a64ins.dat
  • M compiler/aarch64/a64op.inc
  • M compiler/aarch64/a64reg.dat
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cgcpu.pas
  • M compiler/aarch64/cpubase.pas
  • M compiler/aarch64/cpupara.pas
  • M compiler/aarch64/ra64con.inc
  • M compiler/aarch64/ra64dwa.inc
  • M compiler/aarch64/ra64nor.inc
  • M compiler/aarch64/ra64num.inc
  • M compiler/aarch64/ra64rni.inc
  • M compiler/aarch64/ra64sri.inc
  • M compiler/aarch64/ra64sta.inc
  • M compiler/aarch64/ra64std.inc
  • M compiler/aarch64/ra64sup.inc
  • M compiler/aarch64/racpu.pas
  • M compiler/aarch64/racpugas.pas
  • M compiler/aasmtai.pas
  • M compiler/armgen/aoptarm.pas
  • M compiler/cgbase.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/raatt.pas
  • M compiler/rautils.pas
  • M compiler/utils/gena64vfp.pp
  • M compiler/x86/cpubase.pas
  • M rtl/aarch64/aarch64.inc
  • M rtl/aarch64/math.inc
  • A tests/test/traa641.pp


* LLVM 11.0 support
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/llvminfo.pas


+ Add new LastCommonAsmOp constant to arm and aarch64 CPU targets.
* Uses this new constant to define TCommonAsmOps set type.
+ Use this constant in armgen/aoptarm MatchInstruction function,
to avoid a range check error when compiling with -CriotR with optimization.
Commit consists out of
  • M compiler/aarch64/cpubase.pas
  • M compiler/arm/cpubase.pas
  • M compiler/armgen/aoptarm.pas


* fix try_make_mul32to64() if it's called with a constant node on the
left (mantis 0037878)
o can happen if use_generic_mul32to64 returns false
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw37878.pp


* patch by J. Gareth Moreton to improve LEA/SHL -> LEA optimisation, resolves 0037954
Commit consists out of
  • M compiler/x86/aoptx86.pas


* (slight modified) patch by J. Gareth Moreton to reduce number of assembler optimizer passes, resolves 0037959
Commit consists out of
  • M compiler/aopt.pas
  • M compiler/aoptobj.pas


* explicitly convert array indicies to pointer sized integers, so cse
can handle the conversion
Commit consists out of
  • M compiler/nmem.pas


* better complexity calculation of tvecnodes
Commit consists out of
  • M compiler/nutils.pas


* simplify tcgunaryminusnode.second_integer
Commit consists out of
  • M compiler/ncgmat.pas


+ remove type conversions also for unary operations if possible
Commit consists out of
  • M compiler/ncnv.pas


* try_make_mul32to64: restore original node order if transformation failed
o this gets called by taddnode.pass_1, which caches the left/right
node types/resultdefs
Commit consists out of
  • M compiler/nadd.pas


* LLVM: ensure that the parameter types are processed of procdefs that are
declared when they get first called
o fixes compilation of several tests/test/tobjc* tests after 0046675
Commit consists out of
  • M compiler/llvm/llvmtype.pas


+ x86: MovxMov2Mov optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: minor refactor of reduced iterations of pass 1 of the assembler optimizer, resolves 0037972
Commit consists out of
  • M compiler/aoptobj.pas


* colored message output as requested in 0037331, so far linux only
Commit consists out of
  • M compiler/comphook.pas


* cache IsATTY value
Commit consists out of
  • M compiler/comphook.pas


Also look for function name of 'result' is not found in load_result_node
Commit consists out of
  • M compiler/nutils.pas


* patch by Jan Bruns to solve an issue with the new overloading selection code, resolves 0037969
Commit consists out of
  • M .gitattributes
  • M compiler/htypechk.pas
  • A tests/webtbs/tw37969.pp


+ inline subroutines with formal parameters as well
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/psub.pas


* directly copy the result of set set into the left side of an assignment
Commit consists out of
  • M compiler/nadd.pas


Add explicit longint typecast to avoid range check errors with unwindrec longword variable
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


Display xtensa specific options for ppcxtensa -h
Commit consists out of
  • M compiler/options.pas


* delphi has excessprecision turned on by default
Commit consists out of
  • M compiler/scanner.pas


* excess precision should not be applied to comp or currency
Commit consists out of
  • M compiler/nadd.pas


i386-go32v2 also does not support progbits, as other COFF targets
Commit consists out of
  • M compiler/aggas.pas


Disable use of cmov instructions in alignment patterns for some i386 targets (it prevents use of some emulators)
Commit consists out of
  • M compiler/systems.pas
  • M compiler/x86/aasmcpu.pas


- remove unused trimbspace
+ added ansistring variants for some helpers
Commit consists out of
  • M compiler/cutils.pas


* use AnsiString for file names to overcome length limitations
Commit consists out of
  • M compiler/cstreams.pas

see also 0047267



m68k: add missing FINT and FINTRZ instructions to spilling_get_operation_type()
Commit consists out of
  • M compiler/m68k/aasmcpu.pas


* reverted accidental change
Commit consists out of
  • M compiler/fpcdefs.inc


m68k: change the stack push order in the register calling convention to left-to-right. This should fix parameter handling in nested procedures (tnest5)
Commit consists out of
  • M compiler/m68k/cpupara.pas


* bump ppu version after 0047279. it changes the ABI (m68k only), so units are incompatible even if the format didn't change
Commit consists out of
  • M compiler/ppu.pas


+ patch by Anton Kavalenka to support coloured output on windows, resolves 0038025
Commit consists out of
  • M compiler/comphook.pas


* added "const" to some string parameters
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/pdecl.pas
  • M compiler/pdecsub.pas


* give an error when trying to define a macro/compiler variable with
an empty name
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/scanner.pas
  • A tests/tbf/tb0272.pp


* changed TIDString and tsymentry.realname to TSymStr
o for TIDString: prevents shortstring -> ansistring conversions with
-dsymansistr when looking up symbols
o for realname: consistency with name
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/ppu.pas
  • M compiler/symbase.pas
  • M compiler/symsym.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/utils/ppuutils/ppuout.pp


+ copy mode avx512
Commit consists out of
  • M compiler/x86/cgx86.pas


* using ymm registers for copying data is always useful, regardless of alignment
Commit consists out of
  • M compiler/x86/cgx86.pas


* fix tcgx86.a_loadmm_reg_ref and tcgx86.a_loadmm_ref_reg for 64 OS_M512
Commit consists out of
  • M compiler/x86/cgx86.pas


* allow var alignment up to 64 bytes
Commit consists out of
  • M compiler/systems/i_linux.pas
  • M compiler/systems/i_win.pas


+ i386 supports also avx-512
Commit consists out of
  • M compiler/i386/cpuinfo.pas


* i386 can use only 8 mm registers with avx-512
Commit consists out of
  • M compiler/i386/cpuinfo.pas


* also use avx copying for mod 4=0 memory blocks
Commit consists out of
  • M compiler/x86/cgx86.pas


* patch by J. Gareth Moreton: MOV/LDR/STR/MOV optimisations for ARM/AArch64, resolves 0037638
Commit consists out of
  • M compiler/armgen/aoptarm.pas


+ completed Ch_* information for VMOVD*
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


+ take care of vzeroupper in exit code optimizations
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ tx86addnode.second_opvector makes use of AVX instructions
Commit consists out of
  • M compiler/x86/nx86add.pas


* moved UseAVX from cgx86 to cpubase
+ UseAVX512
Commit consists out of
  • M compiler/x86/cgx86.pas
  • M compiler/x86/cpubase.pas


* fix for Mantis 0038051: make Chr() a real intrinsics so that it can be used in type declarations as well
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pexpr.pas
  • M compiler/psystem.pas
  • M rtl/inc/systemh.inc
  • A tests/webtbs/tw38051.pp


* increase PPU version so that the change of Chr() to a full intrinsic will not lead to problems
Commit consists out of
  • M compiler/ppu.pas


* fixed type of size parameter passed to fpc_getmem() when translating
new(pointer) (mantis 0038054)
Commit consists out of
  • M .gitattributes
  • M compiler/pinline.pas
  • A tests/webtbs/tw38054.pp


m68k: fix references like (An) to parse properly in the assembler reader
Commit consists out of
  • M compiler/m68k/ra68kmot.pas


Move explicit typecast to after check to avoid RTE when compiled with -CR
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas


* use VPXORD in avx-512 mode as VPXOR does not work for the upper 16 registers
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86_64/aoptcpu.pas


* compilation on i386 fixed
Commit consists out of
  • M compiler/x86/cgx86.pas


* regenerated msgidx/msgtxt after 0047376
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* Arm Thumb does not support complex references including SP, resolves 0038056
Commit consists out of
  • M compiler/armgen/aoptarm.pas


Remove setting of USE_FAKE_SYSUTILS macro for MacOSClassic, as sysutils is now compiled for that OS
Commit consists out of
  • M compiler/fpcdefs.inc


Use MPW linker variant also for m68k-macosclassic target
Commit consists out of
  • M compiler/systems/i_macos.pas


Avoid uninitialized variable warning with -O4 option
Commit consists out of
  • M compiler/systems/t_msdos.pas

Merge: 06f5e293df 897322868b

-- Zusammenführen von 0047033 bis 0047401 in ».«:
C compiler/i386/i386nop.inc
U compiler/i386/i386tab.inc
U compiler/i386/i386atts.inc
U compiler/i386/i386att.inc
C compiler/i8086/i8086nop.inc
U compiler/i8086/i8086tab.inc
U compiler/i8086/i8086atts.inc
U compiler/i8086/i8086att.inc
U compiler/x86/x86ins.dat
C compiler/x86/rax86.pas
U compiler/x86/aasmcpu.pas
U compiler/x86/cpubase.pas
U compiler/x86/agx86att.pas
U compiler/x86/itcpugas.pas
U compiler/x86/rax86att.pas
C compiler/x86_64/x8664nop.inc
U compiler/x86_64/x8664tab.inc
U compiler/x86_64/x8664ats.inc
U compiler/x86_64/x8664att.inc
U compiler/utils/mkx86ins.pp
U tests/utils/avx/asmtestgenerator.pas
U tests/utils/avx/avxopcodes.pas
-- Aufzeichnung der Informationen für Zusammenführung von 0047033 bis 0047401 in ».«:
U .
Konfliktübersicht:
Textkonflikte: 4
Konfliktübersicht:
Textkonflikte: 4


* cosmetics
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


* fixes for nasm writer, resolves 0038074
+ test
Commit consists out of
  • M .gitattributes
  • M compiler/x86/agx86nsm.pas
  • A tests/webtbs/tw38074.pp


sinclairql: reduce default stack size to 8K
Commit consists out of
  • M compiler/systems/i_sinclairql.pas


sinclairql: add a note about .bss sections and the binary size, no functional change
Commit consists out of
  • M compiler/systems/t_sinclairql.pas


m68k: fixed parsing of absolute addresses in the assembler reader
Commit consists out of
  • M compiler/m68k/ra68kmot.pas


m68k: fixed parsing of constants to absolute addresses
Commit consists out of
  • M compiler/m68k/ra68kmot.pas


* simplified and fixed code of (v1=const1) and (v2=const2) optimization, resolves 0038066
Commit consists out of
  • M compiler/nadd.pas


sinclairql: the newline on this system is LF, not CRLF
Commit consists out of
  • M compiler/systems/i_sinclairql.pas


sinclairql: following Frank Wille's advices, reworked the linker script to omit .bss section from the binary. this reduces a simple 'hello, world' size by ~5K. needs matching startup code.
Commit consists out of
  • M compiler/systems/t_sinclairql.pas


Revert commit 0047257, Disable use of cmov instructions in alignment patterns for some i386 targets (it prevents use of some emulators)
Replace it by a new set of i386 targets, for which the default cpu is set to i80486 instead of pentium2
to avoid (for default configuration) use of CMOVxx or PREFETCHyyy instructions, not supported by some emulators.
Commit consists out of
  • M compiler/options.pas
  • M compiler/systems.pas
  • M compiler/x86/aasmcpu.pas


* better writing of ordinal const. nodes
Commit consists out of
  • M compiler/ncon.pas


* correctly simplify tree transforms of (a+c1+c2) if a is a pointer, resolves 0037671
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • M compiler/ncnv.pas
  • A tests/webtbs/tw37621.pp


* Give access to CPU specific fields of tsettings record
in GENERIC_CPU mode, to be used by ppudump utility.

generic/cpuinfo.pas: Add tinstructionset, used for ARM cpu.
globals.pas: Put all CPU specific fields of tsettings record
inside a variant part when GENERIC_CPU is defined.
Also import llvm unit when GENERIC_CPU is defined.

+ utils/Makefile.fpc: Add -Fu../llvm option to compile ppudump,
as it now also needs llvm specific code decause of globals unit change.
Commit consists out of
  • M compiler/generic/cpuinfo.pas
  • M compiler/globals.pas
  • M compiler/utils/Makefile
  • M compiler/utils/Makefile.fpc


bugfix gnu-assembler platform i386 vcvtsi2sd,vcvtsi2ss,vcvtusi2sd,vcvtusi2ss
Commit consists out of
  • M compiler/i386/i386atts.inc
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/utils/mkx86ins.pp
  • M compiler/x86/itcpugas.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/rax86att.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664tab.inc
  • M tests/utils/avx/avxopcodes.pas


bugfix gnu-assembler platform i386 vcvtsi2sd,vcvtsi2ss,vcvtusi2sd,vcvtusi2ss
Commit consists out of
  • M compiler/i386/i386atts.inc
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/utils/mkx86ins.pp
  • M compiler/x86/itcpugas.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/rax86att.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664tab.inc
  • M tests/utils/avx/avxopcodes.pas


bugfix gnu-assembler platform i386 vcvtsi2sd,vcvtsi2ss,vcvtusi2sd,vcvtusi2ss
Commit consists out of
  • M compiler/x86/rax86.pas


bugfix gnu-assembler platform i386 vcvtsi2sd,vcvtsi2ss,vcvtusi2sd,vcvtusi2ss
Commit consists out of
  • M compiler/x86/rax86.pas


* regenerated all Makefiles after Sinclair QL support was added
Commit consists out of
  • M .gitattributes
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • A rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile


Regenerate all Makefile's, and update utils/fpcm/fpcmake.inc and utils/fpcm/revision.inc after commit 47483
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcm/fpcmake.inc
  • M utils/fpcm/revision.inc
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile


Do not set USE_FAKE_SYSUTILS for MacOS anymore
Commit consists out of
  • M compiler/utils/ppumove.pp


Add separate cs_assemble_on_target tglobalswitch entry
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/utils/ppuutils/ppudump.pp


+ options.pas: Add new option -sT, to do only the linking on target, by
opposition to the old -st option, which does
both assembling and linking on target.
msg/errore.msg: Add new -sT help message
modify -st help message, to explicitly say that both assembling and linking
scripts are prepared for target system.
* msgidx.txt, msgtxt.inc: Regenerated
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


In FindObjectFile check the assembly file if cs_assemble_on_target is in globlaswitches
Commit consists out of
  • M compiler/link.pas


Replace cs_link_on_target by cs_assemble_on_target in assemble unit
Commit consists out of
  • M compiler/assemble.pas


sinclairql: make sure the Sinclair QL defaults to vlink
Commit consists out of
  • M compiler/options.pas


+ optimization type converted (modulo) divisions as well by removing up/down converting but,
insert a test and separate code path for -1 if needed
Commit consists out of
  • M compiler/ncnv.pas


* cleanup
Commit consists out of
  • M compiler/ncnv.pas


* fits_in_mm_register takes care of avx(512) support
Commit consists out of
  • M compiler/defutil.pas


* fix spilling of avx(512) registers
* get_scalar_mm_op fixed for M256
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/cgx86.pas


+ implement prefetch intrinsic for aarch64
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/aarch64/ncpuinl.pas


* set reasonable defaults for arm eabi
Commit consists out of
  • M compiler/options.pas


* patch by J. Gareth Moreton: fixes crash on ARM with -CriotR, resolves 0038116
Commit consists out of
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


+ Aarch64: call OptPass1FData for FMA instructions as well
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ Aarch64: implemented FMovFMov2FMov, not yet used
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


m68k: fix DB/DW/DD handling in inline assembler, update BuildConstant() method to current standards. issue reported/initial patch by Marcel Kilgus in QLForum.co.uk
Commit consists out of
  • M compiler/m68k/ra68kmot.pas


* remove obsolete comment from rautils/ConcatConstant, issue reported/initial patch by Marcel Kilgus in QLForum.co.uk
Commit consists out of
  • M compiler/rautils.pas


Also accept s80bit real constants when FPC_SOFT_FPUX80 macro is defined
Commit consists out of
  • M compiler/llvm/agllvm.pas


* backported vlink map file generation to other targets using vlink: Amiga, Atari and ZXSpectrum
Commit consists out of
  • M compiler/systems/t_amiga.pas
  • M compiler/systems/t_atari.pas
  • M compiler/systems/t_zxspectrum.pas


+ Xtensa: FMA support
Commit consists out of
  • M .gitattributes
  • M compiler/xtensa/ncpuadd.pas
  • M compiler/xtensa/ncpuinl.pas
  • M tests/test/tfma1.inc
  • A tests/test/tfma1xtensa.pp


+ Xtensa: make use of the LSX/SSX instructions
Commit consists out of
  • M compiler/xtensa/agcpugas.pas
  • M compiler/xtensa/cgcpu.pas


* Xtensa: cleanup of getreferencestring
Commit consists out of
  • M compiler/xtensa/agcpugas.pas


+ added coloured compiler output support for OS/2 and DOS targets, platform-specific parts refactored to a standalone unit to remove the heap of ifdefs in unit comphook
Commit consists out of
  • M .gitattributes
  • M compiler/comphook.pas
  • A compiler/comptty.pas


sinclairql: added platform specific options to allow specifying executable metadata format
Commit consists out of
  • M compiler/globals.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


sinclairql: drop support for the BASIC loader, write Q-emuLator or XTcc compatible metadata to the executable instead. based on a patch by Marcel Kilgus in qlforum.co.uk
Commit consists out of
  • M compiler/systems/t_sinclairql.pas


sinclairql: mark the qhdr metadata format as default in the help text
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Add missing llvm directory for ppu unit compilation
Commit consists out of
  • M compiler/utils/Makefile
  • M compiler/utils/Makefile.fpc


* when getting an llvm temporary recorddef, recurse into arrays rather than
treating them as opaque defs. This is required to ensure that the temporary
recorddef for all x86-64 function results are the same on the caller and
callee side, as we allocate new arrays when generating them
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* pass lp64d to GNU AS for abi_riscv_hf to get the right ABI set
Commit consists out of
  • M compiler/riscv/agrvgas.pas


* .def must be set on linux else it might be that the created executable is
deleted after compilation
Commit consists out of
  • M compiler/systems/i_linux.pas


Allow easier disabling of $inline on, by using -dDISABLE_INLINE
Commit consists out of
  • M compiler/fpcdefs.inc


Improve CRC_checksum testing code with -dDEBUG_UNIT_CRC_CHANGES -dTest_Double_checksum -dTest_Double_checksum_write
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/ppu.pas


Add {$i fpcdefs.inc} to units that do not have that include
Commit consists out of
  • M compiler/cepiktimer.pas
  • M compiler/z80/cpuinfo.pas


bugfix internal assembler-reader x86 opsize local var
Commit consists out of
  • M compiler/x86/rax86.pas
  • M tests/utils/avx/avxopcodes.pas


bugfix internal assembler-reader x86 opsize local var
Commit consists out of
  • M compiler/x86/rax86.pas
  • M tests/utils/avx/avxopcodes.pas


Fix compilation with DEBUG_PPU macro set
Commit consists out of
  • M compiler/entfile.pas


* do not include fpcdefs in the cepiktimer unit
Commit consists out of
  • M compiler/cepiktimer.pas


+ factor out PostProcessELFExecutable
+ write executable section size on linux
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems/t_embed.pas
  • M compiler/systems/t_linux.pas


* take care of po_noreturn in more cases
Commit consists out of
  • M compiler/m68k/cgcpu.pas
  • M compiler/ncgutil.pas


* Fix for Mantis 0038122: when a deref node is passed as a Self parameter for a type helper (which is a var parameter) we need to pass the non-derefentiated value so that the data it points to can be modified by the helper's method (this is Delphi compatible)
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/ncal.pas
  • A tests/test/tthlp29.pp
  • A tests/webtbs/tw38122.pp


* Improve Test_Double_checksum with Test_Double_checksum_write CRC testing code.
Pass the three checksum arrays from ppufile to module owner,
to be able to check that the checksums computed at the time pf ppu writing
are compatible with the ones computed at interface level.
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/ppu.pas


* version update
Commit consists out of
  • M compiler/ppc68k.lpi


+ #QLvember work: stack frame optimization for m68k
Commit consists out of
  • M compiler/m68k/cgcpu.pas
  • M compiler/psub.pas


* check if an invisible parameter for the result occupies parameter space
Commit consists out of
  • M compiler/psub.pas


working on new testmethods (memref-operands)
Commit consists out of
  • M compiler/ppcx64.lpi
  • M tests/utils/avx/asmtestgenerator.pas
  • M tests/utils/avx/avxopcodes.pas


working on new testmethods (memref-operands)
Commit consists out of
  • M compiler/ppcx64.lpi
  • M tests/utils/avx/asmtestgenerator.pas
  • M tests/utils/avx/avxopcodes.pas


working on new testmethods memref operands
Commit consists out of
  • M compiler/x86/rax86.pas
  • M tests/utils/avx/avxopcodes.pas


working on new testmethods memref operands
Commit consists out of
  • M compiler/x86/rax86.pas
  • M tests/utils/avx/avxopcodes.pas


* allow an AT&T suffix for movabs
Commit consists out of
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc


+ -Xa option: generate code which allows to use more than 2 GB of static data on 64 Bit targets
+ implemented support for x86-64
* more than 2 GB static data requires to use the --no-relax option on linux
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems/t_linux.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/x86/cgx86.pas
  • M tests/tbs/tb0528.pp
  • M tests/webtbs/tw17236.pp


+ range check enumeration array indicies, range checking is after all a safety mean
Commit consists out of
  • M compiler/nmem.pas


working on new testmethods (memref-operands)
Commit consists out of
  • M compiler/x86/rax86.pas


working on new testmethods (memref-operands)
Commit consists out of
  • M compiler/x86/rax86.pas


Add internalerror when V_Error level is used in Test_double_checksum code, only with TEST_CRC_ERROR macro set
Commit consists out of
  • M compiler/ppu.pas


Apply patch proposed by J. Gareth Moreton in:
bug report 000036882: [Feature] Class and record definition XML dump extension

These patches extend the node dump feature (enabled with DEBUG_NODE_XML)
so it also dumps class and record definitions to the XML file. They are contained within tags.
Currently only fields and constants are dumped to the XML file. Methods, constant and variable definitions may be added later.
Commit consists out of
  • M compiler/node.pas
  • M compiler/psub.pas
  • M compiler/verbose.pas


* dir_push might not flush pending switch changes but has to read the pending
record if needed
Commit consists out of
  • M compiler/scandir.pas


working on internal assembler-reader x86 opsize local var
Commit consists out of
  • M compiler/x86/rax86.pas


working on internal assembler-reader x86 opsize local var
Commit consists out of
  • M compiler/x86/rax86.pas


Fix i8086 compiler failure due to move of printnodeindention variable into verbose unit in commit 0047658
Commit consists out of
  • M compiler/i8086/n8086con.pas


* Second patch xml-node-dump-defs.patch from J. Gareth Moreton from bug report 36882.
With same changes to ensure that xmllint find no errors in generated xml files.
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symtype.pas
  • M compiler/verbose.pas


+ add endsym to ConcatConstSymbol
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/raatt.pas
  • M compiler/rautils.pas
  • M compiler/x86/rax86int.pas


Fix z80 compiler failure after change to ConcatConstSymbol in commit 0047668
Commit consists out of
  • M compiler/z80/raz80asm.pas


working on new testmethods and bug-fixing size of (memref-operands | global and local variable
Commit consists out of
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/ppcx64.lpi
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664tab.inc
  • M tests/utils/avx/avxopcodes.pas


working on new testmethods and bug-fixing size of (memref-operands | global and local variable
Commit consists out of
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/ppcx64.lpi
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664tab.inc
  • M tests/utils/avx/avxopcodes.pas


* fix in 0047632 should be enabled for all targets as it is a stack tainting
parameter
Commit consists out of
  • M compiler/psub.pas


bugfix internal assembler-reader x86 opsize local va
Commit consists out of
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/ppcx64.lpi
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664tab.inc


bugfix internal assembler-reader x86 opsize local va
Commit consists out of
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/ppcx64.lpi
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664tab.inc


working on new testmethods and bug-fixing size of (memref-operands | global and local variable
Commit consists out of
  • M compiler/x86/rax86.pas
  • M tests/utils/avx/asmtestgenerator.pas
  • M tests/utils/avx/avxopcodes.pas


working on new testmethods and bug-fixing size of (memref-operands | global and local variable
Commit consists out of
  • M compiler/x86/rax86.pas
  • M tests/utils/avx/asmtestgenerator.pas
  • M tests/utils/avx/avxopcodes.pas


* don't do x*x -> optimziation for xtensa as it causes a recursive call in sqr(...)
Commit consists out of
  • M compiler/nadd.pas


Raise internalerror inside RemoveCurentP is called with p=hp1, because it leads to using a class instance after it has been freed
Commit consists out of
  • M compiler/aoptobj.pas


Avoid internalerror in RemoveCurrentP for arm compiler
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* cleanup merge overlefts
Commit consists out of
  • M compiler/ninl.pas


+ min/max intrinsics for internal use by the compiler
Commit consists out of
  • M compiler/compinnr.pas
  • M compiler/ncginl.pas
  • M compiler/ninl.pas
  • M compiler/optcse.pas


+ replace appropriate if statements by min/max intrinsics
+ support min/max intrinsic on xtensa
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/nflw.pas
  • M compiler/nutils.pas
  • M compiler/xtensa/ncpuinl.pas


+ project file for PowerPC64LE
Commit consists out of
  • M .gitattributes
  • A compiler/ppcppc64le.lpi


+ read 64-Bit ELF executable info correctly
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems/t_linux.pas


* compilation fixed
Commit consists out of
  • M compiler/nflw.pas


* x86 change information updated
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* (modified) patch by Christo Crause: ESP8266 doesn't support min/max instructions, resolves 0038175
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/xtensa/cpuinfo.pas


* patch Christo Crause: Use LDS for 8 bit references, resolves 0038173
Commit consists out of
  • M compiler/cgobj.pas


+ min/max support for x86
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/x86/nx86inl.pas


* quick fix for llvm compilation
Commit consists out of
  • M compiler/nflw.pas


* limit min/max optimization to fastmath for now, as the NaN handling is not working yet
Commit consists out of
  • M compiler/nflw.pas


working on internal assembler-reader x86 opsize local var
Commit consists out of
  • M compiler/x86/rax86.pas


working on internal assembler-reader x86 opsize local var
Commit consists out of
  • M compiler/x86/rax86.pas


* Adapted from patch node-dump-pass-1.patch submitted by J. Gareth Moreton from bug report 38156.
This patch extends the DEBUG_NODE_XML debug feature by also outputting,
to the *-node-dump.xml files, the node tree as it appears after the first pass,
since it often contains many more internal nodes like temporary allocations that may need
to be evaluated for debugging and development purposes, or node-level optimisation opportunities.
Commit consists out of
  • M compiler/psub.pas


+ added explanation for min/max intrinsics
* prepared x86 implementation for proper NaN handling
Commit consists out of
  • M compiler/compinnr.pas
  • M compiler/x86/nx86inl.pas


Fix bug introduced in commit 0047709, by only calling node_complexity if first pass was already done (bug report 38183)
Commit consists out of
  • M compiler/node.pas


* handle min/max properly if it is applied to NaNs
* test extended
Commit consists out of
  • M compiler/nflw.pas
  • M tests/test/tminmax.pp


Fix pos field closing in XML node output after commit 47720
Commit consists out of
  • M compiler/node.pas


+ m68k: JSR, RTS to JMP optimization
Commit consists out of
  • M compiler/m68k/aoptcpu.pas
  • M compiler/m68k/cpubase.pas


m68k: in g_concatcopy, check the actual alignment of references being copied rather than always excluding word and dword sized direct copies on a 68000
Commit consists out of
  • M compiler/m68k/cgcpu.pas


cleanup bugfix internal assembler-reader x86 opsize local/global var
Commit consists out of
  • M compiler/x86/rax86.pas


cleanup bugfix internal assembler-reader x86 opsize local/global var
Commit consists out of
  • M compiler/x86/rax86.pas


amiga: fixed the recently added link map generation to work properly. needs recent vlink to work
Commit consists out of
  • M compiler/systems/t_amiga.pas


* fix regression introduced with 0047625 for Mantis 0038122: when checking for a dereferentiation of the Self parameter subscript and vec nodes need to be kept
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/ncal.pas
  • A tests/webtbs/tw38122b.pp


* made optimization JSR, RTS to JMP more bullet proof, added comment
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


* m68k: MOVE, TST, Jxx/Sxx to MOVE, Jxx optimization
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


* Try to read command line exec name on linux, using argv[0], in order to be able
to use the symbolic link name instead of the real executable name.
This allows to use symbolic links to gppc386, named gppc1
to be able to launch ppc1 under gdb, as it is already possible
under OpenBSD (which returns the command line name via paramstr(0),
or under Windows if is used (generated by mklink).
+ Generate errors if compiler executable is not found, or if gdb binary
is not found.
Commit consists out of
  • M compiler/utils/gppc386.pp


* allow absolute variables with an address to be used as syscall base
Commit consists out of
  • M compiler/pdecsub.pas


* m68k: proper values for first_*_reg
Commit consists out of
  • M compiler/m68k/cpubase.pas


+ m68k: LEA, MOVE(M) to MOVE(M) predecremented optimization and MOVE(M), LEA to MOVE(M) postincremented optimization
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


* call node_complexity correctly in order_parameters when sorting parameters
Commit consists out of
  • M compiler/ncal.pas


+ optimize if x>a then x:=a; into min(a,x);, similiar for max
* test extended
Commit consists out of
  • M compiler/nflw.pas
  • M tests/test/tminmax.pp


* x86: apply VOpVmov2VOp optimization to vmins*/vmaxs*
Commit consists out of
  • M compiler/x86_64/aoptcpu.pas


* min/max optimization on x86 can be applied now without fastmath as NaN is handled properly now
Commit consists out of
  • M compiler/nflw.pas


Fix ash_savefregp_x handling, as revealed by range check error
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* cleanup
Commit consists out of
  • M compiler/psub.pas


* improved change information
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


Fix compilation failure for avr compiler with -dDEBUG_NODE_XML, to fix bug report 38222
Commit consists out of
  • M compiler/verbose.pas


cleanup and add comments to div. vcvt.. opcodes
Commit consists out of
  • M compiler/x86/x86ins.dat


cleanup and add comments to div. vcvt.. opcodes
Commit consists out of
  • M compiler/x86/x86ins.dat


cleanup x86ins.dat
Commit consists out of
  • M compiler/x86/x86ins.dat


cleanup x86ins.dat
Commit consists out of
  • M compiler/x86/x86ins.dat


cleanup x86ins.dat
Commit consists out of
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664tab.inc


cleanup x86ins.dat
Commit consists out of
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664tab.inc


* apply doremoveinttypeconvs to unary minus and not on 8 and 16 bit targets as well
Commit consists out of
  • M compiler/ncnv.pas


* do an unsigned division if one operand is unsigned an the other
one a constant in its range, resolves 0038180
Commit consists out of
  • M compiler/nmat.pas
  • M compiler/x86/nx86mat.pas


* x86-64: correctly translate and with large constants in mod optimizations, resolves 0038164
Commit consists out of
  • M .gitattributes
  • M compiler/x86/nx86mat.pas
  • A tests/webtbs/tw38164.pp


* change def parameter of single_type() from var to out (part of patch by Blaise.ru)
Commit consists out of
  • M compiler/ptype.pas


* apply slightly adjusted patch by Blaise.ru which moves parsing of result types to a separate functions thus ensuring that File types can't be used for procedure variables (just like they already couldn't be used as a result type for normal functions)
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pdecsub.pas
  • M compiler/ptype.pas
  • A tests/tbf/tb0273.pp


working on internal assembler-reader x86 opsize local/global var
Commit consists out of
  • M compiler/x86/rax86.pas


working on internal assembler-reader x86 opsize local/global var
Commit consists out of
  • M compiler/x86/rax86.pas


* Aarch64: fix 32 bit div operations with constant denominators, resolves 0038225
Commit consists out of
  • M .gitattributes
  • M compiler/aarch64/ncpumat.pas
  • A tests/webtbs/tw38225.pp


working on new testmethods and bug-fixing size of (memref-operands | global and local variable - append correct gas-suffix on any vcvt.. opcodes
Commit consists out of
  • M compiler/x86/rax86.pas


working on new testmethods and bug-fixing size of (memref-operands | global and local variable - append correct gas-suffix on any vcvt.. opcodes
Commit consists out of
  • M compiler/x86/rax86.pas


+ patch by J. Gareth Moreton: some new x86 assembler optimizations, resolves 0038130
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* apply patch by Blaise.ru to enable the correct generation of names for classes/interfaces inside local symtables; these will be required for reference function types which are in fact interfaces and classes, this does not mean that ordinary classes can be declared inside functions
Note: no test as the functionality is not yet used
Commit consists out of
  • M compiler/symdef.pas


* fix the m68k cross-builds by disabling part of 0047824
Commit consists out of
  • M compiler/x86/aoptx86.pas


external gas-assembler - handling special opcodes with multiple memref-size e.g. vfpclassps/pd - if operand-opsize < S_XMM =>> use memref-min-size
Commit consists out of
  • M compiler/i386/i386atts.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/ppcx64.lpi
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc


external gas-assembler - handling special opcodes with multiple memref-size e.g. vfpclassps/pd - if operand-opsize < S_XMM =>> use memref-min-size
Commit consists out of
  • M compiler/i386/i386atts.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/ppcx64.lpi
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc


Appply fix from Gareth Moreton in bug report 38247
Commit consists out of
  • M compiler/x86/aoptx86.pas


* implemented UseAVX512 properly
+ make use of VREDUCE* for frac(...) if AVX512QD is a available
Commit consists out of
  • M compiler/x86/cpubase.pas
  • M compiler/x86/nx86inl.pas
  • M compiler/x86_64/cpuinfo.pas


* i386 compilation fixed
Commit consists out of
  • M compiler/i386/cpuinfo.pas


* Ch_ information for vreduce* fixed
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* min/max optimization needs to check both operands of the if condition, even if no else-statement is passed, resolves 0038249
Commit consists out of
  • M .gitattributes
  • M compiler/nflw.pas
  • M tests/test/tminmax.pp
  • A tests/webtbs/tw38249.pp


Fix compilation of i8086 compiler after commit 0047840
Commit consists out of
  • M compiler/x86/nx86inl.pas


* lines with 255 chars a little bit long, reformated them
Commit consists out of
  • M compiler/nflw.pas


m68k: the LEA+MOVEM to MOVEM optimization is not feasible on a ColdFire
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


+ Xtensa: support large stack frames for the call0 abi
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


m68k: new CPU capability - the LINK instruction supports LONG displacements (68020+)
Commit consists out of
  • M compiler/m68k/cpuinfo.pas


+ support got modifier on labels
Commit consists out of
  • M .gitattributes
  • M compiler/x86/rax86att.pas
  • A tests/tbs/tb0682.pp


* fixed llvm shadow symtable construction in case fields are reordered
(-Ooorderfields) and hence their offsets are no longer monotonically rising
* also fixed padding for variant bitpacked records in llvm shadow symtable
Commit consists out of
  • M compiler/symtable.pas


* generate more efficient code for trunc(currency), trunc(comp), and
round(comp) on platforms where currency and comp are handled using the FPU
o also fixes trunc(comp) and trunc(currency) compilation for x86 on LLVM
with -Oofastmath
* add missing removal of excess fpu precision typecasts for trunc/round
Commit consists out of
  • M .gitattributes
  • M compiler/defutil.pas
  • M compiler/ninl.pas
  • A tests/tbs/tb0683.pp


- revert 0047208
* properly fix the internalerror it hid: only replace the local symbols
migrated to the parentfpstruct right before generating debug information,
so that internally generated self/result loads during optimisation passes
don't get confused by the replacement absolutevarsyms (those are normally
never encountered during optimisation, as regular absolutevarsyms are
replaced during parsing)
Commit consists out of
  • M compiler/nutils.pas
  • M compiler/optdfa.pas
  • M compiler/psub.pas


* use new TSym.EscapedRealName property when creating new symbols with the
same name as existing symbols
Commit consists out of
  • M compiler/symbase.pas
  • M compiler/symcreat.pas


* factored out the creation of loadnodes for special variables/parameters
Commit consists out of
  • M compiler/nld.pas
  • M compiler/nutils.pas
  • M compiler/symsym.pas


+ $codealign directive accepts setting maxcrecord
Commit consists out of
  • M compiler/dirparse.pas


external gas assembler: special handling for correct suffix in vfpclass-opcodes
Commit consists out of
  • M compiler/x86/rax86.pas


external gas assembler: special handling for correct suffix in vfpclass-opcodes
Commit consists out of
  • M compiler/x86/rax86.pas


* fix comment typo mentioned by Bart
Commit consists out of
  • M compiler/psub.pas


* reverted 0047862
Commit consists out of
  • M compiler/dirparse.pas


internal assembler-reader x86 opsize local/global var - cleanup
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M tests/utils/avx/asmtestgenerator.pas


internal assembler-reader x86 opsize local/global var - cleanup
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M tests/utils/avx/asmtestgenerator.pas


working on internal assembler-reader x86 opsize local/global var
Commit consists out of
  • M compiler/x86/rax86.pas


working on internal assembler-reader x86 opsize local/global var
Commit consists out of
  • M compiler/x86/rax86.pas


* fixed error in load_fpu_location triggered by round() (fixes webtbs/tw32671
on i386 after 0047854)
Commit consists out of
  • M compiler/x86/nx86inl.pas


+ implement align directive for records, resolves 0028927
Commit consists out of
  • M .gitattributes
  • M compiler/ptype.pas
  • A tests/webtbs/tw28927.pp


* correctly handle inlined exits in dfa, resolves 0038259
Commit consists out of
  • M .gitattributes
  • M compiler/optdfa.pas
  • M compiler/optutils.pas
  • A tests/webtbs/tw38259.pp


internal assembler-reader x86 opsize local/global var - cleanup
Commit consists out of
  • M compiler/x86/aasmcpu.pas


internal assembler-reader x86 opsize local/global var - cleanup
Commit consists out of
  • M compiler/x86/aasmcpu.pas


* Fixed missing slash in fppkg.cfg when installed in the root
Commit consists out of
  • M compiler/utils/samplecfg


* do not check inlined exit nodes for unset results, resolves 0038259
Commit consists out of
  • M compiler/optdfa.pas
  • M tests/webtbs/tw38259.pp


* first part of fixing 0038267: do not bail out early during constant folding
if the constant is 1 or -1
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw38267a.pp


* refactored constant folding code
Commit consists out of
  • M compiler/nadd.pas


* properly fold string+string const+string const., resolves 0038267
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • A tests/webtbs/tw38267b.pp


internal assembler-reader x86 (local/global var) - validate asm-opcode-attsuffix and memrefsize
Commit consists out of
  • M compiler/i386/i386atts.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc


internal assembler-reader x86 (local/global var) - validate asm-opcode-attsuffix and memrefsize
Commit consists out of
  • M compiler/i386/i386atts.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc


+ fold also (string const+(string const+string var))
* string tree folding code moved into level 2 opt. block
Commit consists out of
  • M compiler/nadd.pas
  • M tests/webtbs/tw38267b.pp


* instead of blindly consuming whatever comes next trigger an explicit error if the parsed expression does not match for "INDEX ordexpr" or "NAME strexpr"
+ added tests
Commit consists out of
  • M .gitattributes
  • M compiler/pexports.pas
  • A tests/webtbf/tw38289a.pp
  • A tests/webtbf/tw38289b.pp


* always add a generic dummy if it is a procsym
Commit consists out of
  • M compiler/pgenutil.pas


* ensure that the dummy symbol is registered if it's added due to a routine
Commit consists out of
  • M compiler/pdecsub.pas


* use a case statement instead of nested if-then statements
Commit consists out of
  • M compiler/pexpr.pas


* also handle call nodes when determining the generic symbol for inline specializations
Commit consists out of
  • M compiler/pexpr.pas


* when only a symbol name is provided to generate_specialization_phase1 allow a symbol table to be provided as well
Commit consists out of
  • M compiler/pexpr.pas
  • M compiler/pgenutil.pas


* correctly handle the case should the generic dummy symbol be a procsym instead of a typesym
Commit consists out of
  • M compiler/pexpr.pas
  • M compiler/symtable.pas


* Delphi does not allow a generic method to be overloaded by a non generic type of the same name (unlike for generic types and non generic routines); this is probably done to simplify the implementation of implicit specializations of generic methods so we do this as well. For this we change the dummy symbol for generic routines from a typesym to a procsym
+ added tests

Note: what Delphi /does/ allow however is to overload a generic routine with a generic type... go figure. :/ We currently don't allow that
Commit consists out of
  • M .gitattributes
  • M compiler/pdecsub.pas
  • A tests/test/tgenfunc24.pp
  • A tests/test/tgenfunc25.pp
  • A tests/test/tgenfunc26.pp
  • A tests/test/tgenfunc27.pp


* fix compilation on targets that use Stabs debug information: ignore generic dummy symbols with no procdefs for generating stabs data
Commit consists out of
  • M compiler/dbgstabs.pas


* clean up
Commit consists out of
  • M compiler/nadd.pas


+ added newly used opcodes to avx_opcode_only_op0_may_be_memref
Commit consists out of
  • M compiler/x86/rgx86.pas


-- Rückwärtiges Zusammenführen von 0047837 bis 0047033 in »ppcx64.lpi«:
U ppcx64.lpi
-- Aufzeichnung der Informationen für rückwärtiges Zusammenführen von 0047837 bis 0047033 in »ppcx64.lpi«:
G ppcx64.lpi
-- Entfernung der Zusammenführungsinformationen von »ppcx64.lpi«:
U ppcx64.lpi
Commit consists out of
  • M compiler/ppcx64.lpi


-- Rückwärtiges Zusammenführen von 0047837 bis 0047033 in »ppcx64.lpi«:
U ppcx64.lpi
-- Aufzeichnung der Informationen für rückwärtiges Zusammenführen von 0047837 bis 0047033 in »ppcx64.lpi«:
G ppcx64.lpi
-- Entfernung der Zusammenführungsinformationen von »ppcx64.lpi«:
U ppcx64.lpi
Commit consists out of
  • M compiler/ppcx64.lpi


* use str(...) instead of typinfo unit
Commit consists out of
  • M compiler/x86/aasmcpu.pas


* use str(...) instead of typinfo unit
Commit consists out of
  • M compiler/x86/aasmcpu.pas


+ patch by J. Gareth Moreton: Advanced MOVZX optimisations, resolves 0038294
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* fix for Mantis 0038310: ignore procsyms that have no procdefs for checking overloads, or more precisely to stop checking for overloads; these are generic dummy symbols
+ added (simplified) tests
Commit consists out of
  • M .gitattributes
  • M compiler/htypechk.pas
  • A tests/webtbs/tw38310a.pp
  • A tests/webtbs/tw38310b.pp
  • A tests/webtbs/tw38310c.pp


* weight currency->float conversions the same regardless if
the currency type is handled by the integer unit or the x87 fpu,
resolves 0038309
Commit consists out of
  • M .gitattributes
  • M compiler/defcmp.pas
  • A tests/webtbs/tw38309.pp


* have the generic dummy symbols for procsyms keep track of their overloaded generic procsyms so that they can be easily found (will be needed for implicit specializations)
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/ppu.pas
  • M compiler/symsym.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/utils/ppuutils/ppuout.pp


* llvm: only set custom parameter alignments for byval parameters, the rest
is handled automatically by llvm (and since llvm 11.0 you get an error if
you specify an alignment for them anyway)
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* throw a proper error if a contructur has a type parameter in delphi mode, resolves 0037217
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecsub.pas
  • A tests/webtbf/tw37217.pp


+ AddLea2Lea optimization
* improved LeaLea2Lea
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* patch by J. Gareth Moreton to resolve bug introduced in the first patch, resolves 0038294
Commit consists out of
  • M compiler/x86/aoptx86.pas


* simplified code for JccAdd2SetccAdd optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton to fix MovzxCmp2CmpMovzx, resolves 0038339
Commit consists out of
  • M compiler/x86/aoptx86.pas


* clear up message that a global generic references a static symbol a bit
Commit consists out of
  • M compiler/msg/errore.msg


* regenerate msg*.inc files
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* add parameter cleanup nodes to the call cleanup block (mantis 0038316)
Commit consists out of
  • M .gitattributes
  • M compiler/ncal.pas
  • A tests/webtbs/tw38316.pp


* do not extend 8 bit return values to 32 bit when loading them into eax,
this is not required by the api, neither does e.g. clang it
Commit consists out of
  • M compiler/x86_64/cpupara.pas


cleanup bugfix 000037785
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas


cleanup bugfix 000037785
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas


cleanup + add internal error if all asmr_e_not_supported_combination_attsuffix_memrefsize_type are reported
Commit consists out of
  • M compiler/x86/aasmcpu.pas


cleanup + add internal error if all asmr_e_not_supported_combination_attsuffix_memrefsize_type are reported
Commit consists out of
  • M compiler/x86/aasmcpu.pas


cleanup
Commit consists out of
  • M compiler/x86/rax86.pas


cleanup
Commit consists out of
  • M compiler/x86/rax86.pas


* avoid widening of shl operations, this is not necessary for them either
Commit consists out of
  • M compiler/ncnv.pas


+ support R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/x86_64/cpuelf.pas


* patch by J. Gareth Moreton: refactor OptPass2Jcc, resolves 0038343
Commit consists out of
  • M compiler/x86/aoptx86.pas


* simplify tx8664shlshrnode.pass_generate_code, it should not mess with the result type, this
is a matter of the type check pass
Commit consists out of
  • M compiler/x86_64/nx64mat.pas


* x86: some fixes to enable 8 and 16 bit operations
Commit consists out of
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/x86_64/nx64mat.pas


* arm*: fix SxtbAndImm2Sxtb (now SxtbAndImm2Uxtb) optimization as proposed by Pierre and Gareth
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* similiar fix to 0048167 for OptPass1SXTH
Commit consists out of
  • M compiler/armgen/aoptarm.pas


+ remove try ... finally statements if the finally block is empty
Commit consists out of
  • M compiler/nflw.pas


Fix clearing of single type register variable in initialize_regvars method for ARM cpu (with -Ooregvar)
Commit consists out of
  • M compiler/hlcgobj.pas


* patch by J. Gareth Moreton: Unitialized result variable fix on non-x86 debug builds, resolves 0038371
Commit consists out of
  • M compiler/nbas.pas


Avoid inlining of real constant for m68k if type is not best precision
Commit consists out of
  • M compiler/m68k/n68kadd.pas


* arm/aarch64: patch by J. Gareth Moreton: fix register allocation information for Mov2None 2, should resolve 0038055
Commit consists out of
  • M compiler/armgen/aoptarm.pas


Reset paratargetdbg to dbg_none when handling -g- option, to really suppress debug information generation
Commit consists out of
  • M compiler/options.pas


* patch by J. Gareth Moreton: aarch64 EXTDEBUG fixes and extensions, resolves 0038383
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/aarch64/cgcpu.pas


* give a proper error if macros are too deeply nested
Commit consists out of
  • M .gitattributes
  • M compiler/scanner.pas
  • A tests/webtbf/tw38287.pp


* Removed/ifdefed lots of unused variables.
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/aggas.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/avr/agavrgas.pas
  • M compiler/avr/aoptcpu.pas
  • M compiler/avr/cgcpu.pas
  • M compiler/avr/cpupara.pas
  • M compiler/avr/navrmat.pas
  • M compiler/avr/raavrgas.pas
  • M compiler/avr/rgcpu.pas
  • M compiler/i8086/cpupara.pas
  • M compiler/i8086/n8086tcon.pas
  • M compiler/jvm/agjasmin.pas
  • M compiler/jvm/cpubase.pas
  • M compiler/jvm/njvminl.pas
  • M compiler/jvm/njvmmat.pas
  • M compiler/nadd.pas
  • M compiler/nbas.pas
  • M compiler/ncginl.pas
  • M compiler/ogomf.pas
  • M compiler/optloop.pas
  • M compiler/psub.pas
  • M compiler/scandir.pas
  • M compiler/symdef.pas
  • M compiler/systems/t_bsd.pas
  • M compiler/systems/t_darwin.pas
  • M compiler/systems/t_embed.pas
  • M compiler/systems/t_freertos.pas
  • M compiler/systems/t_win.pas
  • M compiler/systems/t_win16.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86inl.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/x86/nx86set.pas
  • M compiler/x86/rax86.pas


* Corrected visibility of overridden methods.
Commit consists out of
  • M compiler/avr/navradd.pas
  • M compiler/i8086/n8086mem.pas
  • M compiler/i8086/symcpu.pas
  • M compiler/jvm/hlcgcpu.pas
  • M compiler/nflw.pas
  • M compiler/ogomf.pas


* Commented out some unused (yet?) local variables.
Commit consists out of
  • M compiler/x86/aasmcpu.pas


* Fixed a wrong code caused by a typo. It has been revealed by a note about an unused var.
Commit consists out of
  • M compiler/pgenutil.pas


* Fixed 0044145. To test if a constant is declared it is needed to use {$if declared()} instead of {$if defined()}.
Commit consists out of
  • M compiler/rgobj.pas


* Commented out the unneeded/unfinished code.
Commit consists out of
  • M compiler/psabiehpi.pas


* Removed/ifdefed the assigned and unused variables.
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/jvm/dbgjasm.pas
  • M compiler/jvm/njvmmem.pas
  • M compiler/nflw.pas
  • M compiler/ogomf.pas
  • M compiler/pgenutil.pas
  • M compiler/psabiehpi.pas
  • M compiler/systems/t_freertos.pas
  • M compiler/systems/t_win16.pas
  • M compiler/x86/cgx86.pas


* Removed more assigned but unused vars.
Commit consists out of
  • M compiler/avr/cgcpu.pas
  • M compiler/avr/cpupara.pas
  • M compiler/rgobj.pas


* Corrected method's visibility.
Commit consists out of
  • M compiler/arm/aoptcpu.pas


+ modified patch by Christo Crause: if the target support, the switch -Xu can be used to generate the executable as an uf2 file
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems.pas
  • M compiler/systems/t_embed.pas


* Removed in_x86mm_last (the duplicate no and unused) from the tinlinenumber enum.
Commit consists out of
  • M compiler/x86/cx86mminnr.inc


* Fixed value of the LF_PAD13 enum element.
Commit consists out of
  • M compiler/dbgcodeview.pas


* do not output error numbers for options
Commit consists out of
  • M compiler/verbose.pas


Add cs_generate_uf2 entry into ppudump
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* missing programs added to rules, so make clean works better
Commit consists out of
  • M compiler/utils/Makefile
  • M compiler/utils/Makefile.fpc


+ write message number to docs
+ enclose arguments in text angles
Commit consists out of
  • M compiler/utils/msg2inc.pp


* rgobj: ungetiftemp can't be used here since it frees only temps of the tt_normal type.
Commit consists out of
  • M compiler/rgobj.pas


* compiler utils cannot depend on StrUtils
Commit consists out of
  • M compiler/utils/mkx86inl.pp
  • M compiler/utils/mkz80ins.pp


* use generic VFP type instead of VFP list prone to changes
Commit consists out of
  • M compiler/msg/errord.msg
  • M compiler/msg/errorda.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg
  • M compiler/msg/errores.msg
  • M compiler/msg/errorfi.msg
  • M compiler/msg/errorheu.msg
  • M compiler/msg/errorid.msg
  • M compiler/msg/errorn.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msg/errorru.msg
  • M compiler/msg/errorues.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* properly mangle interface wrapper names to avoid duplicate label errors, resolves 0038385
Commit consists out of
  • M .gitattributes
  • M compiler/ncgvmt.pas
  • A tests/webtbs/tw38385.pp
  • A tests/webtbs/uw38385a.pp
  • A tests/webtbs/uw38385b.pp
  • A tests/webtbs/uw38385c.pp


m68k: revert 0048224, the fix proposed in that patch was just hiding an underlying issue
Commit consists out of
  • M compiler/m68k/n68kadd.pas


* fix type conversion for array indicies if the ordinal ranges of the involved types do not overlap, resolves 0038413
Commit consists out of
  • M .gitattributes
  • M compiler/nmem.pas
  • A tests/webtbs/tw38413.pp


* handle generic with ord call of sub-range and enumeration data excluding 0 correctly, resolves 0038412
Commit consists out of
  • M .gitattributes
  • M compiler/ncon.pas
  • A tests/webtbs/tw38412.pp


* additional fix for 0048449
Commit consists out of
  • M compiler/nmem.pas


* removed accidently committed printnode
Commit consists out of
  • M compiler/nmem.pas


* the size of the CIE_pointer in an FDE is always 32 bit
Commit consists out of
  • M compiler/cfidwarf.pas


* allow sub/add nodes in constant pointer expressions, resolves 0034027
Commit consists out of
  • M .gitattributes
  • M compiler/aasmcnst.pas
  • M compiler/ngtcon.pas
  • A tests/webtbs/tw34027.pp


* create \index entries in the messages.inc for an index of message texts and numbers in the user manual
Commit consists out of
  • M compiler/utils/msg2inc.pp


bugfix 000037785 cvtsi2sd,cvtsi2ss for platform i386
Commit consists out of
  • M compiler/i386/i386atts.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc


bugfix 000037785 cvtsi2sd,cvtsi2ss for platform i386
Commit consists out of
  • M compiler/i386/i386atts.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc


+ throw a warning in ISO mode if a constant string is assigned to a char and the sizes do not match, resolves 0038439
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ncnv.pas
  • A tests/webtbf/tw38439.pp


* do not initialize unncessary register allocators
Commit consists out of
  • M compiler/arm/cgcpu.pas


* Fixed expectloc of local variables passed as a formal parameter. This issue is caught by cycling the compiler with -dEXTDEBUG. Yet the compiler can't cycle with EXTDEBUG due to other issues with wrong expectloc.
Commit consists out of
  • M compiler/ncal.pas


* more helpful message if an unknown field is accessed in the assembler reader, resolves 0038475
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/rautils.pas


- armv5 never existed (without extension), removed
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/cpuinfo.pas


* Fixed 0048650.
Commit consists out of
  • M compiler/ncal.pas


* do not mess with FPA registers if they are not available
Commit consists out of
  • M compiler/arm/cgcpu.pas


* factored out tbasecgarm.init_mmregister_allocator
Commit consists out of
  • M compiler/arm/cgcpu.pas


+ throw an error if hardware floating point operations are used in thumb(-1) mode, this is not supported
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


* arm: taicpu uses set instead of boolean to store instruction states
+ track if an instruction is a thumb instruction in taicpu
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/raarm.pas
  • M compiler/assemble.pas
  • M compiler/sparc/cpuelf.pas


* forgotten part of last commit
Commit consists out of
  • M compiler/arm/agarmgas.pas


* arm thumb1: several fixes for the internal assembler writer
Commit consists out of
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/armins.dat
  • M compiler/arm/armtab.inc
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/narmset.pas
  • M compiler/arm/raarm.pas


* initialize current_settings as early as possible so cs_debugswitch is set correctly if needed
Commit consists out of
  • M compiler/parser.pas


* ARM: NR_RETURN_ADDRESS_REG is R14
Commit consists out of
  • M compiler/arm/cpubase.pas


* arm thumb: generate proper cfi
Commit consists out of
  • M compiler/arm/cgcpu.pas
  • M compiler/cfidwarf.pas
  • M compiler/systems/i_linux.pas


* initial implementation of CFI support for arm (non-thumb)
Commit consists out of
  • M compiler/arm/cgcpu.pas
  • M compiler/cfidwarf.pas


* arm: better cfi
Commit consists out of
  • M compiler/arm/cgcpu.pas


* generate advance_loc records only if there was code/data since the last advance_loc entry
Commit consists out of
  • M compiler/cfidwarf.pas


+ (safe) heuristics to use DW_CFA_advance_loc1 in CFI
Commit consists out of
  • M compiler/cfidwarf.pas


+ generate initial cfi for aarch64
Commit consists out of
  • M compiler/aarch64/cpubase.pas
  • M compiler/cfidwarf.pas


* more cfi support for aarch64
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


m68k: extend the the register to full size, when multiplied by an immediate in memory references. Patch based on the work of Pierre Muller.
Commit consists out of
  • M compiler/m68k/n68kmem.pas


* patch by Alfred to fix cutils.CompareVersionStrings, resolves 0038514
Commit consists out of
  • M compiler/cutils.pas


+ array defs. of open arrays are now marked by ado_OpenArray, so (internally!) zero sized array can be declared with 0..-1
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/utils/ppuutils/ppudump.pp


* string constants have a size of 0, resolves 0038504
Commit consists out of
  • M .gitattributes
  • M compiler/ncon.pas
  • M packages/fcl-db/src/export/fpxmlxsdexport.pp
  • A tests/webtbf/tw38504.pp
  • A tests/webtbf/tw38504b.pp


* correctly set the defowner of the exception symtable to the surrounding routine as suggested by Blaise.ru
Commit consists out of
  • M compiler/pstatmnt.pas


+ add modeswitch for anonymous function and function references
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/utils/ppuutils/ppudump.pp


* allow in-operator to be used on type parameters, resolves 0038497
Commit consists out of
  • M .gitattributes
  • M compiler/nset.pas
  • A tests/webtbs/tw38497.pp


* Darwin targets that don't support link order sym files can't smart link
vectorized sections
Commit consists out of
  • M compiler/aasmcnst.pas


* attempt to fix bitpacked records with qwords in them (tw36156) when cross-compiling to big endian targets from x86. essentially the x86 shifting workarounds in the code already weren't covering all corner cases.
Commit consists out of
  • M compiler/ngtcon.pas


bugfix 000037785 cvtsi2ss and cvtsi2sd in x86_64 { att}
Commit consists out of
  • M compiler/ppcx64.lpi
  • M compiler/x86/itcpugas.pas


bugfix 000037785 cvtsi2ss and cvtsi2sd in x86_64 { att}
Commit consists out of
  • M compiler/ppcx64.lpi
  • M compiler/x86/itcpugas.pas


* correctly allocate edx for mulx, resolves 0038533
Commit consists out of
  • M compiler/i386/n386add.pas


Apply patch proposed by J. Gareth Moreton in bug report 000038527

The patch reworks the LeaLea2Lea optimisation and hopefully fixes the bug (admittedly by adding a brand new optimisation!).
Commit consists out of
  • M .gitattributes
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw38527.pp


m68k: removed some helper function which was added, but in the end it never saw any use
Commit consists out of
  • M compiler/m68k/n68kmem.pas


m68k: adjusted some max alignment values for m68k-linux based on i386-linux, because the ELF loader on m68k should be able to provide the same alignments for globals
Commit consists out of
  • M compiler/systems/i_linux.pas


* Remove obsolete -OG2p3 option for extcycle
+ Add extoptcycle to cycle compiler with both -dEXTDEBUG and -dDEBUG_ALL_OPT
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


Patch by Gareth Moreton
* Fix lea optimizations which lead to more failures with -O3 and -O4 options.

- LeaLea2Lea now checks to see if the index register is in use.
- For both the base and index registers, RegUsedBetween is changed to
RegModifiedBetween, since just reading the register is harmless for the
optimisation (it finds additional optimisations in the RTL as a result).
- Because I saw the mis-optimisation with MOVZX that occurred (even
though it was due to the mis-optimisation of LEA instructions), I wrote
some extra code in OptPass2Movx as a safety measure to ensure this
doesn't happen (although no additional instances of it happening have
been noted so far - best be safe than sorry).
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ added b.cc/b.cs support to AArch64 assembler reader (mantis 0038485)
Commit consists out of
  • M compiler/aarch64/racpugas.pas


* applied patch by Pierre to fix make cycle -Cr
Commit consists out of
  • M compiler/symdef.pas


+ SETcc/Mov -> SETcc optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


m68k-linux: revert maxCrecordalign to 2, as an experiment to fix some linking-against-C regressions since the alignment changes
Commit consists out of
  • M compiler/systems/i_linux.pas


* for setjmp based exception handling, get the type of the exception reason from the setjmp result
Commit consists out of
  • M compiler/cgexcept.pas
  • M compiler/ncgflw.pas
  • M compiler/psub.pas
  • M compiler/symdef.pas


* fixed JVM stack height calculation after calls returning an
implicit pointer tpe
Commit consists out of
  • M compiler/jvm/hlcgcpu.pas


* the new constant string arraydefs are also implicit pointers types for JVM
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/jvm/jvmdef.pas


* support Objective-C classes and protocols with -gw3 (mantis 0036250)
Commit consists out of
  • M .gitattributes
  • M compiler/dbgdwarf.pas
  • A tests/webtbs/tw36250.pp


* fix LLVM after 0048828
* global gotos really use the return type of fpc_setjmp to test where we come from
Commit consists out of
  • M compiler/cgexcept.pas
  • M compiler/llvm/llvmpi.pas
  • M compiler/ncgflw.pas
  • M compiler/psabiehpi.pas
  • M compiler/psub.pas
  • M compiler/symdef.pas


+ apply excess precision also to unary minus nodes
* made excess precision really working
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/nmat.pas


+ optimize (a and b) or (c and not(b)) into c xor ((c xor a) and b)
+ test
Commit consists out of
  • M .gitattributes
  • M compiler/nadd.pas
  • M compiler/nutils.pas
  • A tests/test/tandorandnot1.pp


* sar*/ro* do not call location_force_reg if not needed
Commit consists out of
  • M compiler/ncginl.pas


* do not omit location_force_reg on second operand of sar/ro* if
it is used to adapt the size of the operand
Commit consists out of
  • M compiler/ncginl.pas


* patch by J. Gareth Moreton: MOV/SHR reference optimisation, resolves 0038560
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: SubMov2LeaSub optimisation improvement, resolves 0038555
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: take care of -Os for SubMov2*, part of 0038579
Commit consists out of
  • M compiler/x86/aoptx86.pas


Add new make rule named full_targets
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* do not generate mul instructions if the mul extension is not available
Commit consists out of
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv/nrvadd.pas


* do not apply the (a and b) or (c and not(b)) into c xor ((c xor a) and b) optimziation if short boolean evaluation is used, should resolve 0038576
* improved test
Commit consists out of
  • M compiler/nadd.pas
  • M tests/test/tandorandnot1.pp


* improved last commit, better handling of boolean expressions
Commit consists out of
  • M compiler/nadd.pas


* last commit fixed, hopefully final fix
Commit consists out of
  • M compiler/nadd.pas


* Improve DEBUG_PPU code
* Move flog file closing from closefile method to destroy destructor.
* Fix write_data output into flog
Commit consists out of
  • M compiler/entfile.pas


* RiscV32: properly read references with record offsets and base register
+ RiscV32: sanity check in assembler writer
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv32/rarv32gas.pas


* unified RiscV32 and RiscV64 GAS readers
Commit consists out of
  • M .gitattributes
  • R100 compiler/riscv64/rarv.pas compiler/riscv/rarv.pas
  • M compiler/riscv/rarvgas.pas
  • M compiler/riscv32/cputarg.pas
  • D compiler/riscv32/rarv32.pas
  • D compiler/riscv32/rarv32gas.pas
  • M compiler/riscv64/cputarg.pas
  • D compiler/riscv64/rarv64gas.pas


+ initial (and so far experimental) implementation of -ix to output -i in xml format for further automated processing
Commit consists out of
  • M compiler/options.pas


+ support for .dc.a directive
* read multiple section flags
Commit consists out of
  • M compiler/raatt.pas


* finished -ix output
Commit consists out of
  • M compiler/options.pas


* RiscV: basic CFI stuff fixed
Commit consists out of
  • M compiler/cfidwarf.pas
  • M compiler/systems/i_linux.pas


* RiscV: if shared libraries are involved, we have to link always against the crt*S.o variants
Commit consists out of
  • M compiler/systems/t_linux.pas


+ RiscV: initial support of pic generation
Commit consists out of
  • M compiler/cgbase.pas
  • M compiler/riscv/aasmcpu.pas
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv64/cpubase.pas
  • M compiler/riscv64/itcpugas.pas


* riscv64-linux: generate PIC for all units as it is required for shared libraries
Commit consists out of
  • M Makefile
  • M compiler/systems/i_linux.pas
  • M rtl/Makefile
  • M rtl/linux/Makefile
  • M utils/fpcm/fpcmake.inc
  • M utils/fpcm/fpcmake.ini


Rough fix for riscv32 failure
Commit consists out of
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv32/cpubase.pas
  • M compiler/riscv32/itcpugas.pas


* RiscV: unified itcpugas.pas
Commit consists out of
  • M .gitattributes
  • R095 compiler/riscv64/itcpugas.pas compiler/riscv/itcpugas.pas
  • D compiler/riscv32/itcpugas.pas


* RiscV: integer type conversions fixed
Commit consists out of
  • M compiler/riscv32/cgcpu.pas


- cosmetics: superfluous newlines removed
Commit consists out of
  • M compiler/riscv32/cgcpu.pas


* the TFPList.List property made protected in order to discourage using it
directly, as this circumvents range checking
Commit consists out of
  • M compiler/cclasses.pas


Use uvalue field to get unsigned and avoid range check or overflow errors
Commit consists out of
  • M compiler/x86/nx86mat.pas


Avoid invalid typecast error when using -CR option
Commit consists out of
  • M compiler/htypechk.pas


+ introduced TFPList.IndexOfItem and TFPObjectList.IndexOfItem, which are like
IndexOf, but can also search backwards. The same method already exists in
FPC's classes unit.
Commit consists out of
  • M compiler/cclasses.pas


* when parsing unions, set the uniondef reference to nil in
current_module.deflist after freeing the object to prevent dangling pointers
and use after free
Commit consists out of
  • M compiler/pdecvar.pas


+ patch by J. Gareth Moreton: AddMov2LeaAdd and AddMov2Lea optimizations, resolves 0038579
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ X86: JccMovJmpMov2MovSetcc optimization
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas


* instead of registering all and then deleting non-propgetter/setter procdefs in
pdecvar.read_property_dec, don't register them by default, and then only
register them, if they are propgetter/setter. This prevents dangling pointers
in current_module.deflist and potential use-after-free bugs.
Commit consists out of
  • M compiler/pdecvar.pas


+ RiscV: initial OpAddi02Op implementation
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* RiscV64: type conversion to 8 bit improved
Commit consists out of
  • M compiler/riscv64/cgcpu.pas


* remove nf_write from the counter node when converting for loops into while loops if the counter is only read
Commit consists out of
  • M compiler/nflw.pas


* Dwarf: write variant fields only if the require features are present, resolves 0038651
Commit consists out of
  • M compiler/dbgdwarf.pas


* Add SAMD51P19A controller type. Unit generated by Michael Ring and slightly modified.
Commit consists out of
  • M .gitattributes
  • M compiler/arm/cpuinfo.pas
  • M compiler/systems/t_embed.pas
  • M rtl/embedded/Makefile
  • M rtl/embedded/Makefile.fpc
  • A rtl/embedded/arm/samd51p19a.pp


- removed unused leftovers from old t_bsd code
* no longer execute the linker via a shell script, but directly
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems/t_darwin.pas


* patch by J. Gareth Moreton: Nothing (NOP) node optimisation, resolves 0038194
Commit consists out of
  • M compiler/nbas.pas


* copy and compare the typesym inside type nodes as well
Commit consists out of
  • M compiler/nld.pas


* fix for Mantis 0038642: for enumerations with jumps Delphi behaves as follows:
- GetTypeKind returns tkEnumeration (FPC previously generated a compile error here)
- GetTypeInfo on a generic parameters returns Nil for such types (FPC previously generated a compile error here)
- GetTypeInfo otherwise generates a compile error (as before)
Commit consists out of
  • M .gitattributes
  • M compiler/ninl.pas
  • A tests/test/trtti21.pp
  • A tests/test/trtti22.pp
  • A tests/test/trtti23.pp
  • A tests/webtbs/tw38642.pp


* the offset parameter of reference_reset* must be asizeint rather than
longint (mantis 0038636)
Commit consists out of
  • M .gitattributes
  • M compiler/cgutils.pas
  • A tests/webtbs/tw38636.pp


* allow also 8 byte string constants in assembler, resolves 0028640
Commit consists out of
  • M .gitattributes
  • M compiler/raatt.pas
  • M compiler/x86/rax86int.pas
  • A tests/webtbs/tw28640.pp
  • A tests/webtbs/tw28640a.pp


* fixed assembling via pipe on Darwin
Commit consists out of
  • M compiler/assemble.pas


* fixed memory leak, introduced accidentally in 0048998
Commit consists out of
  • M compiler/pdecvar.pas


* cpubase.cgsize2subreg should handle all valid sizes, resolves 0038557
Commit consists out of
  • M .gitattributes
  • M compiler/x86/cpubase.pas
  • A tests/webtbs/tw38557.pp


+ Xtensa: tcpuinlinenode.second_prefetch
Commit consists out of
  • M compiler/xtensa/ncpuinl.pas


+ some more change information entries added
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


Avoid keeping optimized out node in callcleanupblock.statements or callinitblock.statements
Commit consists out of
  • M compiler/ncal.pas


Use value $00000F00 instead of $F0000000 for IF_FPMASK, and adapt all floating point constants, to avoid IF_VFPv4 having the same value as IF_PASS2
Commit consists out of
  • M compiler/arm/aasmcpu.pas


* x86-64: we can spill replace 32 bit operations if the operation does not modify a register
Commit consists out of
  • M compiler/x86/rgx86.pas


+ enable colored output on darwin, resolves 0038693
Commit consists out of
  • M compiler/comptty.pas


* fix for Mantis 0037426: don't allow an instance function of a type helper to be used on the type instead of a concrete value
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pexpr.pas
  • A tests/webtbf/tw37426.pp


* Windows on ARM64 adheres to the usual Aarch64 ABI, thus references need to be copied on the caller side as well
Commit consists out of
  • M compiler/systems.pas


+ Aarch64: cpu_capabilities support
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cpuinfo.pas


+ write controller unit wiht -ix as well
Commit consists out of
  • M compiler/options.pas


* Aarch64: the M1 is an ARM v8.4-a CPU
Commit consists out of
  • M compiler/options.pas


* Aarch64: cpu capabilites defines properly named
* Aarch64: enable defining cpu capabilites
Commit consists out of
  • M compiler/aarch64/cpuinfo.pas
  • M compiler/fpcdefs.inc


* forgotten " added
Commit consists out of
  • M compiler/options.pas


* Aarch64: support LSE instructions
Commit consists out of
  • M compiler/aarch64/a64att.inc
  • M compiler/aarch64/a64atts.inc
  • M compiler/aarch64/a64ins.dat
  • M compiler/aarch64/a64op.inc
  • M compiler/aarch64/aasmcpu.pas


* fixes to deadstore optimization
Commit consists out of
  • M compiler/optdeadstore.pas


* typo fixed
Commit consists out of
  • M compiler/x86/aoptx86.pas


* do not remove register deallocations/allocation pairs if the register is written
Commit consists out of
  • M compiler/aopt.pas


* Xtensa: fix crash in TCpuAsmOptimizer.RegLoadedWithNewValue
Commit consists out of
  • M compiler/xtensa/aoptcpu.pas


Add sinclairql to NO_NATIVE_COMPILER_OS_LIST
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* allow procvars to not be registered right away
Commit consists out of
  • M compiler/i8086/symcpu.pas
  • M compiler/pdecsub.pas
  • M compiler/pdecvar.pas
  • M compiler/ptype.pas
  • M compiler/symdef.pas


* set proctypeoption for procvars
Commit consists out of
  • M compiler/ptype.pas


* extend procvar_dec so that procvars don't have to be registered
Commit consists out of
  • M compiler/ptype.pas


+ Aarch64: create better code for not()
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* don't override specified assembler on the command line when leaving
assembler files in case that specified assembler is already an
external one
Commit consists out of
  • M compiler/options.pas


* don't generate high-level CFI statements when the selected assembler
does not support them, even if the target normally uses them
o fixes assembling with -Aas-darwin for i386/arm/x86-64 (on OS
versions that used those)
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/cfidwarf.pas
  • M compiler/systems.pas
  • M compiler/x86/agx86att.pas


* allow also CSUBSETREG in tx86inlinenode.second_IncludeExclude, resolves 0038733
Commit consists out of
  • M .gitattributes
  • M compiler/x86/nx86inl.pas
  • A tests/webtbs/tw38733.pp


* PowerPC: initial (and primitive) implemenation of TCpuAsmOptimizer.RegLoadedWithNewValue
Commit consists out of
  • M compiler/powerpc/aoptcpu.pas


Refactor code to avoid problems with -CR option
Commit consists out of
  • M compiler/powerpc/aoptcpu.pas


+ FreeBSD/AArch64 support (patch by Mikaël Urankar, mantis 0038441)
Commit consists out of
  • M .gitattributes
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cputarg.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_bsd.pas
  • M compiler/systems/t_bsd.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A rtl/bsd/aarch64/syscall.inc
  • A rtl/bsd/aarch64/syscallh.inc
  • M rtl/bsd/bunxsysc.inc
  • A rtl/freebsd/aarch64/bsyscall.inc
  • A rtl/freebsd/aarch64/cprt0.as
  • A rtl/freebsd/aarch64/dllprt0.as
  • A rtl/freebsd/aarch64/gprt0.as
  • A rtl/freebsd/aarch64/prt0.as
  • A rtl/freebsd/aarch64/si_c.inc
  • A rtl/freebsd/aarch64/sighnd.inc
  • M rtl/freebsd/signal.inc
  • M rtl/freebsd/ucontexth.inc
  • M utils/fpcm/fpcmmain.pp


* fixed win32 testsuite regressions after 0049084
Commit consists out of
  • M compiler/pdecvar.pas


sinclairql: enable commandargs and exitcode features
Commit consists out of
  • M compiler/options.pas


* use up to 16 bytes alignment for the WASI target
Commit consists out of
  • M compiler/systems/i_wasi.pas


+ common assembler optimizer base class for powerpc and powerpc64
* factored out TPPCAsmOptimizer.RegLoadedWithNewValue
Commit consists out of
  • M .gitattributes
  • M compiler/powerpc/aoptcpu.pas
  • M compiler/powerpc64/aoptcpu.pas
  • A compiler/ppcgen/aoptppc.pas


- obsolete defines removed
Commit consists out of
  • M compiler/cclasses.pas
  • M compiler/constexp.pas
  • M compiler/cutils.pas
  • M compiler/systems/i_emx.pas
  • M compiler/verbose.pas


- forgotten file, obsolete define removed, belongs to last commit
Commit consists out of
  • M compiler/systems/i_os2.pas


* Delphi-mode calling without parenthesis
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/ncnv.pas
  • M compiler/ngenutil.pas
  • M compiler/nld.pas
  • M compiler/nutils.pas
  • M compiler/pexpr.pas


Also avoid invalid typecast for RegLoadedWithNewValue method for mips, sparcgen and xtensa
Commit consists out of
  • M compiler/mips/aoptcpu.pas
  • M compiler/sparcgen/aoptcpu.pas
  • M compiler/xtensa/aoptcpu.pas


m68k: cleaned up some ancient mess from cpunode.pas, no significant functional change, apart from unit inclusion order
Commit consists out of
  • M compiler/m68k/cpunode.pas


m68k: on the Sinclair QL insert the main program's name into the object, so the RTL later can set it as default job name
Commit consists out of
  • M .gitattributes
  • M compiler/m68k/cpunode.pas
  • A compiler/m68k/n68kutil.pas


+ optimized multiplication for "symmetric" bit patterns on arm
Commit consists out of
  • M compiler/arm/cgcpu.pas
  • M tests/test/cg/taddcard.pp


m68k: always use ELF objects with vasm for improved cross-compatibility with other tools and compilers
Commit consists out of
  • M compiler/m68k/ag68kvasm.pas


+ Aarch64: completed LSE support for all interlocked operations
Commit consists out of
  • M compiler/aarch64/a64att.inc
  • M compiler/aarch64/a64atts.inc
  • M compiler/aarch64/a64ins.dat
  • M compiler/aarch64/a64op.inc
  • M compiler/aarch64/aasmcpu.pas
  • M rtl/aarch64/aarch64.inc


* avoid leaving a dangling pointer in pparautl.proc_add_definition to prevent
use after free in different parts of the compiler
Commit consists out of
  • M compiler/pparautl.pas


Add fForceUseForwardSlash to TLinkRes class, used for vlink linker on hosts using backslashes
Commit consists out of
  • M compiler/cscript.pas
  • M compiler/systems/t_amiga.pas
  • M compiler/systems/t_atari.pas
  • M compiler/systems/t_morph.pas
  • M compiler/systems/t_msxdos.pas
  • M compiler/systems/t_sinclairql.pas
  • M compiler/systems/t_zxspectrum.pas


* fix for Mantis 0038771: the owner of the procdef might be Nil in case of a specialization (that virtual can't be used on generics is caught later on)
+ added test
Commit consists out of
  • M .gitattributes
  • M compiler/pdecsub.pas
  • A tests/webtbf/tw38771.pp


Add systems_openbsd to suppported_targets_x_smallr and modify GenerateExecutable in t_bsd unit accordingly
Commit consists out of
  • M compiler/options.pas
  • M compiler/systems/t_bsd.pas


* moved a bunch of constants from dbgdwarf to dbgdwarfconst
Commit consists out of
  • M compiler/dbgdwarf.pas
  • A compiler/dbgdwarfconst.pas


* if left is a smaller type, then an extension operation for shr can be removed
Commit consists out of
  • M compiler/ncnv.pas


m68k: added support to references like (a0,d0.w) in inline assembly, also fixed a bug, where sometimes the index register would have been randomly set as smaller than .l size, when the size wasn't specified
Commit consists out of
  • M compiler/m68k/cpubase.pas
  • M compiler/m68k/r68kgri.inc
  • M compiler/m68k/r68ksri.inc
  • M compiler/m68k/ra68kmot.pas
  • M compiler/utils/mk68kreg.pp


sinclairql: support the upcoming QL binary linking feature of vlink (still in development). it's behind an undocumented -WL switch now. also, reduce the amount of used dataspace by the size of the relocation table in the current linking mode
Commit consists out of
  • M compiler/globals.pas
  • M compiler/options.pas
  • M compiler/systems/t_sinclairql.pas


* patch by J. Gareth Moreton: AArch64 OptPass1Shift register tracking fault fix, resolves 0038691
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* moved warning about suspicious comp assignment to type check pass, catches also
assignments of constants
Commit consists out of
  • M .gitattributes
  • M compiler/ncnv.pas
  • M compiler/x86/nx86cnv.pas
  • A tests/tbf/tb0274.pp


Remove unused, obsolete -dBROWSERLOG option
Commit consists out of
  • M compiler/MPWMake
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* NDS: fix condition when to default to apptype arm9
Commit consists out of
  • M compiler/systems/t_nds.pas


Fix gotpcrel relocation for TESTQ x86_64 instruction
Commit consists out of
  • M .gitattributes
  • M compiler/ogelf.pas
  • M compiler/x86/aasmcpu.pas
  • A tests/webtbs/tw38353.pp


+ Aarch64: use frintz for int(...) instead of creating a helper call
Commit consists out of
  • M compiler/aarch64/ncpuinl.pas
  • M rtl/aarch64/math.inc


+ Aarch64: directly inline code for frac(...)
Commit consists out of
  • M compiler/aarch64/ncpuinl.pas
  • M rtl/aarch64/math.inc


* prevention of dangling pointers and use after free after free_unregistered_localsymtable_elements
Commit consists out of
  • M compiler/pmodules.pas


* decrease macro nesting counter early when expanding empty macro
to avoid errors about too depth macro nesting, resolves 0038802
Commit consists out of
  • M .gitattributes
  • M compiler/scanner.pas
  • A tests/webtbs/tw38802.pp


* patch by Christo Crause to fix 0038789: writing of linker commands should not depent in -s
Commit consists out of
  • M compiler/systems/t_freertos.pas


Add -march=XXX option for aarch64 external assemblers
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


Add .force_thumb pseudo-directive support forarm reader
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/arm/raarmgas.pas
  • M compiler/assemble.pas


Avoid invalid typecast if hp is not an instruction
Commit consists out of
  • M compiler/arm/rgcpu.pas


m68k: fixed a comment. no functional change
Commit consists out of
  • M compiler/m68k/ag68kvasm.pas


Avoid range check error inside genitem_thumb2 by changing local variable i type
Commit consists out of
  • M compiler/arm/narmset.pas


Make sure nf_usercode_entry get transferred inside firstpass procedure
Commit consists out of
  • M compiler/pass_1.pas


Set string length before calling move to avoid problems with global data analysis on systems using C library
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/ogcoff.pas


* fix compilation of arm compiler on 32 bit hosts
Commit consists out of
  • M compiler/arm/narmset.pas


Avoid warning with -O4 option
Commit consists out of
  • M compiler/systems/t_sinclairql.pas


* avoid overflow during register allocation
Commit consists out of
  • M compiler/rgobj.pas


Add several missing -AXXX options
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Use as-clang as idtxt for as_aarch64_clang_gas_info
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* patch by J. Gareth Moreton: AArch64 "magic division"
(replace division by constant with multiplication), part of 0038806
Commit consists out of
  • M compiler/aarch64/ncpumat.pas


Also check *.pas and *.inc files inside sub-directories in msgused.pl
Commit consists out of
  • M compiler/utils/msgused.pl


Add -TFreeBSD target OS option to -h output for aarch64 compiler ppc64
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


m68k: D2 is considered volatile on macosclassic
Commit consists out of
  • M compiler/m68k/cpupara.pas


m68k-sinclairql: apply the same hack as for amiga and atari to avoid vlink section attribute warning
Commit consists out of
  • M compiler/aggas.pas


Avoid range/overflow error after commit 0049290
Commit consists out of
  • M compiler/aarch64/ncpumat.pas


* fix finally block getting unconditionally removed if try-block is empty
(hasnocode(nil) always returns true). Regression from 0048174
Commit consists out of
  • M .gitattributes
  • M compiler/nflw.pas
  • A tests/webtbs/tw38833.pp


* support arbitrary record regvars on AArch64: it has fairly complete support
for inserting/extracting bitfields (although the compiler doesn't use those
instructions yet in all possible cases, it seems)
Commit consists out of
  • M compiler/symsym.pas


* patch by J. Gareth Moreton: AArch64: Improved speed and efficiency with constant generation, resolves 0038837
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* combine the Boolean parameters of read_proc and read_proc_dec into a set
Commit consists out of
  • M compiler/pdecobj.pas
  • M compiler/pdecsub.pas
  • M compiler/psub.pas
  • M compiler/symcreat.pas


* have read_body return the created procdef
Commit consists out of
  • M compiler/psub.pas


* use tparse_proc_flags for parse_proc_head as well
Commit consists out of
  • M compiler/pdecobj.pas
  • M compiler/pdecsub.pas
  • M compiler/pgenutil.pas


* use tproc_parse_flags in parse_proc_dec_finish as well
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/pgenutil.pas


+ initial support for anonymous functions, for now as essentially nested functions

Based on work by Blaise.ru
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/pexpr.pas
  • M compiler/psub.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


Destroy tfornode class loopiteration field if assigned
Commit consists out of
  • M compiler/nflw.pas


Fix message about unsupported OS_TARGET for LLVM
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* (modified) patch by J. Gareth Moreton to unify ldr/str optimizations on Aarch64/ARM, part of 0038841
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


Avoid using UXT and SXT instructions on arm version below 6
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* patch by J. Gareth Moreton, second part of 0038841
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ ARM: basic vasm support
Commit consists out of
  • M .gitattributes
  • A compiler/arm/agarmvasm.pas
  • M compiler/arm/cputarg.pas
  • M compiler/systems.inc


+ initial support for ARMv2
* check for unassigned valuestr when writing ntbs eabi attributes
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/narmmat.pas
  • M compiler/arm/narmutil.pas
  • M compiler/assemble.pas


* cleanup
Commit consists out of
  • M compiler/arm/agarmvasm.pas


Try to fix handle of large stack size in xtensa gen_proc_entry/gen_proc_exit
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


+ AVR: avr_des intrinsic
Commit consists out of
  • M .gitattributes
  • M compiler/avr/ccpuinnr.inc
  • M compiler/avr/cpubase.pas
  • M compiler/avr/itcpugas.pas
  • M compiler/avr/navrinl.pas
  • M compiler/avr/raavr.pas
  • M rtl/avr/cpuinnr.inc
  • M rtl/avr/intrinsics.pp
  • A tests/test/tdes1.pp
  • A tests/test/tdes2.pp


* AVR: made avr_des intrinsic more usefull
Commit consists out of
  • M compiler/avr/navrinl.pas
  • M rtl/avr/intrinsics.pp
  • M tests/test/tdes1.pp
  • M tests/test/tdes2.pp


sinclairql: enable weak linking support for the Sinclair QL
Commit consists out of
  • M compiler/systems.pas


* patch by J. Gareth Moreton: x86 MOVZX/CMP optimisation, resolves 0038882
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix building on i386 after 0049366
Commit consists out of
  • M compiler/x86/aoptx86.pas


* first part of AVR assembler optimizer reword
Commit consists out of
  • M compiler/avr/aoptcpu.pas


* AVR: second part of assembler optimizer rework
Commit consists out of
  • M compiler/avr/aoptcpu.pas


* indention fixed
Commit consists out of
  • M compiler/avr/aoptcpu.pas


sinclairql: make sure the end of bss (hence the bss size) is also aligned to two bytes
Commit consists out of
  • M compiler/systems/t_sinclairql.pas


* patch by J. Gareth Moreton: Memory CMP optimisation, resolves 0038907
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: TEST chain shortcutting, resolves 0038908
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* patch by J. Gareth Moreton: Additional SETcc optimisations, resolves 0038767
Commit consists out of
  • M compiler/cgutils.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* more fixes to support vasm on arm
* do not crash on empty eabi attribute strings
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/arm/agarmvasm.pas


* more fixes for VASM for ARM
Commit consists out of
  • M compiler/arm/agarmgas.pas
  • M compiler/fpcdefs.inc


- clean up
Commit consists out of
  • M compiler/cgbase.pas


* patch by J. Gareth Moreton: x86 JccMovJmpMov2MovSetcc improvement, resolves 0038761
Commit consists out of
  • M compiler/aoptutils.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cpubase.pas
  • M compiler/x86_64/aoptcpu.pas


* keep track of symbols that are accessed from a nested/anonymous function that belong to a surrounding scope
Commit consists out of
  • M compiler/nld.pas
  • M compiler/procinfo.pas
  • M compiler/symdef.pas


* check whether an anonymous function can be assigned to a global, method or nested function variable
Commit consists out of
  • M compiler/defcmp.pas


* the MovOpMov2Op optimization needs to take care of the second operand, should resolve 0038359
Commit consists out of
  • M compiler/x86/aoptx86.pas


* check used registers properly for SETcc/TEST/Jcc -> Jcc, resolves 0038940
Commit consists out of
  • M .gitattributes
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw38940.pp


* prevent a range check error in TFPList.IndexOfItem when searching backwards in
an empty list and the compiler is compiled with range checking turned on
Commit consists out of
  • M compiler/cclasses.pas


* Aarch64: apply OptPass1Data to CSEL as well
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* set self to nil in current_module.deflist for registered defs in the
tstoreddef.destroy destructor, instead of doing it after each call to
x.owner.deletedef(x)
Commit consists out of
  • M compiler/pdecvar.pas
  • M compiler/pmodules.pas
  • M compiler/pparautl.pas
  • M compiler/symdef.pas


* patch from Alfred for setting source_cpu_string for the wasm32 platform
Commit consists out of
  • M compiler/version.pas


Fix duplicate source_cpu_string after last patch, by using cpuwasm32 instead of wasm32 conditional
Commit consists out of
  • M compiler/version.pas


* improvements to the prevention of dangling pointers in tmodule.deflist,
introduced in 0049417. Now it no longer depends on current_module, so it
handles the case when current_module changes between the time the tdef was
registered and the time it was freed. It also supports freeing the tmodule
before the defs, so the freeing order of the object is once again flexible.
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/symdef.pas
  • M compiler/symtype.pas


* fixed typecast in tmodule.destroy after 0049426, since registered_in_module is introduced in tdef, not in tstoreddef
Commit consists out of
  • M compiler/fmodule.pas


- removed the (deflist[i] is tdef) check from the tmodule destructor, since
only tdef descendants are added to the deflist and casting deflist entries to
tdef directly appears to be safe and is done in other parts of the compiler
Commit consists out of
  • M compiler/fmodule.pas


* change fma cpu flag into an fpu flag
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/options.pas
  • M compiler/x86/nx86add.pas
  • M compiler/x86/nx86inl.pas
  • M compiler/x86_64/cpuinfo.pas


Fix check that third parameter of ADDI hp1 instruction is a constant
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


Add A_CALL to the list of instructions considered as a calljmp, even though it is a pseudo-instruction, fixes a long list of -O3 and -O4 testsuite failures
Commit consists out of
  • M compiler/riscv32/cpubase.pas
  • M compiler/riscv64/cpubase.pas


* aarch64-darwin supports unaligned memory access, confirmed by testing with clang 12
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


Add -march option to clang call for llvm target
Commit consists out of
  • M compiler/llvm/agllvm.pas


Return -1 if size of file is smaller tham header size in tppufile.readheader method
Commit consists out of
  • M compiler/ppu.pas


Fix compilation for x86_64 llvm variant
Commit consists out of
  • M compiler/llvm/agllvm.pas


* for variant dispatch calls, use the parameter name in source case, not upper case
Commit consists out of
  • M compiler/pexpr.pas


* improved AndUtxh2And optimization
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* ARM: split TCpuThumb2AsmOptimizer.PeepHoleOptPass1Cpu
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* patch by J. Gareth Moreton: refactoring to standardise the "Peephole Optimization: " prefix on peephole debug messages, part of 0038975
Commit consists out of
  • M compiler/arm/aoptcpu.pas


+ patch by J. Gareth Moreton: New label debugging feature, resolves 0038980
Commit consists out of
  • M compiler/aggas.pas


* patch by Alfred to use new linker names for Android NDK >=22, resolves 0038987
Commit consists out of
  • M compiler/systems/t_android.pas


* patch by J. Gareth Moreton: ARM - str/str -> stm optimisation, second part of 0038975
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* optimization "Merging stores: STR/STR -> STM" cannot be carried out when generating thumb code
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* use smaller alignment when generating thumb code
Commit consists out of
  • M compiler/options.pas


* do not generate exit code for arm (thumb and thumb-2) if a routine is marked as noreturn
Commit consists out of
  • M compiler/arm/cgcpu.pas


+ Merge Add/Sub optimization
Commit consists out of
  • M compiler/arm/aoptcpu.pas


+ ARM: PushPop optimziation
Commit consists out of
  • M compiler/arm/aoptcpu.pas


activate 'compressed disp8*N' for VCVTQQ2PS xmmreg, xmmrm and VCVTTPD2UDQ xmmreg, xmmrm
Commit consists out of
  • M compiler/x86/x86ins.dat


activate 'compressed disp8*N' for VCVTQQ2PS xmmreg, xmmrm and VCVTTPD2UDQ xmmreg, xmmrm
Commit consists out of
  • M compiler/x86/x86ins.dat


activate 'compressed disp8*N' for VCVTQQ2PS xmmreg, xmmrm and VCVTTPD2UDQ xmmreg, xmmrm
Commit consists out of
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/x86_64/x8664tab.inc


activate 'compressed disp8*N' for VCVTQQ2PS xmmreg, xmmrm and VCVTTPD2UDQ xmmreg, xmmrm
Commit consists out of
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/x86_64/x8664tab.inc


* ARM (thumb): do not save registers in routines marked as noreturn
Commit consists out of
  • M compiler/arm/cgcpu.pas


* ARM: fix for Merge Add/Sub optimization
Commit consists out of
  • M compiler/arm/aoptcpu.pas


+ stack pages need to be touched on aarch64-win64 as well
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* r/esp cannot be used as index register
Commit consists out of
  • M compiler/x86/aoptx86.pas


* throw an error if esp/rsp are used as index register
Commit consists out of
  • M .gitattributes
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/x86/aasmcpu.pas
  • A tests/tbf/tb0275.pp


* allow char constant to be used for const string parameters in generic specializations, resolves 0039030
Commit consists out of
  • M .gitattributes
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw39030.pp


* patch by J. Gareth Moreton to fix faulty conditional jump logic, resolves 0038985
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cpubase.pas


* DeepMovOpt requires that the target reg of the mov is not modified before hp2
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ SHXXMov2SHXX optimization
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* patch by J. Gareth Moreton: improve MovAndTest2Test optimization, resolves 0039156
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: x86: MovMovSar2MovCltd bug fix, resolves 0039180
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix for Mantis 0026760: apply patch by Ondrej Pokorny to ensure that units referenced by an "in"-clause are recompiled when they have been changed
+ added test (though due to the nature of the bug it needs to be interactive)
Commit consists out of
  • M .gitattributes
  • M compiler/fppu.pas
  • A tests/webtbs/tw26760.pp
  • A tests/webtbs/uw26760/uw26760.pp


* patch by J. Gareth Moreton: x86: RegLoadedWIthNewValue overhaul and bug fix, resolves 0039187
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: CMP chain shortcutting, resolves 0039141
Commit consists out of
  • M compiler/x86/aoptx86.pas


* might_have_sideeffects in gen_c_style_operator as proposed by runewalsh, resolves 0039206
Commit consists out of
  • M .gitattributes
  • M compiler/pexpr.pas
  • A tests/webtbs/tw39206.pp


* patch by J. Gareth Moreton: x86: Lea2Nop for stack pointer, resolves gitlab 0039225
Commit consists out of
  • M compiler/x86/aoptx86.pas


* further fix for Mants gitlab 0026760: applied patch by Ondrej Pokorny to fix recompilation of units referenced with an "in" clause if no file extension is provided
+ added (interactive) test
Commit consists out of
  • M .gitattributes
  • M compiler/fppu.pas
  • A tests/webtbs/tw26760b.pp


* patch by J. Gareth Moreton: x86: Minor bitwise optimisations, resolves gitlab 0039299
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* Xtensa: unified DataMov2Data optimization
Commit consists out of
  • M compiler/xtensa/aoptcpu.pas


* Xtensa: optimize constant multiplications
Commit consists out of
  • M compiler/xtensa/cgcpu.pas


* avr4 has mul instructions
Commit consists out of
  • M compiler/avr/cpuinfo.pas


* revert last commit, avr4 has no call/jmp
Commit consists out of
  • M compiler/avr/cpuinfo.pas


* remove mhs_exceptions in might_have_sideeffects call for C operators: it improves code
and shouldn't hurt as this is no regression in comparison with current 3.2.x
Commit consists out of
  • M compiler/pexpr.pas


+ add modeswitch for anonymous functions
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/utils/ppuutils/ppudump.pp


* ensure that nested functions of main program, main program finalization and unit initialization/finalization are generated
Commit consists out of
  • M compiler/pmodules.pas


* consider Self parameters of nested functions as captured as well
Commit consists out of
  • M compiler/nld.pas


* allow to ignore Self parameters; for this the parameter skipping needs to be repeated to correctly catch all cases
Commit consists out of
  • M compiler/defcmp.pas


* implement assignment of anonymous functions to procedure or method variables if they either capture nothing or (in case of method variables) at most the Self variable
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/htypechk.pas
  • M compiler/ncnv.pas
  • M compiler/nld.pas
  • M compiler/pparautl.pas
  • M compiler/symdef.pas


+ add function to check whether a def is an invokable function reference
Commit consists out of
  • M compiler/defutil.pas


* Prevent double release of a temp.
Commit consists out of
  • M compiler/x86/nx86cnv.pas


* It is still needed to release the temp allocated for the result of an assembler function if the result is not referenced. This fixes some EXTDEBUG warnings.
Commit consists out of
  • M compiler/hlcgobj.pas


* optimize tests for a single bit "(a and one_bit_mask_const) = <> one_bit_mask_const" into "(a and one_bit_mask_const) <> = 0" to enable further CPU specific optimizations.
Commit consists out of
  • M compiler/nadd.pas


* x86: Added the "test $-1,%reg" condition to the MovAndTest2Test optimization.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by J. Gareth Moreton: AND/CMP optimisation, resolves gitlab 0039287
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Before gitlab 0035961 (back in 2017) some simple assignment optimizations, such as "x:=x+y" to "inc(x,y)", were performed when -O2 in tassignmentnode.simplify. In gitlab 0035961 these optimizations were moved to a separate pass which is enabled only when -O3 by cs_opt_use_load_modify_store. This separate pass can benefit from other optimization. But worse code is generated with -O2 since then.
This commit restores applying of simple assignment optimizations when -O2.
Commit consists out of
  • M compiler/nld.pas
  • M compiler/optloadmodifystore.pas


compiler/msg/errord*.msg: Update of German error messages
Commit consists out of
  • M compiler/msg/errord.msg
  • M compiler/msg/errordu.msg


* Support for sleb128 and uleb128 constants in the NASM writer.
* Added sleb128tostr() and uleb128tostr() methods to TExternalAssembler.
* Use these methods in assembler writers instead of code duplication.
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/assemble.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/z80/agsdasz80.pas
  • M compiler/z80/agz80vasm.pas


* Added support for the old Turbo Pascal INLINE(data/data/...) statement.
It is available only in the TP mode.
Commit consists out of
  • M compiler/ncgbas.pas
  • M compiler/pstatmnt.pas
  • M compiler/tokens.pas


* TP compatibility: For retro CPUs always copy the function result to
the register(s) on function exit if assembler blocks are present.
Commit consists out of
  • M compiler/pstatmnt.pas


* In TP-style INLINE, allowed the > modifier for global vars and relaxed range checks.
Commit consists out of
  • M compiler/pstatmnt.pas


* sizeof(array) and length(array) must return sizeUint in case the array
size does not fit in sizeint. This fixes a range check error during
compilation on small CPU targets where allowed array size is 64K, but
sizeint is 32K max.
Commit consists out of
  • M compiler/ncon.pas
  • M compiler/ninl.pas
  • M compiler/pexpr.pas


* properly check if -unpushed should be appended in revision.inc
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* always use $(GIT) to call git
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


Allow custom definition of GIT.
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* fix change information for popcnt
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* change information for round* fixed
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* change information for round* fixed
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* check if git executable really exists
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


Solves gitlab 0039296: x86-64 parameter zero/sign extension
Commit consists out of
  • M compiler/x86_64/cpupara.pas
  • A tests/webtbs/tw39296.pp


Solves gitlab 0039296: x86-64 parameter zero/sign extension
Commit consists out of
  • M compiler/x86_64/cpupara.pas
  • A tests/webtbs/tw39296.pp


+ Add support for -Adefault.
* Move help message for option -sT to the correct group of messages.
* Use shorter message to indicate switch to external asm.
* Adapted -sX messages because -sT doesn't force external assembler writer.
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems.inc
  • M compiler/systems.pas


+ Add support for -Adefault.
* Move help message for option -sT to the correct group of messages.
* Use shorter message to indicate switch to external asm.
* Adapted -sX messages because -sT doesn't force external assembler writer.
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems.inc
  • M compiler/systems.pas


+ Aarch64: FMovFMov2FMov 2 optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/avr/aoptcpu.pas


+ Aarch64: FMovFMov2FMov 2 optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/avr/aoptcpu.pas


* reverted wrongly committed file
Commit consists out of
  • M compiler/avr/aoptcpu.pas


* reverted wrongly committed file
Commit consists out of
  • M compiler/avr/aoptcpu.pas


Sorted help options.
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Sorted help options.
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* fix for gitlab 0039310 by fixing various small issues in tabstractrecordsymtable.has_single_field:
- initialize the returned def to a safe default
- correctly reset the found symbol for each loop
- reset the result when descending into a record
+ added test
Commit consists out of
  • M compiler/symtable.pas
  • A tests/webtbs/tw39310.pp


+ move often used floating point constants into registers
Commit consists out of
  • M compiler/aarch64/cpuinfo.pas
  • M compiler/globtype.pas
  • M compiler/optcse.pas
  • M compiler/psub.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/x86_64/cpuinfo.pas


* generate a def. file only if really necessary
Commit consists out of
  • M compiler/options.pas


* unified internal error
Commit consists out of
  • M compiler/cgobj.pas


* unified internal error
Commit consists out of
  • M compiler/cgobj.pas


* we cannot do SSA during partial writes to arrays which span multiple registers, resolves gitlab 0039325
Commit consists out of
  • M compiler/hlcgobj.pas
  • A tests/webtbs/tw39325.pp


* we cannot do SSA during partial writes to arrays which span multiple registers, resolves gitlab 0039325
Commit consists out of
  • M compiler/hlcgobj.pas
  • A tests/webtbs/tw39325.pp


* handle constant folding correctly for ++, resolves gitlab 0039332
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw39332.pp


* do constant folding on div div , resolves gitlab 0039301
Commit consists out of
  • M compiler/nmat.pas


* pass the final name of the compiler executable when compiling the compiler to avoid
moving the executable afterwards, this allows proper stack dumps with line numnbers
on OSes with external debugging information (darwin)
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* move more node tree optimizations to tcgprocinfo.OptimizeNodeTree
Commit consists out of
  • M compiler/psub.pas


* fix range checking for zero based strings, resolves gitlab 0039323
Commit consists out of
  • M compiler/ncgmem.pas
  • M rtl/inc/astrings.inc
  • M rtl/inc/compproc.inc
  • M rtl/inc/ustrings.inc
  • M rtl/inc/wstrings.inc
  • A tests/webtbs/tw39323.pp


* patch by J. Gareth Moreton: x86: SETcc/TEST/SETcc -> SETcc/SETcc optimisation, resolves gitlab 0039271
Commit consists out of
  • M compiler/x86/aoptx86.pas


Add 'treated as Error:' to compiler messages
Commit consists out of
  • M compiler/comphook.pas


* Avoid some wrong error messages after initial error

On x86_64-openbsd, cycling with -O3 option fails due to
a wrong warning about uninitialized zeros variable in
compilation of ogbase unit
ogbase.pas(2310,41) Warning: Local variable "zeros" does not seem to be initialized
ogbase.pas(2318,39) Error: Can't evaluate constant expression

The second message is due to the fact that simplify is not
called inside nadd unit if errorcount is non-zero.
By replacing errorcount<>0 by not codegenerror,
this message disappears.
Commit consists out of
  • M compiler/nadd.pas


* Added trgobj.remove_ai(), call it instead of code duplication.
No functional changes.
Commit consists out of
  • M compiler/rgobj.pas


Try to avoid infinite loop for revision target on svn repo
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* Patch by J. Gareth "Kit" Moreton (issue gitlab 0039343). x86 peephole
optimization of conditions which are always true or false.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: ShlOp2Op optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* to avoid that -Xg causes a failure during comparing ppc3.exe and ppc386.exe on windows, during the last compiler compilation step, the
same executable name is used
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* Use a register alias while handling reg deallocs in trgobj.instr_spill_register()
to be in sync with commit b96057ad.
Commit consists out of
  • M compiler/rgobj.pas


* make ShlOp2Op optimization more fool proof
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Prevent spilling of spill-helper registers which contain the value of a
previously spilled register. These helper registers must never be spilled.
This fixes failures of the register allocator in rare corner cases.
Commit consists out of
  • M compiler/rgobj.pas


* nicer spelling
Commit consists out of
  • M compiler/comphook.pas


+ for loop optimizations can be controller by a switch (-Oo(no)forloop)
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/psub.pas
  • M compiler/utils/ppuutils/ppudump.pp


* (modified) patch by J. Gareth Moreton: ARM/AArch64 Some short-range LDR/STR optimisations, last part of gitlab 0038841
Commit consists out of
  • M compiler/armgen/aoptarm.pas


+ keep addresses of thread vars in registers if possible and likely an advantage
Commit consists out of
  • M compiler/optcse.pas


* x86: only add mm capable consts to register candidate list, this is better
than checking when they are assigned
Commit consists out of
  • M compiler/optcse.pas


* fix handling of -0.0 in sse/avx code, resolves gitlab 0039357
Commit consists out of
  • M compiler/x86/nx86con.pas
  • M compiler/x86/nx86mat.pas
  • A tests/webtbs/tw39357.pp


* fix code for ARM FPA, just in case ...
Commit consists out of
  • M compiler/globals.pas
  • M tests/webtbs/tw39357.pp


Fast mod
Commit consists out of
  • M compiler/cgutils.pas
  • M compiler/x86/nx86add.pas
  • M tests/bench/bdiv.pp
  • M tests/bench/bdiv_s32.inc
  • M tests/bench/bdiv_s64.inc
  • M tests/bench/bdiv_u32.inc
  • M tests/bench/bdiv_u64.inc


* x86: Do not replace inc/dec with add/sub 1 because this code path is
executed only for the C_Z,C_NZ,C_E,C_NE conditions, so inc/dec can be
used.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Fixed lack of the calculation code for the strength reduction optimization.
Commit consists out of
  • M compiler/optloop.pas


* Fixed a typo in the condition, though it seems this code path is not used now.
Commit consists out of
  • M compiler/x86/nx86add.pas


* Fixed the strength reduction optimization for loops containing 'continue'.
The compiler now cycles properly with -O3 -OoSTRENGTH.
Commit consists out of
  • M compiler/optloop.pas


* mark temps as deallocated

(cherry picked from commit 50452e5707b1d5f8590042ed55fc5f47bce33962)
Commit consists out of
  • M compiler/x86/nx86add.pas


* Fixed missing assignments with the strength reduction optimization.
Commit consists out of
  • M compiler/optloop.pas


* x86: Fixed attributes of the LEAVE instruction - it reads EBP.
This fixes crashes with -O3s in some cases due to an incorrect peephole
optimization.
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* release temp
Commit consists out of
  • M compiler/x86/nx86inl.pas


Added correction to AllocRegBetween
Commit consists out of
  • M compiler/aoptobj.pas


+ added target flags for the different WebAssembly exception modes that I'm
planning to implement
Commit consists out of
  • M compiler/globtype.pas


* increased size of ttargetswitchinfo.define to fit the string added in my
previous commit
Commit consists out of
  • M compiler/globtype.pas


* fixed compilation of ppudump
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


+ added usage info to the compiler help screen for the WebAssembly
target-specific exception handling modes
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


+ added validation to ensure no more than one WebAssembly exception support
mode is enabled
+ set the NOEXCEPTIONS mode by default for the WebAssembly targets
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


+ support writing the new tai_tagtype directive in the asm output
Commit consists out of
  • M compiler/aggas.pas


* Reverted the accidentally committed debug code in 4a7a113a.
Commit consists out of
  • M compiler/x86/aoptx86.pas


x86: MOV constant optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cpubase.pas


* some warnings fixed
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pexpr.pas
  • M compiler/symsym.pas


* is_calljmp really means calls and jmp
* is_calljmpuncondret includes ret
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cpubase.pas


* handle - more cleverly if SSE is used
Commit consists out of
  • M compiler/x86/nx86mat.pas


* fix alignment issues with - when using SSE
Commit consists out of
  • M compiler/x86/nx86mat.pas


+ started the wasmbase unit (similar to elfbase and omfbase)
Commit consists out of
  • M compiler/ogwasm.pas
  • A compiler/wasmbase.pas


+ implemented TWasmObjData.sectionname
Commit consists out of
  • M compiler/ogwasm.pas


+ write the wasm binary module header and version
Commit consists out of
  • M compiler/ogwasm.pas


* fixed TWasmObjData.sectionname_gas
Commit consists out of
  • M compiler/ogwasm.pas


+ enabled the WASM32_INTERNALASM define when compiling with the lazarus project file
Commit consists out of
  • M compiler/ppcwasm32.lpi


+ write some debug info to the console in the wasm obj writer
Commit consists out of
  • M compiler/ogwasm.pas


+ added TWasmObjSection class
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced TWasmObjSection.IsCode and .IsData
Commit consists out of
  • M compiler/ogwasm.pas


+ count the number of segments and assign segment indices to the wasm sections
Commit consists out of
  • M compiler/ogwasm.pas


+ start writing the wasm sections. The DataCount section is the first section to be implemented.
Commit consists out of
  • M compiler/ogwasm.pas


* simplify real expressions involving unary minus
+ test
Commit consists out of
  • M compiler/nadd.pas
  • A tests/tbs/tb0685.pp


+ create the data section and the first entry of the import section
Commit consists out of
  • M compiler/ogwasm.pas


+ add the __stack_pointer global import
Commit consists out of
  • M compiler/ogwasm.pas


+ added the indirect function table to the imports section
Commit consists out of
  • M compiler/ogwasm.pas


+ debug print the obj symbols to the console
Commit consists out of
  • M compiler/ogwasm.pas


* fixed crash when writing a binary wasm module with a .bss section
Commit consists out of
  • M compiler/ogwasm.pas


+ print more symbol properties to the console
Commit consists out of
  • M compiler/ogwasm.pas


* fixed warning
Commit consists out of
  • M compiler/ogwasm.pas


+ added the TWasmRelocationType enum
Commit consists out of
  • M compiler/wasmbase.pas


+ added the TWasmLinkingSubsectionType enum
Commit consists out of
  • M compiler/wasmbase.pas


+ more unary minus optimizations
* test extended
Commit consists out of
  • M compiler/nmat.pas
  • M tests/tbs/tb0685.pp


+ more unary minus optimizations
* test extended
Commit consists out of
  • M compiler/nmat.pas
  • M tests/tbs/tb0685.pp


Expanding division to 64-bit and tests
Commit consists out of
  • M compiler/x86/nx86mat.pas
  • M tests/bench/bdiv.pp
  • M tests/bench/bdiv_u32.inc
  • M tests/bench/bdiv_u64.inc


* some fixes for expectloc
Commit consists out of
  • M compiler/x86/nx86add.pas
  • M compiler/x86/nx86con.pas


+ added function name to functype hashlist in the wasm objdata class
Commit consists out of
  • M compiler/ogwasm.pas


+ apply unary minus optimizations also to /
* test extended
Commit consists out of
  • M compiler/nmat.pas
  • M tests/tbs/tb0685.pp


o manually applied merge request 46 by J. Gareth "Kit" Moreton:
+ x86_64: XMM-based block move optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/cgcpu.pas


* set expectloc properly for x87 on x86
Commit consists out of
  • M compiler/ncal.pas


* fixed the writing of the external functions in the import table
Commit consists out of
  • M compiler/ogwasm.pas


* store the funcname to functype index in a TFPHashObjectList, instead of
TFPHashList with the index converted to pointer, which was a hack and didn't
allow adding more fields, which we would need to do for e.g. import_module
and import_name
Commit consists out of
  • M compiler/ogwasm.pas


+ added method TWasmObjData.AddOrCreateObjSymbolExtraData
Commit consists out of
  • M compiler/ogwasm.pas


+ handle the import_module and import_name directives in the internal
assembler and store them as obj symbol extra data
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/ogwasm.pas


+ handle tai_local in the internal asm writer and store the locals in the
wasm obj extra symbol data object
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/ogwasm.pas


obcpas: fix categories implementing protocols

Allocate the ImplementedInterfaces array for them and save to/load from ppu

Solves gitlab 0039375
Commit consists out of
  • M compiler/ppu.pas
  • M compiler/symdef.pas
  • A tests/webtbs/tw39375.pp


+ generate and write the functions table in the wasm binary module,
produced by the internal obj writer
Commit consists out of
  • M compiler/ogwasm.pas


+ write the code section (still, without the actual function code, but with
the correct locals)
Commit consists out of
  • M compiler/ogwasm.pas


* replaced TWasmObjData(Data) with FData in TWasmObjOutput.writeData
Commit consists out of
  • M compiler/ogwasm.pas


+ write the actual function code in the code section
Commit consists out of
  • M compiler/ogwasm.pas


+ partial implementation of emitting RELOC_FUNCTION_INDEX_LEB relocations
Commit consists out of
  • M compiler/ogwasm.pas


+ add relocation objects for the RELOC_FUNCTION_INDEX_LEB relocation to
the relocation list. They are not written to the object file, yet.
Commit consists out of
  • M compiler/ogwasm.pas


+ added enums for the wasm symbol type and constnats for the bitflags
Commit consists out of
  • M compiler/wasmbase.pas


+ write the linking section (empty for now)
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasmbase.pas


Revert " * patch by J. Gareth Moreton: Nothing (NOP) node optimisation, resolves gitlab 0038194"

This reverts commit c2ff85ac5ba307d7cc10cae7ee17d479c83c9119.

That change duplicates the logic of tstatementnode.simplify in
tblocknode.simpify in a very complex way, and in case of issue gitlab 0039336 results
in adding a non-tstatementnode in a tblocknode, which is illegal. If
tstatementnode.simplify cannot catch all cases, then that one should
preferably be improved instead (and if not possible, we can look into
catching those edge cases in tblocknode.simplify rather than duplicating
everything).

Resolves issue gitlab 0039336
Commit consists out of
  • M compiler/nbas.pas


* Aarch64: taicpu.spilling_get_operation_type with new instructions extended
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas


+ write the externals to the symbol table
Commit consists out of
  • M compiler/ogwasm.pas


+ write the non-external functions to the symbol table as well
Commit consists out of
  • M compiler/ogwasm.pas


+ also write the data symbols to the symbol table
Commit consists out of
  • M compiler/ogwasm.pas


+ write the segment info (names and alignment) to the linking custom section
Commit consists out of
  • M compiler/ogwasm.pas


+ write the relocation tables for the code and data sections (empty for now)
Commit consists out of
  • M compiler/ogwasm.pas


+ fully implemented the RELOC_FUNCTION_INDEX_LEB relocations
Commit consists out of
  • M compiler/ogwasm.pas


* fixed warning
Commit consists out of
  • M compiler/ogwasm.pas


* fixed another warning
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced TObjData.SymbolPairDefine, to allow custom handling of symbol
pairs in the internal object writer
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/aasmtai.pas
  • M compiler/assemble.pas
  • M compiler/ogbase.pas


+ support tai_symbolpair in the wasm internal obj writer, so that the
PASCALMAIN alias of main can be created
Commit consists out of
  • M compiler/ogwasm.pas


+ support generating R_WASM_TABLE_INDEX_I32 relocations
Commit consists out of
  • M compiler/ogwasm.pas


+ support writing RELOC_FUNCTION_INDEX_LEB relocations to non-external functions
Commit consists out of
  • M compiler/ogwasm.pas


+ support writing imports from a different module in the wasm binary object writer
Commit consists out of
  • M compiler/ogwasm.pas


+ support writing R_WASM_MEMORY_ADDR_I32 relocations
Commit consists out of
  • M compiler/ogwasm.pas


+ add threadvar symbols to the symbol table
Commit consists out of
  • M compiler/ogwasm.pas


* generate an internal error if an attempt is made to emit a
R_WASM_MEMORY_ADDR_LEB relocation, that points to code, instead of
data
Commit consists out of
  • M compiler/ogwasm.pas


+ re-added accidently removed internal error
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas


* made the constructor of TObjSymbol virtual, so it can be overriden
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogwasm.pas


* fixed bug in the code, generated for the RELOC_FUNCTION_INDEX_LEB
relocation
Commit consists out of
  • M compiler/ogwasm.pas


+ fixed the addend in the relocations that point to data
Commit consists out of
  • M compiler/ogwasm.pas


Bug fix to XMM block move optimisation
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas


Changed get_volatile_registers_mm to not return XMM16 to XMM31 when not under AVX512
Commit consists out of
  • M compiler/x86_64/cpupara.pas


- removed unused constructor of tai_impexp, as well as unused member variable extmodule
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/wasm32/aasmcpu.pas


* tai_impexp renamed tai_export_name
* ait_importexport renamed ait_export_name
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/systems/t_wasi.pas
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/agwat.pas


* simplified and integrated the WriteImportExport procedure into the case
statement. Use similar statements to write the asm code for the export_name,
like we use for the import_name directive.
Commit consists out of
  • M compiler/aggas.pas


+ generate the export section in the wasm internal obj writer
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/ogwasm.pas


- removed debug writelns from the wasm internal object writer
Commit consists out of
  • M compiler/ogwasm.pas


+ generate funcdef for external procs, that don't have an import dll
Commit consists out of
  • M compiler/wasm32/nwasmutil.pas


+ enable the WebAssembly internal assembler and object writer
Commit consists out of
  • M compiler/ppcwasm32.lpi
  • M compiler/systems/i_embed.pas
  • M compiler/systems/i_wasi.pas


* use objsym.size to determine the code size of the function (instead of
writing until the end of the section) in the wasm internal object writer.
This removes the extra padding of 'unreachable' instructions at the end of
each function (which are zeroes, added for alignment - they are harmless,
but are unnecessary and cause a slight increase of the size of the
resulting binaries), after the final 'return' instruction of the function.
Commit consists out of
  • M compiler/ogwasm.pas


* use an incrementing counter variable to determine the numbers for the code
and data section, so they can be used in the relocation section, without
hardcoding them as constants. This will automatically adjust the numbers
when we add more sections, or when we make writing some of the sections
optional.
Commit consists out of
  • M compiler/ogwasm.pas


* omit writing the export section if there are no exported functions from
the module. This reduces object file size slightly for modules without
exports.
Commit consists out of
  • M compiler/ogwasm.pas


+ support the 'try' instruction in the wasm internal assembler
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ implemented the 'delegate' and the 'rethrow' instructions in the wasm internal assembler
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* emit a tai_tagtype for __FPC_exception instead of hardcoding the asm output
directly when wasm native exceptions are enabled
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/wasm32/agllvmmc.pas
  • M compiler/wasm32/nwasmutil.pas


* introduced the tai_globaltype asm directive, use that to declare the stack
pointer global symbol
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/agllvmmc.pas
  • M compiler/wasm32/nwasmutil.pas


+ introduced the AT_WASM_GLOBAL asm symbol type
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/wasm32/hlcgcpu.pas


* track wasm global types in the internal object writer
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/ogwasm.pas


+ proper support for WASM globals in the internal object writer - emit
relocations, generate a Global section, if they are declared in the object
file, etc.
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogwasm.pas
  • M compiler/wasm32/aasmcpu.pas


* combined TWasmObjSymbol.ImportIndex and .FuncIndex into just .FuncIndex,
because there's no point in having them separate, and the name ImportIndex
is misleading, as there are multiple import indices (they are separate for
functions, globals, tables, memories, etc.)
Commit consists out of
  • M compiler/ogwasm.pas


* the data section is now only written by the internal wasm object writer, when
there are data segments in the module
Commit consists out of
  • M compiler/ogwasm.pas


+ also support immutable wasm globals in the wasm assembler writer (both internal and external)
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/ogwasm.pas
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/nwasmutil.pas


+ introduced the FPC_EXCEPTION_TAG_SYM string constant
Commit consists out of
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/nwasmutil.pas


+ introduced the AT_WASM_EXCEPTION_TAG asm symbol type, use that for specifying
the parameter to the 'throw' and 'catch' instructions
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/nwasmflw.pas
  • M compiler/wasm32/nwasminl.pas


+ added support for exception tags and for the 'throw' and 'catch' instructions
in the wasm internal assembler and object writer
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/assemble.pas
  • M compiler/ogbase.pas
  • M compiler/ogwasm.pas
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/nwasmutil.pas
  • M compiler/wasmbase.pas


* fill exceptstate variables and update flowcontrol in
twasmexceptionstatehandler_nativeexceptions.new_exception
- removed the TODO comment, generated in the asm output by
twasmexceptionstatehandler_nativeexceptions.free_exception
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ support in_wasm32_throw_fpcexception in twasminlinenode.pass_typecheck_cpu
Commit consists out of
  • M compiler/wasm32/nwasminl.pas


* emit a weak symbol for the exception tag, since that's what the LLVM linker
wants to treat them as shared between .o files
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/aasmtai.pas
  • M compiler/ogbase.pas
  • M compiler/ogwasm.pas
  • M compiler/wasm32/nwasmflw.pas
  • M compiler/wasm32/nwasminl.pas
  • M compiler/wasm32/nwasmutil.pas


* updated ppudump with the new asm symbol types and binding types
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* fixes to the try..finally code generation in wasm native exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


- get rid of fpc_PushExceptAddr and fpc_PopAddrStack entirely, when compiling in
wasm native exceptions mode - these helper routines aren't necessary in this
mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas
  • M rtl/inc/compproc.inc
  • M rtl/wasm32/except_native.inc


* decblock moved after end_try, instead of after catch
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


+ initial implementation of try..except..end in wasm native exceptions mode.
The 'on' statements are not implemented yet.
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


* fixed warning
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


+ override the 'on' node for WebAssembly
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


* x86_64-linux doesn't need .data.rel.ro either
Commit consists out of
  • M compiler/aggas.pas


+ implemented the 'on' node for WebAssembly in native exceptions mode
Commit consists out of
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/nwasmflw.pas


+ generate functype directives for all functions in all used units, regardless
of whether they have paraloc info created. This fixes linking of WebAssembly
programs that declare their own classes, because that causes the compiler to
generate a VMT, containing references to virtual methods, and these don't
necessarily have paraloc info (if they're not called from within the program)
Commit consists out of
  • M compiler/wasm32/nwasmutil.pas


* the fpc_Catches result test code was inverted
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ implemented sqrt via the f32.sqrt and f64.sqrt instructions
Commit consists out of
  • M compiler/wasm32/nwasminl.pas


* fixed opcode generation for the f32.const in the WebAssembly internal asm
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ implemented abs(real) for WebAssembly via the f32.abs and f64.abs instructions
Commit consists out of
  • M compiler/wasm32/nwasminl.pas


+ implemented int(real) for WebAssembly via the f32.trunc and f64.trunc instructions
Commit consists out of
  • M compiler/wasm32/nwasminl.pas


* fixed output of 32-bit floating point constants in the llvm-mc asm output
Commit consists out of
  • M compiler/wasm32/agllvmmc.pas


+ implemented trunc(real) for WebAssembly via the i64.trunc_f32_s and i64.trunc_f64_s instructions
Commit consists out of
  • M compiler/wasm32/nwasminl.pas


+ implemented round(real) for WebAssembly via the fXX.nearest and i64.trunc_fXX_s instructions
Commit consists out of
  • M compiler/wasm32/nwasminl.pas


x86_64: Fix to tw8573 overflow bug under -Cg option
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw8573a.pp


* properly search in GetMMRegisterBetween and GetIntRegisterBetween for usable
volatile registers (low() .. high( and not only the included ones)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixed code generation for 'boolean64 and/or boolean64' for WebAssembly
Commit consists out of
  • M compiler/wasm32/nwasmadd.pas


* fixed WebAssembly code generation for 'if boolean64 then ... else ...'
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


* int64/boolean64 fix in twasmtypeconvnode.second_int_to_bool
Commit consists out of
  • M compiler/wasm32/nwasmcnv.pas


* fixed 'not(boolean64)' for WebAssembly
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* fixed second_int_to_bool for cbool types for WebAssembly
Commit consists out of
  • M compiler/wasm32/nwasmcnv.pas


* another WebAssembly cbool fix in twasmtypeconvnode.second_int_to_bool
Commit consists out of
  • M compiler/wasm32/nwasmcnv.pas


* fixed WebAssembly cbool support for OP_NOT
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* fixed WebAssembly code generation for not(cbool64)
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* modified (cosmetics) patch by Rika: replace DJB2 with MurmurHash3, resolves gitlab 0039377
Commit consists out of
  • M compiler/cclasses.pas


+ Aarch64: AndCmpB.E/NE2Tbnz/Tbz optimization
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/aarch64/aoptcpu.pas


+ Aarch64: LdrMov2Ldr optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* cleanup
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ comments
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


x86: Missed logic with CMP and MOV optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ added the memory.copy and memory.fill WebAssembly instructions
Commit consists out of
  • M compiler/systems.pas
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/agllvmmc.pas
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/strinst.inc


+ added inline numbers for a memory.copy and a memory.fill intrinsic
Commit consists out of
  • M compiler/wasm32/ccpuinnr.inc
  • M rtl/wasm32/cpuinnr.inc


+ implemented FillChar for WebAssembly via the memory.fill instruction
Commit consists out of
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc
  • M rtl/wasm32/wasm32.inc


+ implemented move() for WebAssembly via the memory.copy instruction
Commit consists out of
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc
  • M rtl/wasm32/wasm32.inc


* fixed OS_S8 to OS_16 conversion for WebAssembly. This fixes test/cg/tcnvint6
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ enabled compilation of the fpintres unit for the WASI target and enabled tf_has_winlike_resources for the target
Commit consists out of
  • M compiler/systems/i_wasi.pas
  • M rtl/wasi/Makefile
  • M rtl/wasi/Makefile.fpc


+ added system_wasm32_embedded to systems_embedded
Commit consists out of
  • M compiler/systems.pas


+ use the aasmdef unit in wasm32/cpunode.pas
Commit consists out of
  • M compiler/wasm32/cpunode.pas


- don't set casmdata in wasm32/aasmcpu.pas, so that the aasmdef unit can override it
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fixed WebAssembly method pointer assignment
Commit consists out of
  • M compiler/ncgld.pas
  • M compiler/wasm32/hlcgcpu.pas


+ workaround for WebAssembly treating the stack parameter of the store and load
instructions as unsigned. This caused an 'out of bounds memory access' trap
when accessing arrays with negative offset index, e.g. in test/cg/tvec.pp
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ implemented the <= operator for smallsets for WebAssembly
Commit consists out of
  • M compiler/wasm32/nwasmadd.pas


Fix bitpacking 62/63 bit fields on 64 bit targets

As reported on the lazarus forum:
* https://forum.lazarus.freepascal.org/index.php?topic=56341.new
* https://forum.lazarus.freepascal.org/index.php/topic,56339.msg418608/topicseen.html

Also optimized nextpowerof2 in the compiler
Commit consists out of
  • M compiler/cutils.pas
  • M compiler/symdef.pas
  • A tests/test/tprec25.pp


+ support equality comparison of smallsets on the Z80
Commit consists out of
  • M compiler/z80/nz80add.pas


+ support the <= and >= operators for smallsets on the Z80
Commit consists out of
  • M compiler/z80/nz80add.pas


* define DEBUG_AOPTCPU if EXTDEBUG is used
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


Fixed bug where hp1 object was used after being freed
Commit consists out of
  • M compiler/x86/aoptx86.pas


Typed constants: no internalerror on failure

Don't check whether the expression queue is empty in the destructor in case
there was an error. Also improved error messages (constant expression instead
of variable expression expected).

Resolves gitlab 0039393
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/ngtcon.pas
  • A tests/webtbf/tw39393.pp


+ x86: MovOp2Op optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ introduced WebAssembly branchful exceptions
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • A compiler/msg2inc
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


+ increase string type to avoid const string truncation
Commit consists out of
  • M compiler/globtype.pas


+ fixed compilation of ppudump
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


- removed msg2inc. Stupid git added it without my consent.
Commit consists out of
  • D compiler/msg2inc


AArch64 popt: don't replace registers with X/WZR

Most arithmetic/logica instructions don't support X/WZR as operand (since
you should use movk with the calculated constant in that case)

Resolves gitlab 0039372
Commit consists out of
  • M compiler/armgen/aoptarm.pas
  • A tests/webtbs/tw39372.pp


Avoid range check error in TCpuAsmOptimizer.OptPostAnd method
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ debug msg added
Commit consists out of
  • M compiler/x86/aoptx86.pas


* bail out early in MatchInstruction
Commit consists out of
  • M compiler/x86/aoptx86.pas


* cloned the WebAssembly native exceptions code generation and rtl support into
the branchful exceptions (which will be modified later, but we're using this
as their starting point, because we can get a snapshot built, without compiler
internal errors)
Commit consists out of
  • M compiler/options.pas
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/nwasmflw.pas
  • M compiler/wasm32/nwasmutil.pas
  • M rtl/inc/compproc.inc
  • M rtl/inc/objpas.inc
  • A rtl/wasm32/except_branchful.inc


- don't generate any WebAssembly native exception handling instructions, nor
relocations, when compiling in branchful exceptions mode. This produces a
currently not working, but accepted by wasmtime binary (otherwise, it
complains it doesn't support exceptions and refuses to try to run it).
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas
  • M compiler/wasm32/nwasmutil.pas


+ introduced raiseBr, similar to exitBr, but will point to the current
innermost exception handler, if there is such a handler in the current
procedure, otherwise it will be the same as exitBr.
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ added comment that states that raiseBr is only used in branchful exceptions mode
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ insert exception flag check and branch after each function call, when
compiling in WebAssembly branchful exceptions mode
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmcal.pas
  • M rtl/inc/compproc.inc
  • M rtl/wasm32/except_branchful.inc


+ implemented try..finally in branchful exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


+ initial implementation of try..except in branchful exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


+ implemented the 'on' node code generation (try except 'on' ...) for the
branchful exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


+ call g_checkexceptions after calls to fpc_reraise and fpc_raise_nested in
branchful exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


* x86: Refactored CMOV optimisations and permitted the use of constants in some cases.
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas


* use 'br_if' instead of 'if br end_if' sequence in the code, generated by
thlcgwasm.g_checkexceptions
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ support exception object cleanup, when 'exit', 'break' or 'continue' is used
in the except 'on' statements, in branchful WebAssembly exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


+ exception cleanup when break, continue or exit is used inside a
try .. except 'on' block, in WebAssembly native exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


Expanded MM block move to include YMM registers under AVX
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


+ proper exception cleanup for try except blocks that use exit, break or
continue in WebAssembly branchful exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


+ proper exception object cleanup when using break, continue or exit in try
except blocks in WebAssembly native exceptions mode
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


- removed duplicated assignment
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


* twasmexceptionstatehandler_nativeexceptions.handle_nested_exception and
twasmexceptionstatehandler_bfexceptions.handle_nested_exception should not be
called, so now they cause an internal error
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* thlcgwasm.g_checkexceptions renamed .g_maybe_checkforexceptions, added also as
an empty virtual method in thlcgobj and modified the WebAssembly
implementation, so that it can be called from any exceptions mode (so it
emits no code in exception modes that don't require it, instead of generating
an internal error). This will allow .g_maybe_checkforexceptions to be called
from the generic parts of the code generator, after calls to systemprocs that
could raise an exceptions.
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmcal.pas
  • M compiler/wasm32/nwasmflw.pas


+ added call to g_maybe_checkforexceptions after generating call to fpc_iocheck
Commit consists out of
  • M compiler/ncgcal.pas


* partially applied patch by J. Gareth "Kit" Moreton to inline parts of cclasses, resolves gitlab 0039344
Commit consists out of
  • M compiler/cclasses.pas


+ (V)Cvtss2CvtSd(V)Cvtsd2ss2Nop optimization, resolves gitlab 0039360
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* use source register as second register in VCVTSD2SS and VCVTSS2SD, this should break
dependency chains better and resolves partially gitlab 0039360
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cgx86.pas


* Optimized evaluation of the condition.
Commit consists out of
  • M compiler/optloop.pas


* Strength reduction optimization: - Use a temp for complex loop start values to prevent double evaluation.
- For slow CPUs perform the optimization for all sizes of array elements.
Commit consists out of
  • M compiler/optloop.pas


* generate VMOVAPS for (V)Cvtss2CvtSd(V)Cvtsd2ss optimization, resolves gitlab 0039360
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ added the current WebAssembly exceptions mode to the .ppu module flags and
perform a check to ensure all units are compiled in the same exceptions mode
as the main program
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* another location to use source register as second register in VCVTSD2SS and VCVTSS2SD
to break dependency chains, hopefully final fix for gitlab 0039360
Commit consists out of
  • M compiler/x86/cgx86.pas


+ support of SHA extension in the internal assembler
Commit consists out of
  • M compiler/i386/i386att.inc
  • M compiler/i386/i386atts.inc
  • M compiler/i386/i386int.inc
  • M compiler/i386/i386nop.inc
  • M compiler/i386/i386op.inc
  • M compiler/i386/i386prop.inc
  • M compiler/i386/i386tab.inc
  • M compiler/i8086/i8086att.inc
  • M compiler/i8086/i8086atts.inc
  • M compiler/i8086/i8086int.inc
  • M compiler/i8086/i8086nop.inc
  • M compiler/i8086/i8086op.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/i8086/i8086tab.inc
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc
  • M compiler/x86_64/x8664att.inc
  • M compiler/x86_64/x8664int.inc
  • M compiler/x86_64/x8664nop.inc
  • M compiler/x86_64/x8664op.inc
  • M compiler/x86_64/x8664pro.inc
  • M compiler/x86_64/x8664tab.inc
  • M tests/utils/avx/asmtestgenerator.pas
  • M tests/utils/avx/avxopcodes.pas


Better handling of zeroing upper parts of registers

Better handling of zeroing upper parts of registers
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


A pair of inlines
Commit consists out of
  • M compiler/x86/aasmcpu.pas


xor optimisation now doesn't check to see if the REX prefix will actually be removed, as it's beneficial for speed reasons to only use the 32-bit register when zeroing the whole thing
Commit consists out of
  • M compiler/x86/aoptx86.pas


o based on a patch by Rika, resolves gitlab 0039401:
* use Base64 (62=_, 63=$) encoded FNV hash (instead of CR-32) to shorted identifiers
* renamed fpccrc to fpchash
+ test
Commit consists out of
  • M compiler/aasmbase.pas
  • R055 compiler/fpccrc.pas compiler/fpchash.pas
  • M compiler/link.pas
  • M compiler/ncgvmt.pas
  • M compiler/pcp.pas
  • M compiler/pgenutil.pas
  • M compiler/ppu.pas
  • M compiler/symdef.pas
  • A tests/webtbs/tw39401.pp


* fix x86 compilation after my last commit
Commit consists out of
  • M compiler/ogomf.pas
  • M compiler/x86/agx86nsm.pas


* by default, DEBUG_AOPTCPU is only enabled if the compiler is compiled with -dEXTDEBUG
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas


+ being able to define change information for xmm0
* corrected change information for SHA256RNDS2
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* patch by Dean Mustakino to avoid generation of debug info for generics, resolves gitlab 0038827
+ test
Commit consists out of
  • M compiler/dbgdwarf.pas
  • A tests/webtbs/tw38827.pp
  • A tests/webtbs/uw38827.pp


* add no internal flag when folding constants in taddnode.simplify, resolves gitlab 0039308
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbf/tw39308.pp


+ pass 64-bit structures by address in WebAssembly for compatibility with LLVM's C ABI
Commit consists out of
  • M compiler/wasm32/cpupara.pas


* Removed unused tlocation.registers[].
Commit consists out of
  • M compiler/cgutils.pas


* itcpugas unit for Z80 providing gas_regname to fix compilation with -dDEBUG_NODE_XML
Commit consists out of
  • A compiler/z80/itcpugas.pas


* fix warnings with -dDEBUG_NODE_XML, resolves gitlab 0038222
Commit consists out of
  • M compiler/verbose.pas


* C ABI fixes for the passing of records in WebAssembly
Commit consists out of
  • M compiler/wasm32/cpupara.pas


* fixed formatting in defToWasmBasic
Commit consists out of
  • M compiler/wasm32/tgcpu.pas


+ added support for the handling of singleton record and array types in
defToWasmBasic
Commit consists out of
  • M compiler/wasm32/cpupara.pas
  • M compiler/wasm32/tgcpu.pas


* fixed passing of singleton record parameters, containing a float in WebAssembly
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/wasm32/cpupara.pas
  • M compiler/wasm32/hlcgcpu.pas


+ support cdecl and stdcall on the WebAssembly target. They are essentially the
same, the only difference is that cdecl creates an unmangled alias
Commit consists out of
  • M compiler/wasm32/cpuinfo.pas


* replaced the 'if br end_if' sequence with the 'br_if' instruction, when
generating WebAssembly code for try..finally blocks (in all exception modes)
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


+ extend assembler optimization MovxMov2Mov to MovxOp2Op
Commit consists out of
  • M compiler/x86/aoptx86.pas


* merge request 75 by J. Gareth "Kit" Moreton manually applied:

This merge request makes a number of improvements to the DeepMOVOpt method and supporting functions:

* ReplaceRegisterInInstruction now replaces registers in references that are written to
(since the registers themselves won't change)
* RegModifiedByInstruction will no longer return True for a register that appears in a reference
that's written to (for the same reason as above) - special operations like MOVSS
(the 0-operand version) aren't affected.
* DeepMOVOpt returning True will now always set the Result of OptPass1MOV to True even though p
wasn't directly modified, since this often caused missed optimisations.
* Some of the speed-ups in the patch from gitlab 0032916 have also been applied in order to make
the general DeepMOVOpt run faster, notably it tries to avoid calling UpdateUsedRegs where possible.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* manually merged merge request 69 by J. Gareth "Kit" Moreton:
x86: CMP/MOV refactoring and expansion
This merge request refactors the SwapMovCmp routine, and calls to it, to be more self-contained,
having the preliminary checks built-in to ensure that moving the MOV instruction is
actually a sound idea, while also making it more general-purpose so it can handle instructions
that are not MOV operations. This feature is primarily for future expansion,
but also cleans up the code for the x86 peephole optimizer.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by Sergey Larin: Reducing and aligning the size of TAnsiRec, TUnicodeRec for CPU64, resolves gitlab 0038018:
For CPU64, the size of record TAnsiRec and TUnicodeRec is 16 bytes instead of 24.
Which is very good also because of the alignment. when allocating memory, the address
of the first character of the string will be aligned on the 16-byte boundary.
At the same time, the useless Dummy field, which is needed in CPU64 for exactly alignment, has been removed.
For CPU32 (and CPU16), the record size has not changed, so procedures such as
fpc_AnsiStr_Decr_Ref, implemented in assembler (see i386, arm), remained working correctly.
* tests adapted
Commit consists out of
  • M compiler/aasmcnst.pas
  • M rtl/inc/astrings.inc
  • M rtl/inc/ustrings.inc
  • M tests/webtbs/tw20962.pp
  • M tests/webtbs/tw7100.pp


* keep type when removing "1*", resolves gitlab 0038840
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw38840.pp


+ support reading of .p2align with op code and/or max. bytes in the gas assembler reader
+ test
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/raatt.pas
  • A tests/test/tp2align.pp


+ introduced the use of asm labels for WebAssembly. Resolve them in
tcpuprocinfo.postprocess_code. Use them when generating code for the
'continue' label jumps.
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmflw.pas


+ use WebAssembly asm labels for the code generation of 'break' statements as well
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmflw.pas


* fixed some warnings
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* fixed some more warnings
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas


* use WebAssembly asm labels for generating code for the 'exit' statement
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmflw.pas


* leave unresolved branches in the asm output, when the compiler is compiled with -dEXTDEBUG
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* if a label cannot be associated with the previous block instruction, try
matching it with the next instruction
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ wrap block nodes with exit in a_block..a_end_block instructions. This fixes
'exit' in inlined procedures on the WebAssembly target.
Commit consists out of
  • M compiler/wasm32/cpunode.pas
  • A compiler/wasm32/nwasmbas.pas


* moved the 'end_block' WebAssembly instruction before the 'exit' label right
before the procedure finalization code. This fixes compilation errors in
procedures with implicit finalization code (e.g. for ansistring local vars,
etc).
Commit consists out of
  • M compiler/psub.pas
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas


* match the label to the wider block, if it is adjacent to both the brevious
and the next instruction
Commit consists out of
  • M compiler/wasm32/cpupi.pas


internalerror if the section we're about to keep has no exesection assigned
Commit consists out of
  • M compiler/ogbase.pas


* use WebAssembly asm labels for the raise branch instruction in branchful
exceptions mode
Commit consists out of
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmflw.pas


+ added sanity check when resolving labels to ensure we don't get any jumps with
negative nesting depth
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* moved the default procedure CurrRaiseLabel to the end of the procedure, not
at the exit label. This fixes problems when using units with finalization
code that contain classes with class destructors in branchful WebAssembly
exceptions mode.
Commit consists out of
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas


Bug fix to MovMov2Mov 6 optimisation exposed by 4012c3dbd47f661805bb7a831c6c687807ede3b4 (and miscellaneous code refactors)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* WebAssembly code generation for 'case' nodes changed to use labels
Commit consists out of
  • M compiler/nset.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmset.pas


- removed thlcgwasm.incblock, .decblock and br_blocks, as branching is now done
entirely with labels
Commit consists out of
  • M compiler/ncgset.pas
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmadd.pas
  • M compiler/wasm32/nwasmbas.pas
  • M compiler/wasm32/nwasmcnv.pas
  • M compiler/wasm32/nwasmflw.pas
  • M compiler/wasm32/nwasminl.pas
  • M compiler/wasm32/nwasmset.pas


+ TDFABuilder.redodfainfo
Commit consists out of
  • M compiler/optdfa.pas
  • M compiler/psub.pas


* keep track of the block stack, when resolving labels and check whether the
blocks match (i.e. block..end_block, if..end_if, loop..end_loop, try..end_try)
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ added 'else' tracking for the if..end_if blocks
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* TX86AsmOptimizer.OptPass1MOVXX takes care of volatility
Commit consists out of
  • M compiler/x86/aoptx86.pas


* improved TX86AsmOptimizer.OptPass1MOVXX
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ print full file path if -vb is passed even if no line number is known, resolves gitlab 0039419
Commit consists out of
  • M compiler/comphook.pas


Improved ADD and SUB optimisations for LEA instructions
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* Better coalescing with real registers. This improves setting of parameters
in registers.
* Removed superfluous condition in trgobj.enable_moves().
* Fixed flags checking in trgobj.adjacent_ok().
* Added assembler comments about coalescing when DEBUG_SPILLCOALESCE is defined.
Commit consists out of
  • M compiler/rgobj.pas


Fixed some range check problems
Commit consists out of
  • M compiler/x86/aoptx86.pas


* correctly read the region label in $region directives, resolves gitlab 0039395
Commit consists out of
  • M compiler/scandir.pas
  • A tests/webtbs/tw39395.pp


Fixed OptPass2Lea not honouring symbols
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ some opcodes added
Commit consists out of
  • M compiler/aarch64/a64att.inc
  • M compiler/aarch64/a64atts.inc
  • M compiler/aarch64/a64ins.dat
  • M compiler/aarch64/a64op.inc


+ write code and data size for Mach-O files if possible
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems/t_darwin.pas


* cleanup of 2.7.0 defines
Commit consists out of
  • M compiler/aarch64/cpuinfo.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/avr/cpuinfo.pas
  • M compiler/compiler.pas
  • M compiler/cresstr.pas
  • M compiler/generic/cpuinfo.pas
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/jvm/cpuinfo.pas
  • M compiler/m68k/cpuinfo.pas
  • M compiler/mips/cpuinfo.pas
  • M compiler/nadd.pas
  • M compiler/options.pas
  • M compiler/powerpc/cpuinfo.pas
  • M compiler/powerpc64/cpuinfo.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas
  • M compiler/scanner.pas
  • M compiler/sparc/cpuinfo.pas
  • M compiler/sparc64/cpuinfo.pas
  • M compiler/wasm32/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas
  • M compiler/z80/cpuinfo.pas


+ fold real constants c1,c2 for v+c1+c2 or c1+(c2+v) (+ being either + or *) as well if fastmath is enabled
Commit consists out of
  • M compiler/nadd.pas


Record variant discriminators: check types
Commit consists out of
  • M compiler/pdecvar.pas
  • A tests/tbf/tb0276.pp


* AArch64: TCpuAsmOptimizer.RegLoadedWithNewValue: check if p.ops=0
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* Corrected calculation of spilling efficiency.
Commit consists out of
  • M compiler/rgobj.pas


optcse: fix wrong typecast
Commit consists out of
  • M compiler/optcse.pas


+ support $lgeacyifend directive, resolves gitlab 0037676
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/scandir.pas
  • M compiler/scanner.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A tests/tbf/tb0277.pp
  • A tests/tbf/tb0278.pp
  • A tests/tbf/tb0279.pp
  • A tests/tbf/tb0280.pp


* The label which is generated by traisenode is not a jump target. Mark
this label as nf_internal, which means the label does not impact the
code flow. This leads to a much better register allocation.
Commit consists out of
  • M compiler/ncgflw.pas
  • M compiler/nflw.pas


* Write interference graphs to the unit output directory.
Commit consists out of
  • M compiler/rgobj.pas


* Removed unused and confusing tnode.parent and tnode.concattolist().
Commit consists out of
  • M compiler/node.pas


* Removed obsolete OLDREGVARS ifdefs.
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/i386/n386add.pas
  • M compiler/i8086/n8086add.pas
  • M compiler/ncgflw.pas
  • M compiler/ncgset.pas
  • M compiler/powerpc/nppcadd.pas
  • M compiler/psub.pas
  • M compiler/symdef.pas
  • M compiler/wasm32/nwasmset.pas


* Corrected setting of the flag.
Commit consists out of
  • M compiler/nflw.pas


* Typo fixed.
Commit consists out of
  • M compiler/rgobj.pas


* tcgaarch64.g_concatcopy calls tcgaarch64.g_concatcopy_move only if the current subroutine has pi_do_call set
* fixed copy loop in tcgaarch64.g_concatcopy if ldp/stp is used: fixed increment calculation and fixed tail length calculation
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* improved heurisics when thread var addresses or float constants are put in registers
Commit consists out of
  • M compiler/optcse.pas


* corrected accidently made changs in 01a449c8, resolves gitlab 0039424
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ ARM: started on vfpv5 support
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/agarmgas.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/narmutil.pas


+ fp-armv8 fpu type added
Commit consists out of
  • M compiler/arm/aasmcpu.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/arm/narmutil.pas


* tcgsizep2size now supports all tcgsize values
Commit consists out of
  • M compiler/aarch64/cpubase.pas


* Fixed node coalescing with real registers.
Commit consists out of
  • M compiler/rgobj.pas


+ be able to add single cpu capabilites by the command line
+ AArch64: SHA2 capability
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cpuinfo.pas
  • M compiler/options.pas


+ more Aarch64 cpu capability flags added
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cpuinfo.pas


* cosmetics
Commit consists out of
  • M compiler/options.pas


* fix (V)Cvtss2CvtSd(V)Cvtsd2ss2* optmizations for non-avx code, resolves gitlab 0039416
Commit consists out of
  • M compiler/x86/aoptx86.pas


* my last commit hopefully fixed
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ Aarch64: read register sets with ranges properly
+ tests
Commit consists out of
  • M compiler/aarch64/racpugas.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • A tests/tbf/tb0281.pp
  • A tests/tbf/tb0282.pp
  • A tests/tbf/tb0283.pp
  • A tests/tbf/tb0284.pp
  • A tests/tbs/tb0687.pp


* when converting a*a into sqr(a), set the result type correctly
* removefloatupcasts takes care of cs_excessprecision, resolves gitlab 0039012
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/ninl.pas
  • A tests/webtbs/tw39012.pp


Explicitly disable overflow for offset propagation optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by Rika to pass some strings by reference, resolves gitlab 0039338
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/cstreams.pas
  • M compiler/globals.pas
  • M compiler/pexpr.pas
  • M compiler/pgenutil.pas
  • M compiler/pinline.pas
  • M compiler/scanner.pas
  • M compiler/symtable.pas


* patch by Don Siders: Fixes spelling, grammar errors in source and compiler messages, resolves gitlab 0039434
Commit consists out of
  • M compiler/msg/errorct.msg
  • M compiler/msg/errorda.msg
  • M compiler/msg/errores.msg
  • M compiler/msg/errorf.msg
  • M compiler/msg/errorfi.msg
  • M compiler/msg/errorhe.msg
  • M compiler/msg/errorheu.msg
  • M compiler/msg/erroriu.msg
  • M compiler/msg/errorn.msg
  • M compiler/msg/errorpl.msg
  • M compiler/msg/errorpli.msg
  • M compiler/msg/errorpt.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msg/errorues.msg
  • M packages/fcl-web/src/base/fphttpserver.pp
  • M packages/ptc/src/win32/directx/p_dinput.pp
  • M packages/tcl/tests/tcl_demo.pp
  • M packages/univint/src/ATSUnicodeDrawing.pas
  • M packages/univint/src/CFNetDiagnostics.pas
  • M packages/univint/src/CFNetServices.pas
  • M packages/univint/src/CFURL.pas
  • M packages/univint/src/CFURLEnumerator.pas
  • M packages/univint/src/Menus.pas
  • M packages/univint/src/OpenTransport.pas
  • M packages/univint/src/SCSI.pas
  • M packages/univint/src/SKSummary.pas
  • M packages/univint/src/WSProtocolHandler.pas
  • M packages/univint/src/WSTypes.pas
  • M tests/test/tstack.pp
  • M tests/test/units/math/tmask.inc
  • M tests/webtbs/tw16884.pp
  • M tests/webtbs/tw7100.pp


llvm: version 12.0 support
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvminfo.pas


* better error message
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/systems/t_freertos.pas


x86: new optimisation to change add/sub 128,(dest) to sub/add -128,(dest) to reduce binary size
Commit consists out of
  • M compiler/x86/aoptx86.pas


Add -WP option so that IDF version can be passed in - stored in globals.idf_version. The version is checked in t_freertos.pas and for esp-idf version 4.3.x an extra link file is added, also running ldgen.py is skipped as that seems unused.
Commit consists out of
  • M compiler/globals.pas
  • M compiler/options.pas
  • M compiler/systems/t_freertos.pas


* inputfilepath might not be empty
Commit consists out of
  • M compiler/systems/t_freertos.pas


+ draft for esp-idf version specific rtl unit which contains the necessery linklib statements
Commit consists out of
  • M compiler/pmodules.pas
  • M rtl/freertos/Makefile
  • M rtl/freertos/Makefile.fpc
  • M rtl/freertos/xtensa/esp32.pp
  • A rtl/freertos/xtensa/espidf_40200.pp


* force result to be set
Commit consists out of
  • M compiler/options.pas


* correct idf version check
Commit consists out of
  • M compiler/systems/t_freertos.pas


* better code and data size info for FreeRTOS
Commit consists out of
  • M compiler/systems/t_freertos.pas


The linklib list for esp-idf v4.2 is also needed for v4.3
Commit consists out of
  • M compiler/pmodules.pas


Place IDF related files in executable output folder.
Commit consists out of
  • M compiler/systems/t_freertos.pas


Remove unused $OUTPUT substtution and empty check of outputexedir.
Commit consists out of
  • M compiler/systems/t_freertos.pas


- Bug fix to new ADD/SUB optimisation where conditions are concerned
- Register allocation fixes for overflow checks
Commit consists out of
  • M compiler/cg64f32.pas
  • M compiler/hlcgobj.pas
  • M compiler/i386/n386add.pas
  • M compiler/i8086/n8086add.pas
  • M compiler/jvm/cpubase.pas
  • M compiler/ncgmat.pas
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86add.pas
  • M compiler/x86_64/nx64add.pas


Bug fixes to magic division and vectorcall code that trigger -CriotR checks
Commit consists out of
  • M compiler/x86/nx86mat.pas
  • M compiler/x86_64/cpupara.pas


* cleanup of VER3_0 defines
Commit consists out of
  • M compiler/aarch64/cpupara.pas
  • M compiler/arm/cpupara.pas
  • M compiler/fpcdefs.inc
  • M compiler/i386/cpupara.pas
  • M compiler/i8086/cpupara.pas
  • M compiler/jvm/cpupara.pas
  • M compiler/m68k/cpupara.pas
  • M compiler/mips/cpupara.pas
  • M compiler/nadd.pas
  • M compiler/objcasm.pas
  • M compiler/paramgr.pas
  • M compiler/powerpc/cpupara.pas
  • M compiler/powerpc64/cpupara.pas
  • M compiler/wasm32/cpupara.pas
  • M compiler/x86_64/cpupara.pas


+ Aaarch64: support adr instructions with local labels in the assembler reader
+ throw an error if an illegal instruction extension is passed as command line option
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/options.pas


+ more AArch64 extensions
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cpuinfo.pas


* regenerated Makefiles
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcm/revision.inc
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


* x86-64 can handle overflows in 64 bit multiplications directly, part of resolving gitlab 0039450
Commit consists out of
  • M compiler/x86_64/nx64add.pas


All Makefile's regenerated
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


* fix conditional statement as pointed out by Sergey Larin
Commit consists out of
  • M compiler/nadd.pas


* last commit was not correct, fixed
Commit consists out of
  • M compiler/nadd.pas


Keep esp32 and esp8266 version specific tweaks separate.
Commit consists out of
  • M compiler/options.pas
  • M compiler/pmodules.pas


Extract linker script generation as separate method. Check if esp linker scripts can be found in library paths, if not then generate scritps.
Commit consists out of
  • M compiler/systems/t_freertos.pas


* Added Tmoveins.id to be used for sorting and searching in Tmovelist, to
produce the consistent order of elements.
This fixes occasional differences in the register allocation caused by
the address space randomization. When ASLR is in effect, the previous
approach to sort elements by their memory addresses can't guarantee the
consistent elements order for each compilation of the same source code.
Commit consists out of
  • M compiler/rgobj.pas


* Use longint for Tmoveins.id instead of word to prevent overflow in extreme cases.
Commit consists out of
  • M compiler/rgobj.pas


Add output path to kconfig source file location parameters.
Commit consists out of
  • M compiler/systems/t_freertos.pas


Always call DoExec to generate linker scripts. Even if cs_link_nolink is set, the ldgen scipt needs to be called in the generated ppas script.
Commit consists out of
  • M compiler/systems/t_freertos.pas


Change declaration of DynLinkStr local variable of MakeExecutable method to ansitring to avoid short string overflows
Commit consists out of
  • M compiler/systems/t_amiga.pas
  • M compiler/systems/t_atari.pas
  • M compiler/systems/t_beos.pas
  • M compiler/systems/t_bsd.pas
  • M compiler/systems/t_haiku.pas
  • M compiler/systems/t_linux.pas
  • M compiler/systems/t_macos.pas
  • M compiler/systems/t_sinclairql.pas
  • M compiler/systems/t_sunos.pas


Fixes to ADD/SUB 128 optimisation that didn't check flags properly, and also handling ADC/SBB properly
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ - can be used to remove options from a cpu capability switch
Commit consists out of
  • M compiler/options.pas


Fixed Unreachable code warning when building on a 32-bit platform with DEBUG_NODE_XML
Commit consists out of
  • M compiler/verbose.pas


* fixes excluding of cpu capabilities
Commit consists out of
  • M compiler/cutils.pas
  • M compiler/options.pas


New MovxMovxOp2OpMovx optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* generate no exit code at all on x86-64 if the subroutine is compiled with po_noreturn
Commit consists out of
  • M compiler/x86_64/cgcpu.pas


Bolder OptPass2Movx optimisations, including a simplification fix
Commit consists out of
  • M compiler/x86/aoptx86.pas


New Movz ###,%ecx, shift/rotate %cl,... optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* compilation of x86_64-win64 fixed
Commit consists out of
  • M compiler/x86_64/cgcpu.pas


Adding aaarch64-embedded target

This adds support for aarch64-embedded, specifically for the Raspberry Pi 3.

Uses UART0 at 115200 baud 8N1 for console IO.
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/aarch64/a64reg.dat
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cpuinfo.pas
  • M compiler/aarch64/cpunode.pas
  • M compiler/aarch64/cputarg.pas
  • A compiler/aarch64/naarch64util.pas
  • M compiler/aarch64/ra64con.inc
  • M compiler/aarch64/ra64dwa.inc
  • M compiler/aarch64/ra64nor.inc
  • M compiler/aarch64/ra64num.inc
  • M compiler/aarch64/ra64rni.inc
  • M compiler/aarch64/ra64sri.inc
  • M compiler/aarch64/ra64sta.inc
  • M compiler/aarch64/ra64std.inc
  • M compiler/aarch64/ra64sup.inc
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_embed.pas
  • M compiler/systems/t_embed.pas
  • M compiler/utils/Makefile
  • M compiler/utils/ppuutils/ppudump.pp
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/embedded/Makefile.fpc
  • A rtl/embedded/aarch64/gpio.pp
  • A rtl/embedded/aarch64/mailbox.pp
  • A rtl/embedded/aarch64/mmio.pp
  • A rtl/embedded/aarch64/raspi3.pp
  • A rtl/embedded/aarch64/raspiuart.pp
  • M rtl/embedded/system.cfg
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcm/fpcmake.ini
  • M utils/fpcm/fpcmmain.pp
  • M utils/fpcm/revision.inc
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


MovZX->MovSX optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


Improved handling of signed sequences in OptPass2Movx
Commit consists out of
  • M compiler/x86/aoptx86.pas


Massive overhaul to OptPass2Movx to favour operand shrinkage
Commit consists out of
  • M compiler/x86/aoptx86.pas


New MovxAndTest2Test optimisation to mirror the regular MovAndTest2Test optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


Added missing MOVSXD check to PostPeepHoleOptsCpu
Commit consists out of
  • M compiler/x86_64/aoptcpu.pas


+ store references to global variables in registers if benefical (currrently used for aarch64 only)
Commit consists out of
  • M compiler/optcse.pas


* Increased the bounds of TBooleanArray to prevent a range check error while linking Lazarus.
Commit consists out of
  • M compiler/link.pas


* Prevent a range check error in case of big unsigned values.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Fixed random AVs when targeting the AVX FPU.
Commit consists out of
  • M compiler/rgobj.pas
  • M compiler/x86/rgx86.pas


x86: New TEST optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


Safety checks on TEST removals and better FLAG tracking
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix m68k IE after e9acd759, patch by Yuriy Sydorov
Commit consists out of
  • M compiler/m68k/rgcpu.pas


New optimisation that merges small constants written to the stack
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fixed bug in new TEST optimisation where a FLAGS check always returned "in use"
Commit consists out of
  • M compiler/x86/aoptx86.pas


* make tgobj.pas less verbose in extdebug mode, use separate define DEBUG_FREETEMP for the really
verbose stuff
Commit consists out of
  • M compiler/tgobj.pas


* better error recovery, resolves gitlab 0039485
Commit consists out of
  • M compiler/pdecobj.pas
  • A tests/tbf/tw39485.pp


Removed incorrect logic in TEST optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ in_min/max_single/double support for aarch64
Commit consists out of
  • M compiler/aarch64/ncpuinl.pas
  • M compiler/nflw.pas


+ in_min/max_dword/longint support for aarch64
Commit consists out of
  • M compiler/aarch64/ncpuinl.pas
  • M compiler/nflw.pas


* compilation with i386 fixed
Commit consists out of
  • M compiler/x86/aoptx86.pas


Overflow bug fixes to MovZX/SX optimisations when CMP instructions are encountered.
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fixed MovxOp2Op failing on i386 due to lack of register check
Commit consists out of
  • M compiler/x86/aoptx86.pas


* TX86AsmOptimizer.OptPass1MOVXX should search only over other instructions if it works with registers only
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by Rika: improve ctuils.newalign/align, part of gitlab 0039496
Commit consists out of
  • M compiler/cutils.pas


x86: New double CMP optimisation to remove a branch
Commit consists out of
  • M compiler/x86/aoptx86.pas


i386: Correction to GetIntRegisterBetween to ensure we only get 8-bit registers that we can actually encode
Commit consists out of
  • M compiler/x86/aoptx86.pas


x86: Additions to OptPass2Movx to better synergise with new CMP optimisation under -O2
Commit consists out of
  • M compiler/x86/aoptx86.pas


Refactoring of OptPass2Movx to remove goto
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fixed bug in MovxMovx2Movx optimisation that would specify a 64-bit destination instead of 32-bit one
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by Rika: another improvement of cutils.newalignment, part of gitlab 0039496
Commit consists out of
  • M compiler/cutils.pas


Procedure-saved registers are now recorded for peephole optimizers to use
Commit consists out of
  • M compiler/cgobj.pas
  • M compiler/procinfo.pas
  • M compiler/x86/aoptx86.pas


JccAdd2SetccAdd modified to make use of GetIntRegisterBetween
Commit consists out of
  • M compiler/cgobj.pas
  • M compiler/x86/aoptx86.pas


* use an anonymous symbol for the record operator table as its typing is different for each incarnation anyway
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symconst.pas


* Amiga-likes: set some sensible heapsize defaults, for OSHeap support
Commit consists out of
  • M compiler/options.pas


MOV/CMP optimisation is now in both Pass 1 and Pass 2 to catch more
eventualities
Commit consists out of
  • M compiler/x86/aoptx86.pas


* allow %... for binary constants in delphi mode, resolves gitlab 0039503
Commit consists out of
  • M compiler/scanner.pas
  • R089 tests/tbf/tb0067.pp tests/tbs/tb0689.pp


+ modeswitch UNDERSCOREISSEPERATOR, active by default in delphi modes:
support _ as seperator in numbers, it is ignored while reading them, resolves gitlab 0039504
Commit consists out of
  • M compiler/globals.pas
  • M compiler/globtype.pas
  • M compiler/scanner.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A tests/tbf/tb0286.pp
  • A tests/tbf/tb0287.pp
  • A tests/tbf/tb0288.pp
  • A tests/tbf/tb0289.pp
  • A tests/tbf/tb0290.pp
  • A tests/tbs/ib0690.inc
  • A tests/tbs/tb0690.pp
  • A tests/tbs/tb0691.pp


* seperator => separator
Commit consists out of
  • M compiler/arm/armreg.dat
  • M compiler/arm/cgcpu.pas
  • M compiler/globals.pas
  • M compiler/globtype.pas
  • M compiler/hlcgobj.pas
  • M compiler/ngenutil.pas
  • M compiler/scanner.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M rtl/inc/text.inc
  • M rtl/objpas/sysutils/datih.inc
  • M tests/tbf/tb0287.pp
  • M tests/tbf/tb0288.pp
  • M tests/tbf/tb0289.pp
  • M tests/tbf/tb0290.pp
  • M tests/tbs/tb0690.pp


Additional copyright header
Commit consists out of
  • M compiler/aarch64/naarch64util.pas


Debugging code in AllocRegBetween is now safer and more accurate, and p2 can no longer be nil
Commit consists out of
  • M compiler/aoptobj.pas


* (modified) patch by Rika: optutils.SetNodeSucessors improvement, resolves gitlab 0039509
Commit consists out of
  • M compiler/optutils.pas


* compilation with -Oodfa fixed
Commit consists out of
  • M compiler/optutils.pas


PostPeepholeOptTestOr now removes TEST when dealing with POPCNT and LZCNT
Commit consists out of
  • M compiler/x86/aoptx86.pas


Use different library link lists for esp8266-rtos-sdk v3.3 and v3.4.
Commit consists out of
  • M compiler/pmodules.pas
  • M rtl/freertos/Makefile
  • M rtl/freertos/Makefile.fpc
  • M rtl/freertos/xtensa/esp8266.pp
  • A rtl/freertos/xtensa/esp8266rtos_30300.pp
  • A rtl/freertos/xtensa/esp8266rtos_30400.pp


Avoid range check error inside tcgcasenode.pass_generate_code method
Commit consists out of
  • M compiler/ncgset.pas


Ignore NR_DEFAULTFLAGS for ait_regalloc, because there is no default flags for JVM
Commit consists out of
  • M compiler/jvm/rgcpu.pas


New backward MOV optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by Rika: Better Align()'s #2, resolves gitlab 0039512
Commit consists out of
  • M compiler/ogbase.pas


Add help message for xtensa-freertos -WP option
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* apply patch by Blaise.ru:
- avoid creation of a dummy typesym just to call parse_var_proc_directives() by introducing a new parse_proctype_directives() that takes a tprocvardef instead of a symbol like the former does
- have parse_var_proc_directives() call parse_proctype_directives() to avoid duplicated code
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/pdecvar.pas
  • M compiler/ptype.pas


* apply patch by Blaise.ru:
- all call sites of parse_var_proc_directives() have the tprocvardef easily available, so use parse_proctype_directives() directly
- remove the now no longer required parse_var_proc_directives()
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecsub.pas
  • M compiler/pgenutil.pas


* apply patch by Blaise.ru: parse_object_proc_directives() and parse_object_record_directives() should only be called with procdefs, so change the parameter from tabstractprocdef to tprocdef to make this explicit
Commit consists out of
  • M compiler/pdecsub.pas


* apply part of patch by Blaise.ru: check only once whether writable consts are enabled or not by determining the type of the assembly list earlier (it's only not needed in an error case anyway)
Commit consists out of
  • M compiler/pdecl.pas


* apply part of patch by Blaise.ru: reduce code duplication when parsing anonymous procvar types
Commit consists out of
  • M compiler/pdecl.pas


- apply patch by Blaise.ru: pdflags are no longer required in generate_specialization_phase2() after parse_proc_directives() was done, so remove its unused modification after that call
Commit consists out of
  • M compiler/pgenutil.pas


* throw an error if raise is called in a noreturn subroutine outside of any exception frame, resolves gitlab 0039514
Commit consists out of
  • M compiler/cclasses.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pstatmnt.pas
  • M compiler/verbose.pas
  • A tests/tbf/tw39514.pp


* apply patch by Blaise.ru: reject assignments of instance methods, accessed via a type, to method pointers
+ add tests
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/test/tprocvar10.pp
  • A tests/test/tprocvar4.pp
  • A tests/test/tprocvar5.pp
  • A tests/test/tprocvar6.pp
  • A tests/test/tprocvar7.pp
  • A tests/test/tprocvar8.pp
  • A tests/test/tprocvar9.pp


* apply patch by Blaise.ru: avoid internal error when assigning class methods, accessed via a class reference type, to incompatible procvars
+ added tests
Commit consists out of
  • M compiler/ncnv.pas
  • A tests/test/tprocvar11.pp
  • A tests/test/tprocvar12.pp
  • A tests/test/tprocvar13.pp
  • A tests/test/tprocvar14.pp
  • A tests/test/tprocvar15.pp


* apply patch by Blaise.ru: proper code generation for assigning class non-static methods, accessed via a class reference type, to method pointers
+ added test
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/test/tprocvar16.pp


* x86: Fixes to GetInt/MMRegisterBetween assignments
Commit consists out of
  • M compiler/x86/aoptx86.pas


* New UpdateUsedRegsBetween utility subroutine
Commit consists out of
  • M compiler/aoptobj.pas


* x86: OptPass1_V_MOVAP now uses GetNextInstructionUsingReg and UpdateUsedRegsBetween
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fixed Internal Error 2020120501 number clash
Commit consists out of
  • M compiler/ncginl.pas


* small fix for ie
Commit consists out of
  • M compiler/x86/cgx86.pas


+ apply patch by Blaise.ru: allow initialisation of method pointers with class methods (when class types are
known at compile time)
* adjust error message when a method pointer isn't suitable
+ add tests
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/ngtcon.pas
  • A tests/test/tprocvar17.pp
  • A tests/test/tprocvar18.pp
  • A tests/test/tprocvar19.pp
  • A tests/test/tprocvar20.pp


* regenerate msg{idx,txt}.inc after message change in last commit
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Use '.rodata' for read-only data section for aarch64 CPU
Commit consists out of
  • M compiler/aggas.pas


New MOV optimisation that helps reduce instruction count and memory accesses
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ add method ResetSourceLines to TExternalAssembler to reset already written lines
Commit consists out of
  • M compiler/assemble.pas


* reset written source lines once a section is encountered
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/powerpc/agppcmpw.pas
  • M compiler/x86/agx86int.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/z80/agsdasz80.pas
  • M compiler/z80/agz80vasm.pas


* fix typo in comment
Commit consists out of
  • M compiler/pass_1.pas


Remove fall-through logic and separate idf_version checks of esp32 and esp8266. Also warn if idf_version is below the supported range.
Commit consists out of
  • M compiler/pmodules.pas


+ DestSize parameter for fpc_Val_UInt functions
Commit consists out of
  • M compiler/ninl.pas
  • M rtl/inc/astrings.inc
  • M rtl/inc/compproc.inc
  • M rtl/inc/sstrings.inc
  • M rtl/inc/ustrings.inc
  • M rtl/inc/wstrings.inc


Refactoring procedures in aoptx86 to gain speed boosts
Commit consists out of
  • M compiler/x86/aoptx86.pas


Allocate THashSet item and its key together when FOwnKeys=true.
Commit consists out of
  • M compiler/cclasses.pas


* add const
Commit consists out of
  • M compiler/optdfa.pas


Get rid of some global variables.
Commit consists out of
  • M compiler/optdfa.pas
  • M compiler/optutils.pas


Fixed and refactored MOVX optimisation that occasionally caused crashes on i386 platforms
Commit consists out of
  • M compiler/x86/aoptx86.pas


Correct linker script for aarch64-embedded

Start address was wrong, should be 0x80000, not 0x8000
Commit consists out of
  • M compiler/aarch64/cpuinfo.pas


* extract a symbol or def from its previous owner if that owner has OwnsObjects set to true
Commit consists out of
  • M compiler/symtype.pas


+ provide a tsym based variant of ChangeOwnerAndName
Commit consists out of
  • M compiler/pgenutil.pas
  • M compiler/symtype.pas


* a function also captures other nested functions when these are called
Commit consists out of
  • M compiler/ncal.pas


* generate a better name if the procdef is an anonymous one
Commit consists out of
  • M compiler/symdef.pas


+ add method register_implemented_interface to tobjectdef which registers an implemented interface and - if desired - also initializes the GUID related fields of the objectdef
* use that method in all locations outside symdef that add add an implemented interface

Based on work by Blaise.ru
Commit consists out of
  • M compiler/jvm/pjvm.pas
  • M compiler/pdecobj.pas
  • M compiler/pgenutil.pas
  • M compiler/symdef.pas


Add link unit for esp-idf v4.1. Version checks to allow for different patch levels in idf_version.
Commit consists out of
  • M compiler/pmodules.pas
  • M rtl/freertos/Makefile
  • M rtl/freertos/Makefile.fpc
  • A rtl/freertos/xtensa/espidf_40100.pp


GenerateDefaultLinkerScripts should set out_ld_filename.
Commit consists out of
  • M compiler/systems/t_freertos.pas


esp32.rom.api.ld was only introduced in esp-idf v4.3. Remove invalid linker search path.
Commit consists out of
  • M compiler/systems/t_freertos.pas


* High() and Length() for dynamic arrays deal with sizesinttype instead of ossinttype (on AVR the former is 16-bit while the later is 8-bit thus this is an important distinction)
Commit consists out of
  • M compiler/ncginl.pas
  • M compiler/ninl.pas


+ MovapXComisX2ComisX2 optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ add constants for the Invoke symbol of a function reference interface (both for declaring and finding it)
Commit consists out of
  • M compiler/symconst.pas


+ add utility function to retrieve the invoke procdef of a function reference interface
Commit consists out of
  • M compiler/defutil.pas


* regenerate all makefiles with latest fpcmake
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


Refactoring and bug fix in OptPass2Movx that could cause incorrect
values in overflow conditions
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Aarch64: operations affect always the full 64 bit register, so
TCpuAsmOptimizer.RegLoadedWithNewValue can use SuperRegistersEq
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ Aarch64: SxthSxtw2Sxth optimization
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* Pass 2 can now be run multiple times when
under -O3 and above.
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86_64/aoptcpu.pas


Added correct flag tracking for JccMov2CMov optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* change cgsize2subreg and reg_cgsize on Z80 to behave more like they do on AVR; this fixes compilation of Z80 now that the array and string length fields are indeed of type SizeSInt instead of OSSInt
Commit consists out of
  • M compiler/z80/cpubase.pas


* move the handling of the symbol found in factor_read_id to a separate function
Commit consists out of
  • M compiler/pexpr.pas


* ensure that an expression that involves an overloaded generic in mode Delphi isn't handled as a specialization if it shouldn't be
+ added tests
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/test/tgenconst31.pp
  • A tests/test/tgenconst32.pp
  • A tests/test/tgenconst33.pp
  • A tests/test/ugenconst31a.pp
  • A tests/test/ugenconst31b.pp


* ensure that result of factor_handle_sym is initialized
Commit consists out of
  • M compiler/pexpr.pas


* check also for 64 bit registers in TX86AsmOptimizer.RegModifiedByInstruction
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fix linker commandline for m68k-atari
Commit consists out of
  • M compiler/systems/t_atari.pas


CMOV now modifies rather than writes to the destination register so RegUsedAfterInstruction behaves properly
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


Fix linker script for atari/gnu ld
Commit consists out of
  • M compiler/systems/t_atari.pas


Fix fullinstall make target
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* m68k-sinclairql: fix the inclusion of the target proper
Commit consists out of
  • M compiler/compiler.pas
  • M compiler/systems/i_sinclairql.pas


+ fix support for 8-byte records, held in a register pair on the WebAssembly target. This fixes gitlab 0039524
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* adjust parse_proctype_directives so that it can handle a function reference as well
Commit consists out of
  • M compiler/pdecsub.pas


+ m68k-atari: fixed bogus TOS program flags passed to VLink. added -WF argument to allow the user to specify their own flags if needed
Commit consists out of
  • M compiler/globals.pas
  • M compiler/msg/errore.msg
  • M compiler/options.pas
  • M compiler/systems/t_atari.pas


* regenerated message includes
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* m68k-atari: make the Atari target use 68000 CPU as default
Commit consists out of
  • M compiler/options.pas


* m68k-atari: make the Atari target always default to VLink, even for crosscompilers
Commit consists out of
  • M compiler/options.pas


* m68k-atari: make vasm the default assembler. also don't claim we have an internal linker
Commit consists out of
  • M compiler/systems/i_atari.pas


Fixed registers in references not being tracked properly in MovMovXX2MovXX 1 optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


Add internalerror if ogwasm tries to write unset Func/Global or TagIndex of TWasmObjSymbol
Commit consists out of
  • M compiler/ogwasm.pas


* when adding WebAssembly object info, traverse through current_module.used_units,
as well as the usedunits global. This resolves gitlab 0039543
Commit consists out of
  • M compiler/wasm32/nwasmutil.pas
  • A tests/webtbs/tw39543.pp
  • A tests/webtbs/uw39543a.pp
  • A tests/webtbs/uw39543b.pp


Optimized the comparison of a widestring variable with ''
Commit consists out of
  • M compiler/nadd.pas


Fixed optimization `Length(W)=0` -> `(Pointer(W)=nil) or (PLongword(Pointer(W)-4)^=0)` for WideString
Commit consists out of
  • M compiler/nadd.pas


* name of result variable of anonymous functions can be changed (and must be in modes without modeswitch Result)
Commit consists out of
  • M compiler/pdecsub.pas


* fix thlcgxtensa.g_intf_wrapper as proposed by Anton in gitlab 0039326, resolves gitlab 0039326
Commit consists out of
  • M compiler/xtensa/hlcgcpu.pas


* extend parse_proctype_directives to handle proc(var)defs as well as invokables
Commit consists out of
  • M compiler/pdecsub.pas


* adjust handle_calling_convention so that it can be used with both proc(var)defs and invokables
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/pparautl.pas


* correctly handle directives for anonymous functions
Commit consists out of
  • M compiler/pdecsub.pas


Allow WideChar const to UTF8String const conversion
Commit consists out of
  • M compiler/ncnv.pas


* handle result type of unsigned ordinal operations in ISO/Extpas mode similiar to TP, solves
gitlab 0037875
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw37875.pp


* Removed unused parameter
Commit consists out of
  • M compiler/dbgdwarf.pas


* Section-offsets have 64 bits in the Dwarf-64 format
Commit consists out of
  • M compiler/dbgdwarf.pas


Update build and link requirements for esp-idf v4.4. Refactor the version dependent linker fragments list into an array of version specific array of strings for easier updating in future.
Commit consists out of
  • M compiler/pmodules.pas
  • M compiler/systems/t_freertos.pas
  • M rtl/freertos/Makefile
  • M rtl/freertos/Makefile.fpc
  • A rtl/freertos/xtensa/espidf_40400.pp


Improved JccMov1JmpMov0Jmp -> SETcc optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* declare the type symbol of an internal def as sp_internal
Commit consists out of
  • M compiler/symdef.pas


+ add a constructor for trecorddef to declare an internal record type as part of a specific other type

Based on code by Blaise.ru
Commit consists out of
  • M compiler/symdef.pas


* make the VMT symbol and type def of the corresponding class or object instead of having them be global
* bump PPU version to avoid potential compilation errors due to this

Based on code by Blaise.ru
Commit consists out of
  • M compiler/ncgvmt.pas
  • M compiler/nobj.pas
  • M compiler/ppu.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas


atari: pass tos exe flags also to ld
Commit consists out of
  • M compiler/systems/t_atari.pas
  • M rtl/atari/system.pp


atari: add -Wt option to allow specifying the executable format

This is useful to create aoutmint format binaries using vlink,
which have a symbol table that has no limit for the name length.
Commit consists out of
  • M compiler/globals.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems/t_atari.pas


+ some MIPS64 stuff added to the Makefiles
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc
  • M utils/fpcm/fpcmake.inc
  • M utils/fpcm/fpcmake.ini


* mips64el compiler can be compiled
Commit consists out of
  • M compiler/mips/ncpuadd.pas
  • M compiler/mips/ncpumat.pas


mips64 define must also set mips
Commit consists out of
  • M compiler/fpcdefs.inc


Also set mipseb or mipsel macro for 64-bit mips CPU
Commit consists out of
  • M compiler/fpcdefs.inc


Add default macros inoptions unit for mips64 and mips64el CPUs
Commit consists out of
  • M compiler/options.pas


Add use of SD instruction in tcgmips.a_load_reg_ref method
Commit consists out of
  • M compiler/mips/cgcpu.pas


* sorted MIPS defines
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/options.pas


* move checking for a def in the hierarchy to a separate nested function and use it to check the hierarchy of the current def being specialized as well
Commit consists out of
  • M compiler/pgenutil.pas


* check hierarchy of the current generic or specialization def independant of whether it's a record- or objectdef
Commit consists out of
  • M compiler/pgenutil.pas


+ add a field to denote that a symbol (mainly local and parameter ones) was captured through another symbol
Commit consists out of
  • M compiler/symsym.pas


* don't check for a duplicate internal symbol in inherited symtables
Commit consists out of
  • M compiler/symtable.pas


* set the type symbol of the procvar while it is parsed so that a function reference can have itself as part of the parameters or the return type
Commit consists out of
  • M compiler/ptype.pas


* set the flag that the symtable contains a generic at the end of the corresponding block of types_dec() to ensure that the owner is assigned correctly
Commit consists out of
  • M compiler/pdecl.pas


+ add function funcref_equal to check whether two function references are considered equal enough to be assignable
Commit consists out of
  • M compiler/defcmp.pas


* consider invokables as related when they're equal
Commit consists out of
  • M compiler/defcmp.pas


* correctly handle calling convention for function references
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecvar.pas
  • M compiler/pgenutil.pas


* protected symbols are visible for defs declared in a local symtable as well
Commit consists out of
  • M compiler/symtable.pas


+ some basic stuff for MIPS64
Commit consists out of
  • M compiler/constexp.pas
  • M compiler/entfile.pas
  • M compiler/fpcdefs.inc
  • M compiler/globals.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_linux.pas
  • M compiler/utils/ppuutils/ppudump.pp


* register MIPS64 targets properly
Commit consists out of
  • M compiler/systems/t_linux.pas


+ add utility function to retrieve a file position of a usage of a type symbol from a type's definition
Commit consists out of
  • M compiler/symdef.pas


* an internal definition in a specialization might not have a genericdef
Commit consists out of
  • M compiler/pgenutil.pas


* if a symbol is not part of a symtable then assume it's from the current module
Commit consists out of
  • M compiler/pgenutil.pas


+ add an error message for when a symbol can't be captured
Commit consists out of
  • M compiler/msg/errore.msg


* regenerate msg{idx,txt}.inc
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


+ add necessary core functions and functionality to implement capturing of variables

Based on code by Blaise.ru
Commit consists out of
  • M compiler/procdefutil.pas
  • M compiler/symdef.pas


* do not insert the $result symbol again when the VMT for the capturer is built
Commit consists out of
  • M compiler/pparautl.pas


+ add function to check whether a procdef can be converted to a function reference
Commit consists out of
  • M compiler/defcmp.pas


* two function references are equal to each other as long as their signatures match
Commit consists out of
  • M compiler/defcmp.pas


+ implement necessary functionality in tcgprocinfo to initialize and populate the capturer

Based on code by Blaise.ru
Commit consists out of
  • M compiler/psub.pas


+ startup code skeleton for MIPS64
Commit consists out of
  • M compiler/systems.pas
  • M rtl/linux/Makefile
  • M rtl/linux/Makefile.fpc
  • A rtl/linux/mips64/si_c.inc
  • A rtl/linux/mips64/si_dll.inc
  • A rtl/linux/mips64/si_g.inc
  • A rtl/linux/mips64/si_prc.inc
  • A rtl/linux/mips64el/si_c.inc
  • A rtl/linux/mips64el/si_dll.inc
  • A rtl/linux/mips64el/si_g.inc
  • A rtl/linux/mips64el/si_prc.inc
  • A rtl/mips64el/makefile.cpu
  • A rtl/mips64el/mips64el.inc


* aros64: recent developments hanged the library call ABI, lets try to follow it (aros64 is experimental)
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/syscinfo.pas
  • M compiler/x86_64/cpupara.pas
  • M compiler/x86_64/nx64cal.pas


* also handle function references when a generic one had been parsed
Commit consists out of
  • M compiler/pgenutil.pas


+ add flag to denote an object def as a function reference
Commit consists out of
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


+ add support for parsing function references
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecvar.pas
  • M compiler/pexpr.pas
  • M compiler/procdefutil.pas
  • M compiler/ptype.pas


* revert accidently committed code
Commit consists out of
  • M compiler/constexp.pas


+ add flag to denote that an objectdef is invokable, thus can be used like a function variable
Commit consists out of
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


+ add utility function to check whether an objectdef is an invokable one
Commit consists out of
  • M compiler/defutil.pas


* if an interface is declared inherit the invokable flag from the parent interface
Commit consists out of
  • M compiler/pdecobj.pas


* sorted defines in the compiler: mips64 is defined on all 64 Bit mips platforms, mips64el for little endian, misp64eb for big endian
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/options.pas
  • M compiler/systems.pas
  • M compiler/systems/t_linux.pas


* \t => spaces
Commit consists out of
  • M compiler/systems/t_atari.pas
  • M compiler/x86/aasmcpu.pas


Fixed bug on x86 platforms where the stack pointer was not allocated if it was different to the frame pointer
Commit consists out of
  • M compiler/i386/cgcpu.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86_64/cgcpu.pas


* m68k: do not generate unnecessary unaligned load sequences for byte loads into registers, this fixes tcnvint1 test on plain 68000
Commit consists out of
  • M compiler/m68k/cgcpu.pas


* m68k: don't attempt to copy less than 1 byte in g_concatcopy, this fixes tdfa7.pp on 68000 and removes some superfluous address processing on 68020+ in the same test
Commit consists out of
  • M compiler/m68k/cgcpu.pas


* Some streamlining in x86's OptPass1LEA routine now that the stack
pointer is properly tracked, which also permits some deeper
optimisations on -O1 and -O2 virtually for free.
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ add utility function to check whether an invokable can be invoked without explicit parameters
Commit consists out of
  • M compiler/defutil.pas


* MIPS64 can
* MIPS64 does not need separate 64 bit code path for ordinals
Commit consists out of
  • M compiler/mips/cpupara.pas
  • M compiler/ncgadd.pas


* more MIPS64 fixes
Commit consists out of
  • M compiler/mips/cgcpu.pas
  • A rtl/mips64/cpuh.inc


+ add a new tproccopytyp pc_normal_no_paras to copy an abstractprocdef without its parameters (useful if the parameters themselves will be reused and the original def otherwise deleted)
Commit consists out of
  • M compiler/symdef.pas


* do not copy parameters onto the stack using FPU registers if the type is
actually handled by the MM unit, resolves gitlab 0039567
Commit consists out of
  • M compiler/hlcg2ll.pas


Adding common directory for riscv32/64 and -dNOOPT for wasm32
Commit consists out of
  • M packages/ide/compiler/Makefile
  • M packages/ide/compiler/Makefile.fpc


+ emit an error message if the ihxutil is not found when compiling an ZX Spectrum executable with the internal linker
+ emit a 'tried' message (fpc -vt) when using ihxutil for ZX Spectrum
Commit consists out of
  • M compiler/systems/t_zxspectrum.pas


* regenerate all makefiles with the latest fpcmake
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/wasmtime/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


* properly set types for currency divisions, resolves gitlab 0038717
Commit consists out of
  • M compiler/nmat.pas
  • A tests/webtbs/tw38717.pp


* m68k-atari: override the exeext globally, not just at the final step of the linking. this fixes 'Linking .ttp' messages, when in fact .prg gets generated
Commit consists out of
  • M compiler/scanner.pas
  • M compiler/systems/t_atari.pas


Resolve address of a symbol defined as absolute of another symbol, in assembler code.
Commit consists out of
  • M compiler/rautils.pas


Fix compilation of mips64 compiler by simple use of 'make mips64'
Commit consists out of
  • M compiler/fpcdefs.inc


Fix loading of 64-bit constant into register for 64-bit mips CPU
Commit consists out of
  • M compiler/mips/cgcpu.pas


Fix invalid typecast by postponing sym change to after address resolution in 44094dba
Commit consists out of
  • M compiler/rautils.pas


* Local speedup in OptPass1LEA that avoids expensive calls if p and
hp1 are adjacent.
Commit consists out of
  • M compiler/x86/aoptx86.pas


Regenerate Makefile's with mips gcc fixes and new enabled mips64-linux target
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • A packages/ide/fp.cfg
  • A packages/ide/fp.dsk
  • A packages/ide/fp.ini
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/wasmtime/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


* if an invokable that isn't a function reference is followed by a point in a mode that doesn't use TP/Delphi style calling without parameters then don't call it like is done with normal procvars
Commit consists out of
  • M compiler/pexpr.pas


- removed spurious comment
Commit consists out of
  • M compiler/systems/i_wasi.pas


- removed unused comment
Commit consists out of
  • M compiler/systems/t_wasi.pas


* use 'with' in tlinkerwasi.SetDefaultInfo
Commit consists out of
  • M compiler/systems/t_wasi.pas


* set and use ExeCmd instead of DllCmd when making an WASI executable
Commit consists out of
  • M compiler/systems/t_wasi.pas


* some fixes to the WASI library compilation (not ready, yet)
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ added separate startup code for libraries, that declares _initialize, instead of _start
Commit consists out of
  • M compiler/systems/t_wasi.pas
  • M rtl/wasi/Makefile
  • M rtl/wasi/Makefile.fpc
  • A rtl/wasi/si_dll.pp


- removed --allow-undefined linker option when compiling a WASI library
Commit consists out of
  • M compiler/systems/t_wasi.pas


- removed commented out code for executing WASI dllcmd[2]
Commit consists out of
  • M compiler/systems/t_wasi.pas


- don't pass --export-dynamic to the linker when linking a library for the WASI target
Commit consists out of
  • M compiler/systems/t_wasi.pas


* x86: Improvements to JccMov2CMov to catch Jcc @Lbl; ; JMP @Lbl
Commit consists out of
  • M compiler/x86/aoptx86.pas


* hopefully final fix for absolute references to absolute symbols
Commit consists out of
  • M compiler/rautils.pas


- don't write the wasm-ld command line to the screen when linking a WASM
library. The command line, passed to the linker is dumped when compiling with
-vv anyway.
Commit consists out of
  • M compiler/systems/t_wasi.pas


* move determine_generic_def out from pdecl.types_dec to pgenutil
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pgenutil.pas


* extract the code to parse a forward declaration out from types_dec into its own function parse_forward_declaration
Commit consists out of
  • M compiler/pdecl.pas


+ add ability to strictly compare defs with generic constraints (this is needed for declarations, while for normal code we're rather relaxed)
Commit consists out of
  • M compiler/defcmp.pas


+ add a method to retrieve a copy of a specialization context
Commit consists out of
  • M compiler/pgentype.pas


+ add support for forward declarations of generic classes and interfaces (any implicit pointer type really); fixes gitlab 0034128
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas
  • M compiler/pdecsub.pas
  • M compiler/pgentype.pas
  • M compiler/pgenutil.pas
  • M compiler/ptype.pas
  • A tests/test/tgenfwd1.pp
  • A tests/test/tgenfwd10.pp
  • A tests/test/tgenfwd11.pp
  • A tests/test/tgenfwd12.pp
  • A tests/test/tgenfwd13.pp
  • A tests/test/tgenfwd2.pp
  • A tests/test/tgenfwd3.pp
  • A tests/test/tgenfwd4.pp
  • A tests/test/tgenfwd5.pp
  • A tests/test/tgenfwd6.pp
  • A tests/test/tgenfwd7.pp
  • A tests/test/tgenfwd8.pp
  • A tests/test/tgenfwd9.pp


* fix typos in comments, no code changes
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecobj.pas


* just copy value parameters to a temp. when inlining instead of
using (@...)^ constructs, resolves gitlab 0039590
Commit consists out of
  • M compiler/ncal.pas


Add section directive for subroutines for embedded and freertos systems.
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/hlcgobj.pas
  • M compiler/pdecsub.pas
  • M compiler/symdef.pas
  • M compiler/systems.pas


* throw an internal error if the reference of lea contains a segment register
Commit consists out of
  • M compiler/x86/aoptx86.pas


* powerpc-morphos: add support for linker map file generation, some code cleanups
Commit consists out of
  • M compiler/systems/t_morph.pas


help text: vlink is no longer default on MorphOS for a while now, remove from help text, add Atari and Sinclair QL where it is the default
Commit consists out of
  • M compiler/msg/errore.msg


* regenerated message files
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* reorder string expressions with parentheses so fpc_*_concat_multi can be used efficiently, resolved gitlab 0039479
Commit consists out of
  • M compiler/nadd.pas


Move member variable "section" to tprocdef. Type of "section" to agree with symansistr define.
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/pdecsub.pas
  • M compiler/symdef.pas


* throw error properly if a target does not support sections
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecsub.pas


* z80-msxdos: cleaned up some msdos leftovers in i_msxdos. no functional changes.
Commit consists out of
  • M compiler/systems/i_msxdos.pas


* x86: Fix to MOV/CMP register deallocation positioning
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: RegModifiedByInstruction and RegInInstruction
are now more accurate for (I)MUL and (I)DIV.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* var, type, threadvar, const sections require also in classes etc. at least one declaration, resolves gitlab 0039599
Commit consists out of
  • M compiler/pdecobj.pas
  • A tests/webtfs/tw39599a.pp
  • A tests/webtfs/tw39599b.pp
  • A tests/webtfs/tw39599c.pp
  • A tests/webtfs/tw39599d.pp


* first part to fix gitlab 0039603
Commit consists out of
  • M compiler/avr/cpupara.pas
  • M compiler/hlcgobj.pas


* building for LLVM fixed
Commit consists out of
  • M compiler/hlcgobj.pas


* overleft cosmetics
Commit consists out of
  • M compiler/ncgcal.pas


* do not throw an internal error in case of a misplaced string, resolves gitlab 0039609
Commit consists out of
  • M compiler/psub.pas
  • A tests/webtbf/tw39609.pp


* m68k: allow vasm to be used for system_m68k_embedded target, simplify some code
Commit consists out of
  • M compiler/m68k/ag68kvasm.pas


* z80-amstradcpc: add some initial files for the target (mostly just the clone of ZX Spectrum files for now)
Commit consists out of
  • M compiler/msg/errore.msg
  • A compiler/systems/i_amstradcpc.pas
  • A compiler/systems/t_amstradcpc.pas
  • M compiler/z80/cputarg.pas


* prevent that a absolute symbol references itself, resolves gitlab 0039604
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecvar.pas
  • A tests/webtbf/tw39604.pp


* m68k: fix an endless syntax error loop in the assembler reader
Commit consists out of
  • M compiler/m68k/ra68kmot.pas


* regenerated message files after adding the z80-amstradcpc target files
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Also define CPU_clean make targets for CPUs not yet in CYCLETARGETS, like mips64 now
Commit consists out of
  • M compiler/Makefile.fpc


Fix CPU_clean rule
Commit consists out of
  • M compiler/Makefile.fpc


Update Makefile's
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/wasmtime/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


Regenerate all Makefile's to fix problem on x86_64 linux
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/wasmtime/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M rtl/zxspectrum/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


* cleanup: cs_opt_loopunroll is a generic optimization for a long time already
Commit consists out of
  • M compiler/aarch64/cpuinfo.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/avr/cpuinfo.pas
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/jvm/cpuinfo.pas
  • M compiler/m68k/cpuinfo.pas
  • M compiler/mips/cpuinfo.pas
  • M compiler/powerpc/cpuinfo.pas
  • M compiler/powerpc64/cpuinfo.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas
  • M compiler/sparc/cpuinfo.pas
  • M compiler/sparc64/cpuinfo.pas
  • M compiler/wasm32/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas
  • M compiler/xtensa/cpuinfo.pas
  • M compiler/z80/cpuinfo.pas


* z80-amstradcpc: fixed target naming mess, so -Tamstradcpc works now, also fixed the help text
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/systems/i_amstradcpc.pas


* regenerated message files after CPC naming fix
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* fix MovapXComisX2ComisX2 optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* m68k: disable the frame pointer optimization on subarchs that don't support long displacements for now, until the shortcomings of the cg can be addressed
Commit consists out of
  • M compiler/psub.pas


* m68k: spilling read, write, and replace is now bound to CPU capabilities instead of CPU family. This probably fixes some issues on 68000, where spilling replacement was not respecting CPU displacement handling boundaries, leading to assembler errors.
Commit consists out of
  • M compiler/m68k/rgcpu.pas


Extra code generation options for shift with compile time constant.
Commit consists out of
  • M compiler/avr/cgcpu.pas


* fix change information for a lot of MMX instructions
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* m68k: fixed the register save/restore for larger than 32K stackframes on subarchs which has no long displacement, to not trash register A0
Commit consists out of
  • M compiler/m68k/cgcpu.pas


* more change information fixed
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* more change information updates
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* m68k: make sure right is in an address register for muln,addn,orn,xorn, before calling the low level cg
Commit consists out of
  • M compiler/m68k/n68kadd.pas


* more change information updated
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* change information updates
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* fixed SSSE3 change information
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* change information for SSE4.1 instructions
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* change information for SSE 4.2 instructions
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* AES instruction change information fixed
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* few more updated change information entries
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* continued to update change information
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


m68k: utilize cg.a_loadaddr_ref_cgpara in hlcgcpu, as m68k has an instruction for loading addresses directly to the stack (PEA), and the default implementation of hlcg.a_loadaddr_ref_cgpara doesn't use that code path
Commit consists out of
  • M compiler/m68k/cgcpu.pas
  • M compiler/m68k/hlcgcpu.pas


Revert "m68k: utilize cg.a_loadaddr_ref_cgpara in hlcgcpu" for now, turns out it's not needed
Commit consists out of
  • M compiler/m68k/cgcpu.pas
  • M compiler/m68k/hlcgcpu.pas


* continued to update change information
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc
  • M rtl/x86_64/math.inc


* another change information update
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* more change information
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* finished change information for AVX1 instructions
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* completed change information for AVX-2
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* change information for AVX-512 mask register instructions
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* started with change information for AVX-512
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


Add x86_64 CPU to list requiring fpux80 support
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* extend tabstractprocdef.getcopyas by a parameter to control whether the copy should be registered or not
Commit consists out of
  • M compiler/arm/symcpu.pas
  • M compiler/blockutl.pas
  • M compiler/i386/symcpu.pas
  • M compiler/i8086/symcpu.pas
  • M compiler/jvm/pjvm.pas
  • M compiler/jvm/symcpu.pas
  • M compiler/m68k/symcpu.pas
  • M compiler/powerpc/symcpu.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas
  • M compiler/x86_64/symcpu.pas


* rework tprocsym.Find_procdef_byprocvardef so that its implementation can be used in a more generic manner
Commit consists out of
  • M compiler/symsym.pas


+ add method tprocsym.Find_procdef_by_funcrefdef to find a procdef that's compatible with the specified function reference
Commit consists out of
  • M compiler/symsym.pas


* make tprocinfo.addnestedproc public so that it can be used to add generated functions
Commit consists out of
  • M compiler/procinfo.pas


* do not throw an error if syscall is used with a syntax not applicable for the current
target, resolves gitlab 0039640
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecsub.pas
  • A tests/webtbf/tw39640.pp


* fix gitlab 0035261: apply slightly adjusted changes by Ryan Joseph to implement support for implicit generic function specializations

The main adjustments were as follows:
- fixing coding style and identation
- fixing some typos
- using a better name for the property in tcallcandidates which holds the symbols created for anonymous parameter values
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/globtype.pas
  • M compiler/htypechk.pas
  • M compiler/ncal.pas
  • M compiler/nld.pas
  • M compiler/pgenutil.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A tests/test/timpfuncspez1.pp
  • A tests/test/timpfuncspez10.pp
  • A tests/test/timpfuncspez11.pp
  • A tests/test/timpfuncspez12.pp
  • A tests/test/timpfuncspez13.pp
  • A tests/test/timpfuncspez14.pp
  • A tests/test/timpfuncspez15.pp
  • A tests/test/timpfuncspez16.pp
  • A tests/test/timpfuncspez17.pp
  • A tests/test/timpfuncspez18.pp
  • A tests/test/timpfuncspez19.pp
  • A tests/test/timpfuncspez2.pp
  • A tests/test/timpfuncspez20.pp
  • A tests/test/timpfuncspez21.pp
  • A tests/test/timpfuncspez22.pp
  • A tests/test/timpfuncspez23.pp
  • A tests/test/timpfuncspez24.pp
  • A tests/test/timpfuncspez25.pp
  • A tests/test/timpfuncspez26.pp
  • A tests/test/timpfuncspez27.pp
  • A tests/test/timpfuncspez28.pp
  • A tests/test/timpfuncspez29.pp
  • A tests/test/timpfuncspez3.pp
  • A tests/test/timpfuncspez30.pp
  • A tests/test/timpfuncspez31.pp
  • A tests/test/timpfuncspez32.pp
  • A tests/test/timpfuncspez33.pp
  • A tests/test/timpfuncspez34.pp
  • A tests/test/timpfuncspez35.pp
  • A tests/test/timpfuncspez4.pp
  • A tests/test/timpfuncspez5.pp
  • A tests/test/timpfuncspez6.pp
  • A tests/test/timpfuncspez7.pp
  • A tests/test/timpfuncspez8.pp
  • A tests/test/timpfuncspez9.pp


* probably check type for int_to_real instruction selection
Commit consists out of
  • M compiler/x86/nx86cnv.pas


Symbolic constants: don't range check on use

If these constants are defined with an explicit type, they are already
truncated/checked at that point. If we range check them again on use, we
may get errors because at that point there is no explicit type cast
any more.
Commit consists out of
  • M compiler/ncon.pas
  • A tests/tbs/tb0693.pp


* [x86] Added new RefsMightOverlap method and implemented it into the XMM memory move optimisations to catch memory overlaps; fixes bug i39627
Commit consists out of
  • M compiler/x86/aoptx86.pas


Symbolic constants: don't range check on in use in typed constants

Same as 3da54dcf9f, but this type when used in type constant definitions
like record fiels
Commit consists out of
  • M compiler/ngtcon.pas
  • A tests/tbs/tb0693a.pp
  • A tests/tbs/tb0693b.pp


AArch64 asm reader: add support for fpcmp(e) conditions

Resolves gitlab 0039643
Commit consists out of
  • M compiler/aarch64/racpugas.pas
  • A tests/webtbs/tw39643.pp


* i386: make also use of VCVTUSI2S* instruction if possible
Commit consists out of
  • M compiler/x86/nx86cnv.pas


* 8086 compilation fixed
Commit consists out of
  • M compiler/x86/nx86cnv.pas


m68k: opcode table updates based on vasm 1.9 (used with permission)
Commit consists out of
  • M compiler/m68k/m68kins.dat
  • M compiler/m68k/m68knop.inc
  • M compiler/m68k/m68ktab.inc


* factored out tx86typeconvnode.int_to_real_mm_location
Commit consists out of
  • M compiler/x86/nx86cnv.pas


* cosmetics
Commit consists out of
  • M compiler/x86/nx86cnv.pas


* do not crash in case of too many $push directives, resolves gitlab 0039652
Commit consists out of
  • M compiler/scandir.pas
  • A tests/webtbf/tw39652.pp


* patch by Cyrax: Quote path - which is passed to Windres or alike program, resolves gitlab 0036526
Commit consists out of
  • M compiler/comprsrc.pas


LLVM: enable DWARF debug info generation
Commit consists out of
  • M compiler/dbgbase.pas
  • M compiler/llvm/llvminfo.pas
  • M compiler/llvm/llvmnode.pas
  • M compiler/llvm/nllvmutil.pas
  • M compiler/systems.inc
  • M compiler/systems.pas


LLVM: data location debug info support

This was added to LLVM for Fortran arrays, but can also be used for Pascal
dynamic arrays
Commit consists out of
  • M compiler/llvm/llvminfo.pas


LLVM: support for attaching metadata to instructions
Commit consists out of
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/aasmllvmmetadata.pas
  • M compiler/llvm/agllvm.pas


agllvm: remove useless code
Commit consists out of
  • M compiler/llvm/agllvm.pas


LLVM: factor out writing operands in agllvm
Commit consists out of
  • M compiler/llvm/agllvm.pas


Fix for bug report gitlab 0039661
Commit consists out of
  • M compiler/symbase.pas


Check mf_symansistr is compatible with current compiler mode and issue a message before failing PPU loading
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* Compiler error is now thrown if record alignment is not a power of 2 or is greater than 64.
Commit consists out of
  • M compiler/ptype.pas


+ recurse into multiple subscription nodes when calculating contant @... expressions, resolves gitlab 0039665
Commit consists out of
  • M compiler/nmem.pas
  • A tests/webtbs/tw39665.pp


* disallow offsetof trick for types involving implicit dereferences, resolves gitlab 0039667 partially
Commit consists out of
  • M compiler/nmem.pas
  • A tests/webtbf/tw39667.pp


* x86: New CMP optimisation that mimics some of the CMOV optimisations and removes unnecessary conditions.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Removed foolish inline from StripLabelFast
Commit consists out of
  • M compiler/aoptobj.pas


agllvm: support for writing specialised metadata nodes
Commit consists out of
  • M compiler/llvm/agllvm.pas


tnodeuitls: merge GenerateObjCImageInfo into InsertObjectInfo

LLVM needs to insert the Objective-C image info into the general object info
metadata. This way we don't need to store a reference to that metadata so
as to add extra data to it later (tnodeutils is never instantiated, it only
contains class methods)
Commit consists out of
  • M compiler/llvm/nllvmutil.pas
  • M compiler/ngenutil.pas
  • M compiler/objcgutl.pas


LLVM: assign procdef.procstarttai, like in the regular code generator
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* nicer casing
Commit consists out of
  • M compiler/systems/i_embed.pas


* x86: Introduced TrySwapMovOp method, and redesigned TrySwapMovCmp
to use it while also trying to move one more instruction back
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New jump/label tracking in CrossJump optimisations
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cpubase.pas
  • M compiler/x86_64/aoptcpu.pas


tfileposinfo: separate types for the fields

Allows other units to declare variables of the appropriate type when storing
those values separately
Commit consists out of
  • M compiler/globtype.pas


* support R_SUBMMX in spilling_create_store, resolves gitlab 0039672
Commit consists out of
  • M compiler/x86/aasmcpu.pas


* x86_64: do not use copy_mm in g_concatcopy for 8 byte sized copies
Commit consists out of
  • M compiler/x86/cgx86.pas


+ add method to find a procinfo for a nested function by the corresponding procdef
Commit consists out of
  • M compiler/procinfo.pas


* x86: Changed the names of temporary register
stores in OptPass1MOV for reasons of clarity,
and other minor optimisations.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Extension to CanBeCMOV that permits a potentially unsafe reference if it appears in the previous comparison
Commit consists out of
  • M compiler/x86/aoptx86.pas


* use MOVDQA instead of MOVQ in spilling_create_store
* call OptPass1_V_MOVAP for MOVDQA
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86_64/aoptcpu.pas


* call OptPass1_V_MOVAP for MOVDQA on i386
Commit consists out of
  • M compiler/i386/aoptcpu.pas


* x86: Fixed bugs in and refactored and renamed
DoSubAddOpt optimisation method
Commit consists out of
  • M compiler/x86/aoptx86.pas


Typed const builder: store tsym

Useful for LLVM debug info generation
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/cresstr.pas
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmtype.pas
  • M compiler/llvm/nllvmcal.pas
  • M compiler/llvm/nllvmtcon.pas
  • M compiler/llvm/nllvmutil.pas
  • M compiler/ngtcon.pas


llvmdbg: initial version based on dbgdwarf

Line information is mostly functional, type information not yet (except
for basic procdef info, as that's required for line info)
Commit consists out of
  • A compiler/llvm/dbgllvm.pas


+ fold "a shl n1 shl n2" and "a shr n1 shr n2" into "a shl (n1+n2)" and "a shr (n1+n2)", resolves gitlab 0039629
Commit consists out of
  • M compiler/nmat.pas


dbgllvm: remove restriction to only write struct procdef in context of struct

Does not make a difference for LLVM since all debug info for procdefs is
assigned to the definition instructions for the procdef anyway, and avoids
issues when only generating line info (in that case the structs will never
be processed, but we still have to generate the basic debug info for their
procdefs to provide a scope for their line info)
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


* x86: Code generation fixes where FLAGS
register is not properly allocated.
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/i386/cgcpu.pas
  • M compiler/i386/n386add.pas
  • M compiler/i386/n386mat.pas
  • M compiler/i8086/cgcpu.pas
  • M compiler/i8086/n8086mat.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86/nx86add.pas
  • M compiler/x86/nx86cnv.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/x86/nx86set.pas
  • M compiler/x86_64/nx64cnv.pas


* only abort due to a missing overload directive if there indeed was any procdef found (due to implicit specializations there might be none), fixes compilation of tests webtbs/tw38310b and webtbs/tw38310c
Commit consists out of
  • M compiler/htypechk.pas


* forbid cyclic pointer definitions, resolves gitlab 0039634
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ptype.pas
  • A tests/webtbf/tw39634.pp


* move handling of a dummy symbol (mainly either resolving it or generating a suitable error) inside single_type to a nested function as the same code is used multiple times
Commit consists out of
  • M compiler/ptype.pas


* fix gitlab 0039673: also resolve the dummy symbol in case this isn't a reuse of the current generic's name
+ added test
Commit consists out of
  • M compiler/ptype.pas
  • A tests/webtbs/tw39673.pp


* fix gitlab 0039679 and fix gitlab 0039680: for implicit specializations a parameter used in a call might also inherit in some depth from a specialization used as parameter type
+ added tests
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw39679.pp
  • A tests/webtbs/tw39680.pp


* the index of the generic type parameter is not the same index of the paras list
+ added test
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/test/timpfuncspez36.pp


* a function can't be used to implicitely specialize a specialized procedure variable parameter and vice versa
+ added test
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/test/timpfuncspez37.pp


* fix gitlab 0039681: also handle the result type of a specialized procvar when checking for a possible implicit specialization
+ added test
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw39681.pp


* fix gitlab 0039675: consider the symbols for unnamed parameters as used so that there won't be unnecessary hints about them
+ added test
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw39675.pp


* x86: Improvement to CMP/JE/CMP/@Lbl/SETE ->
CMP/SETE/CMP/SETE/OR optimisation to reduce
pass counts (and work better with improved
FLAGS register allocation).
Commit consists out of
  • M compiler/x86/aoptx86.pas


* better fix for gitlab 0039634 which avoids breaking existing code
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ptype.pas


* use a single if-condition for both check_hints and addsymref
Commit consists out of
  • M compiler/ncal.pas


* in case of an implicit specialization ensure that the symbol of the generic is indeed considered as used once the final implicit specialization has been picked
+ added test
Commit consists out of
  • M compiler/ncal.pas
  • A tests/webtbs/tw39684.pp


* x86: Improved TrySwapMovCmp to insert before
the FLAGS register is allocated.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* otherwise => else
Commit consists out of
  • M compiler/avr/cgcpu.pas


* AVR: fix TAoptBaseCpu.RegModifiedByInstruction, resolves gitlab 0039623
Commit consists out of
  • M compiler/avr/aoptcpub.pas


* AVR: fix TCpuAsmOptimizer.InstructionLoadsFromReg for MOVW
* simplify code for MovMov2Movw optimization
Commit consists out of
  • M compiler/avr/aoptcpu.pas


* AVR: moved MovMov2Movw optimization into pass2 as it might prevent other optimizations
Commit consists out of
  • M compiler/avr/aoptcpu.pas


* Fixed bug in register preservation tracking
Commit consists out of
  • M compiler/cgobj.pas


LLVM lineinfo: fix nolineinfo generation

LLVM requires line info metadata for all call instructions that may potentially
be inlined. So attach one to all call instructions in nolineinfo regions, but
set their line number to 0 (same as what clang does)
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


llvmtype: ensure all processed defs get recorded

This is necessary so they get reset as well, as they may be reprocessed while
compiling other units (both by llvmtype and dbgllvm)
Commit consists out of
  • M compiler/llvm/llvmtype.pas


llvmdbg: add declaration for all DISPFlags
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: create dummy line info for instructions that shouldn't have any

Use line 0 for that, like clang does
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: handle array of const (stub)
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: handle empty spFlags
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


llvm metadata: use cardinal instead of tsuperregister for unnamed metadata numbers

We're not putting these into registers, so no need to limit ourselves
Commit consists out of
  • M compiler/llvm/aasmllvmmetadata.pas


dbgllvm: fix infinite loop when writing multi-dimensional array info
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


* avr3 and avr31 should also have a movw instruction
Commit consists out of
  • M compiler/avr/cpuinfo.pas


+ CPUAVR_HAS_ADIW
Commit consists out of
  • M compiler/avr/cpuinfo.pas


cutils: also use minalign, when varalign equals it, not only when varalign is less than it (21 years old bug?)
Commit consists out of
  • M compiler/cutils.pas


LLVM: fix fileinfo of temp allocations
Commit consists out of
  • M compiler/llvm/tgllvm.pas


dbgllvm: fix crash when generating debug info for procdef of imported struct
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: fix crash for files without procedures/functions
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: add scopeLine attribute for function debug info

Ensures that breaking on the function correctly sets the breakpoint on the
first source line of the function (rather than potentially in the prologue
without line information)
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


* allow 32 byte alignment of constants and variables on aarch64-darwin
Commit consists out of
  • M compiler/systems/i_darwin.pas


+ AVR: helpers take care of ADIW
Commit consists out of
  • M compiler/avr/aoptcpu.pas
  • M compiler/avr/aoptcpub.pas


* AVR: use adiw to create spilling constants if possible
* AVR: insert allocations for registers used by spilling so the assembler optimizer does not remove spilling code
Commit consists out of
  • M compiler/avr/rgcpu.pas


llvm metadata: counter per unit rather than globally

Results in less high numbers, and reproducible results when partially
rebuilding
Commit consists out of
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/aasmllvmmetadata.pas


llvmdbg: diflags/dispflags fixes

Fix MainSubprogram flag for older LLVM versions, as it was a plain flag rather
than a subprogram flag there.

Added visibility flags for procdefs (public/private/protected)

Write flags as enum rather than integer to avoid issues with changing values
across different LLVM versions
Commit consists out of
  • M compiler/llvm/dbgllvm.pas
  • M compiler/llvm/llvminfo.pas


Fix generation of default linker script for esp-idf v4.4
Commit consists out of
  • M compiler/systems/t_freertos.pas


+ AVR: track flag usage
+ AVR: take care of allocated flags when spilling
* AVR: trgcpu.do_spill_read might also use ADIW
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/avr/aasmcpu.pas
  • M compiler/avr/cgcpu.pas
  • M compiler/avr/navradd.pas
  • M compiler/avr/navrmat.pas
  • M compiler/avr/rgcpu.pas


* Bug fix that prevents downsizing of
"(x div y) and z" when "x div y" is 64-bit and
z is 32-bit or less. Fixes i39646
Commit consists out of
  • M compiler/ncnv.pas


Rename tsymtable.insert and delete methods to insertsym ands deletesym
Commit consists out of
  • M compiler/blockutl.pas
  • M compiler/jvm/jvmdef.pas
  • M compiler/jvm/njvmcon.pas
  • M compiler/jvm/njvmutil.pas
  • M compiler/jvm/pjvm.pas
  • M compiler/jvm/symcpu.pas
  • M compiler/ncal.pas
  • M compiler/ngenutil.pas
  • M compiler/ninl.pas
  • M compiler/pdecl.pas
  • M compiler/pdecsub.pas
  • M compiler/pdecvar.pas
  • M compiler/pexpr.pas
  • M compiler/pgenutil.pas
  • M compiler/pmodules.pas
  • M compiler/pparautl.pas
  • M compiler/procdefutil.pas
  • M compiler/pstatmnt.pas
  • M compiler/psub.pas
  • M compiler/psystem.pas
  • M compiler/ptype.pas
  • M compiler/scanner.pas
  • M compiler/symbase.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas
  • M compiler/symutil.pas


* x86: Bug fix where aoc_ForceNewIteration was
checked in the wrong pass.
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86_64/aoptcpu.pas


* AVR: trgcpu.do_spill_read must load ofs
Commit consists out of
  • M compiler/avr/cpuinfo.pas
  • M compiler/avr/rgcpu.pas


* Corrected label reference counts caused by TAsmLabel.GetName incrementing refs
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/aasmcnst.pas
  • M compiler/objcgutl.pas


* set minimum compiler to compile the compiler to 3.2.0
Commit consists out of
  • M compiler/pp.pas


SymAnsiStr: fix "make all" and webtbs/tw39661*

Fixes compilation with LLVM backend
Commit consists out of
  • M compiler/ncgvmt.pas
  • M compiler/symbase.pas
  • M compiler/symdef.pas


TSymStr: more consistent usage
Commit consists out of
  • M compiler/dbgdwarf.pas
  • M compiler/ncgvmt.pas
  • M compiler/ngenutil.pas
  • M compiler/pdecobj.pas
  • M compiler/pmodules.pas
  • M compiler/symdef.pas
  • M compiler/symtable.pas


* x86_64-linux and i386-linux align variables and constants up to 64 byte boundaries
Commit consists out of
  • M compiler/systems/i_linux.pas


PPU version: bump

fcaea210758 changed name mangling
Commit consists out of
  • M compiler/ppu.pas


* arm-linux: set max. alignment for constants and variables to 32 byte boundaries
Commit consists out of
  • M compiler/systems/i_linux.pas


* fix broken merge
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fix for variables longer than 127 chars
Commit consists out of
  • M compiler/symbase.pas
  • A tests/webtbs/tw39661f.pp


* set max. variable and constant alignment for win32 and win64 to 64 byte boundaries
Commit consists out of
  • M compiler/systems/i_win.pas


LLVM debug info: LLVM 7.0 support

Also defined some llvm flags in a negative way so they can be removed from
later versions rather than added
Commit consists out of
  • M compiler/llvm/dbgllvm.pas
  • M compiler/llvm/llvminfo.pas


* Fix to bug that would reset nf_write flag on tempref nodes in assignments
Commit consists out of
  • M compiler/ninl.pas


Use round to convert float constant into s64comp type for LLVM compiler as is done in general case
Commit consists out of
  • M compiler/llvm/nllvmcon.pas


* simplifications by Rika (*2 loops => shl/Bsr), resolves gitlab 0039717
Commit consists out of
  • M compiler/raatt.pas
  • M compiler/rgobj.pas


aasmtai: added tai_string.Create(ansistring)

Also prevent range check errors for empty strings
Commit consists out of
  • M compiler/aasmtai.pas


LLVM metadata: specialised metadata fleshing out
Commit consists out of
  • M compiler/llvm/aasmllvmmetadata.pas


+ added the atomic memory access WebAssembly instructions from the threading proposal for WebAssembly
Commit consists out of
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/strinst.inc


+ enable the atomics extension on the llvm-mc command line (extension appears
to be recognized since LLVM 8.0, so it should be safe to always enable this
from the llvm-mc command line)
Commit consists out of
  • M compiler/systems.pas
  • M compiler/wasm32/agllvmmc.pas


* patch by Rike: Use reverse_longword instead of manually reversing longword, resolves gitlab 0039720
Commit consists out of
  • M compiler/ncgcon.pas
  • M compiler/ncon.pas


+ added intrinsic (for RTL internal use) that emits the WebAssembly atomic.fence instruction
Commit consists out of
  • M compiler/wasm32/ccpuinnr.inc
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc
  • M rtl/wasm32/cpuinnr.inc


+ support the atomic.fence instruction in the WebAssembly internal object writer
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


llvmdbg: disable open array data location

Since we don't generate full debug info for parameters yet, this internalerrors
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


llvmdbg: remove some commented dbgdwarf code

Also adjusted some hashtable sizes
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


Fix syntax error for isLocal field for function/procedure type LLVM debug information
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


Use '.L' as labelprefix for LLVM compiler variant
Commit consists out of
  • M compiler/llvm/agllvm.pas


+ Aarch64: MovOp2AddUtxw optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


LLVM: separate as_clang_llvm_darwin

The Darwin local label prefix ('L') is different from that on most other
platforms ('.L). While LLVM generally handles that for us, for inline
assembly it's still FPC's job to adhere to the target conventions.
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/options.pas
  • M compiler/systems.inc
  • M compiler/systems.pas


Only use Win64 vectorcall special case if calling convention is vectorcall.
Commit consists out of
  • M compiler/x86_64/cpupara.pas


* a64: Fix where hp1's was assumed to be an instruction and not actually checked
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* a64: New movz reg,#0 -> mov reg,xzr (or wzr) optimisation
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* more readable fix for the missing ait_instruction check
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* arm/a64: New sbfx/ubfx -> mov optimisation
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* a64: Updated debug messages to follow standard.
Commit consists out of
  • M compiler/armgen/aoptarm.pas


Call increfs manually to avoid removal of stabs debug related labels
Commit consists out of
  • M compiler/dbgstabs.pas


* increase default dwarf version for linux targets where current distributions exist
Commit consists out of
  • M compiler/systems/i_linux.pas


Do not alloc/dealloc NR_DEFAULTFLAGS for wasm32, as it is NR_NO
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* implement necessary conversion functionality for anonymous procdefs to function reference interfaces including capturing of variables
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/ncnv.pas


* Streamlined label referencing
Commit consists out of
  • M compiler/aasmcnst.pas


* better constant propation for inline nodes
Commit consists out of
  • M compiler/optconstprop.pas


+ added instrinsic support for the all the 2-parameter read-modify-write
WebAssembly atomic operations (add, sub, and, or, xor, xchg). Note that they
are not implemented in the internal assembler, yet.
Commit consists out of
  • M compiler/wasm32/ccpuinnr.inc
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc
  • M rtl/wasm32/cpuinnr.inc


+ added intrinsic support for the WebAssembly cmpxchg atomic operations as well
Commit consists out of
  • M compiler/wasm32/ccpuinnr.inc
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc
  • M rtl/wasm32/cpuinnr.inc


Add missing reference increases for ait_jvar labels
Commit consists out of
  • M compiler/aasmtai.pas


* if a for loop does not change a variable, we can propate it if it is a constant, resolves gitlab 0039726
Commit consists out of
  • M compiler/optconstprop.pas
  • M compiler/psub.pas


+ support the new WebAssembly threads and atomics instructions in the internal assembler
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpubase.pas


+ support intrinsics for the WebAssembly memory.atomic.wait32 and memory.atomic.wait64 instructions
Commit consists out of
  • M compiler/wasm32/ccpuinnr.inc
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc
  • M rtl/wasm32/cpuinnr.inc


+ support intrinsic for the memory.atomic.notify WebAssembly instruction
Commit consists out of
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc


+ add a new symoption for symbols created for nameless types during implicit function specialization so that they can be recognized
Commit consists out of
  • M compiler/pgenutil.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


* if the symbol belongs to the current def also consider it a specialization if it's a nameless type symbol from an implicit function specialization as their owner gets changed to the function itself
Commit consists out of
  • M compiler/symdef.pas


agllvm: fix writing metadata operands for variable declarations
Commit consists out of
  • M compiler/llvm/agllvm.pas


llvm metadata: add DIGlobalVariableExpression enum

Only documented as of LLVM 9.0, but existed already in 7.0.
Also fixed DIGlobalVariable not being marked as unique
Commit consists out of
  • M compiler/llvm/aasmllvmmetadata.pas


llvmdbg: handle nil in more places

"void" is represented as "null" in LLVM debug information, which we represent
by nil
Commit consists out of
  • M compiler/llvm/aasmllvmmetadata.pas
  • M compiler/llvm/dbgllvm.pas


llvmdbg: build hashtable to lookup llvmdecl belonging to a global variable

We need to attach the debug info to it
Commit consists out of
  • M compiler/aasmdata.pas
  • M compiler/llvm/dbgllvm.pas


llvmdbg: fix missing initialisation when there are no procedures
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


llvmdbg: emit debug information for global variables
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


llvmdbg: emit uppercase symbol names unless C++-style debug info is selected

Otherwise gdb won't find the symbols unless you use the exact case
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


* more robust code for constant propagation in for loops
Commit consists out of
  • M compiler/optconstprop.pas


llvm: replaced boolean fields in tllvmcallpara with a set
Commit consists out of
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/nllvmbas.pas


* continue const. propagation after a for loop when possible
Commit consists out of
  • M compiler/optconstprop.pas
  • M compiler/psub.pas


* fix gitlab 0039730 as suggested by Jonas
Commit consists out of
  • M compiler/x86/cgx86.pas


llvm: changed llvm_metadatatype from untyped pointer to undefineddef

That matches its meaning better, as it should not result in type conversions.
E.g. some kinds of metadata parameters expect a "type register" parameter such
as "metadata i32* %reg.3"
Commit consists out of
  • M compiler/llvm/llvmdef.pas
  • M compiler/psystem.pas


* cleanup
Commit consists out of
  • M compiler/symtype.pas


- remove duplicate paraprintnodetree to ensure that there the right paraprintnodetree is used (namely the one from globals)
Commit consists out of
  • M compiler/verbose.pas


* ensure insert_self_and_vmt_para can deal with a preexisting self symbol as long as it has the expected type
Commit consists out of
  • M compiler/pparautl.pas


* patch by Pierre, which fixes WebAssembly code generation for signed div/mod with overflow checking
Commit consists out of
  • M compiler/wasm32/nwasmmat.pas


* WebAssembly code generation fix in thlcgwasm.a_op_reg_reg_reg_checkoverflow, based on patch by Pierre (but simplified, to use a single block)
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* fixed WebAssembly code generation in thlcgwasm.g_overflowCheck_loc (patch by Pierre)
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* replaced several internal errors, related to the WebAssembly labels
resolution with more meaningful error messages, in order to ease the
debugging of the compiler. Based on patch by Pierre.
Commit consists out of
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas


* regenerate makefiles with latest fpcmake
Commit consists out of
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/a52/Makefile
  • M packages/ami-extra/Makefile
  • M packages/amunits/Makefile
  • M packages/arosunits/Makefile
  • M packages/aspell/Makefile
  • M packages/bfd/Makefile
  • M packages/bzip2/Makefile
  • M packages/cairo/Makefile
  • M packages/cdrom/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/chm/Makefile
  • M packages/cocoaint/Makefile
  • M packages/dblib/Makefile
  • M packages/dbus/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/dts/Makefile
  • M packages/fastcgi/Makefile
  • M packages/fcl-async/Makefile
  • M packages/fcl-base/Makefile
  • M packages/fcl-base/examples/Makefile
  • M packages/fcl-css/Makefile
  • M packages/fcl-db/Makefile
  • M packages/fcl-db/src/base/Makefile
  • M packages/fcl-db/src/codegen/Makefile
  • M packages/fcl-db/src/datadict/Makefile
  • M packages/fcl-db/src/dbase/Makefile
  • M packages/fcl-db/src/export/Makefile
  • M packages/fcl-db/src/json/Makefile
  • M packages/fcl-db/src/memds/Makefile
  • M packages/fcl-db/src/paradox/Makefile
  • M packages/fcl-db/src/sdf/Makefile
  • M packages/fcl-db/src/sql/Makefile
  • M packages/fcl-db/src/sqldb/Makefile
  • M packages/fcl-db/src/sqldb/interbase/Makefile
  • M packages/fcl-db/src/sqldb/mssql/Makefile
  • M packages/fcl-db/src/sqldb/mysql/Makefile
  • M packages/fcl-db/src/sqldb/odbc/Makefile
  • M packages/fcl-db/src/sqldb/oracle/Makefile
  • M packages/fcl-db/src/sqldb/postgres/Makefile
  • M packages/fcl-db/src/sqldb/sqlite/Makefile
  • M packages/fcl-db/src/sqlite/Makefile
  • M packages/fcl-db/tests/Makefile
  • M packages/fcl-extra/Makefile
  • M packages/fcl-extra/examples/Makefile
  • M packages/fcl-fpcunit/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-hash/Makefile
  • M packages/fcl-image/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-js/Makefile
  • M packages/fcl-json/Makefile
  • M packages/fcl-mustache/Makefile
  • M packages/fcl-net/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-passrc/Makefile
  • M packages/fcl-pdf/Makefile
  • M packages/fcl-process/Makefile
  • M packages/fcl-registry/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-report/Makefile
  • M packages/fcl-res/Makefile
  • M packages/fcl-sdo/Makefile
  • M packages/fcl-sound/Makefile
  • M packages/fcl-stl/Makefile
  • M packages/fcl-web/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fcl-xml/Makefile
  • M packages/fftw/Makefile
  • M packages/fpgtk/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpindexer/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fppkg/Makefile
  • M packages/fuse/Makefile
  • M packages/fv/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbint/Makefile
  • M packages/gdbm/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gitlab/Makefile
  • M packages/gmp/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gnome1/Makefile
  • M packages/gnutls/Makefile
  • M packages/googleapi/Makefile
  • M packages/graph/Makefile
  • M packages/gtk1/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/Makefile
  • M packages/gtk2/Makefile
  • M packages/gtk2/examples/Makefile
  • M packages/gtk2/examples/filechooser/Makefile
  • M packages/gtk2/examples/gettingstarted/Makefile
  • M packages/gtk2/examples/gtk_demo/Makefile
  • M packages/gtk2/examples/gtkglext/Makefile
  • M packages/gtk2/examples/helloworld/Makefile
  • M packages/gtk2/examples/helloworld2/Makefile
  • M packages/gtk2/examples/plugins/Makefile
  • M packages/gtk2/examples/scribble_simple/Makefile
  • M packages/hash/Makefile
  • M packages/hash/examples/Makefile
  • M packages/hermes/Makefile
  • M packages/httpd13/Makefile
  • M packages/httpd20/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/imagemagick/Makefile
  • M packages/imlib/Makefile
  • M packages/iosxlocale/Makefile
  • M packages/jni/Makefile
  • M packages/ldap/Makefile
  • M packages/libc/Makefile
  • M packages/libcups/Makefile
  • M packages/libcurl/Makefile
  • M packages/libcurl/examples/Makefile
  • M packages/libenet/Makefile
  • M packages/libffi/Makefile
  • M packages/libfontconfig/Makefile
  • M packages/libgbafpc/Makefile
  • M packages/libgbafpc/examples/Makefile
  • M packages/libgbafpc/examples/audio/Makefile
  • M packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
  • M packages/libgbafpc/examples/graphics/Makefile
  • M packages/libgbafpc/examples/graphics/PCXView/Makefile
  • M packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
  • M packages/libgbafpc/examples/graphics/ansi_console/Makefile
  • M packages/libgbafpc/examples/template/Makefile
  • M packages/libgc/Makefile
  • M packages/libgd/Makefile
  • M packages/libgd/examples/Makefile
  • M packages/libmagic/Makefile
  • M packages/libmicrohttpd/Makefile
  • M packages/libndsfpc/Makefile
  • M packages/libndsfpc/examples/Makefile
  • M packages/libndsfpc/examples/audio/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
  • M packages/libndsfpc/examples/audio/maxmod/streaming/Makefile
  • M packages/libndsfpc/examples/audio/micrecord/Makefile
  • M packages/libndsfpc/examples/card/Makefile
  • M packages/libndsfpc/examples/card/eeprom/Makefile
  • M packages/libndsfpc/examples/debugging/Makefile
  • M packages/libndsfpc/examples/debugging/exceptionTest/Makefile
  • M packages/libndsfpc/examples/ds_motion/Makefile
  • M packages/libndsfpc/examples/dswifi/Makefile
  • M packages/libndsfpc/examples/dswifi/ap_search/Makefile
  • M packages/libndsfpc/examples/dswifi/autoconnect/Makefile
  • M packages/libndsfpc/examples/dswifi/httpget/Makefile
  • M packages/libndsfpc/examples/filesystem/Makefile
  • M packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
  • M packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/Makefile
  • M packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
  • M packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
  • M packages/libndsfpc/examples/gl2d/Makefile
  • M packages/libndsfpc/examples/gl2d/dual_screen/Makefile
  • M packages/libndsfpc/examples/gl2d/fonts/Makefile
  • M packages/libndsfpc/examples/gl2d/primitives/Makefile
  • M packages/libndsfpc/examples/gl2d/scrolling/Makefile
  • M packages/libndsfpc/examples/gl2d/sprites/Makefile
  • M packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
  • M packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Picking/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
  • M packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
  • M packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
  • M packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/Makefile
  • M packages/libndsfpc/examples/graphics/Effects/windows/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
  • M packages/libndsfpc/examples/graphics/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
  • M packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
  • M packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
  • M packages/libndsfpc/examples/graphics/grit/256colorTilemap/Makefile
  • M packages/libndsfpc/examples/graphics/grit/Makefile
  • M packages/libndsfpc/examples/hello_world/Makefile
  • M packages/libndsfpc/examples/input/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
  • M packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
  • M packages/libndsfpc/examples/input/keyboard/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
  • M packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
  • M packages/libndsfpc/examples/time/Makefile
  • M packages/libndsfpc/examples/time/RealTimeClock/Makefile
  • M packages/libndsfpc/examples/time/stopwatch/Makefile
  • M packages/libndsfpc/examples/time/timercallback/Makefile
  • M packages/libnettle/Makefile
  • M packages/libogcfpc/Makefile
  • M packages/libogcfpc/examples/Makefile
  • M packages/libogcfpc/examples/audio/Makefile
  • M packages/libogcfpc/examples/audio/modplay/Makefile
  • M packages/libogcfpc/examples/audio/mp3player/Makefile
  • M packages/libogcfpc/examples/devices/Makefile
  • M packages/libogcfpc/examples/devices/network/Makefile
  • M packages/libogcfpc/examples/devices/network/sockettest/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/Makefile
  • M packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/Makefile
  • M packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
  • M packages/libogcfpc/examples/filesystem/Makefile
  • M packages/libogcfpc/examples/filesystem/directory/Makefile
  • M packages/libogcfpc/examples/graphics/Makefile
  • M packages/libogcfpc/examples/graphics/gx/Makefile
  • M packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
  • M packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
  • M packages/libogcfpc/examples/graphics/gx/triangle/Makefile
  • M packages/libogcfpc/examples/template/Makefile
  • M packages/libpng/Makefile
  • M packages/librsvg/Makefile
  • M packages/libsee/Makefile
  • M packages/libsee/examples/Makefile
  • M packages/libtar/Makefile
  • M packages/libusb/Makefile
  • M packages/libvlc/Makefile
  • M packages/libxml/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/lua/Makefile
  • M packages/mad/Makefile
  • M packages/matroska/Makefile
  • M packages/modplug/Makefile
  • M packages/morphunits/Makefile
  • M packages/mysql/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/nvapi/Makefile
  • M packages/objcrtl/Makefile
  • M packages/odata/Makefile
  • M packages/odbc/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/oggvorbis/Makefile
  • M packages/openal/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opencl/Makefile
  • M packages/opengl/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/openssl/Makefile
  • M packages/oracle/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/os4units/Makefile
  • M packages/palmunits/Makefile
  • M packages/pasjpeg/Makefile
  • M packages/pastojs/Makefile
  • M packages/paszlib/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/pcap/Makefile
  • M packages/postgres/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/proj4/Makefile
  • M packages/ptc/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pthreads/Makefile
  • M packages/pxlib/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/qlunits/Makefile
  • M packages/regexpr/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/rtl-console/Makefile
  • M packages/rtl-extra/Makefile
  • M packages/rtl-generics/Makefile
  • M packages/rtl-objpas/Makefile
  • M packages/rtl-unicode/Makefile
  • M packages/sdl/Makefile
  • M packages/sndfile/Makefile
  • M packages/sqlite/Makefile
  • M packages/svgalib/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/tcl/Makefile
  • M packages/tosunits/Makefile
  • M packages/tplylib/Makefile
  • M packages/univint/Makefile
  • M packages/univint/examples/Makefile
  • M packages/unixutil/Makefile
  • M packages/unzip/Makefile
  • M packages/users/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/vcl-compat/Makefile
  • M packages/wasmtime/Makefile
  • M packages/webidl/Makefile
  • M packages/winceunits/Makefile
  • M packages/winunits-base/Makefile
  • M packages/winunits-jedi/Makefile
  • M packages/x11/Makefile
  • M packages/xforms/Makefile
  • M packages/xforms/examples/Makefile
  • M packages/zlib/Makefile
  • M packages/zorba/Makefile
  • M rtl/aix/Makefile
  • M rtl/amiga/Makefile
  • M rtl/android/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/aros/Makefile
  • M rtl/atari/Makefile
  • M rtl/beos/Makefile
  • M rtl/darwin/Makefile
  • M rtl/dragonfly/Makefile
  • M rtl/embedded/Makefile
  • M rtl/emx/Makefile
  • M rtl/freebsd/Makefile
  • M rtl/freertos/Makefile
  • M rtl/gba/Makefile
  • M rtl/go32v2/Makefile
  • M rtl/haiku/Makefile
  • M rtl/java/Makefile
  • M rtl/linux/Makefile
  • M rtl/macos/Makefile
  • M rtl/morphos/Makefile
  • M rtl/msdos/Makefile
  • M rtl/msxdos/Makefile
  • M rtl/nativent/Makefile
  • M rtl/nds/Makefile
  • M rtl/netbsd/Makefile
  • M rtl/netware/Makefile
  • M rtl/netwlibc/Makefile
  • M rtl/openbsd/Makefile
  • M rtl/os2/Makefile
  • M rtl/palmos/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasi/Makefile
  • M rtl/watcom/Makefile
  • M rtl/wii/Makefile
  • M rtl/win16/Makefile
  • M rtl/win32/Makefile
  • M rtl/win64/Makefile
  • M rtl/wince/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/dxegen/Makefile
  • M utils/fpcm/Makefile
  • M utils/fpcmkcfg/Makefile
  • M utils/fpcres/Makefile
  • M utils/fpcreslipo/Makefile
  • M utils/fpdoc/Makefile
  • M utils/fpdoc/fpde/Makefile
  • M utils/fpmc/Makefile
  • M utils/fppkg/Makefile
  • M utils/fprcp/Makefile
  • M utils/h2pas/Makefile
  • M utils/ihxutil/Makefile
  • M utils/importtl/Makefile
  • M utils/instantfpc/Makefile
  • M utils/json2pas/Makefile
  • M utils/mksymbian/Makefile
  • M utils/pas2fpm/Makefile
  • M utils/pas2jni/Makefile
  • M utils/pas2js/Makefile
  • M utils/pas2ut/Makefile
  • M utils/rmwait/Makefile
  • M utils/tply/Makefile
  • M utils/unicode/Makefile
  • M utils/wasmbin/Makefile


+ reserved inline numbers for the WebAssembly atomic loads and stores
Commit consists out of
  • M compiler/wasm32/ccpuinnr.inc
  • M rtl/wasm32/cpuinnr.inc


+ implemented WebAssembly atomic load intrinsics
Commit consists out of
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc


+ added WebAssembly atomic store intrinsics
Commit consists out of
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc


* implement assignment of procedure and method variables and routines (global, instance and nested) to function references
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/htypechk.pas
  • M compiler/ncnv.pas
  • M compiler/parser.pas
  • M compiler/pbase.pas
  • M compiler/pexpr.pas
  • M compiler/procdefutil.pas


Add help for -Aomf option for wasm32 CPU and new message for ogwasm binary writer
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Avoid some range check error and convert internalerror into error messages
Commit consists out of
  • M compiler/ogwasm.pas


tllvmcallpara: turned into object and added convenience methods
Commit consists out of
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmtype.pas
  • M compiler/llvm/nllvmbas.pas
  • M compiler/llvm/rgllvm.pas
  • M compiler/parabase.pas


* the WebAssembly internal assembler renamed WASM (previously it was OMF, which was the ID of the MS-DOS .obj writer, which I forgot to rename)
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ogwasm.pas


* fixed the message in the previous commit
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


TCGParaLocation: remove alignment gap
Commit consists out of
  • M compiler/parabase.pas


+ support different versions of llvm-mc (version 10 seems to be the earliest that works)
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/systems.inc
  • M compiler/wasm32/agllvmmc.pas


* correctly handle directives for function references
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecvar.pas


+ added "(experimental)" to the compiler help screen for the WebAssembly compiler options that are still unstable/experimental
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* compilation with -O3 fixed
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/ptype.pas
  • M compiler/symdef.pas


Fix cycling with -CR option
Commit consists out of
  • M compiler/pdecl.pas


* fix gitlab 0039736: ensure that the capturer object and any converted function reference interface are considered used
+ added test
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/webtbs/tw39736.pp


* fix compilation with DEBUG_NODE_XML defined
Commit consists out of
  • M compiler/procdefutil.pas


Avoid invalid typecast to tabstractvarsym
Commit consists out of
  • M compiler/defcmp.pas


agllvm: support nested constants in parameters

Needed for metadata support
Commit consists out of
  • M compiler/llvm/agllvm.pas


agllvm: support specialised metadata with field names

Necessary for DIExpression
Commit consists out of
  • M compiler/llvm/agllvm.pas


tllvmcallpara: record whether it's passed to metadata

Sometimes we need the def to store a the original def of the passed parameter,
e.g. for the first argument to llvm.dbg.addr
Commit consists out of
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/hlcgllvm.pas


hlcgobj: new getlocal and recordnewsymloc methods

Call hlcg.getlocal instead of tg.getlocal when used for actual parameters/local
variables. Has an extra tsym parameter, which will enable the LLVM backend to
insert debug information.

Call hlcg.recordnewsymloc when the location of a (local/para) symbol changes,
so debug info tracking can be updated (only done for LLVM currently)
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/ncgld.pas
  • M compiler/ncgutil.pas


+ enable the ROL/ROR instructions for WebAssembly
Commit consists out of
  • M compiler/fpcdefs.inc
  • M rtl/inc/systemh.inc
  • M tests/tbs/tb0627b.pp


+ implemented popcnt via the popcnt instruction in WebAssembly
Commit consists out of
  • M compiler/wasm32/nwasminl.pas


* Risc-V: return with mret from interrupt handlers, resolves gitlab 0039737
Commit consists out of
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv64/cgcpu.pas


+ added the memory.init and data.drop instructions
Commit consists out of
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/strinst.inc


+ added the WebAssembly reference instructions ref.null, ref.is_null and ref.func
Commit consists out of
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/strinst.inc


+ added the WebAssembly table instructions
Commit consists out of
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/strinst.inc


+ added the WebAssembly reference and vector types to TWasmBasicType
Commit consists out of
  • M compiler/wasm32/agwat.pas
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas


+ support all the new types in encode_wasm_basic_type
Commit consists out of
  • M compiler/wasm32/cpubase.pas


* fixed warning
Commit consists out of
  • M compiler/ogwasm.pas


+ added the 'wasmthreads' target switch (enabled via -CTwasmthreads)
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* fixed compilation of ppudump
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


+ added a 'producers' custom section to WebAssembly object modules, containing the FPC version
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasmbase.pas


+ produce a target_features section when compiling with -CTwasmthreads
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasmbase.pas


ngtcon: fix def of emitted vmt in procedure of object typed constants

Fixes compilation of tests/test/tprocvar17 with the LLVM backend, and probably
some other tests as well
Commit consists out of
  • M compiler/ngtcon.pas


rautils: don't interpret ".L3" as potentially meaning "unitx.identifier"

Fixes compilation of webtbs/tw10641.pp with a compiler compiled with
range checking
Commit consists out of
  • M compiler/rautils.pas


taddnode.cmp_of_disjunct_ranges: fortify in case of programs with errors

Fixes compilation of webtbf/tw3116 with a compiler compiled with -Cr
Commit consists out of
  • M compiler/nadd.pas


+ support the memory.init and the data.drop instructions in the internal asm writer for WebAssembly
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ added the WebAssembly saturating truncation instructions to the internal assembler
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/strinst.inc


* pass the option to create shared, imported memory to the linker, in case the module is compiled with -CTwasmthreads
Note that this breaks running programs compiled with -CTwasmthreads with "wasmtime run --wasm-features threads", but
there's not much we can do about that, since shared memory is required for threading, and wasmtime still doesn't
support it.
Commit consists out of
  • M compiler/systems/t_wasi.pas


* the stack pointer on Risc-V points always at the last used position, resolves gitlab 0039739
Commit consists out of
  • M compiler/systems/t_embed.pas
  • M compiler/systems/t_freertos.pas


* pseudo instructions for flag handling
Commit consists out of
  • M compiler/riscv/itcpugas.pas
  • M compiler/riscv32/cpubase.pas


* standard Risc-V pseudo instructions for Risc-V 32 completed
Commit consists out of
  • M compiler/riscv/itcpugas.pas
  • M compiler/riscv32/cpubase.pas


* unified Risc-V 32 and 64 cpubase.pas
Commit consists out of
  • R089 compiler/riscv32/cpubase.pas compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas
  • D compiler/riscv64/cpubase.pas


+ completed Risc-V 64 pseudo instructions
* typo fixed
Commit consists out of
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas


llvm: support for adding/subtracting constants to pointers in typed constants

Fixes webtbs/tw34027 for llvm
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/llvm/nllvmtcon.pas
  • M compiler/ngtcon.pas


do_set: immediately exit in case of range error

Prevents run time error in case of a compiler compiled with range checks
enabled (webtbf/tw10890a)
Commit consists out of
  • M compiler/ncnv.pas


tarraydef.elecount: fix overflow detection

It did not trigger in case of an array[0..high(asizeint)]. Fixes compilation
of webtbs/tw9039[ab] with a compiler built with range checking enabled.
Commit consists out of
  • M compiler/symdef.pas


llvmdbg: fix overflows for aggregates > 2^61 bytes

LLVM does not support aggregates larger than that at all, because internally
it stores all sizes in bits in an uint64. Their rationale for not having
special support for that is that there is no hardware with full 64 bit VM
address space anyway. So truncate our size emissions in debug info also to
that.
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


read_record_fields: fix overflows of variant record size variables

Could happen in case of > 32 bit variant parts, or variant parts at offsets
> 32 bit offsets.

Fixes webtbs/tw9039c with a compiler compiled with -Cr
Commit consists out of
  • M compiler/pdecvar.pas


* set the correct symtable level for the invoke procdef
Commit consists out of
  • M compiler/procdefutil.pas


* ensure that the VMT for the function reference interface is generated correctly, but for this the invokedef needs to be copied without hidden parameters (and handle_calling_convention will be done by the VMT builder as well)
Commit consists out of
  • M compiler/procdefutil.pas


function references: make names of interface methods valid Pascal identifiers

On high level targets, and on PowerPC/PowerPC64, interface method thunks are
implemented using internally-generated Pascal wrappers, so the method names
need to be valid Pascal identifiers.

Additionally, that wrapper code uses the procsym's realname, so also
update the realname field when changing the name of anonymous methods.
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/procdefutil.pas


* unified Risc-V 32 and 64 register data file
Commit consists out of
  • R100 compiler/riscv32/rv32reg.dat compiler/riscv/rvreg.dat
  • D compiler/riscv64/rv32reg.dat


+ "rescued" mkrvreg.pp from old svn data
Commit consists out of
  • A compiler/utils/mkrvreg.pp


* fix gitlab 0039745: the conversion from ordinals to pointer types in mode Delphi is not allowed for a void type (happens when using a typecast to convert a method without parameters to a function reference)
+ added test
Commit consists out of
  • M compiler/defcmp.pas
  • A tests/webtbs/tw39745.pp


Fix compilation of sparc compiler with -dDEBUG_ALL_OPT
Commit consists out of
  • M compiler/sparcgen/aoptcpu.pas


Also add a comment when a label has been optimized out when compiled DEBUG_LABEL
Commit consists out of
  • M compiler/aggas.pas


Manually increase refs of newly created labelsymbol in insertpcrelativedata
Commit consists out of
  • M compiler/arm/aasmcpu.pas


Add several increfs to avoid troubles on AIX target OS
Commit consists out of
  • M compiler/powerpc/rappcgas.pas
  • M compiler/powerpc64/rappcgas.pas
  • M compiler/ppcgen/cgppc.pas


+ added Risc-V register information file generation to the compiler Makefile
* more stringent naming of register file information for Risc-V
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas
  • R100 compiler/riscv64/rrv32con.inc compiler/riscv64/rrv64con.inc
  • R100 compiler/riscv64/rrv32dwa.inc compiler/riscv64/rrv64dwa.inc
  • R100 compiler/riscv64/rrv32nor.inc compiler/riscv64/rrv64nor.inc
  • R100 compiler/riscv64/rrv32num.inc compiler/riscv64/rrv64num.inc
  • R100 compiler/riscv64/rrv32rni.inc compiler/riscv64/rrv64rni.inc
  • R100 compiler/riscv64/rrv32sri.inc compiler/riscv64/rrv64sri.inc
  • R100 compiler/riscv64/rrv32sta.inc compiler/riscv64/rrv64sta.inc
  • R100 compiler/riscv64/rrv32std.inc compiler/riscv64/rrv64std.inc
  • R100 compiler/riscv64/rrv32sup.inc compiler/riscv64/rrv64sup.inc
  • M compiler/utils/mkrvreg.pp


* make proc_to_funcref_conv publicly available
Commit consists out of
  • M compiler/defcmp.pas


+ add an error message that a nested function variable can not be assigned to a function reference
Commit consists out of
  • M compiler/msg/errore.msg


* regenerate msg{idx,txt}.inc
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* ensure that a nested function variable can not be assigned to a function reference
Commit consists out of
  • M compiler/procdefutil.pas


* the check for nested procvars is now done during the conversion in capturer_add_procvar_or_proc so loosen the check in proc_to_funcref_equal_internal
Commit consists out of
  • M compiler/defcmp.pas


* fix gitlab 0039740: consider a conversion of a procedure or procedure variable to a function reference as a bit more expensive than otherwise
+ added test
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/htypechk.pas
  • A tests/webtbs/tw39740.pp


* fix gitlab 0039742: when assigning a function to a function reference it's not the function itself that needs to be checked to be captureable, but instead what it captures (this applies for both the non-generic and the generic case)
+ added tests
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/test/tfuncref37.pp
  • A tests/test/tfuncref38.pp
  • A tests/test/tfuncref39.pp
  • A tests/test/tfuncref40.pp
  • A tests/test/tfuncref41.pp
  • A tests/test/tfuncref42.pp
  • A tests/webtbs/tw39742.pp


Disable finalisation code fro LLVM compiler to avoid interface finalisation troubles
Commit consists out of
  • M compiler/ngenutil.pas
  • A packages/fpmake-llvm
  • A packages/fpmake-reg
  • M packages/fpmkunit/src/fpmkunit.pp


Fix compliation error with -Oodfa option as reported by Gareth
Commit consists out of
  • M compiler/procdefutil.pas


+ forgotten pseudo-instructions added
Commit consists out of
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas


* zero is a valid Risc-V register alias
Commit consists out of
  • M compiler/riscv/rarvgas.pas


* "fast lane" code and comment fixed
Commit consists out of
  • M compiler/riscv/rarvgas.pas


Fix compilation of 32-bit powerpc compiler
Commit consists out of
  • M compiler/powerpc/rappcgas.pas


llvm: version 13.0 support
Commit consists out of
  • M compiler/llvm/llvminfo.pas


* Risc-V: allow also register aliases in register modification lists after asm blocks, last part to resolve gitlab 0039738
Commit consists out of
  • M compiler/pstatmnt.pas
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/rarvgas.pas
  • A tests/webtbs/tw39738.pp


llvm: added support for newer Xcode toolchains

Based on https://en.wikipedia.org/wiki/Xcode#Xcode_11.x_-_13.x_(since_SwiftUI_framework)_2
Commit consists out of
  • M compiler/llvm/llvminfo.pas


LLVM: list supported LLVM/Xcode versions

Use the -i or -il command line parameter
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/options.pas


msg*.inc: regenerated
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


llvm: version 14.0 support
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvminfo.pas


llvminfo: fix copy/paste error in llvm 14 comment

Spotted by @Alexey-T1
Commit consists out of
  • M compiler/llvm/llvminfo.pas


dbgllvm: rename hastable for staticvarsym declarations
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


llvmdbg: support for generating debug information for local/para varsyms

Note that not all symbols are covered yet, because absolutevarsyms are not
yet supported and those are e.g. used for function result aliases.
Additionally, not all types are fully supported yet.
Commit consists out of
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/dbgllvm.pas
  • M rtl/inc/llvmintr.inc


* patch by Rika: improve EncodeUleb128/EncodeSleb128, part of gitlab 0039750
Commit consists out of
  • M compiler/cutils.pas


llvm: removed Xcode 10.0/10.1 as supported versions

These already did not work because they predate clang 7
Commit consists out of
  • M compiler/llvm/llvminfo.pas


parentfpstruct: don't add vo_is_firstfield to first field of record

That flag is only for the first field of variant parts of records
Commit consists out of
  • M compiler/symcreat.pas


objcdef: remove duplicate variant start check
Commit consists out of
  • M compiler/objcdef.pas


aasmllvmmetadata: remove leftover unused type
Commit consists out of
  • M compiler/llvm/aasmllvmmetadata.pas


* patch by Rika: improve EncodeUleb128/EncodeSleb128, second part of gitlab 0039750, resolves gitlab 0039750
Commit consists out of
  • M compiler/cutils.pas


dbgllvm: support for record field debug information
Commit consists out of
  • M compiler/llvm/dbgllvm.pas
  • M compiler/symsym.pas


Try to fix real constant problems for llvm compiler
Commit consists out of
  • M compiler/wasm32/agllvmmc.pas


dbgllvm: added appenddef_struct_named

Factored out of appenddef_record_named for reuse by objectdefs.

Also moved responsibility of adding the struct dinode to the asmlist
to the caller, as the name of this method does not imply it will do
that.
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: remove tmembercallbackinfo

Leftover from dbgdwarf, not used here
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: skip static fields when writing struct fields

These are not part of the struct instances
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: struct_metadef fixes

It will be used to hold a reference to the underlying structure of a class,
whose type is represented as a pointer to a DW_TAG_class_type for compatibility
with the debug information generated by the FPC backend (otherwise we could
instead just add a deref expression to all variables of such a type)
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: support for tobjectdef debug information

Classes, objects, interfaces, Objective-C classes, ...
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: emit all symbolic constants as enum values/strings

Easier to read in the .ll files, and avoids potential mismatches with their
value in LLVM (in case it changes across LLVM versions)
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


Fix compilation of arm compiler with LLVM=1
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


Fix oversized type size constant
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


Avoid Invalid typecast error when using -CR option by using tabstractrecordsymtable type for record or object symtable
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


dbgllvm: removed some commented-out declarations
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


* patch by Rika: Replace some instances of manual work with endianness with cryptic oneliners, resolves gitlab 0039719
Commit consists out of
  • M compiler/ogomf.pas
  • M compiler/omfbase.pas
  • M compiler/owomflib.pas
  • M compiler/symtype.pas
  • M compiler/utils/ppuutils/ppudump.pp


* few MIPS64 fixes
Commit consists out of
  • M compiler/mips/cpubase.pas


* more MIPS64 fixes
Commit consists out of
  • M compiler/mips/cgcpu.pas


defutil: new is_address() helper

Returns whether a def represents an address
Commit consists out of
  • M compiler/defutil.pas


nllvmadd: fix not always forcing pointer constants in registers

There could have been a typeconversion around the pointerconstn/niln.
This was hidden because llvmtype fixed it up later, but with opaque
pointers it showed up again.
Commit consists out of
  • M compiler/llvm/nllvmadd.pas


* a few more MISP64 fixes
Commit consists out of
  • M compiler/mips/cgcpu.pas


agllvm: missing space between type and tai operand
Commit consists out of
  • M compiler/llvm/agllvm.pas


llvm: support for opaque pointers

Will be the default starting with LLVM 15, and required with LLVM 16.
Tested with LLVM 14 and '-mllvm -opaque-pointers'. See
https://releases.llvm.org/14.0.0/docs/OpaquePointers.html for more
information.
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvminfo.pas
  • M compiler/llvm/llvmtype.pas
  • M compiler/llvm/nllvmcnv.pas
  • M compiler/llvm/nllvmtcon.pas


llvm: use formaldef rather than undefineddef for llvm_metadata

Better matches the intent, and fixes compilation issues on AArch64
Commit consists out of
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/llvmpara.pas
  • M compiler/llvm/nllvmcal.pas
  • M compiler/psystem.pas


+ RiscV32: patch by kupferstecher: compiler support of CH32V30*, part of gitlab 0039777
Commit consists out of
  • M compiler/riscv32/cpuinfo.pas


arm paramanager: always create at least one paraloc

Even for parameters of 0 bytes. Matches behaviour on other targets.
Commit consists out of
  • M compiler/arm/cpupara.pas


* small MIPS64 fix
Commit consists out of
  • M compiler/mips/cpupara.pas


* use a TCmdStr as parameter for SetVerbosity as it gets passed a TCmdStr in the option handling, thus may contain a parameter value (especially -vmXXX) larger than 255 characters
Commit consists out of
  • M compiler/verbose.pas


+ add a AnsiString based overload of GetToken
Commit consists out of
  • M compiler/cutils.pas


* change ChangeMessageVerbosity from String to AnsiString as long parameters might be passed to it
Commit consists out of
  • M compiler/verbose.pas


llvmpara: don't crash if a parameter has no paralocs
Commit consists out of
  • M compiler/llvm/llvmpara.pas


* don't load the controller unit if the currently compiled unit *is* the controller unit (which might happen if one compiles the controller unit as part of a program)
Commit consists out of
  • M compiler/pmodules.pas


* do not throw messages on potentially uninitialized internal symbols, resolves gitlab 0039744
Commit consists out of
  • M compiler/optdfa.pas
  • M compiler/procdefutil.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A tests/webtbs/tw39744.pp


Put systems_bsd into systems_weak_linking to fix heaptrc compilation failure for netbsd and dragonfly target OS introduced by commit ae346a87
Commit consists out of
  • M compiler/systems.pas


* avr tiny has no adiw/sbiw instructions, resolves gitlab 0039783
Commit consists out of
  • M compiler/avr/cpuinfo.pas


llvmdbg: fixed variant fields

They have to be members with a union type, rather than union types
themselves.
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


Increase reference count of jump label, fixes gitlab 0039784
Commit consists out of
  • M compiler/avr/aasmcpu.pas


* optimize a-const1-const2 when const1 and const2 are real constants and fast math is on, part of fixing gitlab 0039782
Commit consists out of
  • M compiler/nadd.pas


darwin: also run dsymutil for DWARF 4
Commit consists out of
  • M compiler/systems/t_darwin.pas


x86-64: keep tcgpara vardef the same as the para's real def

Only override the paraloc's vardef if necessary. This fixes compilation of
tests/test/cg/tvectorcall*.pp for LLVM
Commit consists out of
  • M compiler/x86_64/cpupara.pas


x86-64: properly set parameter alignment if not default
Commit consists out of
  • M compiler/x86_64/cpupara.pas


* get rid of cs_opt_none
* $O+ sets cs_opt_level2 instead of cs_opt_none which made no sense
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/scandir.pas
  • M compiler/switches.pas
  • M compiler/utils/ppuutils/ppudump.pp


* do not use Dwarf-4 yet as it is too little tested and has no benefits
Commit consists out of
  • M compiler/systems/i_linux.pas


* remove accidently commited writeln
Commit consists out of
  • M compiler/scandir.pas


Support arrays and classes in compile-time OffsetOf.
Commit consists out of
  • M compiler/nmem.pas


* WebAssembly exceptions fix: fixed raise without parameters in except..end
blocks in WebAssembly native and branchful exceptions mode. Fixes gitlab 0039752
Commit consists out of
  • M compiler/wasm32/nwasmflw.pas
  • M rtl/inc/compproc.inc
  • M rtl/wasm32/except_branchful.inc
  • M rtl/wasm32/except_native.inc


+ added check whether PPU and program are compiled in the same WebAssembly
exceptions mode (either both are turned on, or both are turned off)
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* Don't call secondpass(left) in twasmtypeconvnode.second_int_to_real, this fixes bug gitlab 0039735.
Commit consists out of
  • M compiler/wasm32/nwasmcnv.pas
  • A tests/webtbs/tw39735.pp


+ WebAssembly: use the 64-bit div instruction, instead of an RTL helper for 64-bit division
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmmat.pas


* fixed WebAssembly code generation for integer unary minus with overflow checking
Commit consists out of
  • M compiler/wasm32/nwasmmat.pas


* fixed typo in comment
Commit consists out of
  • M compiler/wasm32/nwasmmat.pas


+ generate exception checks after calls to fpc_overflow class in WebAssembly
branchful exceptions mode, because fpc_overflow can raise an exception in case
unit SysUtils is included.
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmmat.pas


+ make use of the unsigned remainder instructions in WebAssembly (i32.rem_s, i64.rem_u)
Commit consists out of
  • M compiler/wasm32/nwasmmat.pas


* fix gitlab 0039795: when extracting make_prettystring it was forgotten to also append the const part of the name to the specialize name
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw39795.pp


* do not throw an internal error if slice is used on dyn. array paramters, resolves gitlab 0039806
Commit consists out of
  • M compiler/ninl.pas
  • A tests/webtbf/tw39806.pp


* Fixed infinite loop when CONSTPROP is enabled
but USELOADMODIFYSTORE is not.
Commit consists out of
  • M compiler/optconstprop.pas


riscv32: Fix potential FP proc_exit bug
Commit consists out of
  • M compiler/riscv32/cgcpu.pas


* do not optimize away +0.0 if no fastmath is passed as -0.0+(+0.0)=+0.0
Commit consists out of
  • M compiler/nadd.pas


* x86: MovAndTest2Test optimisation now accepts a smaller sub-regiser on the TEST instruction
Commit consists out of
  • M compiler/x86/aoptx86.pas


cresstr: fix length specified for resource strings to typed const builder

Copy/paste error
Commit consists out of
  • M compiler/cresstr.pas


* allow type parameters in variant parts of records as we do not now
what type is used during specialization, resolves gitlab 0039805
Commit consists out of
  • M compiler/pdecvar.pas
  • M tests/test/tgeneric26.pp
  • A tests/webtbf/tw39805b.pp
  • A tests/webtbs/tw39805a.pp


* x86: Shrink TEST instruction on MovAndTest2Test
where possible.
Commit consists out of
  • M compiler/x86/aoptx86.pas


set Tag_ABI_VFP_args to 1 only if the hard float abi is used, should resolve gitlab 0039817
Commit consists out of
  • M compiler/arm/narmutil.pas


* convert a+/-const1-/const2 in into a+/-(-const1)+(-const2) to enable further optimizations, resolves gitlab 0039782
Commit consists out of
  • M compiler/nadd.pas


riscv: Merge stack code, fix interrupted code

- Stack pointer is kept below register save area. This ensures that
registers are not overwritten by interrupt handlers.
- RV32 and 64 code is merged to base class.
Commit consists out of
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv64/cgcpu.pas


__fpc_valgrind symbol: use correct size when inserting definition
Commit consists out of
  • M compiler/ngenutil.pas


x86 BuildInsTabMemRefSizeInfoCache: don't read past end of instab
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Add cntfrq_el0 and cntpct_el0 AArch64 registers
Commit consists out of
  • M compiler/aarch64/a64reg.dat
  • M compiler/aarch64/ra64con.inc
  • M compiler/aarch64/ra64dwa.inc
  • M compiler/aarch64/ra64nor.inc
  • M compiler/aarch64/ra64num.inc
  • M compiler/aarch64/ra64rni.inc
  • M compiler/aarch64/ra64sri.inc
  • M compiler/aarch64/ra64sta.inc
  • M compiler/aarch64/ra64std.inc
  • M compiler/aarch64/ra64sup.inc


tstringconstnode.changestringtype: fix buffer overrun

Found by asan
Commit consists out of
  • M compiler/ncon.pas


* handle absolute on strings correctly for dwarf debug info, resolves gitlab 0039816
Commit consists out of
  • M compiler/dbgdwarf.pas
  • A tests/webtbs/tw39816.pp


ttai_typedconstbuilder: do not remove tcalo_vectorized_dead_strip_item

This was done because originally getting the finalized asmlist happend
through a single proc that either called the vectorized version or the
regular version depending on the presence of tcalo_vectorized_* flags.

Nowadays, calling either get_final_asmlist_vectorized_dead_strip or
get_final_asmlist happens directly as needed.

This flag will be used by the LLVM asmwriter to add appropriate
address sanitizer information.
Commit consists out of
  • M compiler/aasmcnst.pas


LLVM backend: address sanitizer support

Activate with -Clfsanitize=address. Only tested on Darwin/x86-64 for now.
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/llvminfo.pas
  • M compiler/llvm/nllvmutil.pas
  • M compiler/msg/errore.msg
  • M compiler/options.pas
  • M compiler/pmodules.pas
  • M compiler/utils/ppuutils/ppudump.pp


msg files: regenerated
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


agllvm: fix writing strings in metadata arrays

They were interpreted as part of larger strings
Commit consists out of
  • M compiler/llvm/agllvm.pas


llvm: fix reading past end of data for some parameter references

Fixes false positives when using address sanitizer
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* patch by Rika: makes gitlab 0039786 work on more setups, resolves gitlab 0039786
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/nadd.pas


* a64: New conditional branch to CSET peephole optimisation
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* a64: Porting of MatchOperand function from x86 that takes integer parameter
Commit consists out of
  • M compiler/armgen/aoptarm.pas


Adding AArch64 CurrentEL register

CurrentEL is used to determine the current "exception level" in the CPU.

It has four possible results:

0b00 - EL0 - Application
0b01 - EL1 - Rich OS
0b10 - EL2 - Hypervisor
0b11 - EL3 - Firmware

https://developer.arm.com/documentation/ddi0595/2020-12/AArch64-Registers/CurrentEL--Current-Exception-Level
https://developer.arm.com/documentation/102412/0100/Privilege-and-Exception-levels
Commit consists out of
  • M compiler/aarch64/a64reg.dat
  • M compiler/aarch64/ra64con.inc
  • M compiler/aarch64/ra64dwa.inc
  • M compiler/aarch64/ra64nor.inc
  • M compiler/aarch64/ra64num.inc
  • M compiler/aarch64/ra64rni.inc
  • M compiler/aarch64/ra64sri.inc
  • M compiler/aarch64/ra64sta.inc
  • M compiler/aarch64/ra64std.inc
  • M compiler/aarch64/ra64sup.inc


* Reference counts are now properly incremented on duplicated taicpu objects
Commit consists out of
  • M compiler/aasmtai.pas


LLVM address sanitizer: add asan library and rpath on Darwin

Also verified that "make all" works with asan on macOS/AArch64
Commit consists out of
  • M compiler/systems/t_darwin.pas


+ avr-embedded: keep fpc.* sections, should resolve gitlab 0039825
Commit consists out of
  • M compiler/systems/t_embed.pas


* Always generate CFI-information. During linking it can be omitted when
no debug-information is requested. On Linux this needed a change in the
linker-script. On Windows it already works as desired. Other targets
may need some adjustments as well.
Commit consists out of
  • M compiler/cfidwarf.pas
  • M compiler/systems/t_linux.pas


* arm: Symbol reference counts are corrected when PC-relative data is inserted
Commit consists out of
  • M compiler/arm/aasmcpu.pas


* arm: Labels to constants are now data labels and not jump labels
Commit consists out of
  • M compiler/arm/hlcgcpu.pas


x86: Direct assignment instructions are no longer checked prior to calling CheckJumpMovTransferOpt, instead relying on the callee to do the heavy lifting (also fixed -Os bug)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* correctly truncate rtti symbol names of enumeration types, resolves gitlab 0039829
Commit consists out of
  • M compiler/ncgrtti.pas
  • A tests/webtbs/tw39829.pp


* x86: Fixed bug in "Mov0LblCmp0Je -> Mov0JmpLblCmp0Je" optimisation
where the reference count was increased twice.
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ support writing of 32-bit and 64-bit relocations in the REL object writer
for Z80. This fixes DWARF debug output and makes it behave consistently with
the Z80 external assembler writer.
Commit consists out of
  • M compiler/ogrel.pas


* patch by rika: simplify tscannerfile.readstring, resolves gitlab 0039835
Commit consists out of
  • M compiler/scanner.pas


+ added the WASM_SYM_TLS symbol flag constant
Commit consists out of
  • M compiler/wasmbase.pas


+ added WASM segment flag constants
Commit consists out of
  • M compiler/wasmbase.pas


+ set the TLS flag for threadvar sections when WASM threads are enabled
Commit consists out of
  • M compiler/ogwasm.pas


+ prefix the threadvar sections with '.tbss' when WASM multithreading is enabled
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly multithreading: also declare threadvar sections as TLS and prefix their name with '.tbss' when using the external assembler
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/wasm32/agllvmmc.pas


+ introduced trefaddr.addr_got_tls, to be used for generating WebAssembly threadvar access, when WASM multithreading is turned on
Commit consists out of
  • M compiler/cgbase.pas
  • M compiler/wasm32/agllvmmc.pas


+ generate proper WebAssembly threadvar access when multithreading is turned on
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasm32/cpunode.pas
  • M compiler/wasm32/hlcgcpu.pas
  • A compiler/wasm32/nwasmld.pas


+ declare the three magic global variables (__tls_size, __tls_align, __tls_base), created by the linker, when WebAssembly multithreading is enabled
Commit consists out of
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/nwasmutil.pas


+ added WebAssembly intrinsics for reading __tls_size, __tls_align and __tls_base
Commit consists out of
  • M compiler/wasm32/ccpuinnr.inc
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasm32/cpuh.inc
  • M rtl/wasm32/cpuinnr.inc


+ add the "-m wasm32" parameter to the linker, when linking for the WASI
target. No idea if it does anything, but is passed to the linker by the
official WASI SDK, so it shouldn't hurt.
Commit consists out of
  • M compiler/systems/t_wasi.pas


* set the default stack size for the WASI platform to 65536 bytes (this is the
default, used by the linker)
Commit consists out of
  • M compiler/systems/i_wasi.pas


+ allow changing the stack size for the WASI platform
Commit consists out of
  • M compiler/systems/t_wasi.pas


* stack alignment on the WASI platform is 16 bytes
Commit consists out of
  • M compiler/systems/i_wasi.pas


* set the stack size to 64kb and stack align to 16 bytes for the wasm32-embedded target
Commit consists out of
  • M compiler/systems/i_embed.pas


+ allow setting the stack size for the wasm32-embedded target
Commit consists out of
  • M compiler/systems/t_embed.pas


+ pass '-m wasm32' to the linker, when compiling for the wasm32-embedded target
Commit consists out of
  • M compiler/systems/t_embed.pas


+ allow creating a linker map file, when compiling for the wasm32-embedded target
Commit consists out of
  • M compiler/systems/t_embed.pas


* use current_module.sharedlibfilename instead of current_module.exefilename, when linking a library for the wasm32-embedded target
Commit consists out of
  • M compiler/systems/t_embed.pas


+ allow specifying custom extra linker options for the wasm32-embedded target
Commit consists out of
  • M compiler/systems/t_embed.pas


+ allow specifying custom extra linker options for the wasm32-wasi target
Commit consists out of
  • M compiler/systems/t_wasi.pas


- removed debug writeln when calling the linker for the wasm32-embedded target
Commit consists out of
  • M compiler/systems/t_embed.pas


+ show a "linking" message before invoking the linker for the wasm32-embedded target
Commit consists out of
  • M compiler/systems/t_embed.pas


* fix gitlab 0039826: correctly handle function references that are part of generics/specializations, but are not generics/specializations themselves
+ added test
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/webtbs/tw39826.pp


* apply the same alignment parameters to wasm32-embedded as wasm32-wasi
Commit consists out of
  • M compiler/systems/i_embed.pas


- disable the cs_opt_nodecse optimization from the -O2 for the WebAssembly target, because it causes a crash, when compiling the classes unit
Commit consists out of
  • M compiler/wasm32/cpuinfo.pas


+ added custom section descriptions for DWARF debug info for the WebAssembly object writer (not actually emitted, yet)
Commit consists out of
  • M compiler/wasmbase.pas


+ introduced TWasmObjSection.IsDebug
Commit consists out of
  • M compiler/ogwasm.pas


* fixed crashes with the WebAssembly internal object writer, when debug info is enabled. The debug info itself is not yet written to the file, though.
Commit consists out of
  • M compiler/ogwasm.pas


+ write the actual DWARF debug sections in the WebAssembly object writer. The relocations aren't ready, yet, though.
Commit consists out of
  • M compiler/ogwasm.pas


+ emit WASM DWARF debug info relocations
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented the R_WASM_FUNCTION_OFFSET_I32 relocation in the WebAssembly object writer
Commit consists out of
  • M compiler/ogwasm.pas


+ always (even when multithreading is off) create a "target features" section
in the WebAssembly object writer, since we still require some (very commonly
supported) extensions, even without multithreading
Commit consists out of
  • M compiler/ogwasm.pas


* don't write R_WASM_TABLE_INDEX_I32 relocations, always use R_WASM_FUNCTION_OFFSET_I32 in debug sections
Commit consists out of
  • M compiler/ogwasm.pas


* workaround crash when generating WebAssembly DWARF debug info for threadvars, while multithreading is turned off
Commit consists out of
  • M compiler/ogwasm.pas


llvm: move asan library linking support to texternallinker

This way other platforms besides Darwin can also use it.
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems/t_darwin.pas


* an attempt to fix WebAssembly debug info section relocations
Commit consists out of
  • M compiler/ogwasm.pas


+ support RV32E Extension
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv32/cpuinfo.pas
  • M tests/tbf/tb0293.pp


* RiscV: generate mret only for FreeRTOS and Embedded
Commit consists out of
  • M compiler/riscv/cgrv.pas


* RiscV: pass the same default directories to the linker as on other architectures
Commit consists out of
  • M compiler/systems/t_linux.pas


* Riscv32 and Riscv64 on linux: enable safecall support
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas
  • M compiler/systems/i_linux.pas


llvm: support for getting the llvm rtl (rt) architecture name

This is the name used as part of the llvm rt libraries, like
asan (address sanitizer)
Commit consists out of
  • M compiler/arm/tripletcpu.pas
  • M compiler/globtype.pas
  • M compiler/i386/tripletcpu.pas


llvm: generalised sanitizer linking support

Also enabled automatic detection of sanitizer library + setting rpath to Linux
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems/t_darwin.pas
  • M compiler/systems/t_linux.pas


Fix compilation with -Oodfa
Commit consists out of
  • M compiler/systems/t_linux.pas


ARM: fixed compiler compilation after 75c16b612660
Commit consists out of
  • M compiler/arm/tripletcpu.pas


+ allow the 'section' directive for the WebAssembly platforms
Commit consists out of
  • M compiler/systems.pas


+ introduced tcpustaticvarsym.is_wasm_global
Commit consists out of
  • M compiler/wasm32/symcpu.pas


* don't reserve bss data for wasm global vars
Commit consists out of
  • M compiler/wasm32/nwasmutil.pas


* fixed comment
Commit consists out of
  • M compiler/wasm32/cpubase.pas


+ introduced methods for converting WebAssembly global var types from a Pascal type to TWasmBasicType
Commit consists out of
  • M compiler/wasm32/symcpu.pas


+ declare user-defined wasm globals in the llvm-mc assembly output
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/nwasmutil.pas


* WebAssembly high level code generator: use the global.get and global.set
instructions to access references to symbols of type AT_WASM_GLOBAL
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* x86: Bug fix where a tai type was assumed and could sometimes trigger an invalid typecast under -CriotR
Commit consists out of
  • M compiler/x86/aoptx86.pas


variable trashing: don't trash internal syms

Since they're managed by the code generator, they should always be valid.
Commit consists out of
  • M compiler/ngenutil.pas


parentfpstruct: explicitly trash before initialising

It's an internal sym, but it contains user data. Together with the previous
commit resolves gitlab 0039845
Commit consists out of
  • M compiler/ngenutil.pas
  • M compiler/psub.pas
  • A tests/webtbs/tw39845.pp


* x86: Fixed minor logic bug in aoc_ForceNewIteration check where UpdateUsedRegs was called at the wrong time.
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86_64/aoptcpu.pas


* x86: Corrected some incorrect uses of RemoveCurrentP in OptPass1_V_MOVAP.
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ VPXorVMov2Mov optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


llvm: correctly write aliases when using opaque pointers
Commit consists out of
  • M compiler/llvm/agllvm.pas


llvm: llvm/clang 15.0 support
Commit consists out of
  • M compiler/llvm/llvminfo.pas


* fix gitlab 0039849: it's an error when the file (or string) parameter of a Read*/Write* is followed by a ":"
+ added test
Commit consists out of
  • M compiler/ninl.pas
  • A tests/webtbf/tw39849.pp


* do not warn on anonymous functions without captured variables about being not used, resolves gitlab 0039853
Commit consists out of
  • M compiler/pdecsub.pas
  • A tests/webtbs/tw39853.pp


* x86: Fixed bug where redirected jump has its condition changed (fixes i39851)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Reference count fix in CMP/Jcc and TEST/Jcc redirect optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ VPXor2VPXor optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Correct fileinfo and some refactoring for imul2leashl optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Correct fileinfo and some refactoring for OptPass1LEA
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Correct fileinfo and some refactoring for OptPass1SHLSAL
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Correct fileinfo and some refactoring for OptPass1CMP
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Correct fileinfo for OptPass2MOV
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Correct fileinfo for PostPeepholeOptCall
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ support declaring wasm globals in the WebAssembly internal object writer
Commit consists out of
  • M compiler/ogwasm.pas


* .lpi version update
Commit consists out of
  • M compiler/ppcwasm32.lpi


+ forgotten comments for new optimizations
Commit consists out of
  • M compiler/x86/aoptx86.pas


Update errord*.msg

new messages and other changes in errore.msg have been translated or ported to the German message files.
Commit consists out of
  • M compiler/msg/errord.msg
  • M compiler/msg/errordu.msg


Update reference
Commit consists out of
  • M compiler/msg/errord.msg
  • M compiler/msg/errordu.msg


* captured variables cannot be in registers typically
Commit consists out of
  • M compiler/procdefutil.pas


* wasm32 obj writer: writing the debug section symbols to the symbol table moved before the writing of the debug sections themselves
Commit consists out of
  • M compiler/ogwasm.pas


* wasm32 obj writer: moved the writing of the data sections ahead
Commit consists out of
  • M compiler/ogwasm.pas


* wasm32 obj writer: determine the section number for the datacount, code, data and debug sections ahead of time (before writing the sections)
Commit consists out of
  • M compiler/ogwasm.pas


* wasm32 obj writer: do the relocations before writing the code, data and debug sections
Commit consists out of
  • M compiler/ogwasm.pas


* wasm32 obj writer: use Data.ObjSectionList.Find to find the debug section by name in MaybeWriteDebugSection
Commit consists out of
  • M compiler/ogwasm.pas


* use simpler FMOV instead of UMOV
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


+ introduced TWasmCustomDebugSectionType
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasmbase.pas


* use WasmCustomSectionName to obtain the debug section names in MaybeWriteDebugSection and MaybeAddDebugSectionToSymbolTable
Commit consists out of
  • M compiler/ogwasm.pas


* spelling fixes
Commit consists out of
  • M compiler/dbgstabs.pas
  • M compiler/jvm/njvmcal.pas
  • M compiler/ncgld.pas
  • M compiler/pdecobj.pas
  • M compiler/pdecsub.pas
  • M compiler/pexpr.pas
  • M compiler/x86_64/hlcgcpu.pas


+ handle LOC_FLAGS in thlcgobj.location_force_mem, resolves gitlab 0039292
Commit consists out of
  • M compiler/hlcgobj.pas
  • A tests/webtbs/tw39292.pp


* fix gitlab 0039860: even if the block type is not correct for the specialization of a generic routine continue to specialize it to not trigger e.g. an internal error
+ added tests
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/webtbf/tw39860a.pp
  • A tests/webtbf/tw39860b.pp


* fix typo in comment
Commit consists out of
  • M compiler/pexpr.pas


* extract generating the specialization from a specialize node into a separate function
Commit consists out of
  • M compiler/pexpr.pas


* try to specialize a specialize node if it's followed by a < in a non-code section so that we might get better error messages
Commit consists out of
  • M compiler/pexpr.pas


* the clause for converting the captured symbols of a nested function must not be entered by an anonymous function
Commit consists out of
  • M compiler/procdefutil.pas


* fix gitlab 0039858: correctly keep track of symbols that need to be captured into the capturer
+ added test
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/webtbs/tw39858.pp


* Fixed internal error number clash (2021102610)
Commit consists out of
  • M compiler/x86/aoptx86.pas


Mark .noinit section with nobits flag.
Commit consists out of
  • M compiler/aasmtai.pas


* x86: New SHR-based optimisations
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* improved FstpFld2 optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New "shr %cl; shr x" swap optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ some debug messages added
* cosmetics
Commit consists out of
  • M compiler/x86/aoptx86.pas


do not publish enums with jumps
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecvar.pas
  • M compiler/symdef.pas
  • M compiler/symtype.pas
  • A tests/webtbf/tw39866.pp
  • A tests/webtbs/tw39866.pp


do not publish enums with jumps - keep error on static properties
Commit consists out of
  • M compiler/pdecvar.pas


* x86: Fixed bug where the magic number of an integer division wasn't fully sign-extended, causing incorrect logic within the compiler.
Commit consists out of
  • M compiler/cgutils.pas


* Converted assertion into an internal error
Commit consists out of
  • M compiler/cgutils.pas


* x86: New MovShr/Sar2Movx optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* patch by Rika: This speeds up DefaultReplacements by a lot (order of magnitude or so), resolves gitlab 0039722
Commit consists out of
  • M compiler/globals.pas


* x86: Improved unsigned integer division for when BMI2 is available.
Commit consists out of
  • M compiler/x86/nx86mat.pas


Revert " * patch by Rika: This speeds up DefaultReplacements by a lot (order of magnitude or so), resolves gitlab 0039722"

This reverts commit a2d7503f714ee8ff856efd8d17548fbab928f0ec.

Reason: breaks replacements in config file parsing.
Commit consists out of
  • M compiler/globals.pas


* apply default replacements also to defines set by -d:
- -d with $ is not possible so this should not break any existing compiler call
- this fixes also the strange error message "Error: malformed parameter: -dlinux"
when e.g. -d$FPCOS is passed as the default replacements are applied to the
error message
Commit consists out of
  • M compiler/options.pas


* x86: 64-bit integer division reciprocal algorithm uses IMUL
with an immediate for the modulus version where possible
Commit consists out of
  • M compiler/x86/nx86mat.pas


* handle also simulated flags in tmipselnotnode.second_boolean, resolves gitlab 0039877
Commit consists out of
  • M compiler/mips/ncpumat.pas
  • A tests/webtbs/tw39877.pp


m68k: use CPU capabilities at places instead of hardwiring cpu_coldfire
Commit consists out of
  • M compiler/m68k/cgcpu.pas


m68k: disable an A_MOVE in the spilling code in an effort to finally try to unbreak paszlib
Commit consists out of
  • M compiler/m68k/rgcpu.pas


m68k: add a CPU capability to signal the CPU has no 48 bit encodiing limits
Commit consists out of
  • M compiler/m68k/cpuinfo.pas


* fix gitlab 0039876: correctly Read(Str) enum types which have a size smaller than 4 Byte
+ added tests
Commit consists out of
  • M compiler/ninl.pas
  • M rtl/inc/compproc.inc
  • M rtl/inc/text.inc
  • A tests/webtbs/tw39876a.pp
  • A tests/webtbs/tw39876b.pp


* fix gitlab 0039857: don't trash symbols marked as vo_is_internal
+ added test
Commit consists out of
  • M compiler/ngenutil.pas
  • A tests/webtbs/tw39857.pp


* fix gitlab 0039875: when a WideString constant is used to initialize a PChar the constant needs to be converted to the current code page
+ added test
Commit consists out of
  • M compiler/ngtcon.pas
  • A tests/webtbs/tw39875.pp


* improves node complexity calculations
Commit consists out of
  • M compiler/nutils.pas


powerpc-morphos: enable 'section' keyword support, and force the startup code to be in the .text section, to fix linking external objects with unnamed sections on this platform
Commit consists out of
  • M compiler/systems.pas
  • M rtl/morphos/si_prc.pp


* don't switch a+/-/sqr(b) into an fma statement if b is too complex
Commit consists out of
  • M compiler/nadd.pas


* x86: EDX is now deallocated before MULX instructions in the "magic div" algorithm so it can be used as the destination
Commit consists out of
  • M compiler/x86/nx86mat.pas


* correctly convert a single WideChar to a PChar constant with the correct code page
+ added test
Commit consists out of
  • M compiler/ngtcon.pas
  • A tests/tbs/tb0696.pp


+ MovzMovz2Movz optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


m68k: fixed the capabilities flags inverted logic issues committed in 7d23c2e9
Commit consists out of
  • M compiler/m68k/cgcpu.pas


+ AArchz64: TCpuAsmOptimizer.OptPass1SXTW
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* cosmetics
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* fix for TCpuAsmOptimizer.OptPass1SXTW
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* refactor TCpuAsmOptimizer.OptPass1SXTW
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ Aarch64: SxtwOp2Op optimization
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* small refactoring
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* refactoring
* cosmetics
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* factor out GetNextInstructionUsingReg calls in TARMAsmOptimizer.OptPass1*XT*
Commit consists out of
  • M compiler/armgen/aoptarm.pas


+ ARM/Aarch64: *xt*Op2Op optimizations
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* building of arm compiler fixed
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* AArch64: extended SxtwMov2Data to CMP and CMN
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* factor out TARMAsmOptimizer.USxtOp2Op
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* more use of USxtOp2Op
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* use the bts instruction on x86 if possible, the reg,reg variant is better than a mov/shl/or sequence
Commit consists out of
  • M compiler/x86/nx86add.pas


* apply OptPass1Data to neg as well
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* x86: Added BEXTR and BZHI to special spilling rules since they follow the same format as SHRX etc.
Commit consists out of
  • M compiler/x86/rgx86.pas


* x86: Added SARX to BMI2 code generator
Commit consists out of
  • M compiler/x86/cgx86.pas


* x86: Made a check for BMI2 more explicit in the integer division code generator
Commit consists out of
  • M compiler/x86/nx86mat.pas


vector support: check supported type during parsing already

Avoids internalerrors at the code generation stage when using an unsupported
type
Commit consists out of
  • M compiler/nadd.pas


vector support: use vector result types

Set the result of a vector add node to a vector type.

Ensure that that these vector types are still asignment-compatible with
regular array types (may want to change this when we expose vector types),
and don't remove type conversions from vector types to array types (so the
code generator pass can still rely on the resultdef being a vector type)
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/defutil.pas
  • M compiler/nadd.pas
  • M compiler/ncnv.pas


High level codegen: set MM register type for vectors
Commit consists out of
  • M compiler/hlcgobj.pas


LLVM: support for -Sv (manual vector usage)

Override register type for vectors to "integer registers" because we don't
use mmregister on LLVM (they're all virtual, so it doesn't matter)
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/nllvmadd.pas


Darwin version comparisons: factored out into object

Use numeric instead of string comparisons
Commit consists out of
  • M compiler/cutils.pas
  • M compiler/globals.pas
  • M compiler/llvm/nllvmutil.pas
  • M compiler/options.pas
  • M compiler/systems/t_darwin.pas
  • M compiler/triplet.pas


objc: use compile-time macOS version checks

Use "modern" APIs for calling inherited messages when targeting Mac OS X 10.6
or later
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/objcutil.pas


objc: stop generating coalesced sections

When targeting >= Mac OS X 10.6, don't generate coalesced sections anymore
because they are deprecated. Resolves gitlab 0039818
Commit consists out of
  • M compiler/objcgutl.pas


Overload selection: call procvars if result is compatible with parameter

Previously we only autmatically called procvars without parameters in TP/Delphi
modes if their result type was equal to the parameter type to which they were
passed. Resolves gitlab 0039748.
Commit consists out of
  • M compiler/htypechk.pas
  • A tests/webtbs/tw39748.pp
  • A tests/webtbs/tw39748a.pp


symcreat: support for scanner/parser escape sequences

Support escape sequences when parsing internally generated code. Used for now
to force interpreting certain identifiers as unit/namespace identifiers.
Commit consists out of
  • M compiler/finput.pas
  • M compiler/scanner.pas
  • M compiler/symcreat.pas
  • M compiler/symtable.pas


* cleanup
Commit consists out of
  • M compiler/nutils.pas


* allocate registers correctly for method pointers on 16 bit address cpus, resolves gitlab 0039603
Commit consists out of
  • M compiler/ncgld.pas


* i8086 compiler fixed after 9848349610219cd0d2dadc67b112fb09a8317e91
Commit consists out of
  • M compiler/ncgld.pas


* hopefully final fix after 9848349610219cd0d2dadc67b112fb09a8317e91
Commit consists out of
  • M compiler/ncgld.pas


* fix gitlab 0039903: correctly parse anonymous function references in records (and classes/objects)
+ added test
Commit consists out of
  • M compiler/pdecvar.pas
  • A tests/webtbs/tw39903.pp


* check whether the hdef is still a procvardef before accessing it as such
Commit consists out of
  • M compiler/pdecvar.pas


* handle_calling_convention is only needed for a function reference used in a record/class/object when it's an anonymous one
Commit consists out of
  • M compiler/pdecvar.pas


* fix gitlab 0039902: correctly handle assignment of procvars to properties with a field write accessor
+ added adjusted/extended test
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/webtbs/tw39902a.pp


* fix gitlab 0039902: in case of mode ObjFPC function pointers passed to parameters need to be checked for the correct procdef as well
+ added adjusted/extended test
Commit consists out of
  • M compiler/htypechk.pas
  • A tests/webtbs/tw39902b.pp


Missing file from b26703feaa9
Commit consists out of
  • A compiler/versioncmp.pas


* patch by Rika: Use linear file list in FInput.TInputFileManager instead of linked, resolves gitlab 0039880
Commit consists out of
  • M compiler/browcol.pas
  • M compiler/finput.pas
  • M compiler/fppu.pas
  • A tests/webtbs/iw39880.inc
  • A tests/webtbs/tw39880.pp
  • A tests/webtbs/uw39880.pp


* mark units compiled with cs_compilesystem with a corresponding flag
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/globtype.pas


* fix gitlab 0039907: only load system class types from units that are marked as a System unit
+ added test
Commit consists out of
  • M compiler/symdef.pas
  • A tests/webtbs/tw39907.pp
  • A tests/webtbs/uw39907.pp


x86: Deeper insight in OptPass2ADD and OptPass2SUB to produce more efficient code
Commit consists out of
  • M compiler/x86/aoptx86.pas


* end of an include file works like a new line with regard to single line (//) comments, resolves gitlab 0039912
Commit consists out of
  • M compiler/scanner.pas
  • A tests/webtbs/ib39912.inc
  • A tests/webtbs/tb39912.pp


* fix gitlab 0039898: when a loadnode is captured ensure that its nf_load_procvar flag is applied to the subscript node as well
+ added tests
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/test/tanonfunc61.pp
  • A tests/test/tanonfunc62.pp
  • A tests/test/tanonfunc63.pp
  • A tests/test/tanonfunc64.pp
  • A tests/test/tanonfunc65.pp
  • A tests/test/tanonfunc66.pp
  • A tests/test/tanonfunc67.pp
  • A tests/test/tanonfunc68.pp
  • A tests/test/tanonfunc69.pp
  • A tests/test/tanonfunc70.pp
  • A tests/test/tfuncref43.pp
  • A tests/test/tfuncref44.pp
  • A tests/test/tfuncref45.pp
  • A tests/test/tfuncref46.pp
  • A tests/test/tfuncref47.pp
  • A tests/test/tfuncref48.pp
  • A tests/test/tfuncref49.pp


Change is_macro to return true for A_JAL if in pic mode
Commit consists out of
  • M compiler/mips/aasmcpu.pas


Add name of unit for return type if not from current module in tprocdef.customprocname
Commit consists out of
  • M compiler/symdef.pas


Fix loading of ObjC protocol type after c8fee69345

That type lives in the objcbase unit, not in the system unit

Resolves gitlab 0039914
Commit consists out of
  • M compiler/symdef.pas


* cleanup captured symbols when moving them from the nested function to the new method
Commit consists out of
  • M compiler/procdefutil.pas


* when generating the call to the extracted function reference inside the nested routine we need to use the parameters of the nested function and not those of the newly created procdef (fixes some of the test case failures with -O2)
Commit consists out of
  • M compiler/procdefutil.pas


* improved fix for gitlab 0039912
Commit consists out of
  • M compiler/scanner.pas


* propertly check equality with the for-counter when propagating constants, resolves gitlab 0039915
Commit consists out of
  • M compiler/optconstprop.pas
  • A tests/webtbs/tw39915.pp


* apply ShlOp2Shl optimization also to floating point operations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* look ahead for ShlOp2Op optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* use append_object_struct also for dwarf-3 when creating dwarf debug info for objects, resolves gitlab 0039920
Commit consists out of
  • M compiler/dbgdwarf.pas


* small correction to linker script
Commit consists out of
  • M compiler/systems/t_embed.pas


* improve dwarf cfi on avr
Commit consists out of
  • M compiler/cfidwarf.pas
  • M compiler/dwarfbase.pas


* cfi for avr needs 32 bit pc begin and range
Commit consists out of
  • M compiler/cfidwarf.pas


* comment for git fixed
Commit consists out of
  • M compiler/Makefile.fpc


* nicer error message
Commit consists out of
  • M compiler/htypechk.pas


* set the maximum alignment values for constants and variables to 64 on aarch64-linux
Commit consists out of
  • M compiler/systems/i_linux.pas


* fix for commit a91e5478, mixed localalignmax and constalignmax
Commit consists out of
  • M compiler/systems/i_linux.pas


* handle +[] (and swapped) correctly, resolves gitlab 0039919
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw39919.pp


* patch by Rika: Optimize some compiler/CFileUtl.pas functions for returning unchanged strings, resolves gitlab 0039882
Commit consists out of
  • M compiler/cfileutl.pas
  • M compiler/cutils.pas


* $P/$OpenStrings is supposed to be a local switch, so change that accordingly
+ added tests
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/pdecsub.pas
  • M compiler/switches.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A tests/tbf/tb0295.pp
  • A tests/tbs/tb0697.pp


* change PPU version as the change regarding $P/$OpenStrings affects the token buffers of generics (which contains the current settings)
Commit consists out of
  • M compiler/ppu.pas


* enable OpenStrings by default in mode Delphi
+ added test
Commit consists out of
  • M compiler/scanner.pas
  • A tests/tbs/tb0698.pp


cs_opt_consts: disable when non-local gotos are active

This optimisation can insert code after the call to fpc_setjmp, resulting in
it not getting executed after a longjmp. Fixes tmacnonlocalgoto on AArch64
with -O2 or higher.
Commit consists out of
  • M compiler/psub.pas


* fix copy/paste typo in comments
Commit consists out of
  • M compiler/nadd.pas


* optimize shortstring concatenations if they're on the right side of an assignment to directly use the left side instead of a temporary
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/nopt.pas


* use AllocRegbetween in TARMAsmOptimizer.RemoveSuperfluousMove, resolves gitlab 0039921
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* TDebugInfoDwarf3.appenddef_object should not write an extra finish_entry for objects and C++ classes
Commit consists out of
  • M compiler/dbgdwarf.pas


* the right side of a concatenation of multiple ShortString values can directly pass any String[x] to the utility routine, because only the Length() is used, not High() and nothing is modified (also typed pointers must not be used for them); this allows for better code generation for strings with a maximum length < 255
Commit consists out of
  • M compiler/nopt.pas


cgbase: make first parameter of supregset_reset "out"
Commit consists out of
  • M compiler/cgbase.pas


rgobj: reduce compilation time of programs with long movelists

Reduces compilation time of webtbs/tw2242 for AArch64 with -O2 from
15 minutes to 10 seconds on my system.

from 15 minutes to 10 seconds
Commit consists out of
  • M compiler/rgobj.pas


Darwin: don't try to print size statistics if the binary wasn't linked
Commit consists out of
  • M compiler/systems/t_darwin.pas


* x86: Bug fix where improved AddMov2Mov optimisation didn't
check to see if the other register was modified in between
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Improvement to bug fix so an optimisation can still be made even if the other register is in use
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Bug fix where "mov $0,%reg" was inserted on the wrong side of a SETcc instruction
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Fixed mistake in var9 optimisation under -Os; "andl $255,%eax" is not
smaller than "movzbl %al,%eax" because the immediate is sign-extended,
not zero-extended, so $255 will be stored as a 32-bit value.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixes tcg64frv.a_op64_const_reg_reg based on the analysis of Bart B, resolves gitlab 0039953
Commit consists out of
  • M compiler/riscv32/cgcpu.pas


* x86: ConvertJumpToRET now sets the condition to C_None
Commit consists out of
  • M compiler/x86/aoptx86.pas


* if a pointer_to_array type conversion is applied to a variable, it is not written, resolves gitlab 0039957
Commit consists out of
  • M compiler/ncnv.pas
  • A tests/webtbs/tw39957.pp


riscv32: Fix 64bit comparisons

- Code taken from MIPS backend
- Removed some unused code generated for RV32 64bit integer ops
Commit consists out of
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv32/nrv32add.pas


* properly reset nf_write/nf_modify flags for min/max inline nodes, needed by dead store optimization, resolves gitlab 0039958
* factored out nutils.node_reset_pass1_write
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/ninl.pas
  • M compiler/nutils.pas
  • A tests/webtbs/tw39958.pp


* make the hidden high parameter for short strings a byte for 8 bit CPUs
Commit consists out of
  • M compiler/pparautl.pas


Fix incorrect dwarf entry count. Issue gitlab 0039928 introduced in 1b6982107f1ac4b4111e37be0a3649d155a2bc1e
Commit consists out of
  • M compiler/dbgdwarf.pas


* x86: The code generator will now attempt manipulate "x and (not y)" (where x and y are ordinals) to use ANDN.
Commit consists out of
  • M compiler/x86/nx86add.pas


- remove unused consume_generic_interface; it has been superseded by handle_generic_interface in 17a0ac7fc03
Commit consists out of
  • M compiler/pdecsub.pas


* x86: Extended FuncMov2Func optimisation to handle 1, 3 and 4-operand functions
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ print optinfo pointer if set
Commit consists out of
  • M compiler/node.pas


* check if optinfo is assigned before using it, resolves gitlab 0039913
Commit consists out of
  • M compiler/optdfa.pas
  • A tests/webtbs/tw39913.pp


* x86: FuncMov2Func moved to separate method and also called by OptPass2MOV.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Changed BMI2 check to BMI1 for ordinal ANDN optimisation
Commit consists out of
  • M compiler/x86/nx86add.pas


+ apply OpTest/Or2Op optimization to ANDN as well
+ DebugMsg for OpTest/Or2Op added
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: PostPeepholeOptTestOr has different debug messages for each found instruction, and also tests for BEXTR and BZHI.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix life information propagation for while loops, resolves gitlab 0039971
* warnings/errors fixed which are caused by the new life information propagation
+ test
Commit consists out of
  • M compiler/dbgdwarf.pas
  • M compiler/ngtcon.pas
  • M compiler/optdfa.pas
  • M compiler/pgenutil.pas
  • M compiler/systems/t_bsd.pas
  • M compiler/systems/t_linux.pas
  • M compiler/systems/t_win.pas
  • M tests/test/opt/tdfa2.pp
  • A tests/webtbs/tw39971.pp


* more warnings after last commit fixed
Commit consists out of
  • M compiler/arm/cgcpu.pas
  • M compiler/systems/t_gba.pas
  • M compiler/systems/t_nds.pas


Fix internalerror generated with riscv32 compiler.

Fix
Compiling ./fcl-passrc/src/pscanner.pp
pscanner.pp(2512,40) Fatal: Internal error 2006010801
error generated for riscv32-linux target after commit #c83e6c34
by correcting expectloc for riscv32 for 64-bit comparisons.
Add a small test.
Commit consists out of
  • M compiler/riscv/nrvadd.pas
  • A tests/test/cg/tvec64cmp.pp


* x86: Updated Mov0LblCmp0Jne optimisation to work when alignment hints appear before the label
Commit consists out of
  • M compiler/x86/aoptx86.pas


* more debug messages
* better exit codes for test
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M tests/webtbs/tw4768.pp


* x86: FuncMov2Func now has code to remove "mov %reg,%reg" (since it doesn't get removed in Pass 2).
Commit consists out of
  • M compiler/x86/aoptx86.pas


* generate the generic name for a specialization of a generic interface alias in the same way as for specializations in general
Commit consists out of
  • M compiler/pdecsub.pas


* fix gitlab 0029859: ensure that it's correctly passed down into generate_specialization whether a unit name was provided for the specialization and if so search the generic only in that unit
+ added tests
Commit consists out of
  • M compiler/nbas.pas
  • M compiler/pdecsub.pas
  • M compiler/pexpr.pas
  • M compiler/pgenutil.pas
  • M compiler/ptype.pas
  • A tests/test/tgeneric108.pp
  • A tests/test/tgeneric109.pp
  • A tests/test/tgeneric110.pp
  • A tests/test/tgeneric111.pp
  • A tests/test/ugeneric108a.pp
  • A tests/test/ugeneric108b.pp
  • A tests/webtbs/tw29859.pp
  • A tests/webtbs/uw29859a.pp
  • A tests/webtbs/uw29859b.pp


* ensure that hmodule is initialized correctly
Commit consists out of
  • M compiler/pgenutil.pas


RTTI: don't generate full RTTI for internal types

These are types created by the code generator for internal purposes, and hence
are never queried by user code
Commit consists out of
  • M compiler/ncgrtti.pas


AArch64: X18 is not a volatile register

It may be unused on some platforms, but in general it's reserved for OS library
usage (usually related to TLS)
Commit consists out of
  • M compiler/aarch64/cpubase.pas


Darwin: fix mac0S 11.0 version string

Prevents LLVM warnings
Commit consists out of
  • M compiler/options.pas


systems_iphonesym -> systems_iphonesim

It's a simulator, not a symbolator
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems.pas


Darwin: really fix -Xg for DWARF4
Commit consists out of
  • M compiler/options.pas
  • M compiler/systems/t_darwin.pas


Avoid string truncation
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


+ MovSubCmp2MovSub optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


Linux: don't discard CFI when using it for exceptions
Commit consists out of
  • M compiler/systems/t_linux.pas


Allow cycle to finish successfully with -dEXTDEBUG without ALLOW_WARNINGS=1
Commit consists out of
  • M compiler/pass_2.pas


* fix FindUnitSymtable for exception symtables, resolves gitlab 0024801 and gitlab 0039974
* more consistent naming of exceptsymtable enumeration symbol
Commit consists out of
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/symtable.pas
  • M compiler/symtype.pas
  • A tests/webtbs/tw24801.pp
  • A tests/webtbs/uw24801.pp


* stop generation of typed array constants if the size does not match, resolves gitlab 0039980
Commit consists out of
  • M compiler/ngtcon.pas
  • A tests/webtbf/tw39980.pp


* x86: Added new emit_reg_ref_reg routine and related methods to support BMI2 instructions
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/cga.pas


* x86: The code generator will now attempt to manipulate "x and ((1 shl y) - 1)" to use BZHI
Commit consists out of
  • M compiler/x86/nx86add.pas


* x86: "x and ((1 shl y) - 1)" to BZHI adapted for in_and_assign_x_y
Commit consists out of
  • M compiler/x86/nx86inl.pas


* dead store elimnation should not remove statements which can cause an exception
Commit consists out of
  • M compiler/optdeadstore.pas


* run dead store elimination multiple times if needed
Commit consists out of
  • M compiler/optdeadstore.pas
  • M compiler/psub.pas


* changed of do_optdeadstoreelim must be passed by reference as noted by Alexey Torgashin
Commit consists out of
  • M compiler/optdeadstore.pas


dwarf-eh: don't emit header if there's no data to emit
Commit consists out of
  • M compiler/cfidwarf.pas


Add dwarf cfa support
Commit consists out of
  • M compiler/aasmdata.pas
  • M compiler/cfidwarf.pas


Fix the ~ is NOR rather than NOT
Commit consists out of
  • M compiler/raatt.pas


Fix the edge of first_imaginary in move op
Commit consists out of
  • M compiler/rgobj.pas


add has_double_field
Commit consists out of
  • M compiler/symtable.pas


Add loongarch64 architecture support to compiler
Commit consists out of
  • M compiler/Makefile.fpc
  • M compiler/aggas.pas
  • M compiler/aoptobj.pas
  • M compiler/cfidwarf.pas
  • M compiler/cgbase.pas
  • M compiler/entfile.pas
  • M compiler/fpcdefs.inc
  • M compiler/globals.pas
  • A compiler/loongarch64/aasmcpu.pas
  • A compiler/loongarch64/agcpugas.pas
  • A compiler/loongarch64/aoptcpu.pas
  • A compiler/loongarch64/aoptcpub.pas
  • A compiler/loongarch64/aoptcpuc.pas
  • A compiler/loongarch64/aoptcpud.pas
  • A compiler/loongarch64/cgcpu.pas
  • A compiler/loongarch64/cpubase.pas
  • A compiler/loongarch64/cpuinfo.pas
  • A compiler/loongarch64/cpunode.pas
  • A compiler/loongarch64/cpupara.pas
  • A compiler/loongarch64/cpupi.pas
  • A compiler/loongarch64/cputarg.pas
  • A compiler/loongarch64/hlcgcpu.pas
  • A compiler/loongarch64/itcpugas.pas
  • A compiler/loongarch64/loongarch64att.inc
  • A compiler/loongarch64/loongarch64nop.inc
  • A compiler/loongarch64/loongarch64op.inc
  • A compiler/loongarch64/loongarchins.dat
  • A compiler/loongarch64/loongarchreg.dat
  • A compiler/loongarch64/ncpuadd.pas
  • A compiler/loongarch64/ncpucnv.pas
  • A compiler/loongarch64/ncpuinl.pas
  • A compiler/loongarch64/ncpumat.pas
  • A compiler/loongarch64/ncpuset.pas
  • A compiler/loongarch64/racpu.pas
  • A compiler/loongarch64/racpugas.pas
  • A compiler/loongarch64/rgcpu.pas
  • A compiler/loongarch64/rloongarch64abi.inc
  • A compiler/loongarch64/rloongarch64con.inc
  • A compiler/loongarch64/rloongarch64dwa.inc
  • A compiler/loongarch64/rloongarch64nor.inc
  • A compiler/loongarch64/rloongarch64num.inc
  • A compiler/loongarch64/rloongarch64rni.inc
  • A compiler/loongarch64/rloongarch64sri.inc
  • A compiler/loongarch64/rloongarch64sta.inc
  • A compiler/loongarch64/rloongarch64std.inc
  • A compiler/loongarch64/rloongarch64sup.inc
  • A compiler/loongarch64/symcpu.pas
  • A compiler/loongarch64/tripletcpu.pas
  • M compiler/ncgcnv.pas
  • M compiler/options.pas
  • M compiler/pp.pas
  • M compiler/psystem.pas
  • M compiler/raatt.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/tgobj.pas
  • M compiler/utils/fpc.pp
  • A compiler/utils/mkloongarch64ins.pp
  • A compiler/utils/mkloongarch64reg.pp
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/version.pas


Add loongarch64 linux support to compiler
Commit consists out of
  • M compiler/loongarch64/agcpugas.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_linux.pas
  • M compiler/systems/t_linux.pas
  • M compiler/utils/ppuutils/ppudump.pp


add loongarch64 linux rtl support
Commit consists out of
  • M compiler/systems.pas
  • M rtl/linux/Makefile.fpc
  • A rtl/linux/loongarch64/bsyscall.inc
  • A rtl/linux/loongarch64/si_c.inc
  • A rtl/linux/loongarch64/si_dll.inc
  • A rtl/linux/loongarch64/si_g.inc
  • A rtl/linux/loongarch64/si_prc.inc
  • A rtl/linux/loongarch64/sighnd.inc
  • A rtl/linux/loongarch64/sighndh.inc
  • A rtl/linux/loongarch64/stat.inc
  • A rtl/linux/loongarch64/syscall.inc
  • A rtl/linux/loongarch64/syscallh.inc
  • A rtl/linux/loongarch64/sysnr.inc
  • M rtl/linux/osdefs.inc
  • M rtl/linux/ostypes.inc
  • M rtl/linux/system.pp
  • M rtl/linux/termios.inc
  • M rtl/unix/cthreads.pp


* generate correct dfa for subroutines declared as safecall
Commit consists out of
  • M compiler/nutils.pas
  • M compiler/optdfa.pas


llvmdbg: fixes for method debug info

Mark "self" parameter as artificial

Add methods to the scope of the class/record rather than to the file scope

Add the vmt field, strip the "($)hidden" prefix from its name, and emit its
real type
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


* check if a target really supports safecall before calling load_safecallresult_node
Commit consists out of
  • M compiler/optdfa.pas


* ensure that newly created tloadparentfpnodes have a valid resultdef as they might be created in situation where the loadnode itself is no longer typechecked
Commit consists out of
  • M compiler/ncnv.pas
  • M compiler/nld.pas


* fix gitlab 0039981: retrieve the symbol that returns the desired procdef/procvardef not maybe the Self or something else as we need that symbol to differentiate the procdefs
+ added test
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/webtbs/tw39981.pp


+ mark the def for a capturer class with a corresponding object option
Commit consists out of
  • M compiler/procdefutil.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


* ensure that the correct overload is picked for function reference parameters
+ added tests
Commit consists out of
  • M compiler/htypechk.pas
  • A tests/test/tfuncref50.pp
  • A tests/test/tfuncref51.pp


* fix gitlab 0039978: ensure that Self is captured when a method of the current class is captured into a function reference
+ added test
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/webtbs/tw39978.pp


* fix gitlab 0039977: allow a capturer to access any method independant of visibility as the visibility checks are supposed to have been done before the captured symbol was converted
+ added test
Commit consists out of
  • M compiler/symtable.pas
  • A tests/webtbs/tw39977.pp


* only i386 uses same special fastcall calling convention
Commit consists out of
  • M compiler/dbgdwarf.pas


* x86: New TEST->BT peephole optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New OR->BTS peephole optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New AND(NOT X)->BTR peephole optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


llvmdbg: remove unnecessary typedef intermediates
Commit consists out of
  • M compiler/llvm/aasmllvmmetadata.pas
  • M compiler/llvm/dbgllvm.pas


* fix crash in debug output in TX86AsmOptimizer.DoArithCombineOpt for DEC/INC $reg
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: CMOV optimisations now check optimizecputype rather than cputype
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: LeaLea2Lea now handles cases where the second LEA instruction
has a second register in the reference.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: The LEA/LEA optimisations can now work with a different
destination register and the intermediate register still in
use.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New CPU feature flags in cpuinfo units
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


x86: MovMovMov2XChg optimisation now makes use of the CPUX86_HAS_FAST_XCHG flag
Commit consists out of
  • M compiler/x86/aoptx86.pas


Avoidd to use hp1 after calling RemoveInstruction, as the VMT is invalidated
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ cpu switch for zen
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/cpuinfo.pas


* x86: Converted BTR and BTS tests to use a new utility function to check if BTx instructions are acceptable to use
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New XOR->BTC peephole optimisation
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas


* x86: Zen processors now marked with CPUX86_HAS_FAST_BT_MEM flag
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


* x86: Flags that relate to optimization hints rather than features have been moved to a separate set
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/cpuinfo.pas


* calculate life info for if nodes correctly if the then branch is empty, resolves gitlab 0039992
Commit consists out of
  • M compiler/optdfa.pas
  • A tests/webtbs/tw39992.pp


* x86: TEST and CMP optimisations now perform jump optimisations prematurely to remove unnecessary TEST/CMPs
Commit consists out of
  • M compiler/x86/aoptx86.pas


* propagate life info properly
Commit consists out of
  • M compiler/optdfa.pas


* x86: Extension to Cmp1Jl2Cmp0Jle to catch inverted variant
Commit consists out of
  • M compiler/x86/aoptx86.pas


* CollapseZeroDistJump no longer updates registers or strips dead labels, instead just setting p to p.Next
Commit consists out of
  • M compiler/aoptobj.pas


+ FstpFldFstp2Fstp optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* further look ahead for temp. deallocation for FstpFldFstp2Fstp and FstpFld2
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/aoptx86.pas


* cosmetics
Commit consists out of
  • M compiler/nadd.pas


+ ShlShl2Shl optimization
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86-64: movl/movq -> movl/movl zero-extension optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86-64: Extended the movl/movq optimisation to cover more distance
Commit consists out of
  • M compiler/x86/aoptx86.pas


* convert n-n mod const into n div const*const, resolves gitlab 0039615
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw39615a.pp
  • A tests/webtbs/tw39615b.pp


* x86: Addition of AMD CPUs: Bobcat, Jaguar, Piledriver, Excavator, Zen2 and Zen3 (and supporting flags)
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/cpuinfo.pas


* x86: Added FMA as an FPU target distinct from AVX and AVX2 (the latter of which has a new FPUX86_HAS_AVX2 flag)
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


Use correct class typecast for commit ba4cee279b
Commit consists out of
  • M compiler/nadd.pas


Fix compilation failure of RTL with -Co option for x86_64-linux target
Commit consists out of
  • M compiler/nadd.pas


* New 'do not execute' flag for notes and respective internal error triggering
Commit consists out of
  • M compiler/node.pas
  • M compiler/pass_1.pas
  • M compiler/pass_2.pas
  • M compiler/ppu.pas


* x86: 'and not' optimisation now sets the NOT node to 'do not execute' as it is skipped over
Commit consists out of
  • M compiler/x86/nx86add.pas


* x86: BZHI optimisation now sets the subtract and shift nodes to 'do not execute' as they are skipped over.
Commit consists out of
  • M compiler/x86/nx86add.pas


* create muln with create instead of create_internal when converting "n - n mod const)" so pass1 works properly, resolves gitlab 0040004
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw40004.pp


* TAddNode.Simplify now uses pruning methods
Commit consists out of
  • M compiler/nadd.pas


* New node pruning methods
Commit consists out of
  • M compiler/node.pas


* More complex uses of the pruning methods in TAddNode.Simplify
Commit consists out of
  • M compiler/nadd.pas


* cleanup
Commit consists out of
  • M compiler/nadd.pas


* x86: Fixed movzwl/movzbl bug in OptPass2Movx (resolves i40003)
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ Debug message
Commit consists out of
  • M compiler/x86/aoptx86.pas


* use bzhi only (if at all) for in_and_assign_x_y and not other in_*_x_y operations, resolves gitlab 0040016
Commit consists out of
  • M compiler/x86/nx86inl.pas
  • A tests/webtbs/tw40016.pp


LLVM: fix variant records when alignment of first part is not the highest

Resolves gitlab 0040015
Commit consists out of
  • M compiler/symtable.pas


* In TAddNode.Simplify, commutative operations now ensure integer constant operands go on the right for simplicity
Commit consists out of
  • M compiler/nadd.pas


* Dead code in TAddNode.Simplify has been stripped
Commit consists out of
  • M compiler/nadd.pas


* as long as the type passed into a TypeInfo() is not an undefined or error def the resulting value will always be constant at compile time, so it can be compared to another then no matter if typenode or not
+ added tests
Commit consists out of
  • M compiler/nadd.pas
  • A tests/tbs/tb0699.pp
  • A tests/tbs/tb0700.pp
  • A tests/tbs/tb0701.pp
  • A tests/tbs/tb0702.pp


Set current_filepos in Internal assembler class also if DEBUG macro is set
Commit consists out of
  • M compiler/assemble.pas


+ more change information fixed
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


AArch64 cgcpu: add missing brackets around and/or expression
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas


* New is_cyclic function to detect if def references itself - fixes gitlab 0040010
Commit consists out of
  • M compiler/defcmp.pas
  • M compiler/defutil.pas


* continued to fix change information
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* Refactor of is_cyclic to use a linked list on the stack instead of a dynamic array
Commit consists out of
  • M compiler/defutil.pas


LLVM: us paraloc def instead of para def for byval

We also use the paraloc instead of the para to write the def
Commit consists out of
  • M compiler/llvm/llvmdef.pas


LLVM: add Xcode 14.0 support (-ClvXcode-14.0)
Commit consists out of
  • M compiler/llvm/llvminfo.pas


* another change information update
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


* Adjustment to TBLockNode.pass_1 to actually strip nothing nodes
Commit consists out of
  • M compiler/nbas.pas


Darwin/AArch64: adjust alignment info of custom-aligned paralocs

Resolves gitlab 0040019
Commit consists out of
  • M compiler/aarch64/cpupara.pas
  • A tests/webtbs/tw40019.pp


* change table updates
Commit consists out of
  • M compiler/i386/i386prop.inc
  • M compiler/i8086/i8086prop.inc
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664pro.inc


Do not set usesectionprogbits and usesectionflags to true for solaris assembler
Commit consists out of
  • M compiler/aggas.pas


* Fix testing of A_JCC and A_SETCC, add A_CMOVCC
* Add $PIC for i386 and x86_64 solaris assemblers
Commit consists out of
  • M compiler/x86/agx86att.pas


Refuse A_Jcc, A_SETcc, and A_CMOVcc without condition
Commit consists out of
  • M compiler/x86/rax86att.pas
  • M compiler/x86/rax86int.pas


* Implement -t and -x options
* Fix spurious warning of already specified -t
* If no subtarget file found, error out instead of hint/warn
* Globals needs subtarget for macro substitution
Commit consists out of
  • M compiler/globals.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


* New intrinsiccode field for TCallNode to track transmutation from TInlineNode
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/ppu.pas


* tinlinenode.handle_str now uses the new intrinsiccode field for TCallNode
Commit consists out of
  • M compiler/ninl.pas


* A call node's original parameter ordering can now be remembered, and a method introduced to access this
Commit consists out of
  • M compiler/ncal.pas


* TCallNode.simplify method introduced to convert Str with a constant into a direct string assignment
Commit consists out of
  • M compiler/ncal.pas


* get rid os some warnings
Commit consists out of
  • M compiler/utils/fpc.pp


* Delegate darwin ifdef out of program flow, towards const, for clarity
Commit consists out of
  • M compiler/utils/fpc.pp


* Define char as AnsiChar
Commit consists out of
  • M compiler/options.pas
  • M compiler/psystem.pas
  • M compiler/symdef.pas


* properly transform a+const1-const2 into a+const1+(-const2), resolves gitlab 0040041
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw40041.pp


* second part of gitlab 0040041 fixed
+ tests
Commit consists out of
  • M compiler/nadd.pas
  • M tests/webtbs/tw39785.pp
  • A tests/webtbs/tw40041b.pp
  • R100 tests/webtbs/tw40041.pp tw40041a.pp


* improve module local data accesses by avoiding a got read
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


m68k: updated instruction tables to match vasm release 1.9a
Commit consists out of
  • M compiler/m68k/m68kins.dat
  • M compiler/m68k/m68knop.inc
  • M compiler/m68k/m68ktab.inc
  • M compiler/utils/mk68kins.pp


m68k: add some initial CPU-specifc boilerplate for an internal ELF writer
Commit consists out of
  • A compiler/m68k/cpuelf.pas
  • M compiler/systems.inc


* Allow widechar sets, reduce to ansichar set
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ptype.pas
  • M rtl/inc/systemh.inc


* Do not insert widechar -> ansichar conversion node in const declaration
* Allow array constructor to contain widechars in mode unicodestring.
Commit consists out of
  • M compiler/ncnv.pas


* Do not insert a widestring <-> ansistring conversion node when checking for (un)equal empty string.
Commit consists out of
  • M compiler/nadd.pas


* fix gitlab 0040061: the Self of types that aren't implicit pointers (recods, TP-style objects, primitive types (for helpers)) needs to be stored as a Pointer in the Capturer so that modifications are correctly visible
+ added tests
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/test/tanonfunc71.pp
  • A tests/test/tanonfunc72.pp
  • A tests/webtbs/tw40061.pp


* fix gitlab 0040060: ensure that Self is not added for anonymous functions that are part of a static class method
+ added test
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/procdefutil.pas
  • A tests/webtbs/tw40060.pp


* a callnode for an anonymous function can have its procdefinition fixed, thus avoid the need to check for overloads
Commit consists out of
  • M compiler/pexpr.pas


* don't free the old, captured Self symbol as that does not belong to the anonymous function
Commit consists out of
  • M compiler/ncnv.pas


* when assigning an anonymous function to a method pointer move the function to the normal function level to avoid potential problems when accessing other variables
Commit consists out of
  • M compiler/ncnv.pas


* fix gitlab 0040062: ensure that Self is only added to anonymous functions when dealing with method pointers
+ added test
Commit consists out of
  • M compiler/ncnv.pas
  • M compiler/pparautl.pas
  • M compiler/symconst.pas
  • A tests/webtbs/tw40062.pp


* fix typo in comment
Commit consists out of
  • M compiler/symdef.pas


* do not throw an internal error on typed constants with wrong element count, resolves gitlab 0040066
Commit consists out of
  • M compiler/ngtcon.pas
  • A tests/webtbf/tw40066.pp


* ensure that all hidden parameter symbols are removed when adding an anonymous function to a capturer (they'll be added again later on)
Commit consists out of
  • M compiler/procdefutil.pas


* also skip high parameters when pc_normal_no_hidden is given to tprocdef.getcopyas
Commit consists out of
  • M compiler/symdef.pas


* fix gitlab 0040031: with support for inline specializations it no longer makes sense to make the parameter symtable of a procedure variable type readonly as there *are* defs that are added to it
+ add adjusted test
Commit consists out of
  • M compiler/ptype.pas
  • A tests/webtbs/tw40031.pp


- remove no longer required readonly functionality from tparasymtable
Commit consists out of
  • M compiler/symtable.pas


symcreat: add hidden high parameters in create_procdef_alias

No longer happens automatically for pc_bareproc procdef copies
Commit consists out of
  • M compiler/symcreat.pas


llvm:a fix opaque ptr IR for Objective-C protocol

Also for interfacecom functions and properties. Fixes test/tobjc9 and
test/tobjc9b with LLVM 15.0+
Commit consists out of
  • M compiler/llvm/llvmdef.pas


* improved consistency as suggested in bug gitlab 0040008
Commit consists out of
  • M compiler/msg/errore.msg


* messages regenerated after fixing gitlab 0040008
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* avoid to generate bt [mem], reg, resolves gitlab 0040039
Commit consists out of
  • M compiler/x86/nx86set.pas


thlcgobj.g_undefined_ok: new method

Specify that a register's contents may be undefined because of previous
operations (e.g. shifting by more bits than the register has, whose result
depends on the target architecture), but that the code generator will
later on ensure that if this is the case, that result will be overwritten/
masked.
Commit consists out of
  • M compiler/hlcgobj.pas


LLVM: override thlcgobj.g_undefined_ok

Uses the freeze instruction available in LLVM 10.0+. If we don't freeze undef/
poison values before using them in a calculation (even if that calculation is
something like "and 0", which masks the result completely), the result will
still be undef/poison and will keep propagating.
Commit consists out of
  • M compiler/llvm/aasmllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/itllvm.pas
  • M compiler/llvm/llvmbase.pas
  • M compiler/llvm/llvminfo.pas


tcginnode.pass_generate_code: use tlhcgobj.g_undefined_ok

Also override the code that uses this for LLVM with a variant that does not
need it for LLVM versions that do not support the freeze instruction.
Commit consists out of
  • M compiler/llvm/nllvmset.pas
  • M compiler/ncgset.pas


m68k: added a helper function to check if a register is an FPU register
Commit consists out of
  • M compiler/m68k/cpubase.pas


Avoid generation of invalid 'cb(n)z sp,label' instruction
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


Implicit specialisation: use regular array parameters for array constructors

Fixes compilation of test/timpfuncspez5 with LLVM and debug info, as the LLVM
debug info writer internalerror's when you try to generate debug info for
an array constructor (since those types should never appear as parameter/
variable types).

Replace them with reusable regular array types, so that multiple invocations
of the same generic function with array constructors of the same type and
number of elements are collapsed into the same specialisation
Commit consists out of
  • M compiler/pgenutil.pas


macOS: set max var/constalign to 64

For all non-ppc(64) targets. Fixes test/talignrec1.
Commit consists out of
  • M compiler/systems/i_darwin.pas


* Forbid use of string alias in system unit
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pbase.pas
  • M compiler/pexpr.pas
  • M compiler/ptype.pas
  • M compiler/scanner.pas


* Check that system unit is actually loaded before using it to search for system symbols

(cherry picked from commit 9e5ee68887dcb8acf66caf873bc5cfc58fb25316)
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/symtable.pas


* Add is_systemunit_unicode function (cchartype suymbol)
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/symdef.pas


* add uachar loading for unicode rtl
Commit consists out of
  • M compiler/pmodules.pas
  • A rtl/inc/uachar.pp


m68k: more boiler plate and refactor for a future internal assembler
Commit consists out of
  • M compiler/m68k/aasmcpu.pas
  • M compiler/m68k/cpubase.pas


LLVM: remove use of getelementptr in make_simple_ref_ptr

We cannot safely infer whether it needs to be indirect or not there,
it should be done at a higher level if appropriate.
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


m68k: removed the unused S_IQ opsize
Commit consists out of
  • M compiler/m68k/ag68kgas.pas
  • M compiler/m68k/cpubase.pas


+ introduce long forms for $E, $F and $S, resolves gitlab 0039889
Commit consists out of
  • M compiler/scandir.pas


m68k: more work on instruction validation for the internal assembler
Commit consists out of
  • M compiler/m68k/aasmcpu.pas


Add sign extension to 32-bit for unaligned OS_8 and OS_16 types (to try to solve gitlab 0040102)
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


Only signed extension is needed
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* avoid internal error in case of an illegal generic declaration
Commit consists out of
  • M compiler/pdecl.pas


* undid accidentely activated define
Commit consists out of
  • M compiler/x86/aoptx86.pas


* do not warn on lea e/rsp with negative address offset, part of gitlab 0040113
+ tests
Commit consists out of
  • M compiler/rautils.pas
  • M compiler/x86/rax86.pas
  • A tests/webtbf/tw40113b.pp
  • A tests/webtbs/tw40113a.pp


* i386: Bug fix where EBP was marked as preserved when it wasn't, causing faulty optimisations
Commit consists out of
  • M compiler/i386/cgcpu.pas
  • M compiler/x86/aoptx86.pas


* x86_64: warn only on negative offsets if rsp is involed, second part of gitlab 0040113
+ tests
Commit consists out of
  • M compiler/x86/rax86.pas
  • A tests/webtbf/tw40113c.pp
  • A tests/webtbs/tw40113d.pp


* do not crash on illegal with statement, resolves gitlab 0040118
Commit consists out of
  • M compiler/pstatmnt.pas
  • A tests/webtbf/tw40118.pp


Darwin: support -Xg for DWARFv4
Commit consists out of
  • M compiler/options.pas


+ support procvar[] in tp/mac procvar mode if the procvar returns an array type
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/tbs/tb0703.pp


* compile float*2 as float+float if possible as proposed by Rika, resolves gitlab 0040116
Commit consists out of
  • M compiler/nadd.pas


LLVM: workaround to fix make all
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas


* mark constant symbols used in preprocessor expressions as used, resolves gitlab 0040108
Commit consists out of
  • M compiler/scanner.pas
  • A tests/webtbs/tw40108.pp


* compilation after merge fixed
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


+ add utility function to retrieve the char type def from a stringlike def
Commit consists out of
  • M compiler/defutil.pas


* use new chartype_for_stringlike function to retrieve the char type for a stringlike def instead of casting to a stringdef
Commit consists out of
  • M compiler/pgenutil.pas


* get_stringconst should handle widestring correctly: library & import names are unicodestring constants in unicode rtl
Commit consists out of
  • M compiler/pexpr.pas


* Unicode resource strings
Commit consists out of
  • M compiler/cresstr.pas
  • M compiler/pdecl.pas
  • M compiler/pexpr.pas
  • M compiler/ppcx64.lpi
  • M packages/fcl-base/src/gettext.pp
  • M rtl/inc/objpash.inc
  • M rtl/objpas/objpas.pp
  • M rtl/objpas/sysutils/sysutilh.inc
  • M rtl/objpas/sysutils/sysutils.inc


* initial preparations for riscv32-freertos
Commit consists out of
  • M compiler/systems.inc
  • M packages/fpmkunit/src/fpmkunit.pp
  • M utils/fpcm/fpcmmain.pp


* compilation fixed
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp
  • M utils/fpcm/revision.inc


+ first work for esp32-c3 support
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv32/cputarg.pas
  • M compiler/systems/i_freertos.pas
  • M compiler/systems/t_freertos.pas


* transform a/a only into 1 if fastmath is on
Commit consists out of
  • M compiler/nadd.pas
  • A tests/tbs/tb0704.pp
  • A tests/tbs/tb0705.pp


* more riscv32-freertos-esp32c3 stuff added
Commit consists out of
  • M compiler/globals.pas
  • M compiler/options.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/systems/t_freertos.pas
  • M rtl/freertos/Makefile
  • M rtl/freertos/Makefile.fpc
  • A rtl/freertos/riscv32/esp32c3.pp
  • A rtl/freertos/riscv32/esp32c3idf_50000.pp


m68k: add tables to convert from some stub opcodes + condition into real opcodes. Use them in the external assembler writer for now. Later the internal assembler will need these tables too.
Commit consists out of
  • M compiler/m68k/ag68kgas.pas
  • M compiler/m68k/cpubase.pas


m68k: do not generate LEA instructions with explicitly specified size. only long is possible anyway.
Commit consists out of
  • M compiler/m68k/aoptcpu.pas
  • M compiler/m68k/cgcpu.pas


* SetString needs correctly typed argument
Commit consists out of
  • M compiler/ldscript.pas
  • M compiler/ogmap.pas


* x86: Fixed bad register tracking in OptPass2JMP
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: More accurate register tracking in CheckJumpMovTransferOpt
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Registers are now allocated properly during a FuncMov2Func
optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Converted bit-test optimisations to use
debug_hexstr so comments aren't truncated
(and put $ before BTx values)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New debug_hexstr instruction to help produce concise debug comments
Commit consists out of
  • M compiler/x86/aoptx86.pas


* $NAMESPACES directive
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/fppu.pas
  • M compiler/globals.pas
  • M compiler/pmodules.pas
  • M compiler/scandir.pas


JVM: add typesym for anonymous record typed constants

Fixes compilation of system unit with JVM compiler after b38d13577f943
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecvar.pas
  • M compiler/symutil.pas


+ CPUX86_HAS_BSWAP
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


* patch by Jinyang He to fix building loongarch64 with -Oodfa/-O4
Commit consists out of
  • M compiler/loongarch64/cgcpu.pas
  • M compiler/loongarch64/cpupara.pas
  • M compiler/loongarch64/racpugas.pas


* target cpu type fixed
Commit consists out of
  • M compiler/systems/i_freertos.pas


* enable to check the existing of environment variables in config files
Commit consists out of
  • M compiler/options.pas


+ completed identifiers for RiscV ABIs
Commit consists out of
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_freertos.pas


* set fpu type correctly for riscv32-freertos
Commit consists out of
  • M compiler/options.pas


riscv32-freertos:
* unit name fixed
* linker script fixed
* assembler supports dwarf
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/systems/t_freertos.pas
  • M rtl/freertos/riscv32/esp32c3.pp


* don't not generate non-constant leb128 entriesm for riscv32-freertos
Commit consists out of
  • M compiler/dbgdwarf.pas


* set FPU type properly for riscv32-freertos
Commit consists out of
  • M compiler/options.pas


* fix systems_freertos
Commit consists out of
  • M compiler/systems.pas


* call esptool.py properly on Darwin
Commit consists out of
  • M compiler/systems/t_freertos.pas


+ exec_e_cant_call_linker shows now the error message
Commit consists out of
  • M compiler/link.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* arm compilation fixed
Commit consists out of
  • M compiler/systems/t_freertos.pas


* memory sizes updated
Commit consists out of
  • M compiler/riscv32/cpuinfo.pas


Add support for -Ploongarch64 option
Commit consists out of
  • M compiler/utils/fpc.pp


* x86: Some refactoring to use aoc_ForceNewIteration instead of manually advancing p
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


Aslo check that live_end is assigned before refering to it
Commit consists out of
  • M compiler/rgobj.pas


* x86: TEST/Jcc/TEST optimisations can now look beyond the next instruction under -O3
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: JccMovJmpMov2CMovCMov will no longer move
MOV instructions (fixes i40122)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* set rangedef of dyn. arrays correctly, resolves gitlab 0040149
Commit consists out of
  • M compiler/ptype.pas
  • A tests/webtbs/tw40149.pp


* x86: PostPeepholeOptCmp and PostPeepholeOptTestOr
now do a final attempt of TrySwapMovCmp to
clean up Pass 2 optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* also count the use of enum syms in preprocessor expressions correctly
Commit consists out of
  • M compiler/scanner.pas


* post/pre inc/decrement references modify obviously the base register on avr, resolves gitlab 0040153
Commit consists out of
  • M compiler/avr/aoptcpub.pas


* completed post/pre inc/decrement addressing mode instructions in TAoptBaseCpu.RegModifiedByInstruction
Commit consists out of
  • M compiler/avr/aoptcpub.pas


* patch by ccrause: do not load .fpc* sections into avr microcontroller to save space, resolves gitlab 0040160
Commit consists out of
  • M compiler/systems/t_embed.pas


* patch by ccrause: fixes another .fpc* section problem for AVR, resolves gitlab 0040162
Commit consists out of
  • M compiler/systems/t_embed.pas


* x86: Fixed oversight in RegModifiedByInstruction not checking W0, W1 and WU-type flags
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fix compilation with -dEXTDEBUG
Commit consists out of
  • M compiler/pass_1.pas


* Speed optimisations for peephole register tracking functions
Commit consists out of
  • M compiler/aoptobj.pas


* check if a linker with the postfix .bfd exists, if yes, use it, resolves gitlab 0040175
Commit consists out of
  • M compiler/systems/t_android.pas
  • M compiler/systems/t_linux.pas


* fix (hopefully) build without an ld.bfd variant
Commit consists out of
  • M compiler/link.pas
  • M compiler/systems/t_android.pas
  • M compiler/systems/t_linux.pas


x86: Some oversights fixed where another iteration of pass 1 wasn't performed when it should have been
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ x86: AND/CMP -> CMP optimiziation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixed comment
* shortened code
Commit consists out of
  • M compiler/x86/aoptx86.pas


* FindRegAllocBackward will now return nil if it hits a dealloc for the register first
Commit consists out of
  • M compiler/aoptobj.pas


* Allow hidden units to be found when replaying generic
Commit consists out of
  • M compiler/pgenutil.pas


* Allow System.Variants (Delphi-compatible name) to be found when inserting variants unit
Commit consists out of
  • M compiler/pmodules.pas


* Do not crash when module pointer is nil

(cherry picked from commit e6f71b6accd4949b8dec86fdd93d27e0c109732b)
Commit consists out of
  • M compiler/symtable.pas


* second mul might get called with a zero operand if the other has a side effect,
handle this correctly in ti386addnode.second_mul64bit, resolves gitlab 0040182
Commit consists out of
  • M compiler/i386/n386add.pas
  • A tests/webtbs/tw40182.pp


+ added debug messages
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ riscv32-freertos: first version of TlinkerFreeRTOS.GenerateDefaultLinkerScripts
Commit consists out of
  • M compiler/systems/t_freertos.pas


* compilation fixed with -Oodfa
Commit consists out of
  • M compiler/systems/t_freertos.pas


* project files updated
Commit consists out of
  • M compiler/ppcaarch64.lpi
  • M compiler/ppcarm.lpi
  • M compiler/ppcavr.lpi
  • M compiler/ppcjvm.lpi
  • M compiler/ppcmips.lpi
  • M compiler/ppcmips64el.lpi
  • M compiler/ppcmipsel.lpi
  • M compiler/ppcppc.lpi
  • M compiler/ppcppc64.lpi
  • M compiler/ppcppc64le.lpi
  • M compiler/ppcriscv32.lpi
  • M compiler/ppcriscv64.lpi
  • M compiler/ppcsparc.lpi
  • M compiler/ppcsparc64.lpi
  • M compiler/ppcx64.lpi
  • M compiler/ppcx64llvm.lpi
  • M compiler/ppcxtensa.lpi
  • M compiler/ppcz80.lpi


* ensure that a procvar (especially a "REFERENCE TO") begins either with FUNCTION or PROCEDURE
+ added test
Commit consists out of
  • M compiler/ptype.pas
  • A tests/tbf/tb0297.pp


* PopCount takes care only of the bit pattern, so take the uvalue to avoid an internal error, resolves gitlab 0040190
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw40190.pp


WPO: also consider NewInstance to detect class instancing

Resolves gitlab 0040200
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/psub.pas
  • A tests/webtbs/tw40200.pp


LLVM: don't use type names in ctor/dtor arrays

Workaround for https://github.com/llvm/llvm-project/issues/56809
Commit consists out of
  • M compiler/llvm/llvmdef.pas
  • M compiler/llvm/nllvmutil.pas
  • M compiler/symconst.pas
  • M compiler/utils/ppuutils/ppudump.pp


LLVM: LLVM 16 support

No changes compared to LLVM 15 that affect us
Commit consists out of
  • M compiler/llvm/llvminfo.pas


LLVM: cleaned up some comments
Commit consists out of
  • M compiler/llvm/llvminfo.pas


* also initalize default helper variables of initialization sections, resolves gitlab 0040183
Commit consists out of
  • M compiler/psub.pas
  • A tests/webtbs/tw40183.pp
  • A tests/webtbs/uw40183.pp


+ support FILEEXISTS(...) in preprocessor expressions, resolves gitlab 0039527
+ tests
* tscannerfile.readpreproc sets preproc_pattern correctly for quoted strings
Commit consists out of
  • M compiler/scanner.pas
  • A tests/test/tfileexists1.pp
  • A tests/test/tfileexists2.pp
  • A tests/test/tfileexists3.pp


* write types declared in the interface section with a DW_AT_external tag, should resolve gitlab 0040210
Commit consists out of
  • M compiler/dbgdwarf.pas


* revert use of DW_AT_external for types as this is not covered by the dwarf standard
Commit consists out of
  • M compiler/dbgdwarf.pas


WPO: fix dead code detection, and handle procvars

Extend dead code detection to not only look for the main mangled name, but also
for any aliases before deciding that a routine has been dead-stripped.

Assume objects/classes can also be constructed if the address of one of their
constructors or of the TObject.NewInstance class method has been taken.

Resolves gitlab 0040204
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/ngtcon.pas
  • M compiler/nld.pas
  • M compiler/nmem.pas
  • M compiler/symdef.pas
  • M compiler/wpobase.pas
  • A tests/webtbs/tw40204.pp


* patch by Rika: Shorten cutils.compareansistrings, resolves gitlab 0040213
Commit consists out of
  • M compiler/cutils.pas


* patch by Rika: Use Index* for pointer lists, resolves gitlab 0040218
Commit consists out of
  • M compiler/cclasses.pas
  • M compiler/optutils.pas
  • M rtl/objpas/classes/lists.inc
  • M rtl/objpas/fgl.pp


* spelling fixed
Commit consists out of
  • M compiler/dbgdwarfconst.pas


* do not replace index registers with esp/rsp, resolves gitlab 0040223
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw40223.pp


Do not always set DEBUG_AOPTCPU
Commit consists out of
  • M compiler/x86/aoptx86.pas


* another patch to fix gitlab 0040223
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M tests/webtbs/tw40223.pp


* wasm32: generate module info by traversing through current_module and its
used_units list recursively. This should fix gitlab 0040229
Commit consists out of
  • M compiler/wasm32/nwasmutil.pas


* use a TFPList, instead of a dynamic array in twasmnodeutils.InsertObjectInfo.
No functional changes.
Commit consists out of
  • M compiler/wasm32/nwasmutil.pas


* some error messages use nicer symbol names
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/symdef.pas
  • M compiler/symtype.pas


Add tf_use_psabieh for LLVM for x86_64-iphonesim, aarch64-ios and aarch64-iphonesim targets
Commit consists out of
  • M compiler/systems/i_darwin.pas


* patch by Rika: Fix and possible simplification of SanitiseXMLString, part of gitlab 0039800
Commit consists out of
  • M compiler/verbose.pas


Use systems_darwin set for supported targets for as_clang_llvm_darwin
Commit consists out of
  • M compiler/llvm/agllvm.pas


RP2040 support based on modification by Michael Ring (https://github.com/michael-ring/freepascal).
Commit consists out of
  • M compiler/arm/cpuinfo.pas
  • M compiler/systems/t_embed.pas
  • M rtl/embedded/Makefile
  • M rtl/embedded/Makefile.fpc
  • A rtl/embedded/arm/cortexm0p_start.inc
  • A rtl/embedded/arm/rp2040.pp


Specify endianess and abi when calling xtensa linker
Commit consists out of
  • M compiler/systems/t_embed.pas
  • M compiler/systems/t_freertos.pas
  • M compiler/systems/t_linux.pas


Add -EB or -EL paramter to xtensa assembler call (Warning: this requires a patched 2.40 release\!)
Commit consists out of
  • M compiler/xtensa/agcpugas.pas


* Fixed bug in "JccMovJmpMov2CMovCMov" optimisation where it didn't track registers in references getting changed
Commit consists out of
  • M compiler/x86/aoptx86.pas


Add missing swaping in case of different endianess of stab entry inside TInternalAssembler.WriteStab
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/ogbase.pas


Fix for tentryfile.getreal with FPC_SOFT_FPUX80, putreal still needs the same change
Commit consists out of
  • M compiler/entfile.pas


[AVR] Include bootloader starting address and max size where relevant.
Commit consists out of
  • M compiler/avr/cpuinfo.pas


Restrict previous change to compilers that do not have 10-byte extended type
Commit consists out of
  • M compiler/entfile.pas


Use GetExceptionMask/SetExceptionMask to avoid floating point exception inside FPC_SOFT_FFPUX80 code
Commit consists out of
  • M compiler/entfile.pas


Also add boot information to board aliases.
Commit consists out of
  • M compiler/avr/cpuinfo.pas


* Use correct sizeof to check if entry size is large enough
Commit consists out of
  • M compiler/entfile.pas


Only modify softfloat_exception_mask, as this is not handled equally for all CPUs with GetEXceptionMask/SetExceptionMask
Commit consists out of
  • M compiler/entfile.pas


Add -Aas-clang for i386/x86_64 unix targets
Commit consists out of
  • M compiler/x86/agx86att.pas


Set defdynlinker depending on selected ABI for riscv32 and riscv64
Commit consists out of
  • M compiler/systems/t_linux.pas


* More efficient if-statement construction in tmoddivnode.simplify
Commit consists out of
  • M compiler/nmat.pas


* Code that checks for divisions against -1 is now not inserted if
it's not necessary (e.g. no downsizing)
Commit consists out of
  • M compiler/ncnv.pas


Restore start section at end of assembler block inside z80 asm reader
Commit consists out of
  • M compiler/z80/raz80asm.pas


* Refactor processorname -> suffix name for clarity of flow
Commit consists out of
  • M compiler/utils/fpc.pp


Refactor initialization of binary and processor name for clarity of flow
Commit consists out of
  • M compiler/utils/fpc.pp


Refactor check for -PB and -PP for clarity of flow
Commit consists out of
  • M compiler/utils/fpc.pp


* Refactor: Rename some variables for clarity
Commit consists out of
  • M compiler/utils/fpc.pp


* Refactor: add utility routine to handle command-line changes
Commit consists out of
  • M compiler/utils/fpc.pp


* loongarch64 architecture reinstated
Commit consists out of
  • M compiler/utils/fpc.pp


Add new test code to verify that tentfile.buf limits are not overpassed
Commit consists out of
  • M compiler/entfile.pas
  • M compiler/scanner.pas


Use clang instead of as for AsBinStr for aarch64-win64 target
Commit consists out of
  • M compiler/systems/t_win.pas


* clearified message is mentioned in documentation issue 39349
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Add '-b pei_aarch64' option for aarch64-win64 system
Commit consists out of
  • M compiler/systems/t_win.pas


Add -Awin64-as option for aarch64 compiler for win64 target
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/systems.inc


Disable -EB/-EL passing for freertos OS as the corresponding released binutils do not support this option
Commit consists out of
  • M compiler/xtensa/agcpugas.pas


Add new make variable BETATARGETS, for CPU targets in beta stage, to include it into distclean list
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


Try to fix linker script for aarch64-win64
Commit consists out of
  • M compiler/systems/t_win.pas


Fix for sparc64 specific code generation bug report gitlab 0040252
Commit consists out of
  • M compiler/sparc64/cpupara.pas
  • A tests/webtbs/tw40252.pp


* Add option to allow emitting comments in RTTI info
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/utils/ppuutils/ppudump.pp


* Emit comments in RTTI info for classes/interfaces
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/ncgrtti.pas


* Define RTTI directive parameters
Commit consists out of
  • M compiler/globtype.pas


* Implement parsing of RTTI directive
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/scandir.pas


+ Implement support for parsing sets in preprocessor directives
Commit consists out of
  • M compiler/scanner.pas


* Introduce RTTI options in symbol definition
Commit consists out of
  • M compiler/symdef.pas


* Apply RTTI directive status to symbol
Commit consists out of
  • M compiler/pdecobj.pas
  • M compiler/ptype.pas


* Allow RTTI directive also before uses clauses
Commit consists out of
  • M compiler/pmodules.pas


* Write extended RTTI info
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/ncgvmt.pas
  • M compiler/symconst.pas


* Dump extended RTTI info from PPU
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* Implement -t options for fpc executable
* Remove some debugging statements
* Refactor processorname -> suffix name for clarity of flow
* Refactor initialization of binary and processor name for clarity of flow
* Rename variables for clarity
* subroutine to simplify command-line handling
* Limited subtarget config file parsing to detect -V
* Specifying multiple -V should not give an error but warn, as for -T or -t
Commit consists out of
  • M compiler/utils/fpc.pp


* correct tripletcpustr, resolves gitlab 0040301
Commit consists out of
  • M compiler/riscv64/tripletcpu.pas


+ introduced [hl]cg.a_label_pascal_goto_target. It is similar to [hl]cg.a_label
and is called by the code generator, when the label generated is the result of
a Pascal label.
Commit consists out of
  • M compiler/cgobj.pas
  • M compiler/hlcgobj.pas
  • M compiler/ncgflw.pas


+ added wasm32-specific flag tai_label.is_pascal_goto_target
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/wasm32/cgcpu.pas


+ added the wasmfuncref directive for procvars. Not actually implemented, just
parsed.
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/symconst.pas
  • M compiler/tokens.pas


* ppudump compilation fixed
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


+ handle wasm funcrefs in tgcpu.defToWasmBasic
Commit consists out of
  • M compiler/wasm32/tgcpu.pas


* added support and simplified the handling of results in create_functype_common for reference types
Commit consists out of
  • M compiler/wasm32/symcpu.pas


+ also support funcref parameters in create_functype_common
Commit consists out of
  • M compiler/wasm32/symcpu.pas


+ introduced flag is_wasm_externref to tcpupointerdef for wasm32. This is to be
used for declaring WebAssembly externref reference types.
Commit consists out of
  • M compiler/wasm32/symcpu.pas


+ magically insert a void externref type in the System unit, called WasmExternRef
Commit consists out of
  • M compiler/psystem.pas
  • M compiler/symdef.pas
  • M compiler/wasm32/symcpu.pas


+ support externref in defToWasmBasic
Commit consists out of
  • M compiler/wasm32/tgcpu.pas


+ handle externref parameters in create_functype_common
Commit consists out of
  • M compiler/wasm32/symcpu.pas


+ introduced is_wasm_funcref(tdef) helper
Commit consists out of
  • M compiler/wasm32/symcpu.pas
  • M compiler/wasm32/tgcpu.pas


+ introduced is_wasm_externref(tdef) helper
Commit consists out of
  • M compiler/wasm32/symcpu.pas
  • M compiler/wasm32/tgcpu.pas


* formatting
Commit consists out of
  • M compiler/wasm32/symcpu.pas


+ introduced the is_wasm_reference_type(tdef) helper
Commit consists out of
  • M compiler/wasm32/symcpu.pas


Add new substitute_env_variables parameter for DefaultReplacements function (with default true value)
Commit consists out of
  • M compiler/globals.pas


Disable substitution by environment variables in message comment related functions
Commit consists out of
  • M compiler/verbose.pas


* the a_ref_null instruction split into two subinstructions - a_ref_null_externref and a_ref_null_funcref
Commit consists out of
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/strinst.inc


+ enable the reference types extension in llvm-mc via a command line option
Commit consists out of
  • M compiler/systems.pas
  • M compiler/wasm32/agllvmmc.pas


* fixed the textual representation of the ref.null instruction for llvm-mc
Commit consists out of
  • M compiler/wasm32/itcpugas.pas
  • M compiler/wasm32/strinst.inc


+ implemented WebAssembly code generator support for funcref and externref data
types, using new register types R_FUNCREFREGISTER and R_EXTERNREFREGISTER
Commit consists out of
  • M compiler/cgbase.pas
  • M compiler/wasm32/cgcpu.pas
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/rgcpu.pas
  • M compiler/wasm32/tgcpu.pas
  • M compiler/x86/aasmcpu.pas


+ WebAssembly internal asm support for the ref.null instruction
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ WebAssembly internal assembler support for the ref.is_null instruction
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ disallow taking the address of WebAssembly externref type
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/wasm32/cpunode.pas
  • A compiler/wasm32/nwasmmem.pas
  • A tests/test/wasm/twasmexternref2.pp


* check for codegenerror in twasmaddrnode.pass_typecheck and exit early, to avoid crashes
Commit consists out of
  • M compiler/wasm32/nwasmmem.pas


+ also check for assigned(left) after calling inherited in twasmaddrnode.pass_typecheck, to avoid another crash
Commit consists out of
  • M compiler/wasm32/nwasmmem.pas


* disallow conversion between regular pointers and WasmExternRef
Commit consists out of
  • M compiler/wasm32/nwasmcnv.pas
  • M compiler/wasm32/symcpu.pas
  • A tests/test/wasm/twasmexternref3.pp
  • A tests/test/wasm/twasmexternref3a.pp


- removed redundant semicolon
Commit consists out of
  • M compiler/wasm32/symcpu.pas


+ support using nil constants for setting values of WebAssembly reference types (funcref and externref)
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas
  • M tests/test/wasm/twasmexternref1.pp
  • M tests/test/wasm/twasmfuncref1.pp
  • M tests/test/wasm/twasmfuncref1a.pp


+ support nil comparison of WebAssembly reference types (externref and funcref)
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M tests/test/wasm/twasmexternref1.pp
  • M tests/test/wasm/twasmfuncref1.pp


* disallow WebAssembly reference types to be declared as var, constref or out parameters
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecsub.pas
  • M tests/test/wasm/twasmexternref1.pp
  • A tests/test/wasm/twasmexternref4.pp
  • A tests/test/wasm/twasmexternref4a.pp
  • A tests/test/wasm/twasmexternref4b.pp


* disallow passing WebAssembly reference types as untyped var/constref/const parameters
Commit consists out of
  • M compiler/wasm32/nwasmcal.pas
  • M tests/test/wasm/twasmexternref1.pp
  • A tests/test/wasm/twasmexternref4c.pp
  • A tests/test/wasm/twasmexternref4d.pp
  • A tests/test/wasm/twasmexternref4e.pp


* fixed bug, introduced in 6ff566350cbc2ecf8615cae6cc6792939a288ec8, due to
missing parenthesis
Commit consists out of
  • M compiler/wasm32/nwasmcal.pas


* fixed another crash, introduced in 6ff566350cbc2ecf8615cae6cc6792939a288ec8
Commit consists out of
  • M compiler/wasm32/nwasmcal.pas


* fixed crash in twasmcallnode.pass_typecheck when there is no procdefinition (for generic methods)
Commit consists out of
  • M compiler/wasm32/nwasmcal.pas


* use tcallparanode.parasym to find the tparavarsym in twasmcallnode.pass_typecheck
Commit consists out of
  • M compiler/wasm32/nwasmcal.pas


+ support WebAssembly reference types as WebAssembly globals
Commit consists out of
  • M compiler/wasm32/symcpu.pas
  • M tests/test/wasm/twasmexternref1.pp


+ support externref and funcref WebAssembly globals in the internal object writer
Commit consists out of
  • M compiler/ogwasm.pas


+ added parser support for the 'suspending' directive
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/symconst.pas
  • M compiler/tokens.pas


* ppudump compilation fixed
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


+ initial attempt (not fully working, yet) at implementing WebAssembly suspending externals
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/symconst.pas
  • M compiler/symcreat.pas
  • M compiler/wasm32/symcpu.pas
  • M rtl/wasi/system.pp


* fixed compilation with -Sew
Commit consists out of
  • M compiler/symcreat.pas


* fixed creating suspended wrappers for functions without parameters
Commit consists out of
  • M compiler/symcreat.pas


Handle the specific NaN pattern of mips floating-point unit
Commit consists out of
  • M compiler/wasm32/agllvmmc.pas


+ initial implementation of WebAssembly promising exports
Commit consists out of
  • M compiler/export.pas
  • M compiler/pexports.pas
  • M compiler/symconst.pas
  • M compiler/symcreat.pas
  • M compiler/systems/t_wasi.pas
  • M compiler/tokens.pas
  • M compiler/wasm32/symcpu.pas


* fixed generating wrappers for suspending functions that return something, other than double
Commit consists out of
  • M compiler/symcreat.pas


+ comments for tsk_wasm_suspending and tsk_wasm_promising
Commit consists out of
  • M compiler/symconst.pas


+ comment for the po_wasm_suspending value
Commit consists out of
  • M compiler/symconst.pas


+ support 'suspending last' externals as well
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/symconst.pas
  • M compiler/symcreat.pas
  • M compiler/tokens.pas
  • A tests/test/wasm/tjspromise2.pp


+ also allow declaring an external as 'suspending first'
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/tokens.pas
  • A tests/test/wasm/tjspromise1a.pp


* eo_promising renamed eo_promising_first
Commit consists out of
  • M compiler/export.pas
  • M compiler/pexports.pas
  • M compiler/systems/t_wasi.pas


* assert that any exported promising function is not synthetic
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ introduced tcpuprocdef.add_promising_export
Commit consists out of
  • M compiler/systems/t_wasi.pas
  • M compiler/wasm32/symcpu.pas


+ introduced implement_wasm_promising_wrapper
Commit consists out of
  • M compiler/symcreat.pas


+ added last:boolean parameter to implement_wasm_promising_wrapper
Commit consists out of
  • M compiler/symcreat.pas


+ added 'last' or 'first' to the internal promising wrapper name
Commit consists out of
  • M compiler/symcreat.pas
  • M compiler/wasm32/symcpu.pas


Set defualt riscv32 linux abi to abi_riscv_ipl32
Commit consists out of
  • M compiler/riscv/agrvgas.pas


Set defualt riscv32 linux abi to abi_riscv_ipl32
Commit consists out of
  • M compiler/systems/i_linux.pas


Fix fullcycle compilation error due to -Sew option

Add 'else' branch to 'case' keyword construct
for the setting of ABI in riscv32 assembler call.
Do the same for riscv64 assembler call.
Commit consists out of
  • M compiler/riscv/agrvgas.pas


Set default abi for riscv 32/64 embedded
Commit consists out of
  • M compiler/systems/i_embed.pas


* tcpuprocdef.promising_export_name renamed promising_first_export_name
Commit consists out of
  • M compiler/symcreat.pas
  • M compiler/wasm32/symcpu.pas


+ support 'promising last' exports
Commit consists out of
  • M compiler/export.pas
  • M compiler/pexports.pas
  • M compiler/symcreat.pas
  • M compiler/systems/t_wasi.pas
  • M compiler/wasm32/symcpu.pas
  • M tests/test/wasm/tjspromise1a.pp
  • M tests/test/wasm/tjspromise2.pp


+ print an error message, in case 'promising' exports are used on non-WebAssembly platform
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pexports.pas


* ensure that the functions that insert the hidden parameters (function result, open array high parameters, etc.) are idempotent
Commit consists out of
  • M compiler/pparautl.pas


* revert 430bcac389c29a5ceca7759cfca69454aa31abf9 as with the change that the functions to insert hidden parameters are idempotent this is no longer required and also wrong as uses of the deleted symbols aside from Self and the framepointer would be left dangling
Commit consists out of
  • M compiler/procdefutil.pas


* fix gitlab 0040221: don't allow a conversion from an anonymous function to a procvar type if compare_defs_ext already rejected them
+ added tests
Commit consists out of
  • M compiler/ncnv.pas
  • A tests/webtbf/tw40221a.pp
  • A tests/webtbf/tw40221b.pp


Added generic WCH32Vx RISC-V processor types using memory size suffixes
Modified low-level startup code for RISCV32 embedded microcontrollers to
allow user code override of reset handlers for non-power-up reset events
as well as enabling user code override handlers for all 255 possible
interrupt vectors.
Separated out the low-level startup memory init into a callable procedure
to allow users that have caught reset events to init memory again if needed.

Signed-off-by: Interferon
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv32/cpuinfo.pas
  • M rtl/embedded/Makefile.fpc
  • A rtl/embedded/riscv32/CH32VxBootstrap.pp
  • M rtl/embedded/riscv32/fe310g000.pp
  • M rtl/embedded/riscv32/fe310g002.pp
  • M rtl/embedded/riscv32/gd32vf103xx.pp
  • M rtl/embedded/riscv32/riscv32_start.inc


* tsk_wasm_suspending renamed tsk_wasm_suspending_first
Commit consists out of
  • M compiler/pdecsub.pas
  • M compiler/symconst.pas
  • M compiler/symcreat.pas


+ print a proper error message if a suspending external is used on a non-WebAssembly platform
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecsub.pas


* fixed erroneously duplicated code from previous commit
Commit consists out of
  • M compiler/pdecsub.pas


+ added mutable globals to the target switches section
Commit consists out of
  • M compiler/ogwasm.pas


There is code in the register allocator to restrict register allocation to the
first 16 registers in RISC-V RVE and RVEC modes. However, there was still
code in tcpuparamanager.create_paraloc_info_intern that allowed the allocation
of up to register X17 in RVE and RVEC modes. Modified this function to
take the processor mode into account and restrict it to X0..X15 in RVE and RVEC modes.

Also put conditional code in setjump.inc assembler code to only set the first
16 registers in RVE and RVEC modes.

The entire embedded-riscv32 RTL can now compile successfuly in RVEC mode.
Commit consists out of
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv32/cpupara.pas
  • M rtl/embedded/riscv32/CH32VxBootstrap.pp
  • M rtl/embedded/riscv32/riscv32_start.inc


* Split out option parsing in one routine per letter
Commit consists out of
  • M compiler/options.pas


* Make use of copy() without count when rest of string is needed
Commit consists out of
  • M compiler/options.pas


* Fix compilation for ARM
Commit consists out of
  • M compiler/options.pas


+ comments for the new error messages
Commit consists out of
  • M compiler/msg/errore.msg


* bump CurrentPPULongVersion
Commit consists out of
  • M compiler/ppu.pas


+ disallow WebAssembly reference types in records, objects and classes
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pdecvar.pas
  • A tests/test/wasm/twasmexternref5.pp
  • A tests/test/wasm/twasmexternref5a.pp
  • A tests/test/wasm/twasmexternref5b.pp
  • A tests/test/wasm/twasmfuncref2.pp
  • A tests/test/wasm/twasmfuncref2a.pp
  • A tests/test/wasm/twasmfuncref2b.pp


+ added comment for the new error message
Commit consists out of
  • M compiler/msg/errore.msg


+ disallow using sizeof() and bitsizeof() on WebAssembly reference types
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pexpr.pas
  • A tests/test/wasm/twasmexternref6.pp
  • A tests/test/wasm/twasmexternref6a.pp
  • A tests/test/wasm/twasmexternref6b.pp
  • A tests/test/wasm/twasmfuncref3.pp
  • A tests/test/wasm/twasmfuncref3a.pp
  • A tests/test/wasm/twasmfuncref3b.pp


- rm commented out debug writeln left over from previous commit
Commit consists out of
  • M compiler/pexpr.pas


* for unique type aliases keep track of the original def
* increase PPU version
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/ppu.pas
  • M compiler/symdef.pas
  • M compiler/utils/ppuutils/ppudump.pp


* a type helper that inherits from another type helper may extend a unique type helper of the parent's extended type (thus allowing to make the type helper of the original type available for the aliased type)
+ added tests
Commit consists out of
  • M compiler/pdecobj.pas
  • A tests/test/tthlp30.pp
  • A tests/test/tthlp31.pp


* fix typo in comment
Commit consists out of
  • M compiler/pdecl.pas


* don't insert anonymous functions into a withsymtable
+ added test
Commit consists out of
  • M compiler/pdecsub.pas
  • A tests/test/tanonfunc73.pp


* fix gitlab 0040142 and gitlab 0040324: don't alias the function name to the $result variable for anonymous functions unless an explicit result name is provided
+ added tests
Commit consists out of
  • M compiler/pparautl.pas
  • A tests/webtbs/tw40142.pp
  • A tests/webtbs/tw40324.pp


* fix gitlab 0040332: apply patch by Rika to avoid a crash when an overload can't be picked outside of a function (e.g. when using intrinsics inside constants)
+ added test
Commit consists out of
  • M compiler/ncal.pas
  • A tests/webtbs/tw40332.pp


* fix typo in comment
Commit consists out of
  • M compiler/ncal.pas


* in case there hasn't been an error generated with an invalid attribute declaration then print at least "illegal expression" error
Commit consists out of
  • M compiler/pdecl.pas


+ add a tcallnodeflag value that prohibits the tcallnode.pass_typecheck to return a procvar in case of a call without parameters with a found symbol, but no suitable procdef
Commit consists out of
  • M compiler/ncal.pas


* fix gitlab 0040095: when searching a suitable constructor for the custom attribute don't allow the return of a procvar which can happen in Mac/TP procvar modes (like Delphi)
+ added test
Commit consists out of
  • M compiler/pdecl.pas
  • A tests/webtbf/tw40095.pp


* fix gitlab 0039447: when checking whether the parameters are valid for pointer arithmetic check the *correct* parameter for being valid pointer-like type (I'd say that this was a copy&paste mistake...)
+ added test
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw39447.pp


* cleanup
Commit consists out of
  • M compiler/options.pas


* check properly for the supported cpu type, resolves gitlab 0040298
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixed ppudump for WebAssembly after the JS Promise Integration branch merge
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* Generate hidden class to be used for TVirtualInterface (wasm only)
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/pdecobj.pas
  • M compiler/pmodules.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas


Add -Tlinux for loongarch64 compiler
Commit consists out of
  • M compiler/msg/errore.msg


Introduce -XLL option for link using ld.lld linker
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/options.pas
  • M compiler/systems/t_bsd.pas
  • M compiler/utils/ppuutils/ppudump.pp


* Restore -aR, lost in refactoring
Commit consists out of
  • M compiler/options.pas


* Lowercase subtarget file, as done in compiler
Commit consists out of
  • M compiler/utils/fpc.pp


git ignore msg2inc binary
Commit consists out of
  • A compiler/.gitignore


Regenerate msgidx.inc and msgtxt.inc files
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


* change TCachedSearchRec.Attr to longint as TCachedDirectoryEntry.Attr is also a longint, resolves gitlab 0040343
Commit consists out of
  • M compiler/cfileutl.pas


* Additional fields/enums for invoke helper
Commit consists out of
  • M compiler/symconst.pas
  • M compiler/symdef.pas


* Mark method for invoke helper
Commit consists out of
  • M compiler/pdecsub.pas


Create invoke helper if requested and reference it in RTTI
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/symcreat.pas


Handle unaligned copy in TCGSparcGen.g_concatcopy method
Commit consists out of
  • M compiler/sparcgen/cgsparc.pas


* Handle some options required by android, nasm and darwin assemblers
Commit consists out of
  • M compiler/utils/dummyas.pp


* More option processing
Commit consists out of
  • M compiler/utils/dummyas.pp


* Shorter form of copy, remark by Alexey Torgashin
Commit consists out of
  • M compiler/utils/dummyas.pp


* x86: Fixed bug where OptPass2Jcc CMOV optimisation sometimes
put the wrong-sized register into an operand (fixes i40307)
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Revamped OptPass2Jcc CMOV code to shrink and reuse registers as much as possible
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Fixed bug with BT optimisation where operand
sizes bigger than the register word size caused
incorrect code generation (fixes gitlab 0040358)
Commit consists out of
  • M compiler/x86/nx86set.pas


Attempt to get ogcoff to work on CPU with opposite endianness
Commit consists out of
  • M compiler/ogcoff.pas


Add missing TPECoffExpDir variantr of MaybeSwap procedure
Commit consists out of
  • M compiler/ogcoff.pas


Cleanup TLinkerLinux.SetDefaultInfo method in t_linux unit
Commit consists out of
  • M compiler/systems/t_linux.pas


* x86: Fixed bug in TEST/JNE/TEST/JNE optimisation that caused bad code to be generated under -O3
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Improvement to TEST/JNE/TEST/JNE code to be more accurate where register deallocations are concerned
Commit consists out of
  • M compiler/x86/aoptx86.pas


LLVM: Xcode 14.3 support
Commit consists out of
  • M compiler/llvm/llvminfo.pas


Update errore.msg

Someminor corrections, found when translating to german.
Commit consists out of
  • M compiler/msg/errore.msg


* Fixes based on feedback of team, fixes issue gitlab 0040368
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M rtl/Makefile
  • M rtl/aix/Makefile
  • M rtl/aix/Makefile.fpc
  • M rtl/amiga/Makefile
  • M rtl/amiga/Makefile.fpc
  • M rtl/android/Makefile
  • M rtl/android/Makefile.fpc
  • M rtl/aros/Makefile
  • M rtl/aros/Makefile.fpc
  • M rtl/atari/Makefile
  • M rtl/atari/Makefile.fpc
  • M rtl/beos/Makefile
  • M rtl/beos/Makefile.fpc
  • M rtl/darwin/Makefile
  • M rtl/darwin/Makefile.fpc
  • M rtl/dragonfly/Makefile
  • M rtl/dragonfly/Makefile.fpc
  • M rtl/embedded/Makefile
  • M rtl/embedded/Makefile.fpc
  • M rtl/emx/Makefile
  • M rtl/emx/Makefile.fpc
  • M rtl/freebsd/Makefile
  • M rtl/freebsd/Makefile.fpc
  • M rtl/freertos/Makefile
  • M rtl/freertos/Makefile.fpc
  • M rtl/gba/Makefile
  • M rtl/gba/Makefile.fpc
  • M rtl/go32v2/Makefile
  • M rtl/go32v2/Makefile.fpc
  • M rtl/haiku/Makefile
  • M rtl/haiku/Makefile.fpc
  • M rtl/inc/Makefile.rtl
  • M rtl/java/Makefile
  • M rtl/java/Makefile.fpc
  • M rtl/linux/Makefile
  • M rtl/linux/Makefile.fpc
  • M rtl/macos/Makefile.fpc
  • M rtl/morphos/Makefile
  • M rtl/morphos/Makefile.fpc
  • M rtl/msdos/Makefile
  • M rtl/msdos/Makefile.fpc
  • M rtl/msxdos/Makefile
  • M rtl/msxdos/Makefile.fpc
  • M rtl/nativent/Makefile
  • M rtl/nativent/Makefile.fpc
  • M rtl/nds/Makefile
  • M rtl/nds/Makefile.fpc
  • M rtl/netbsd/Makefile
  • M rtl/netbsd/Makefile.fpc
  • M rtl/netware/Makefile
  • M rtl/netware/Makefile.fpc
  • M rtl/netwlibc/Makefile
  • M rtl/netwlibc/Makefile.fpc
  • M rtl/openbsd/Makefile
  • M rtl/openbsd/Makefile.fpc
  • M rtl/os2/Makefile
  • M rtl/os2/Makefile.fpc
  • M rtl/palmos/Makefile
  • M rtl/palmos/Makefile.fpc
  • M rtl/qnx/Makefile.fpc
  • M rtl/sinclairql/Makefile
  • M rtl/sinclairql/Makefile.fpc
  • M rtl/solaris/Makefile
  • M rtl/solaris/Makefile.fpc
  • M rtl/symbian/Makefile
  • M rtl/symbian/Makefile.fpc
  • M rtl/wasi/Makefile
  • M rtl/wasi/Makefile.fpc
  • M rtl/watcom/Makefile
  • M rtl/watcom/Makefile.fpc
  • M rtl/wii/Makefile
  • M rtl/wii/Makefile.fpc
  • M rtl/win16/Makefile
  • M rtl/win16/Makefile.fpc
  • M rtl/win32/Makefile
  • M rtl/win32/Makefile.fpc
  • M rtl/win64/Makefile
  • M rtl/win64/Makefile.fpc
  • M rtl/wince/Makefile
  • M rtl/wince/Makefile.fpc
  • M rtl/zxspectrum/Makefile
  • M rtl/zxspectrum/Makefile.fpc


LLVM: only add sret attribute for first parameter on caller side

We already did this when generating the definitions, but not yet
when generating the calls
Commit consists out of
  • M compiler/llvm/llvmpara.pas


LLVM: LLVM 17.0 support

No changes in IR (that affect us) since LLVM 16.0
Commit consists out of
  • M compiler/llvm/llvminfo.pas


* fix parameter alignment on x86_64 when more than 6 parameters are involved (aka the stack is used)
+ added test
Commit consists out of
  • M compiler/x86_64/cpupara.pas
  • M tests/Makefile.fpc
  • A tests/test/cg/obj/linux/x86_64/tcext7.o
  • A tests/test/cg/obj/tcext7.c
  • A tests/test/cg/tcalext7.pp


[AVR] Add command line options to selectively remove portions of the RTL startup code.
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas
  • M compiler/systems/t_embed.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A tests/test/cpu8/avr/tdiscard_options.pp


Fix syntax errors in make fullcycle
Commit consists out of
  • M compiler/ogcoff.pas
  • M compiler/systems/t_linux.pas


Add unit specifiers for tlsdirectory fields: they need to be PUInt from globtype unit
Commit consists out of
  • M compiler/ogcoff.pas


Applied fix for binutils 2.41 for loongarch64 suggested by Jinyang He
https://gitlab.com/MQ-mengqing/source/-/commit/32fa3e9eb1a31fa6c4262623dbe432919f66419c
with modifications reported in comments.
Commit consists out of
  • M compiler/loongarch64/agcpugas.pas
  • M compiler/loongarch64/loongarchreg.dat
  • M compiler/loongarch64/rloongarch64abi.inc
  • M rtl/loongarch64/setjump.inc


volatile: allow for assignments
Commit consists out of
  • M compiler/htypechk.pas
  • A tests/tbs/tb0706.pp


* factor out subreg2opsize
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/cpubase.pas


default values: store as staticvarsyms in staticsymtable

Previously, they were stored as localvarsyms in either the localsymtable
(for procedures/functions) or as localvarsyms in the staticsymtable (for
init/fini code of units/main programs). The latter was a hack (staticsymtables
normally cannot contain localvarsyms) and caused the temp allocator to also
allocate them as a local in fini code even if the default was only in the init
code.

The new approach ensures at most one copy gets allocated per unit, it doesn't
require explicit initialisation (since staticvarsyms are in bss -> zeroed by
default), gets rid of the localvarsyms in staticsymtables, and as a bonus
solves an issue with inconsistent LLVM debug information for the localvarsym
in init/fini code (since the staticsymtable is shared between the init and
fini code, so was the local, and therefore we generated debug info stating
it was defined in the fini code but within the scope of the init code).

Resolves gitlab 0040395
Commit consists out of
  • M compiler/ninl.pas
  • M compiler/psub.pas
  • A tests/webtbs/tw40395.pp
  • A tests/webtbs/tw40395a.pp


default value: fix issue with inlining

Ensure the mangled name is always the same

Resolves gitlab 0040404
Commit consists out of
  • M compiler/ninl.pas
  • A tests/webtbs/tw40395c.pp
  • A tests/webtbs/uw40395c.pp


default(): fix webtbf/tw37303 after previous changes
Commit consists out of
  • M compiler/ninl.pas


* x86: Fixed bug where incorrect SSE/AVX peephole optimisations were performed under -O3 in some situations.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Added missing register allocations to SSE/AVX optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


default(): fix in generics for non-procvars after 1be741681648

Block added in the wrong place :|

Resolves gitlab 0040409
Commit consists out of
  • M compiler/ninl.pas


* formatting
Commit consists out of
  • M compiler/riscv32/cpupara.pas


Add main inputfilename for V_Parallel option to allow easier debugging of parallel compilation issues
Commit consists out of
  • M compiler/comphook.pas


* fix gitlab 0040381: also check for hints when parsing the parameters of a routine (including open array parameters) or the result type of a function
+ added tests
Commit consists out of
  • M compiler/pdecsub.pas
  • A tests/webtbs/tw40381a.pp
  • A tests/webtbs/tw40381b.pp
  • A tests/webtbs/tw40381c.pp
  • A tests/webtbs/tw40381d.pp


* fix gitlab 0040390: implement support for handling parameter names (including __SELF and __HIGH()) that resolve directly to registers
+ added tests
Commit consists out of
  • M compiler/x86/rax86att.pas
  • A tests/test/tasm28.pp
  • A tests/test/tasm29.pp
  • A tests/webtbs/tw40390.pp


Add globals to implementation _USES clause to prepare move of V_XXX constants to globals unit
Commit consists out of
  • M compiler/dbgbase.pas
  • M compiler/owomflib.pas
  • M compiler/powerpc64/cpubase.pas
  • M packages/ide/fpintf.pas


Avoid double definition of V_XXX constants by moving them to globals unit
Add new V_Parallel constant
Commit consists out of
  • M compiler/comphook.pas
  • M compiler/globals.pas
  • M compiler/verbose.pas


Add -vj option in options unit to set V_Parallel
Add mainsourcefile to all messages when V_Parallel verbosity option is set
Flatten out -vX options in help message to make changes easier
Add -vj option in help message
Commit consists out of
  • M compiler/comphook.pas
  • M compiler/msg/errore.msg
  • M compiler/verbose.pas


Regenerate msg*.inc files after adding -vj option description
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Change V_Parallel so that V_All doesn't contain V_Parallel, only explicit -vj will add main source file information
Commit consists out of
  • M compiler/globals.pas


default parameter values: fix crash

Fix crash when declaring default parameter values while current_procinfo
is not yet valid

resolves gitlab 0040413
Commit consists out of
  • M compiler/ninl.pas
  • A tests/webtbs/tw40413.pp


Use PID to generate unique GDB script names

Limit this to cases when -vj or -vJ option is
used to call the compiler, which adds a PID prefix
to all compiler output.
This feature is useful to debug parallel make issues.
Commit consists out of
  • M compiler/utils/gppc386.pp


Cast properly to avoid range error
Commit consists out of
  • M compiler/x86/rax86int.pas


LLVM: fix double init/fini of local managed variables accessed from nested functions

resolves gitlab 0040392
Commit consists out of
  • M compiler/ngenutil.pas
  • A tests/webtbs/tw40392.pp


Change loongarch64 default dynamic linker directory according to gcc
Commit consists out of
  • M compiler/systems/t_linux.pas


* throw an error if instructions which needs an operand size is used with one operand being a reference without size
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/rax86.pas
  • A tests/webtbf/tw40399.pp


Rename fields of tspillregsinfo record to avoid having same field names as treginfo record
Commit consists out of
  • M compiler/llvm/rgllvm.pas
  • M compiler/rgobj.pas


Try to fix crash in loongarch64 compiler

loongarch64 compiler has a specific routine,
called fixupref that generates some instructions that are
stored into a tasmlist given as an input parameter.
This function returns a boolean,
if the return value is false, the populated list gets
sometimes discarded.
This can lead to a later crash, because the unused
and freed instructions might have been stored
in live and live_end fields of the reginfo record
used inside rgobj unit.

The fix checks if any of the to be discarded instructions
has been stored inside reginfo records,
and resets the field in that case.

The fix might need to be more general,
because other parts of the compiler,
like all optimization code, also remove
instructions...
Commit consists out of
  • M compiler/loongarch64/cgcpu.pas


Fixing trying to consume ID for anonymous switch field
Commit consists out of
  • M compiler/pdecvar.pas
  • A tests/test/tvrec1.pp


* 3-operand LEA instructions are now expanded if the latency could cause slowdown
Commit consists out of
  • M compiler/x86/aoptx86.pas


* New "fast 3-component LEA hint" and "Icelake" CPU options
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/cpuinfo.pas


+ introduced classes for WebAssembly structured form of instructions
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/wasm32/aasmcpu.pas


+ added code for converting wasm asmlists to structured lists (i.e. lists, using the new wasm structured instructions classes)
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fixed bug in wasm_convert_to_structured_asmlist
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fixed more bugs in the wasm structured asmlist construction
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* set typ of wasm structured instructions to ait_wasm_structured_instruction
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ for debug purposes print wasm structured instructions in the llvm-mc assembler output
Commit consists out of
  • M compiler/aggas.pas


* shorten the string for ait_wasm_structured_instruction in taitypestr to fit in string[24]
Commit consists out of
  • M compiler/aasmtai.pas


* constructors made public to avoid warnings
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ added else to case statement, avoid the warning, produce an internal error in this unexpected case
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ avoid more warnings
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ added else to case statement to avoid warning
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ added compiler internal error when encountering certain unexpected wasm instructions (indicating improper nesting)
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ more consistency checks for unexpected instructions when converting to wasm structured instruction form
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ also debug print structured try..catch and try..delegate blocks
Commit consists out of
  • M compiler/aggas.pas


+ also check for unexpected delegate instructions when converting to wasm structured form
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ fix for the conversion of try..catch blocks to structured form
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* allow set type to be a generic parameter, resolves gitlab 0040453
Commit consists out of
  • M compiler/ptype.pas
  • A tests/webtbs/tw40453.pp


Add Exception backtrace when compiled with -dDUMP_EXCEPTION_BACKTRACE
Commit consists out of
  • M compiler/compiler.pas


* correctly name nested enum type debug symbols, resolves gitlab 0040462
Commit consists out of
  • M compiler/dbgdwarf.pas
  • A tests/webtbs/tw40462.pp


Attempt to fix tcalext3 big-endian powerpc64 failure
Commit consists out of
  • M compiler/cgobj.pas


+ introduced map_structured_asmlist
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced twasmstruc_stack
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ added a block stack parameter to TAsmMapFunc
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ added code for creating labels, associated with blocks and converting branch with consts to the corresponding block's label
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ in case of unresolved labels, call resolve_labels_complex, which will eventually implement the stackifier algorithm. Currently, it converts the asmlist to structured.
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ always call resolve_labels_complex, if DEBUG_WASM_GOTO is defined.
+ define DEBUG_WASM_GOTO in ppcwasm32.lpi (but not in the makefiles)
Commit consists out of
  • M compiler/ppcwasm32.lpi
  • M compiler/wasm32/cpupi.pas


+ added ait_wasm_structured_instruction to the SkipLineInfo set
Commit consists out of
  • M compiler/aasmtai.pas


* moved the code that converts branch numbers to labels in the cpupi unit and call it from resolve_labels_complex
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpupi.pas


* fixed hang in map_structured_asmlist_inner
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fixed crash in map_structured_asmlist_inner, when the TAsmList parameter is nil
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ convert wasm structured list to flat list
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpupi.pas


+ added method tai_wasmstruc_if.ConvertToBrIf
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ added support for params and results in tai_wasmstruc_if.ConvertToBrIf
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* ARM: Fixed issue where some offsets of ADR assembly instructions
were incorrectly encoded by the internal assembler
Commit consists out of
  • M compiler/arm/aasmcpu.pas


+ added and implemented tcpuprocinfo.AllocWasmLocal
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* Local var templist renamed localslist. No functional changes.
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* moved the preparation of the locals asm list in tcpuprocinfo.postprocess_code to a local subroutine
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* moved the insertion of the wasm locals asmlist to a local subroutine
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* insert the wasm locals asm list after resolve_labels_complex, since it will (in the future) be able to allocate more locals, in order to resolve the branches and goto
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* set the last=true property of the last tai_local in the locals list in the
beginning of insert_localslist, instead of in the end of prepare_locals
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ support mapping of structured instructions also in map_structured_asmlist_inner
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* convert if structured instructions to br_if + labels
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpupi.pas


+ added amfrtDeleteAi, support deleting instructions in map_structured_asmlist_inner
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* convert loop..end_loop blocks to flat list + branch instruction
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpupi.pas


* strip block instructions
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ add the extra allocated locals before inserting the locals list in wasm32 tcpuprocinfo.postprocess_code
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* a64: Fixed bug where BIC instructions were treated as having 2 operands rather than 3
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas


* a64: Corrected supported shifter/extender mnemonics for arithmetic/logical instructions
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas
  • M compiler/aarch64/cpubase.pas


* fix gitlab 0040451: load the assembly symbol into a separate operand so that an offset already contained in oper isn't discarded + added test
Commit consists out of
  • M compiler/x86/rax86att.pas
  • A tests/webtbs/tw40451.pp


* fix gitlab 0040410: allow specialization of a procdef also inside exception handlers + added test
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/webtbs/tw40410.pp


* the unit name has already been uppercased for the search, so no need to uppercase it again for the message output
Commit consists out of
  • M compiler/fppu.pas


* a64: Renamed OptPostCMP/And to PostPeepholeOptCMP/AND for internal consistency
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ added label resolution via state machine
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* fixes to the mangling of the entry and exit code during the state machine label resolution
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* fixed branch ordering in resolve_labels_via_state_machine
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ allow jumps to goto targets
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/wasm32/cgcpu.pas
  • M compiler/wasm32/hlcgcpu.pas


* support local.get/set/tee with a const parameter in the wasm internal assembler writer
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* temporary workaround for the is_pascal_goto_target check not working properly in a_jmp_always
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* fixed a div by zero error, when compiling a wasi-hosted compiler
Commit consists out of
  • M compiler/optcse.pas


* fixed the label resolution for asmlists with WebAssembly native exceptions
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* arm/a64: New AND/CMP -> TST or ANDS optimisation
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* refactor: wasm_convert_to_flat_asmlist and wasm_convert_to_structured_asmlist now accept a single var parameter
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpupi.pas


* fixed and enabled the is_pascal_goto_target check
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/aasmtai.pas
  • M compiler/wasm32/cgcpu.pas
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas


* refactored thlcgwasm.a_jmp_always. No functional changes.
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* arm/a64: Added new TST post-peephole optimisation to replace previous AND/CMP/B(c) optimisation
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


+ introduced thlcgobj.a_jmp_always_pascal_goto - same as .a_jmp_always, but generated by a pascal goto statement
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/ncgflw.pas
  • M compiler/wasm32/hlcgcpu.pas


* refactored the taicpu_wasm_structured_instruction descendants to use a wstyp enum variable, instead of using the 'is' operator to determine the class type
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpupi.pas


+ check whether all br instructions, generated by goto point to a pascal goto label
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas


Fix possible overflow in riscv32 compiler
Commit consists out of
  • M compiler/riscv32/cgcpu.pas


* New "TryRemoveRegAlloc" optimisation utility
Commit consists out of
  • M compiler/aoptobj.pas


* x86: Fixed bug in "LeaLea2Lea 2" optimisation where final offset was calculated incorrectly
Commit consists out of
  • M compiler/x86/aoptx86.pas


Change AVOID_OVERFLOW to avoid warning about inequality being always true
Commit consists out of
  • M compiler/riscv32/cgcpu.pas


* arm/a64: New "OptPass2TST" routine to catch "TST; B.c; AND -> ANDS; B.c" optimisation
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* x86: Fixed inefficiency in the long-range MOV optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Factored out the MovMov2MovMov 2 optimisation to
catch an inefficiency in the "Deep MOV" optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Enable function references and anonymous functions in Delphi mode
Commit consists out of
  • M compiler/globals.pas
  • A tests/test/tfuncref52.pp
  • A tests/test/tfuncref53.pp


* Label and align optimisation is now only done in the post-peephole
stage rather than passes 1 and 2.
Commit consists out of
  • M compiler/aoptobj.pas


Change internal linker in cross-endian message.

Change message level from error to warning,
in order to allow to work on full support of
cross-endian internal assemblers and linkers.
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


* SkipInstr now includes ait_align
Commit consists out of
  • M compiler/aasmtai.pas


* Search config file in same directory as actual compiler binary
Commit consists out of
  • M compiler/utils/fpc.pp


+ added methods for writing ints with specific endianess in TObjData
Commit consists out of
  • M compiler/ogbase.pas


* some fixes for the x86 assembler writer, when running on a big-endian hosted platform
Commit consists out of
  • M compiler/x86/aasmcpu.pas


* UpdateUsedRegsAndOptimize improved to clear aligns that don't have
any live labels after them, and to better handle non-jump labels.
Commit consists out of
  • M compiler/aoptobj.pas


+ introduced methods for writing endian-specific integers to TObjSection
Commit consists out of
  • M compiler/ogbase.pas


* big endian fix in TOmfObjData.writeReloc
Commit consists out of
  • M compiler/ogomf.pas


* use NtoLE instead of LEtoN in OMF DoRelocationFixup when converting from native to little endian. No functional changes, just better readability.
Commit consists out of
  • M compiler/ogomf.pas


* write pretty symbol name of a generic is not found during specialization
Commit consists out of
  • M compiler/pgenutil.pas


* x86: CMOV block optimisation overhauled
Commit consists out of
  • M compiler/x86/aoptx86.pas


LLVM: fix currency parameters passed on the stack on x86-64

Resolves gitlab 0040496
Commit consists out of
  • M compiler/x86_64/cpupara.pas
  • A tests/webtbs/tw40496.pp


* a64: Node parser now attempts to directly create BIC, ORN and EON instructions
Commit consists out of
  • M compiler/aarch64/ncpuadd.pas


* Fixed internal error number clash (2022102110)
Commit consists out of
  • M compiler/x86/nx86inl.pas


* Avoid access violation, use internalerror instead. See also issue gitlab 0040502
Commit consists out of
  • M compiler/pgenutil.pas


* Refer to bugreport for internal error 20231102
Commit consists out of
  • M compiler/pgenutil.pas


Check that tai returned by GetNextInstruction is really a taicpu object before using an explicit typecast
Commit consists out of
  • M compiler/x86/aoptx86.pas


Use faster check for type of tai object
Commit consists out of
  • M compiler/x86/aoptx86.pas


Fix handling of ST_LOADMESSAGES token
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* fix gitlab 0040500: do a for-in on a string variable using low(strvar) to high(strvar) so that zero based strings are handled correctly
+ added test
Commit consists out of
  • M compiler/nflw.pas
  • A tests/webtbs/tw40500.pp


* fix typo in comment
Commit consists out of
  • M compiler/ptype.pas


* fix gitlab 0040504: always provide the global enum symbol for anonymous enum types (e.g. as part of a set)
+ added test
Commit consists out of
  • M compiler/ptype.pas
  • A tests/webtbs/tw40504.pp


* x86: Additional TEST/CMP optimisations to optimise CMOV blocks
that aren't optimal due to register pressure
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* x86: PostPeepholeOptMov attempts to convert mov $0,%reg to
xor %reg,%reg and mov $-1,%reg to or $-1,%reg under
-Os even if the flags are in use by looking ahead.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Allow to disable 8.3 filename search
Commit consists out of
  • M compiler/cfileutl.pas
  • M compiler/fppu.pas
  • M compiler/globals.pas
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/options.pas


Fix for trunk arm STM optimize bug
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* check for *-1 multiplications after folding, resolves gitlab 0040448
Commit consists out of
  • M compiler/nadd.pas


* a64: New CSEL block optimisations ported over from x86 CMOV block optimisations
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/aarch64/cpubase.pas


+ added TWasmObjInput class. To be used in the WASM internal linker. Not doing anything, yet.
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented TWasmObjInput.CanReadObjData: checks for WASM header and version
Commit consists out of
  • M compiler/ogwasm.pas


+ started implementing TWasmObjInput.ReadObjData
Commit consists out of
  • M compiler/ogwasm.pas


* Properly zero-terminate ansistring when calling unicode2ascii
Commit consists out of
  • M compiler/pexpr.pas


+ added TInternalLinkerWasi class (not fully implemented, yet)
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ added TWasmExeOutput class (not implemented, yet)
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/systems/t_wasi.pas


m68k: initial compiler changes for Human68k (Sharp X68000) support
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/compiler.pas
  • M compiler/m68k/ag68kvasm.pas
  • M compiler/m68k/cputarg.pas
  • M compiler/msg/errore.msg
  • M compiler/options.pas
  • M compiler/systems.inc
  • A compiler/systems/i_human68k.pas
  • A compiler/systems/t_human68k.pas
  • M compiler/utils/ppuutils/ppudump.pp


tabs to spaces cosmetics. no functional change
Commit consists out of
  • M compiler/systems.inc


* patch by lagprogramming: Improvement of function SetCompileModeSwitch, resolves gitlab 0040525
Commit consists out of
  • M compiler/scanner.pas


Add missing token buffer index update for ST_LOADMESSAGES handling
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


Improve token buffer size checks.

* For settings comparison: call CompareByte only on copy_size.
* For mesgnb: verify that there is enough memory space
in rest of tokenbuf to hold the number of messages.
+ Add a check that tbi is not greater than tokenbufsize.
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


human68k: this system has internal sysinit
Commit consists out of
  • M compiler/systems.pas


human68k: ppudump typo/build fix
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


human68k: fix xecutable generation
Commit consists out of
  • M compiler/systems/t_human68k.pas


m68k: basic DOS syscall generation for human68k
Commit consists out of
  • M compiler/m68k/n68kcal.pas
  • M compiler/pdecsub.pas
  • M compiler/syscinfo.pas


Call FindUtil for ld or nlmconv utils at linking stage, not before
Commit consists out of
  • M compiler/systems/t_nwl.pas
  • M compiler/systems/t_nwm.pas


* arm: Fixed "RegInInstruction" and "RegModifiedByInstruction" not handling the flags properly
Commit consists out of
  • M compiler/arm/aoptcpu.pas
  • M compiler/arm/aoptcpub.pas


AVR optimization LdsMov2Lds
Commit consists out of
  • M compiler/avr/aoptcpu.pas


* arm: "OpCmp2OpS" moved to Pass 2 so it doesn't conflict with AND; CMP -> TST optimisation
Commit consists out of
  • M compiler/arm/aoptcpu.pas


* arm/a64: "OptPass2AND" and "OptPass2CMP" adapted to remove vestigial CMP and TST instructions
Commit consists out of
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


nested procvars: support assignments when switch not active

Support assigning one nested procvar to another even when the nestedprocvars
modeswitch is not active. This can happen when the type was declared in a
different unit that was compiled with this modeswitch, or in internally
generated wrapper code (which uses "pure" objfpc mode)
Commit consists out of
  • M compiler/htypechk.pas
  • A tests/test/tnest6.pp
  • A tests/test/tnest6a.pp
  • A tests/test/unest6a.pp


* a64: SkipAligns calls removed.
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* x86: SkipAligns calls removed.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* SkipAligns method removed
Commit consists out of
  • M compiler/aoptutils.pas


* SkipLabels now handles alignment fields correctly
Commit consists out of
  • M compiler/aoptutils.pas


* x86: Safety check, since after calling DoJumpOptimizations, the input may no longer be the same tai
Commit consists out of
  • M compiler/x86/aoptx86.pas


* GetFinalDestination now calls SkipLabels on an alignment field
Commit consists out of
  • M compiler/aoptobj.pas


First attempt to fix bug report gitlab 0040537
Commit consists out of
  • M compiler/htypechk.pas


* x86: Fixed inefficiencies revealed in "TEST/JNE/TEST/JNE"
optimisations after SkipAligns cull.

A variant "TEST/JNE/TEST/JE/@Lbl" optimisation now exists to
accommodate for an intermediate jump optimisation that prevents
the original optimisation from working if performed first.
Commit consists out of
  • M compiler/x86/aoptx86.pas


Move test to end of possible conversion and add check_valid_var boolean variable
Commit consists out of
  • M compiler/htypechk.pas


Fix usage of GNU assembler for i386-nativent target
Commit consists out of
  • M compiler/aggas.pas


m68k: do not generate argument popping for a noreturn call
Commit consists out of
  • M compiler/m68k/n68kcal.pas


regenerated msg*.inc files for the compiler after human68k merge
Commit consists out of
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


m68k: have the targets in alphabetical order in the help text
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgtxt.inc


Add human68k OS to list of supported OSes for m68k GNU assembler
Commit consists out of
  • M compiler/m68k/ag68kgas.pas


Improve GNU linker call for m68k-human68k target

+ Add '-b xfile' option
+ Add '-m human68kxfile' option
+ Add $GCSECTIONS and set GCSectionStr for GNU linker
Commit consists out of
  • M compiler/systems/t_human68k.pas


* fix casing
Commit consists out of
  • M compiler/msg/errord.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg
  • M compiler/msg/errorpt.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msgtxt.inc


trealconstnode.printnodedata: fix currency values getting written to stdout
Commit consists out of
  • M compiler/ncon.pas


* fix output position of deprecated hint for certain cases where it was wrong, resolves gitlab 0040534
Commit consists out of
  • M compiler/pexpr.pas


human68k: set default stack size to 16KiB
Commit consists out of
  • M compiler/systems/i_human68k.pas


LLVM: only round currency values when storing them back to memory

Resolves gitlab 0040550
Commit consists out of
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/nllvmcnv.pas
  • A tests/webtbs/tw40550.pp


LLVM: recognise Xcode-15 as LLVM codegen target
Commit consists out of
  • M compiler/llvm/llvminfo.pas


LLVM: use llvm.dbg.declare instead of llvm.dbg.addr for variable declarations

Even though it's supposedly deprecated, clang also still uses it and without
the declaration ranges of local variables are sometimes cut off
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/llvm/dbgllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/ncgld.pas
  • M rtl/inc/llvmintr.inc


* Node dumps now output the convention if it's not pocall_default
Commit consists out of
  • M compiler/psub.pas


* do str(...) optimization only in level 3+ mode
Commit consists out of
  • M compiler/ncal.pas


m68k: fix the assembler reader to bail out earlier on a failed parsing of a constant expression
Commit consists out of
  • M compiler/m68k/ra68kmot.pas


+ added ld_int_wasi constant. Register the WASI internal linker.
Commit consists out of
  • M compiler/systems.inc
  • M compiler/systems/t_wasi.pas


* enable the WASM internal linker, in case the compiler is compiled with the ENABLE_WASM_INTERNAL_LINKER define
Commit consists out of
  • M compiler/ppcwasm32.lpi
  • M compiler/systems/i_wasi.pas


* override and implement TInternalLinkerWasi.InitSysInitUnitName
Commit consists out of
  • M compiler/systems/t_wasi.pas


* set CObjData in the TWasmExeOutput constructor
Commit consists out of
  • M compiler/ogwasm.pas


* override GetCodeSize, GetDataSize and GetBssSize in TInternalLinkerWasi to avoid crash
Commit consists out of
  • M compiler/systems/t_wasi.pas


* write a WebAssembly header in TWasmExeOutput.writeData
Commit consists out of
  • M compiler/ogwasm.pas


* implementation of TInternalLinkerWasi.DefaultLinkScript. Create a script that reads all the object files.
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ added functions for reading the different types of Wasm object sections
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced decode_wasm_basic_type function
Commit consists out of
  • M compiler/wasm32/cpubase.pas


+ Wasm internal linker, object reader: implemented parsing of the type section
Commit consists out of
  • M compiler/ogwasm.pas


+ input error message in case the type section size is unexpected/wrong
Commit consists out of
  • M compiler/ogwasm.pas


- removed TODO comment
Commit consists out of
  • M compiler/ogwasm.pas


+ import section duplicate check
Commit consists out of
  • M compiler/ogwasm.pas


+ added const sets for the WebAssembly reference, numeric and vector types
Commit consists out of
  • M compiler/wasm32/cpubase.pas


+ WebAssembly object reader: implemented parsing of the import section
Commit consists out of
  • M compiler/ogwasm.pas


+ function section duplicate check
Commit consists out of
  • M compiler/ogwasm.pas


+ read the functions count from the functions section
Commit consists out of
  • M compiler/ogwasm.pas


+ parse the rest of the function section
Commit consists out of
  • M compiler/ogwasm.pas


+ parse the data count section
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced ReadUleb32 to avoid code repetition of the >high(uint32) checks
Commit consists out of
  • M compiler/ogwasm.pas


* use ReadUleb32 in more places
Commit consists out of
  • M compiler/ogwasm.pas


* the ReadUleb, ReadUleb32 and ReadName methods moved to be local functions inside TWasmObjInput.ReadObjData.ReadSection
Commit consists out of
  • M compiler/ogwasm.pas


- rm commented out code
Commit consists out of
  • M compiler/ogwasm.pas


- removed the TObjectReader parameter from ReadUleb, ReadUleb32 and ReadName
Commit consists out of
  • M compiler/ogwasm.pas


+ added section bounds checking to the read function, used inside TWasmObjInput.ReadObjData.ReadSection
Commit consists out of
  • M compiler/ogwasm.pas


- removed the repeated section bounds check in the section parsing code,
because now all reads go through the read function, which does section bounds
checking on every read
Commit consists out of
  • M compiler/ogwasm.pas


+ added code section duplicate check in wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ read the code entries count from the code section
Commit consists out of
  • M compiler/ogwasm.pas


+ started parsing of custom sections - known custom sections are dispatched to
a specialized parsing function for each of them, while unknown custom sections
(currently the ones, not produced by FPC) produce an error
Commit consists out of
  • M compiler/ogwasm.pas


+ parse and check the version of the 'linking' section
Commit consists out of
  • M compiler/ogwasm.pas


+ parse the linking custom section by splitting it into subsections and call subfunctions (dummy for now) for each subsection
Commit consists out of
  • M compiler/ogwasm.pas


* the 'linking' section is a section, not a subsection. Fix error messages.
Commit consists out of
  • M compiler/ogwasm.pas


* set FReader and InputFileName in the beginning of TWasmObjInput.ReadObjData
Commit consists out of
  • M compiler/ogwasm.pas


+ parse the WASM_SEGMENT_INFO subsection
Commit consists out of
  • M compiler/ogwasm.pas


+ check for duplicated WASM_SEGMENT_INFO subsections
Commit consists out of
  • M compiler/ogwasm.pas


+ added DataSegments dynarray of record, that will store data segment info
Commit consists out of
  • M compiler/ogwasm.pas


+ check for duplicated data sections
Commit consists out of
  • M compiler/ogwasm.pas


+ read the data count from the data section. Set size of the DataSegments
array, if the data count section hasn't been encountered. Compare the count
with the value from the data count section, in case the data count section
has been encountered, and issue an error, if they differ.
Commit consists out of
  • M compiler/ogwasm.pas


* check that the data count section preceeds the data section and report an error otherwise
Commit consists out of
  • M compiler/ogwasm.pas


+ parse the data section in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ verify the segment count when parsing the WASM_SEGMENT_INFO subsection
* moved local vars to avoid bug
Commit consists out of
  • M compiler/ogwasm.pas


- removed debug writeln
Commit consists out of
  • M compiler/ogwasm.pas


* moved another local var to avoid bug
Commit consists out of
  • M compiler/ogwasm.pas


* fill the data in the DataSegments array when parsing the WASM_SEGMENT_INFO subsection
Commit consists out of
  • M compiler/ogwasm.pas


+ read the section content in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ check for memory index other than 0 in the wasm object reader and report an error, since that is not supported
Commit consists out of
  • M compiler/ogwasm.pas


+ check and report an error if a passive data segment is encountered by the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


* attempt to avoid warning, treated as error, causing CI failure
Commit consists out of
  • M compiler/ogwasm.pas


+ symbol table subsection duplicate check
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented parsing of the symbol table in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm object reader: store the symbol table in a dynamic array, so it can be processed later
Commit consists out of
  • M compiler/ogwasm.pas


+ check bounds for SymIndex of SYMTAB_DATA symbols
Commit consists out of
  • M compiler/ogwasm.pas


+ create data symbols in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ support local binding when reading data symbols in the internal wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm obj reader: store the parsed import data from the import section in local arrays and structures
Commit consists out of
  • M compiler/ogwasm.pas


+ store in the FuncTypes array the func types, parsed in the function section
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm object reader: range check the symbol indices of SYMTAB_FUNCTION entries
Commit consists out of
  • M compiler/ogwasm.pas


+ partially implemented the creation of symbols for SYMTAB_FUNCTION entries
Commit consists out of
  • M compiler/ogwasm.pas


+ include mod name in symbols
Commit consists out of
  • M compiler/ogwasm.pas


* The "Val" intrinsic is now simplified for string constants akin to a
pure function.
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/ninl.pas


* Fixed bug where a call node's intrinsic code
wasn't copied over during "DoGetCopy"
Commit consists out of
  • M compiler/ncal.pas


* Fixed bug where the original index of a call
para wasn't copied over during "DoGetCopy"
Commit consists out of
  • M compiler/ncal.pas


+ wasm object reader: implemented parsing of the global section
Commit consists out of
  • M compiler/ogwasm.pas


+ fully implemented reading the code section
Commit consists out of
  • M compiler/ogwasm.pas


+ check the code entries count in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm object reader: create code sections and symbols
Commit consists out of
  • M compiler/ogwasm.pas


+ parse the export table in the wasm internal object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ add oso_keep flag to the code sections that contain an export
Commit consists out of
  • M compiler/ogwasm.pas


+ create exe sections in the wasi internal linker script
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ auto add oso_data and oso_sparse_data when creating a .bss segment on the wasm target
Commit consists out of
  • M compiler/ogbase.pas


* set MaxMemPos in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


+ started implementing the reading of relocation sections in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented parsing of the relocation section
Commit consists out of
  • M compiler/ogwasm.pas


+ check for supported relocation types, report an error if an unsupported type is found
Commit consists out of
  • M compiler/ogwasm.pas


+ keep track of section indexes. Save the code and data section indexes.
Commit consists out of
  • M compiler/ogwasm.pas


* disallow (for now) relocations for sections other than the code and data sections
Commit consists out of
  • M compiler/ogwasm.pas


+ store the parsed relocation table in an array
Commit consists out of
  • M compiler/ogwasm.pas


+ find the code and data segment of each relocation
Commit consists out of
  • M compiler/ogwasm.pas


+ create relocation objects for R_WASM_FUNCTION_INDEX_LEB relocations in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ create relocation objects for R_WASM_TABLE_INDEX_SLEB relocations in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ create relocation objects for R_WASM_TABLE_INDEX_I32 relocations in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ create relocation objects for R_WASM_MEMORY_ADDR_LEB relocations in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ create relocation objects for R_WASM_MEMORY_ADDR_SLEB relocations in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


* fix warning
Commit consists out of
  • M compiler/ogwasm.pas


+ create relocation objects for R_WASM_MEMORY_ADDR_I32 relocations in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ create relocation objects for R_WASM_TYPE_INDEX_LEB relocations in the wasm object reader
Commit consists out of
  • M compiler/ogbase.pas
  • M compiler/ogwasm.pas


+ create relocation objects for R_WASM_FUNCTION_OFFSET_I32 relocations in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


* fix typo in comment
Commit consists out of
  • M compiler/procdefutil.pas


* also keep track of captured def (necessary when functions are captured)
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/nld.pas
  • M compiler/procdefutil.pas
  • M compiler/procinfo.pas
  • M compiler/symdef.pas


* correctly handle managed function results when converting a global or nested function to a function reference
+ added test
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/test/tfuncref54.pp


* the adjusted nested function needs to access the parent function for the capturer
Commit consists out of
  • M compiler/procdefutil.pas


* only walk the node tree if there are indeed captured symbols to convert
Commit consists out of
  • M compiler/procdefutil.pas


* ensure that nested functions that are assigned to function pointers are considered as captured as well
Commit consists out of
  • M compiler/pexpr.pas


* keep track which nested function definition the new method has been converted from
Commit consists out of
  • M compiler/procdefutil.pas
  • M compiler/symdef.pas


* allow a nested function that calls itself can be converted to a function reference
+ added test
Commit consists out of
  • M compiler/procdefutil.pas
  • A tests/test/tfuncref55.pp


LLVM: enforce line information for invoke instructions

Like with call instructions, when generating debug information LLVM requires
line information for invoke instructions that may be inline
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


+ Extracted the func list maintenance functionality from the WebAssembly object
writer to a new TWasmFuncTypeTable class. This will allow for it to be reused
in the WebAssembly exe writer as well.
Commit consists out of
  • M compiler/ogwasm.pas


* TWasmFuncTypeTable.AddFuncType renamed .AddOrGetFuncType
Commit consists out of
  • M compiler/ogwasm.pas


Try to compute correct page size for wlib call
Commit consists out of
  • M compiler/link.pas


- removed TWasmObjData.AddFuncType, instead call directly [F]FuncTypes.AddOrGetFuncType
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasm32/aasmcpu.pas


+ initialize TWasmObjData.FFuncTypes in TWasmObjData's constructor
Commit consists out of
  • M compiler/ogwasm.pas


+ added a TWasmFuncTypeTable instance to TWasmExeOutput
Commit consists out of
  • M compiler/ogwasm.pas


* SymbolTable.ObjSym type changed from TObjSymbol to TWasmObjSymbol
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly object reader: create symbols for imports that have the
WASM_SYM_EXPLICIT_NAME flag set. Save the import module and name info inside
a new field TWasmObjSymbol.LinkingData.
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented TWasmExeOutput.GenerateLibraryImports
Commit consists out of
  • M compiler/ogwasm.pas


+ process the module imports and write them to the map file in TWasmExeOutput.AfterUnusedSectionRemoval
Commit consists out of
  • M compiler/ogwasm.pas


+ store the functype in TWasmObjSymbolLinkingData
Commit consists out of
  • M compiler/ogwasm.pas


+ added TWasmFuncType.ToString implementation
Commit consists out of
  • M compiler/wasm32/cpubase.pas


+ also write the functype of imported functions in the linker map file
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly internal linker, exe writer: keep track of exe import functions. Add and fill TWasmObjSymbolLinkingData.ExeFunctionIndex
Commit consists out of
  • M compiler/ogwasm.pas


+ added a section array to the wasm exe writer
Commit consists out of
  • M compiler/ogwasm.pas


* converted some helper methods from TWasmObjOutput to global functions, so they can be reused in the exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ added and implemented TWasmExeOutput.WriteWasmSection
Commit consists out of
  • M compiler/ogwasm.pas


+ initialize TWasmExeOutput.FWasmSections
Commit consists out of
  • M compiler/ogwasm.pas


* WriteWasmBasicType and WriteWasmResultType converted to global functions to allow reuse in the exe writer
Commit consists out of
  • M compiler/ogwasm.pas


* writing of the type wasm object section extracted to a method TWasmFuncTypeTable.WriteTo, so it can be reused in the exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ generate and write the Type section in the WebAssembly internal exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ generate the import section in the wasm exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly exe writer: write the code section
Commit consists out of
  • M compiler/ogwasm.pas


* set TWasmObjSection.MainFuncSymbol in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


* extracted the import preparation to a separate method TWasmExeOutput.PrepareImports
Commit consists out of
  • M compiler/ogwasm.pas


+ write the type indexes correctly
Commit consists out of
  • M compiler/ogwasm.pas


+ added check for the ExeFunctionIndex inside WriteCodeSegments
Commit consists out of
  • M compiler/ogwasm.pas


+ fill the memory section in the wasm exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ partial implementation of RELOC_FUNCTION_INDEX_LEB relocations in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


+ write the import function indexes in the linker map file
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: write the functions, defined in the current module in the linker map file
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: use the main symbol (without WASM_SYM_EXPLICIT_NAME,
i.e. not an alias) to define code section names in the wasm object reader.
For example, the section for the INITHEAP function is now called:
.text.n_SYSTEM_$$_INITHEAP
instead of
.text.n__FPC_InitHeap
(which is based on an explicit alias for the function - '_FPC_InitHeap')
Commit consists out of
  • M compiler/ogwasm.pas


+ report an error in case a wasm object file has a code section, without a main symbol
Commit consists out of
  • M compiler/ogwasm.pas


* only set MainFuncSymbol of code sections to the main (non-alias) symbol
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: fill ExeFunctionIndex of alias code symbols as well
Commit consists out of
  • M compiler/ogwasm.pas


* produce an internal error, instead of a warning in case of RELOC_FUNCTION_INDEX_LEB pointing to a function with missing ExeFunctionIndex
Commit consists out of
  • M compiler/ogwasm.pas


* refactor: invert if condition and else statement (reducing the nesting level), because then terminates the function. No functional changes.
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented RELOC_TYPE_INDEX_LEB relocations in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: start the data section at offset 0, as WebAssembly is a Harvard architecture.
Commit consists out of
  • M compiler/ogwasm.pas


+ webassembly internal linker: create separate exe sections for .rodata and .bss
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/systems/t_wasi.pas


+ WASI internal linker: implemented GetCodeSize, GetDataSize and GetBssSize.
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ write the data section in the wasm internal linker exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented R_WASM_MEMORY_ADDR_I32 relocations in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


+ implement R_WASM_TABLE_INDEX_I32 relocations in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


+ create the Table and Elem sections in the wasm exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented R_WASM_MEMORY_ADDR_LEB relocations in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


+ implemented R_WASM_MEMORY_ADDR_SLEB and R_WASM_TABLE_INDEX_SLEB relocations in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: produce an error if an R_WASM_SECTION_OFFSET_I32 or an
R_WASM_TAG_INDEX_LEB relocations is encountered - these aren't implemented,
and are not required for 'hello, world', so will be done later.
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: process SYMTAB_GLOBAL import entries
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: internally define the '__stack_pointer' global symbol
Commit consists out of
  • M compiler/ogwasm.pas


+ also define non-imported SYMTAB_GLOBAL symbols in the wasm internal object reader
Commit consists out of
  • M compiler/ogwasm.pas


+ create relocations for R_WASM_GLOBAL_INDEX_LEB entires in the wasm object reader
Commit consists out of
  • M compiler/ogwasm.pas


* define the __stack_pointer symbol in a different way, so it doesn't crash during linking
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/systems/t_wasi.pas


* use SizeInt instead of PtrInt for the stack area size (this both matches the declaration in TypInfo as well as enough on 16-bit targets like i8086)
Commit consists out of
  • M compiler/ncgrtti.pas


+ wasm internal obj reader: add globals to a '.wasm_globals' object section
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/systems/t_wasi.pas


* set the size of AT_WASM_GLOBAL symbols to 1
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: put all wasm global symbols in separate sections,
called .wasm_globals.n_XXX. This allows section-based smartlinking to work on
global symbols.
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/systems/t_wasi.pas


* more clean variable initialization
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ implemented R_WASM_GLOBAL_INDEX_LEB relocations in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


+ generate the global section in the wasm internal linker exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ write export section in the wasm internal linker exe writer, only the memory is exported for now
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: write the exported functions to the export section in the exe writer
Commit consists out of
  • M compiler/ogwasm.pas


* fixed bug in the application of RELOC_GLOBAL_INDEX_LEB fixups in the wasm internal exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ allocate stack and set the initial value for the stack pointer in the wasm internal exe writer
Commit consists out of
  • M compiler/ogwasm.pas


* start the data at offset 1024 instead of 0, just like the LLVM linker
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: start the .text section at mempos 0
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal exe writer: set mempos for code sections to the offset within
the code section. This does not affect the .wasm binary generation, only the
linker map file.
Commit consists out of
  • M compiler/ogwasm.pas


+ added check for whether R_WASM_TABLE_INDEX_I32 relocations always point to a function symbol in the wasm internal object reader
Commit consists out of
  • M compiler/ogwasm.pas


Fix wrong explicit typecast of srsym variable (caught by -CR option)
Commit consists out of
  • M compiler/scanner.pas


Add emulation_opt settings for all four mips CPUs
Commit consists out of
  • M compiler/systems/t_linux.pas


+ fill the correct minimal number of memory pages required in the wasm internal linker
Commit consists out of
  • M compiler/ogwasm.pas


+ increased the default stack size of the WASI platform from 64 KB to 8 MB (like in i386-linux)
Commit consists out of
  • M compiler/systems/i_wasi.pas


+ read debug sections in the wasm internal object reader
Commit consists out of
  • M compiler/ogwasm.pas


* ignore relocation sections for custom sections for now (will be done later), so that we can proceed with the debug info generation in a later phase
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm object reader: allow other sections to be created before the first code section
Commit consists out of
  • M compiler/ogwasm.pas


+ add the debug sections in the WASI internal linker script file
Commit consists out of
  • M compiler/systems/t_wasi.pas


Add string constant values to stringconstn nodes in parse tree output
Commit consists out of
  • M compiler/ncon.pas


LLVM: fix missing line debug info for some invokes in specialised functions

Required when the code can be inlined. Fixes compilation with debug info of
system.messaging.pp
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


Extended RTTI: optimise fetching VMT index
Commit consists out of
  • M compiler/ncgrtti.pas


Extended RTTI: fix use of wrong def for the methods table

Fixes LLVM compilation
Commit consists out of
  • M compiler/ncgvmt.pas


* increase PPU version due to Extended RTTI related changes
Commit consists out of
  • M compiler/ppu.pas


* for some reason my ppu.pas had a version of 18, instead of 20... so now the correct version m(
Commit consists out of
  • M compiler/ppu.pas


Add struct field names to subscriptn nodes in parse tree output
Commit consists out of
  • M compiler/nmem.pas


+ write debug sections in the wasm internal exe writer
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: pass a TWasmCustomDebugSectionType parameter to ReadDebugSection
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: also read the '.debug_frame' and '.debug_str' sections
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: record section indices for debug sections. Check for duplicated debug sections.
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: support relocations for debug sections
Commit consists out of
  • M compiler/ogwasm.pas


+ support R_WASM_SECTION_OFFSET_I32 relocations in the wasm internal object reader
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal object reader: validation of the RelocIndex range moved to a single place - in ReadRelocationSection
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal object reader: removed the warnings in case of missing symbol (this will now create an internal error, instead)
Commit consists out of
  • M compiler/ogwasm.pas


* refactor: changed the type RelocationTable.RelocType to avoid type casts. No functional changes.
Commit consists out of
  • M compiler/ogwasm.pas


* refactor: changed the type of SymbolTable.SymKind to TWasmSymbolType, to avoid type casts. No functional changes.
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: validate that relocations that should point to a SYMTAB_FUNCTION entry, actually point to such entry
Commit consists out of
  • M compiler/ogwasm.pas


* fix warning
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: added range check to the reader of the SymKind field
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: check that relocations that should point to a SYMTAB_DATA symbol, actually point to such symbol
Commit consists out of
  • M compiler/ogwasm.pas


* fix warning
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: check that R_WASM_GLOBAL_INDEX_LEB point to a SYMTAB_GLOBAL symbol
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: perform R_WASM_SECTION_OFFSET_I32 relocations
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: set mempos of debug sections to 0
Commit consists out of
  • M compiler/ogwasm.pas


- wasm internal object reader: removed redundant check for R_WASM_TABLE_INDEX_I32 pointing to a SYMTAB_FUNCTION entry (we now do this check earlier)
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: implemented R_WASM_FUNCTION_OFFSET_I32 relocations
Commit consists out of
  • M compiler/ogwasm.pas


* fix warning
Commit consists out of
  • M compiler/ogwasm.pas


* fix warning
Commit consists out of
  • M compiler/ogwasm.pas


+ WASI internal linker: add all object sections, starting with '.bss' to the .bss section
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ WASI internal linker: also add .debug_frame and .debug_str sections to the output binary
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ WASI internal linker: simplify linker script generation for the .text, .rodata, .data and .bss sections via the use of ScriptAddGenericSections
Commit consists out of
  • M compiler/systems/t_wasi.pas


* wasm internal linker: fixed the relocation of imported function symbol aliases
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: skip the element section when reading object files. This fixes linking with object modules, produced by the external assembler.
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: parse the tag section
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: read tag imports
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: store the tags from the tag section in the TagTypes array
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: bounds check the tag type index against the types table
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: read tags from the export section
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: range check event symbols against the tag index space (imports + tag section)
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal object reader: create symbols for SYMTAB_EVENT entries in the symbol table
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal object reader: validate that R_WASM_TAG_INDEX_LEB relocations point to a SYMTAB_EVENT symbol
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal object reader: convert R_WASM_TAG_INDEX_LEB relocations to relocation objects
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: treat exception symbols as AB_COMMON
Commit consists out of
  • M compiler/ogwasm.pas


+ WASI internal linker: added the .wasm_tags exe section to the linker script
Commit consists out of
  • M compiler/systems/t_wasi.pas


* wasm internal object reader: handle tag symbol flags properly (support weak and local symbols)
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: set mempos of the .wasm_tags (and .wasm_globals) section to 0
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: create the tag section (if not empty)
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: implemented RELOC_TAG_INDEX_LEB relocations
Commit consists out of
  • M compiler/ogwasm.pas


* wasm internal linker: produce an internal error on unknown relocations
Commit consists out of
  • M compiler/ogwasm.pas


+ enable the WASI internal linker
Commit consists out of
  • M compiler/systems/i_wasi.pas


* fixed internal linker crash if no tags are defined (i.e. no WASM native exceptions used)
Commit consists out of
  • M compiler/ogwasm.pas


LLVM: remove flags used to support older LLVM versions
Commit consists out of
  • M compiler/llvm/agllvm.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/llvm/llvminfo.pas


* search using the real package name instead of the uppercased one so that an as-is cased package will be found as well
Commit consists out of
  • M compiler/fpcp.pas


* factor out pointer_dec
Commit consists out of
  • M compiler/ptype.pas


* range checking is already performed in pass_typecheck
Commit consists out of
  • M compiler/arm/narmcon.pas


* ensure that the legacy method table has the correct alignment on platforms that require it (e.g. SPARC64)
Commit consists out of
  • M compiler/ncgvmt.pas
  • M rtl/inc/objpas.inc
  • M rtl/objpas/typinfo.pp


* Fix missing escape for dollar sign
Commit consists out of
  • M compiler/msg/errore.msg


+ generate DWARF debug info for WebAssembly locals
Commit consists out of
  • M compiler/dbgdwarf.pas


do not display the changing assembler note, if the internal and the external assemblers are the same, or there's no internal assembler defined
Commit consists out of
  • M compiler/options.pas


tabs to spaces cosmetics, no functional change
Commit consists out of
  • M compiler/options.pas


m68k: add more cases, where TST instructions can beoptimized away, because the previous instruction already sets all the required flags
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


m68k: refactored the optimizer to avoid direct asml management where possible, and use standard functions instead
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


m68k: fix tw40182 test
Commit consists out of
  • M compiler/m68k/n68kadd.pas


* fixed bug that caused 'c in ['a'..'z']' to fail on the WebAssembly target, when code is compiled with {$packset 1}
Commit consists out of
  • M compiler/ncgset.pas
  • A tests/test/tset8.pp


Avoid range check error in AddNormalStringDef
Commit consists out of
  • M compiler/dbgdwarf.pas


* Vectors of string constants are now simplified into ordinal constants
Commit consists out of
  • M compiler/nmem.pas


Issue internal error in def type is errordef
Commit consists out of
  • M compiler/symtype.pas


- removed the ENABLE_WASM_INTERNAL_LINKER define from the .lpi file
Commit consists out of
  • M compiler/ppcwasm32.lpi


- removed the DEBUG_WASM_GOTO define from the .lpi file
Commit consists out of
  • M compiler/ppcwasm32.lpi


* Fixed issue where Val shortcutting would not compile under 32-bit systems
Commit consists out of
  • M compiler/ncal.pas


* several issues with the in_val_x optimization fixed
Commit consists out of
  • M compiler/ncal.pas


* print the whole symbol name for hint messages
Commit consists out of
  • M compiler/symsym.pas


* fixed bug in the handling of WebAssembly goto
Commit consists out of
  • M compiler/wasm32/cpupi.pas


+ support for .debug_loc and .debuc_loclist sections
Commit consists out of
  • M compiler/aasmbase.pas
  • M compiler/aasmdata.pas
  • M compiler/aggas.pas
  • M compiler/ogbase.pas
  • M compiler/ogcoff.pas
  • M compiler/ogelf.pas
  • M compiler/ogrel.pas
  • M compiler/ogwasm.pas
  • M compiler/omfbase.pas
  • M compiler/powerpc/agppcmpw.pas
  • M compiler/x86/agx86int.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/z80/agsdasz80.pas
  • M compiler/z80/agz80vasm.pas


+ added a zero/unitialized/unknown value to TWasmBasicType: wbt_Unknown
Commit consists out of
  • M compiler/wasm32/agwat.pas
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/itcpugas.pas


* fix warning
Commit consists out of
  • M compiler/wasm32/cpubase.pas


+ introduced TWasmValueStack for tracking the state of the WebAssembly stack. Not used, yet, but will be in the future.
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


Add MaybeSwap for coffsectionrec records (needed for cross-endian compilation)
Commit consists out of
  • M compiler/ogcoff.pas


Also swap word/dword in case of cross-endian compilation
Commit consists out of
  • M compiler/ogcoff.pas


* fix compilation on 32 bit hosts
Commit consists out of
  • M compiler/nmem.pas


* last commit was not complete, fixed
Commit consists out of
  • M compiler/nmem.pas


Use writeUInt32LE/writeUInt16LE method to write multi-byte integer in importlib method in t_win unit (as all supported CPUs are little endian)
Commit consists out of
  • M compiler/systems/t_win.pas


+ added TWasmControlStack and frame. Not used, yet. Will be used in the future
for WebAssembly stack tracking and validation.
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* inverted the indices of TWasmValueStack, so that item 0 is top of stack
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fix gitlab 0040593: don't check for a static method when assigning a methodpointer to a function reference
+ added test
Commit consists out of
  • M compiler/defcmp.pas
  • A tests/webtbs/tw40593.pp


- the setter for tloadnode.procdef is not used, so remove it so that that tloadnode.setprocdef can be extended
Commit consists out of
  • M compiler/nld.pas


* fix gitlab 0040594: when assigning a nested function to a function reference don't check for the nested procvars parameter, because nested functions can be treated like anonymous functions here
+ added test
Commit consists out of
  • M compiler/htypechk.pas
  • M compiler/nld.pas
  • A tests/webtbs/tw40594.pp


* disable OptPass2Test and OptPass2CMP for now as it seems to result in buggy code
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86_64/aoptcpu.pas


Fix writing of low qword of floatx80 real type into 10-byte array on big endian systems
Commit consists out of
  • M compiler/entfile.pas


* Fix writing of 'comp' type depending on FPC_COMP_IS_INT64 macro.
* Fix writing of floatx80 on systems with gaps due to alignment requirements.
Commit consists out of
  • M compiler/assemble.pas


* Add internal_endian field to tppudumpfile class
* Check that this new field is indeed set, once only, by
header flags.
* Use this flag to extract high and low parts of floatx80
record for soft floatx80 support.
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


Use reverse_byte to write constant sets in cross-endian configuration
Commit consists out of
  • M compiler/dbgdwarf.pas


Add writeInt8/writeUInt8 methods to fix some cross-endian generation issues
Commit consists out of
  • M compiler/ogbase.pas


Use writeint8/writeuint8 methods to avoid cross-endian issues
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Support cross-endian compilation for telfobjdata.writereloc method
Commit consists out of
  • M compiler/ogelf.pas


Fix tabs
Commit consists out of
  • M compiler/ogelf.pas


* Fixed issue where OptPass2CMP and OptPass2TEST didn't drop out on labels etc.
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* Fix writereloc for cross-endian compilation
Commit consists out of
  • M compiler/assemble.pas


* Fixed issue where TryCmpCMovOpts produced bad
code if the last MOV got moved.
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas


* New Boolean "SetAndTest" utility function
Commit consists out of
  • M compiler/aoptutils.pas


* x86: New "STC/CLC; MOV" peephole optimisation
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* inserting $result into the symtables should never trigger a duplicate symbol error, resolves gitlab 0040608
Commit consists out of
  • M compiler/pparautl.pas
  • A tests/webtbs/tw40608.pp


Swap real constant in internal assembler
Commit consists out of
  • M compiler/assemble.pas


* x86: New "Jcc; CLC/STC; .Lbl" optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Fixed internal error 2022041701 number clash (LLVM changed to 2022041730)
Commit consists out of
  • M compiler/llvm/dbgllvm.pas


* x86: Separated out Jcc; STC/CLC optimisation and added additional peephole optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Additional STC/CLC; J(N)C deterministic jump optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: STC/CLC optimisations can now handle multiple Jcc instructions
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New "aoc_DoPass2JccOpts" option to catch branch and
STC/CLC optimisations that only manifest in Pass 2
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


Avoid 'false' warning: Local variable "gap_index" does not seem to be initialized on cycle with -O3 option
Commit consists out of
  • M compiler/assemble.pas


* DRY Refactoring: introduce discardppu
Commit consists out of
  • M compiler/fppu.pas


* Refactory: remove current_module use from top-level parsing
Commit consists out of
  • M compiler/parser.pas
  • M compiler/pmodules.pas


* Move implementation part to separate routine so we can split tasks later
Commit consists out of
  • M compiler/pmodules.pas


* Move interface parsing part to separate routine so we can split tasks later
Commit consists out of
  • M compiler/pmodules.pas


* Split parsing from post-processing, code generation and linking
Commit consists out of
  • M compiler/pmodules.pas


* Move program/library header parsing to separate routines
Commit consists out of
  • M compiler/pmodules.pas


* Remove commented variables
Commit consists out of
  • M compiler/pmodules.pas


* split module creation from parsing start
Commit consists out of
  • M compiler/parser.pas


+ more CPU and FPU flags added
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


* TWasmControlFrame changed to a record
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ implemented methods in TWasmControlStack: Push, Pop, GetItems, SetItems
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ implemented TWasmValueStack.GetCount
+ implemented TWasmControlStack.GetCount
+ implemented TWasmValidationStacks.PopVal
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TWasmBasicTypeList
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TWasmValidationStacks.PopVal(expect)
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TWasmValidationStacks.PushVals
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TWasmValidationStacks.PopVals
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fixed warning
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TWasmValidationStacks.PushCtrl
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fixed warning
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TWasmValidationStacks.PopCtrl
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TWasmValidationStacks.label_types
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TWasmValidationStacks.Unreachable
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* replace/restore_scanner use var in state to make sure the correct scanner is freed
Commit consists out of
  • M compiler/symcreat.pas


* Make current_scanner a function/procedure to better control lifetime
Commit consists out of
  • M compiler/scanner.pas


* use set_current_scanner, add mainscanner
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/globstat.pas


* Pass loaded from
Commit consists out of
  • M compiler/fppu.pas


* Remove use of current_module
Commit consists out of
  • M compiler/parser.pas


save/restore state when loading other modules.
Commit consists out of
  • M compiler/pmodules.pas


+ introduce x86-64 microarchitecture levels for cpu and fpu flags
Commit consists out of
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/cpuinfo.pas


* fix warnings
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* Remove freeold from set_current_scanner
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/globstat.pas
  • M compiler/parser.pas
  • M compiler/scanner.pas
  • M compiler/symcreat.pas


* Make tglobalstat a class
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/globstat.pas
  • M compiler/parser.pas
  • M compiler/pmodules.pas


* Remove loaded_from in tmodule. The same unit can be loaded from different places
Commit consists out of
  • M compiler/browcol.pas
  • M compiler/fmodule.pas
  • M compiler/fppu.pas
  • M compiler/pmodules.pas


* Split load_ppu for clarity
Commit consists out of
  • M compiler/fppu.pas


* Check whether call to deref(impl) is needed during re-resolve (indexes may be -1 if not yet built)
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/symtable.pas


* Introduce task (Single main-level task at the moment, no change in behaviour).
Commit consists out of
  • M compiler/compiler.pas
  • A compiler/ctask.pas
  • M compiler/finput.pas
  • M compiler/fmodule.pas
  • M compiler/fppu.pas
  • M compiler/globals.pas
  • M compiler/parser.pas
  • M compiler/pmodules.pas
  • M compiler/scandir.pas


* fixed some issues with the x86-64 instruction versions
* use more of the constants
Commit consists out of
  • M compiler/x86_64/cpuinfo.pas


* fix gitlab 0040618: apply adjusted patch by Евгений Савин (@jack128a) so that a non-load case expression is loaded into a temp first when converting a single range branch into an if-clause
+ added test
Commit consists out of
  • M compiler/nset.pas
  • A tests/webtbs/tw40618.pp


* fix typos in comment, no code changes
Commit consists out of
  • M compiler/scandir.pas


* decide more sophisticately if a temp. var is needed for fixing gitlab 0040618
Commit consists out of
  • M compiler/nset.pas


* extend LeaCallLeaRet2Jmp optimization to work on windows
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ also add x86-64 as cpu type (gcc compatibility)
Commit consists out of
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/cpuinfo.pas


+ Zen 4
Commit consists out of
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/cpuinfo.pas


+ implemented TWasmValidationStacks.Validate for many (but not all, yet) instructions
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fix warning
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* x86: Replaced CPU features array with "cpu_x86_64_v1_flags" where possible
Commit consists out of
  • M compiler/x86_64/cpuinfo.pas


* x86: Fixed CPU feature flags for AMD Jaguar and Piledriver
Commit consists out of
  • M compiler/x86_64/cpuinfo.pas


* comment fixed, hint by Maxim Ganetsky
Commit consists out of
  • M compiler/x86/agx86nsm.pas


* Introduce m_processed
Commit consists out of
  • M compiler/ctask.pas
  • M compiler/finput.pas
  • M compiler/parser.pas
  • M compiler/scanner.pas


* Introduce state variables, used to construct list of used units
Commit consists out of
  • M compiler/fmodule.pas


* Return first waiting in usedunitsloaded
Commit consists out of
  • M compiler/fmodule.pas


* Introduce m_processed
Commit consists out of
  • M compiler/ctask.pas
  • M compiler/fppu.pas
  • M compiler/pgenutil.pas
  • M compiler/pmodules.pas


* generate init_final table from actual uses clauses
Commit consists out of
  • M compiler/jvm/njvmutil.pas
  • M compiler/ngenutil.pas
  • M compiler/pmodules.pas


+ implemented support for the local.get, local.set and local.tee instructions in TWasmValidationStacks.Validate
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fix warning
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* protect against comparisons of nested types of generics and specializations
Commit consists out of
  • M compiler/defcmp.pas


* use iscurrentunit only when there isn't a suitable def that the moduleid of the symtables can be compared to
Commit consists out of
  • M compiler/symtable.pas


* fix gitlab 0040621: when checking for visibility of members then always use the genericdefs for specializations for correct scoping
+ added test
Commit consists out of
  • M compiler/symtable.pas
  • A tests/webtbf/tw40621.pp
  • A tests/webtbf/uw40621.pp


* stricter type checking for set constants, resolves gitlab 0040631
Commit consists out of
  • M compiler/ncnv.pas
  • A tests/webtbf/tw40631a.pp
  • A tests/webtbf/tw40631b.pp
  • A tests/webtbf/tw40631c.pp


* clean up of arrayconstructor_to_set, the stringdef case didn't work for years and is not tested, so it probably is not supposed to be there at all
Commit consists out of
  • M compiler/ncnv.pas


* complain about turned off support of c style operators only in the parser,
so error recovery is better
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/pexpr.pas
  • M compiler/scanner.pas
  • A tests/test/tcop1.pp
  • A tests/test/tcop2.pp
  • A tests/test/tcop3.pp
  • A tests/test/tcop4.pp
  • A tests/test/tcop5.pp


* x86-64: Typo fixed in FPU type string array
Commit consists out of
  • M compiler/x86_64/cpuinfo.pas


Avoid wrong typecast by adding check that p1 is an instuction before casting it to taicpu
Commit consists out of
  • M compiler/arm/aoptcpu.pas


Follow sdas documentation for .ascii limitations by using only printable chars and .byte for others
Commit consists out of
  • M compiler/z80/agsdasz80.pas


+ when calling FPC_THROWFPUEXCEPTION in a sub routine, pi_do_call must be set, fixed for aarch64
Commit consists out of
  • M compiler/aarch64/ncpuadd.pas
  • M compiler/aarch64/ncpuinl.pas
  • M compiler/aarch64/ncpumat.pas


+ function needs_check_for_fpu_exceptions to unify fpu exception handling
Commit consists out of
  • M compiler/aarch64/ncpuadd.pas
  • M compiler/aarch64/ncpuinl.pas
  • M compiler/aarch64/ncpumat.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/cgutils.pas
  • M compiler/riscv/cgrv.pas


* Handle finish state separately
Commit consists out of
  • M compiler/ctask.pas
  • M compiler/finput.pas
  • M compiler/fmodule.pas
  • M compiler/pmodules.pas


* Introduce constwresourcestring - in unicode mode, resource strings are unicode strings, and must be streamed differently
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/cresstr.pas
  • M compiler/dbgdwarf.pas
  • M compiler/htypechk.pas
  • M compiler/ncal.pas
  • M compiler/ncgld.pas
  • M compiler/ncon.pas
  • M compiler/ngtcon.pas
  • M compiler/nld.pas
  • M compiler/pdecl.pas
  • M compiler/pexpr.pas
  • M compiler/ppu.pas
  • M compiler/scanner.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas


+ set pi_do_call on xtensa as well if we check for fpu exceptions
* cosmetics
Commit consists out of
  • M compiler/xtensa/ncpuadd.pas
  • M compiler/xtensa/ncpuinl.pas
  • M rtl/xtensa/mathu.inc


+ lazarus project for a loongarch64 compiler
Commit consists out of
  • A compiler/ppcloongarch64.lpi


+ set pi_do_call on loongarch64 as well if we check for fpu exceptions
Commit consists out of
  • M compiler/loongarch64/ncpuadd.pas
  • M compiler/loongarch64/ncpuinl.pas


* fix gitlab 0040634: correctly check visibility for child classes in case of a mixture of specializations and non-specializations
+ added test
Commit consists out of
  • M compiler/symtable.pas
  • A tests/webtbs/tw40634.pp
  • A tests/webtbs/uw40634a.pp
  • A tests/webtbs/uw40634b.pp


* x86: Minor efficiency gains in OptPass1CMP
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ set pi_do_call on RiscV as well if we check for fpu exceptions
Commit consists out of
  • M compiler/riscv/nrvadd.pas
  • M compiler/riscv/nrvinl.pas


* x86: Fixed "Cmp1Jl2Cmp0Jle" and "CmpJe2NegJo" optimisations
being applied incorrectly if another jump follows
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Fix compilation with DEBUG_NODE_XML
Commit consists out of
  • M compiler/symsym.pas


* x86: Fixed error in "LeaLea2Lea 1" optimisation
not properly accounting for the first LEA
instruction having a repeated register
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ set pi_do_call on ARM as well if we check for fpu exceptions
Commit consists out of
  • M compiler/arm/narmadd.pas
  • M compiler/arm/narminl.pas


* move the checks for strict private and protected into their own nested functions
Commit consists out of
  • M compiler/symtable.pas


* use check_strict_private and check_strict_protected in their respective non-strict checks to avoid code duplication
Commit consists out of
  • M compiler/symtable.pas


- remove no longer required check as that is now handled by check_strict_private (not to mention that the check had been placed incorrectly anyway...)
Commit consists out of
  • M compiler/symtable.pas


* fix gitlab 0040634 the 2nd: a (strict) protected symbol in a parent class of the owner is supposed to be visible
+ added test
Commit consists out of
  • M compiler/symtable.pas
  • A tests/webtbs/tw40634b.pp
  • A tests/webtbs/uw40634c.pp


* fix the internal error of gitlab 0040639; however as the test code in question will only compile correctly with the next commit no test is added yet
Commit consists out of
  • M compiler/pdecobj.pas


Restrict use of A_MOVE to ufromsize and utosize = OS_INT. (contributed by Jinyang He)
Fix issue gitlab 0040648
Commit consists out of
  • M compiler/loongarch64/cgcpu.pas


* Fix latex error due to unescaped dollar
Commit consists out of
  • M compiler/msg/errore.msg


* generate specializations only of no error happened so far to prevent further (internal)errors, resolves gitlab 0040646
Commit consists out of
  • M compiler/pmodules.pas
  • A tests/webtbf/tw40646.pp


Avoid warning about unintialized 'ba' variable
Commit consists out of
  • M compiler/ogelf.pas


* improve pretty printing of symbols
Commit consists out of
  • M compiler/pdecobj.pas
  • M compiler/pgenutil.pas
  • M compiler/symdef.pas
  • M compiler/symtype.pas


WPO: handle classes defined in localsymtables

Can happen since the support for anonymous methods
Commit consists out of
  • M compiler/optvirt.pas


Set ba variable upfront to avoid warning treated as error
Commit consists out of
  • M compiler/ogelf.pas


+ thlcgobj.location_force_mem now supports LOC_JUMP as well, resolves gitlab 0040650
Commit consists out of
  • M compiler/hlcgobj.pas
  • A tests/webtbs/tw40650.pp


* cosmetics
Commit consists out of
  • M compiler/ogelf.pas


* Add Logging of tasks under define
Commit consists out of
  • M compiler/ctask.pas
  • M compiler/fmodule.pas


* Properly handle finish state
Commit consists out of
  • M compiler/ctask.pas
  • M compiler/fmodule.pas
  • M compiler/pbase.pas
  • M compiler/pgenutil.pas
  • M compiler/pmodules.pas


* Log continue result
Commit consists out of
  • M compiler/ctask.pas


* allow type = type ... ; syntax only for previously declared types, avoids also internal error for gitlab 0040566
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/ptype.pas
  • M rtl/inc/systemh.inc
  • R085 tests/webtbs/tw25077.pp tests/webtbf/tw25077.pp
  • A tests/webtbf/tw40566a.pp
  • A tests/webtbf/tw40566b.pp


* fix gitlab 0040655: apply changes to packrecords, packenum and setalloc using the recordpending*() functions so that they are applied correctly in case of them being used directly after a {$POP}{$PUSH} sequence
+ added test
Commit consists out of
  • M compiler/scandir.pas
  • M compiler/switches.pas
  • A tests/webtbs/tw40655.pp


* Fixed signature of insert_init_final_table
Commit consists out of
  • M compiler/aarch64/naarch64util.pas
  • M compiler/arm/narmutil.pas
  • M compiler/xtensa/ncpuutil.pas


* Fix xtensa compilation
Commit consists out of
  • M compiler/pmodules.pas
  • M compiler/xtensa/ncpuutil.pas


* Restore messages state
Commit consists out of
  • M compiler/globstat.pas


* patch by Rika: Fold repetitive scandir.pas cases, resolves gitlab 0040660
Commit consists out of
  • M compiler/scandir.pas


* don't throw an internalerror in case of an illegal assignment to an open array, resolves gitlab 0040662
Commit consists out of
  • M compiler/nld.pas
  • A tests/webtbf/tw40662.pp


* Force VMT at first position in system.tobject
Commit consists out of
  • M compiler/pdecobj.pas


* ensure that "type SomeName = type reference" is still allowed when function references are disabled
+ added test
Commit consists out of
  • M compiler/ptype.pas
  • A tests/tbs/tb0709.pp


Also reset check_valid_var after calling var_para_allowed
Commit consists out of
  • M compiler/htypechk.pas


Be sure not to add a symbol with empty name as an alias for function return variable
Commit consists out of
  • M compiler/pparautl.pas


* x86: "StcClcSet(c)2Mov" optimisation now checks to see if the destination register is in use
Commit consists out of
  • M compiler/x86/aoptx86.pas


* fixed fpu_x86_64_v4_flags
Commit consists out of
  • M compiler/x86_64/cpuinfo.pas


+ support a_call_indirect in TWasmValidationStacks.Validate
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* icelake is x86-64-v4
Commit consists out of
  • M compiler/x86_64/cpuinfo.pas


+ added a second TWasmFuncType parameter to the CALL WebAssembly instruction. It
is not part of the WebAssembly syntax and binary encoding, but it helps
WebAssembly stack tracking and validation.
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/agllvmmc.pas
  • M compiler/wasm32/hlcgcpu.pas


+ support the CALL instruction in TWasmValidationStacks.Validate
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ introduced TAsmData.RefAsmSymbolByClass - similar to RefAsmSymbol, but allows
to create a subclass of TAsmSymbol even in the case of external symbol.
Commit consists out of
  • M compiler/aasmdata.pas


+ introduced TAsmData.WeakRefAsmSymbolByClass
Commit consists out of
  • M compiler/aasmdata.pas


+ introduced TWasmGlobalAsmSymbol subclass of TAsmSymbol. Use it for all
AT_WASM_GLOBAL symbols. This allows in the future to add extra data to the
TWasmGlobalAsmSymbol, such as the WebAssembly global type, which will aid in
WebAssembly validation and stack tracking.
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasminl.pas


+ added the WasmBasicType to TWasmGlobalAsmSymbol. This will help WebAssembly
validation and stack tracking.
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasminl.pas


* Create and correctly typed variable for fieldsym instead of using typecasts
Commit consists out of
  • M compiler/ncgrtti.pas


+ support the global.get and global.set instructions in TWasmValidationStacks.Validate
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ support if,block,loop,else,end_if,end_block,end_loop in TWasmValidationStacks.Validate
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ support the BR and BR_IF instructions in TWasmValidationStacks.Validate
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* Allow use of attributes on fields and properties in records and classes
Commit consists out of
  • M compiler/pdecobj.pas
  • M compiler/pmodules.pas
  • M compiler/ptype.pas
  • M compiler/symdef.pas


+ Skylake-X
Commit consists out of
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/cpuinfo.pas


+ perform WebAssembly validation, if the compiler is compiled with the
DEBUG_WASM_VALIDATION defined
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/cpupi.pas


+ Skylake-X for i386
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86/agx86nsm.pas
  • M tests/webtbs/tw15415.pp


* fixed bug in thlcgwasm.a_op_reg_reg_reg_checkoverflow that used to generate
code that fails WebAssembly validation
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ support the native exception instructions in TWasmValidationStacks.Validate
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* stack checking is actually 'S'
Commit consists out of
  • M compiler/scandir.pas


* arm/a64: Fixed bug where shifter operand was not preserved in AND/CMP -> TST optimisation
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* Add codeaddress to extended RTTI for static methods
Commit consists out of
  • M compiler/ncgrtti.pas
  • M rtl/objpas/typinfo.pp


* Attributes must be assigned only to elements before the first colon
Commit consists out of
  • M compiler/pdecobj.pas
  • M compiler/pdecvar.pas
  • M compiler/ptype.pas


* Flags specific to TVecNode have been moved to their own field
Commit consists out of
  • M compiler/htypechk.pas
  • M compiler/i386/n386mem.pas
  • M compiler/ncgmem.pas
  • M compiler/nmem.pas
  • M compiler/node.pas
  • M compiler/pexpr.pas
  • M compiler/pstatmnt.pas


* Clarity over blocknode and VMT flags. nf_usercode_entry doesn't need to be cascaded in "firstpass" as TBlockNode.Simplify already does this
Commit consists out of
  • M compiler/node.pas
  • M compiler/pass_1.pas


* Flags specific to TAddNode have been moved to their own field
Commit consists out of
  • M compiler/i8086/n8086add.pas
  • M compiler/nadd.pas
  • M compiler/ncgadd.pas
  • M compiler/node.pas
  • M compiler/nutils.pas
  • M compiler/optcse.pas
  • M compiler/pexpr.pas
  • M compiler/ppcgen/ngppcadd.pas
  • M compiler/wasm32/nwasmadd.pas
  • M compiler/x86/nx86add.pas


* Flags specific to TModDivNode have been moved to their own field
Commit consists out of
  • M compiler/nmat.pas
  • M compiler/node.pas
  • M compiler/pexpr.pas


* Flags specific to TAsmNode have been moved to their own field
Commit consists out of
  • M compiler/nbas.pas
  • M compiler/ncgbas.pas
  • M compiler/node.pas
  • M compiler/pstatmnt.pas


* Flags specific to TAssignmentNode have been moved to their own field
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/ncal.pas
  • M compiler/ncgld.pas
  • M compiler/nld.pas
  • M compiler/node.pas
  • M compiler/nopt.pas


* Flags specific to TArrayConstructorNode have been moved to their own field
Commit consists out of
  • M compiler/jvm/njvmcnv.pas
  • M compiler/ncal.pas
  • M compiler/ncgld.pas
  • M compiler/ninl.pas
  • M compiler/nld.pas
  • M compiler/node.pas
  • M compiler/nopt.pas
  • M compiler/pexpr.pas


* Flags specific to TDerefNode have been moved to their own field
Commit consists out of
  • M compiler/i8086/n8086mem.pas
  • M compiler/ncgmem.pas
  • M compiler/ncnv.pas
  • M compiler/nmem.pas
  • M compiler/node.pas
  • M compiler/pinline.pas


* Flags specific to TInlineNode have been moved to their own field
Commit consists out of
  • M compiler/ninl.pas
  • M compiler/node.pas


* Reduced the number of expensive calls to "GetUserCode" in DFA
Commit consists out of
  • M compiler/psub.pas


* Atributes for class/record methods
Commit consists out of
  • M compiler/ncgrtti.pas
  • M compiler/pdecobj.pas
  • M compiler/ptype.pas
  • M rtl/objpas/typinfo.pp


* formatting
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/nbas.pas
  • M compiler/ncnv.pas
  • M compiler/ninl.pas
  • M compiler/nld.pas
  • M compiler/nmat.pas
  • M compiler/nmem.pas
  • M compiler/optcse.pas
  • M compiler/pstatmnt.pas


* increase ppu long version as the format changed
Commit consists out of
  • M compiler/ppu.pas


* nf_pass1_done, nf_error, nf_processing and nf_do_not_execute
have been moved to a new "transientflags" node field that
isn't stored in PPU files
Commit consists out of
  • M compiler/aarch64/ncpuadd.pas
  • M compiler/hlcgobj.pas
  • M compiler/nadd.pas
  • M compiler/nbas.pas
  • M compiler/ncal.pas
  • M compiler/ncgutil.pas
  • M compiler/nflw.pas
  • M compiler/node.pas
  • M compiler/nutils.pas
  • M compiler/optconstprop.pas
  • M compiler/optcse.pas
  • M compiler/optdfa.pas
  • M compiler/optloop.pas
  • M compiler/pass_1.pas
  • M compiler/pass_2.pas
  • M compiler/ppu.pas
  • M compiler/x86/nx86add.pas
  • M compiler/x86/nx86inl.pas


* patch by Rika: Don’t pretend optinfo^.index can be aword(−1), resolves gitlab 0040405
Commit consists out of
  • M compiler/optbase.pas
  • M compiler/optdeadstore.pas
  • M compiler/optdfa.pas


* arm/a64: Bug fix where instructions optimised into "mov r0,r0"
could leave registers undefined in some circumstances
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* Indentation and casing changes
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/ngenutil.pas
  • M compiler/symtable.pas


* Fix compilation
Commit consists out of
  • M compiler/avr/navrutil.pas


* patch by Sergey Larin: Compile dynarr := nil (and, preferably, SetLength(dynarr, 0)) as fpc_dynarray_clear, resolves gitlab 0040309
Commit consists out of
  • M compiler/ninl.pas


* a64: Several secondary peephole optimizations that clean up CSEL instructions
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* fix compilation with 3.2.2 rtl
Commit consists out of
  • M compiler/fmodule.pas


* transform -x-1 into not(x), resolves gitlab 0040313
Commit consists out of
  • M compiler/nadd.pas
  • A tests/tbs/tb0711.pp


* fix building of llvm compiler after node flag refactoring
Commit consists out of
  • M compiler/llvm/nllvmbas.pas


Fix post_load_or_compile tppumodule method for SHORT_ON_FILE_HANDLES code by adding from_module parameter
Fixes compilation of text mode IDE for go32v2 target.
Commit consists out of
  • M compiler/ctask.pas
  • M compiler/fppu.pas


Fix compilation with -dEXTDEBUG
Commit consists out of
  • M compiler/pmodules.pas


Fix compilation with -dDEBUG_DEVIRT
Commit consists out of
  • M compiler/pmodules.pas


* Fix TW22160B1
Commit consists out of
  • M compiler/ctask.pas
  • M compiler/fmodule.pas


* Initialize firstwaiting, after remark by Pierre
Commit consists out of
  • M compiler/fmodule.pas


* optimize also -(x+1) and -(1+x) into not(x)
Commit consists out of
  • M compiler/nmat.pas
  • M tests/tbs/tb0711.pp


* Handle rename of module during parsing, rebuild hash list. Fixes broken test tb0406.pas
Commit consists out of
  • M compiler/ctask.pas


* Fix tgeneric91, need to postpone some additional generic procedures
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/pgenutil.pas
  • M compiler/pmodules.pas


* x86: CMOVcc/Jcc pairs are now changed to MOV/Jcc if the register is not used if the jump doesn't branch
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* x86: Improvement to CMOVcc/Jcc optimisation that attempts to remove temporary registers storing constants
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Additional optimisation in OptPass2MOV to help with sub-optimal MOV/CMP/MOV triplets (and a minor refactor).
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Only consume semicolon after uses clause when units have been connected. Fixes remaining failing tests
Commit consists out of
  • M compiler/pmodules.pas


* set packenum and setalloc to defined values when changing mode, resolves gitlab 0040056
Commit consists out of
  • M compiler/scanner.pas
  • A tests/webtbs/tw40056.pp


* transform -1-x into not(x)
Commit consists out of
  • M compiler/nadd.pas
  • M tests/tbs/tb0711.pp


* optimize additions of empty sets away if possible, part of gitlab 0040384
Commit consists out of
  • M compiler/nadd.pas


* x86: New Op/TEST optimisation that rearranges register usage for the most efficient execution
Commit consists out of
  • M compiler/x86/aoptx86.pas


Be sure not to consume semicolon after _USES twice
Commit consists out of
  • M compiler/pmodules.pas


* Added missing "override" directive for XML node dump routine on TDerefNode
Commit consists out of
  • M compiler/nmem.pas


* Adjustment to "(v>=x) and (v<=y)" so it also optimises its inverse: "(vy)"
Commit consists out of
  • M compiler/nadd.pas


* Added support for 64-bit min/max intrinsics
Commit consists out of
  • M compiler/aarch64/ncpuinl.pas
  • M compiler/compinnr.pas
  • M compiler/defutil.pas
  • M compiler/ncginl.pas
  • M compiler/nflw.pas
  • M compiler/ninl.pas
  • M compiler/optcse.pas


* a64: Fixed bug where unsigned min/max inlines used a signed comparison
Commit consists out of
  • M compiler/aarch64/ncpuinl.pas


* x86: Min/max intrinsic support
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/x86/nx86inl.pas


* x86: Added new OptPass1CMOVcc peephole optimisation routine to dust up min/max code
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86/nx86inl.pas
  • M compiler/x86_64/aoptcpu.pas


* i8086: Local variables unused in "second_AndOrXorShiftRot_assign" on i8086 are now not defined on this platform
Commit consists out of
  • M compiler/x86/nx86inl.pas


* overflow check abs(...) for x86
Commit consists out of
  • M compiler/x86/nx86inl.pas


* Min/max intrinsics now simplify deterministic results
Commit consists out of
  • M compiler/ninl.pas


* more overflow checking for abs(...)
Commit consists out of
  • M compiler/x86/nx86inl.pas


* overflow checking for ti386inlinenode.second_abs_long
Commit consists out of
  • M compiler/i386/n386inl.pas


* Fix build of nativent
Commit consists out of
  • M compiler/compiler.pas
  • M compiler/parser.pas


FFix compilation of compiler with -dTest_Double_checksum
Commit consists out of
  • M compiler/ppu.pas


* use destination location instead of a temp when constructing sets, resolves gitlab 0040384
Commit consists out of
  • M compiler/nadd.pas


+ optimize s:=s+[e] into include(s,e)
Commit consists out of
  • M compiler/nadd.pas


* a64: New B -> RET peephole optimisation
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* write correct type name in error message
Commit consists out of
  • M compiler/pstatmnt.pas


Ensure register to be eliminated is de-allocated before applying optimization LdsMov2Lds.
Commit consists out of
  • M compiler/avr/aoptcpu.pas


* AArch64: avoid false overflow error in case of -2^63+0
Commit consists out of
  • M compiler/aarch64/cgcpu.pas
  • M tests/tbs/tb0712.pp


* AArch64: overflow checking for abs
* tabs adapted: also abs(longint) must overflow check on 64 bit platforms
Commit consists out of
  • M compiler/aarch64/ncpuinl.pas
  • M tests/test/units/system/tabs.pp


* avoid to generate bts/r with memory operand
+ thlcgx86.a_bit_set_reg_reg
Commit consists out of
  • M compiler/x86/hlcgx86.pas
  • M compiler/x86/nx86inl.pas


* thlcgobj.a_load_regconst_subsetref_intern uses a_bit_set_reg_reg if applicable
Commit consists out of
  • M compiler/hlcgobj.pas


Fix generation of i8086 CPU code, as BTR/BTS instructions require at least 386 CPU
Commit consists out of
  • M compiler/x86/hlcgx86.pas


* proper fix for 9056ab80257b71fb8bcdf90be2f71e2fbbf912b9
Commit consists out of
  • M compiler/x86/hlcgx86.pas


Add $EMUL also for sparc CPU GNU linker call on solaris OS
Commit consists out of
  • M compiler/systems/t_sunos.pas


Add -32/-64 for sparc GNU assembler calls
Commit consists out of
  • M compiler/sparcgen/cpugas.pas


* use bit_set_reg_reg also to clear single bits in thlcgobj.a_load_regconst_subsetref_intern
Commit consists out of
  • M compiler/hlcgobj.pas


* Fix access violation: module can be reset while loading dependent units. Fixes issue gitlab 0040705
Commit consists out of
  • M compiler/ctask.pas
  • M compiler/fppu.pas
  • M compiler/pmodules.pas


* avoid CMPs with constants outside the range of signed 32 bit values
Commit consists out of
  • M compiler/x86/nx86inl.pas


* fix simplication of max(double,double) with both values being constants
Commit consists out of
  • M compiler/ninl.pas


* fix i386 building after fb3c4ff75be75c367f4f4d505563475ef7accdb5
Commit consists out of
  • M compiler/x86/nx86inl.pas


* compilation with -dEXTDEBUG fixed
Commit consists out of
  • M compiler/pass_1.pas


+ 8086: overflow checking for abs()
Commit consists out of
  • M compiler/i8086/n8086inl.pas


+ arm: internal abs()
+ arm: overflow checking for abs(...)
Commit consists out of
  • M compiler/arm/narminl.pas
  • M compiler/options.pas


* compilation fixed
Commit consists out of
  • M compiler/arm/narminl.pas
  • M compiler/options.pas


+ generic implementation of abs()
Commit consists out of
  • M compiler/ncginl.pas


* overflow checking for generic abs()
* fix overflow checking on arm for 64 bit signed numbers
* arm uses generic abs()
Commit consists out of
  • M compiler/arm/cgcpu.pas
  • M compiler/arm/narminl.pas
  • M compiler/ncginl.pas


* all CPUs use now internal abs() so overflow checking is possible
+ added overflow checking to generic abs()
Commit consists out of
  • M compiler/ncginl.pas
  • M compiler/options.pas


* i386 uses generic x86 abs(long/int64) code now
Commit consists out of
  • M compiler/i386/n386inl.pas
  • M compiler/x86/nx86inl.pas


* compilation on 64 bit targets fixed
Commit consists out of
  • M compiler/ncginl.pas


+ abs(long/int64): overflow checking for xtensa implemented
Commit consists out of
  • M compiler/xtensa/ncpuinl.pas


* don't remove align directives before case jump tables (they have the type alt_addr)
Commit consists out of
  • M compiler/aoptobj.pas


+ comment to explain last commit
Commit consists out of
  • M compiler/aoptobj.pas


Fixed missing section for Raspberry Pi Pico
Commit consists out of
  • M compiler/systems/t_embed.pas


* fix min/max intrinsics on x86_64 for non constant/reference/register locations, resolves gitlab 0040721
Commit consists out of
  • M compiler/x86/nx86inl.pas


* sparc: overflow support for 64 bit operations
Commit consists out of
  • M compiler/sparc/cgcpu.pas
  • M compiler/sparcgen/cpubase.pas


+ avr: overflow checking for abs, together with the other recent abs-related commits, resolves gitlab 0040694
Commit consists out of
  • M compiler/avr/navrinl.pas


* another fix for min/max intrinsics on x86_64 for non constant/reference/register locations, resolves gitlab 0040724
Commit consists out of
  • M compiler/x86/nx86inl.pas


Increase default stack size to 8Mb for i386 and sparc solaris systems
Commit consists out of
  • M compiler/systems/i_sunos.pas


Use correct check for unsigned size in a_op64_{const/reg}_reg_reg_checkoverflow methods
Commit consists out of
  • M compiler/sparc/cgcpu.pas


* fix internalerror 200502052 with certain min/max optimizations on x86-64, resolves gitlab 0040730
Commit consists out of
  • M compiler/x86/nx86inl.pas


+ introduced cgbase.topcg2str and topcmp2str for converting TOpCg and TOpCmp to strings (useful for debug logging, etc)
Commit consists out of
  • M compiler/cgbase.pas


* second_abs: don't supply a separate 64 bit code path for high level cpu targets
Commit consists out of
  • M compiler/ncginl.pas


* ensure that left and right have a result type set in tx86addnode.pass_1, resolves gitlab 0040727
Commit consists out of
  • M compiler/x86/nx86add.pas
  • A tests/webtbs/tw40727.pp


* fix gitlab 0040708: when creating the sub-arraydefs for comma separated arrays, ensure that the new sub array also has the generic related information set up correctly
+ added test
Commit consists out of
  • M compiler/ptype.pas
  • A tests/webtbs/tw40708.pp


* check that the corresponding genericdef of the adjusted def is indeed valid
Commit consists out of
  • M compiler/symtable.pas


* extend read_anon_type() so that it can take a genericdef as well
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pdecvar.pas
  • M compiler/ptype.pas


* fix gitlab 0040721: correctly set up the generic defs when parsing fields, especially important when dealing with anonymous fields
+ added tests
Commit consists out of
  • M compiler/pdecvar.pas
  • A tests/webtbs/tw40712a.pp
  • A tests/webtbs/tw40712b.pp


* Fix gitlab 0040716: only add helpers if the type doesn't belong to the current object/class/record hierarchy
+ added test
Commit consists out of
  • M compiler/symdef.pas
  • A tests/webtbs/tw40716.pp


* fix gitlab 0040725: pass along whole array constructor to the Insert() so that it's converted with the correct checks
+ added test
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbf/tw40725.pp


+ propagate pointer constants
Commit consists out of
  • M compiler/optconstprop.pas


* allow [] for constant set constraints, resolves gitlab 0037020
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw37020.pp


+ also fold nil nodes when used as pointer constants
Commit consists out of
  • M compiler/nadd.pas


* run constant propagation multiple times if needed and if slow optimizations are turned on
Commit consists out of
  • M compiler/optconstprop.pas


+ propagate also widechar/pointer constants
Commit consists out of
  • M compiler/optconstprop.pas


+ fold also constant pointer operations on nil nodes
Commit consists out of
  • M compiler/nadd.pas


+ fold also divisons involving pointer constants (those nodes are internally generated only)
Commit consists out of
  • M compiler/nmat.pas

(inactive) Revisions in this set ccb169b0f1b3214c6b09b3bd89492e2ce0626fa1,6dd0a1c0784f1fded1ff03cd1f967cd08d1c31d4,f4d9082028cac807d4580fdc73e0bc1490abcb43,7bb9638094c2fd4dd8f91c5f55463033db3b4b9c,8fa80295d0c9adb867aed5b018c1094ded82aef3


* correctly handle PE COMDAT sections: like for the Comdat groups in ELF files the unused symbols need to be converted to externals so that relocations are handled correctly
Commit consists out of
  • M compiler/ogbase.pas

possibily resolvable by 0042340 or patch manually.



* year of copyright updated to 2022
Commit consists out of
  • M compiler/msg/errorct.msg
  • M compiler/msg/errord.msg
  • M compiler/msg/errorda.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg
  • M compiler/msg/errores.msg
  • M compiler/msg/errorf.msg
  • M compiler/msg/errorfi.msg
  • M compiler/msg/errorhe.msg
  • M compiler/msg/errorheu.msg
  • M compiler/msg/errorid.msg
  • M compiler/msg/erroriu.msg
  • M compiler/msg/errorn.msg
  • M compiler/msg/errorpl.msg
  • M compiler/msg/errorpli.msg
  • M compiler/msg/errorpt.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msg/errorr.msg
  • M compiler/msg/errorru.msg
  • M compiler/msg/errorues.msg
  • M compiler/msgtxt.inc


* copyright for 2023 updated
Commit consists out of
  • M compiler/msg/errorct.msg
  • M compiler/msg/errord.msg
  • M compiler/msg/errorda.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg
  • M compiler/msg/errores.msg
  • M compiler/msg/errorf.msg
  • M compiler/msg/errorfi.msg
  • M compiler/msg/errorhe.msg
  • M compiler/msg/errorheu.msg
  • M compiler/msg/errorid.msg
  • M compiler/msg/erroriu.msg
  • M compiler/msg/errorn.msg
  • M compiler/msg/errorpl.msg
  • M compiler/msg/errorpli.msg
  • M compiler/msg/errorpt.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msg/errorr.msg
  • M compiler/msg/errorru.msg
  • M compiler/msg/errorues.msg
  • M compiler/msgtxt.inc


* copyright year updated
Commit consists out of
  • M compiler/msg/errorct.msg
  • M compiler/msg/errord.msg
  • M compiler/msg/errorda.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg
  • M compiler/msg/errores.msg
  • M compiler/msg/errorf.msg
  • M compiler/msg/errorfi.msg
  • M compiler/msg/errorhe.msg
  • M compiler/msg/errorheu.msg
  • M compiler/msg/errorid.msg
  • M compiler/msg/erroriu.msg
  • M compiler/msg/errorn.msg
  • M compiler/msg/errorpl.msg
  • M compiler/msg/errorpli.msg
  • M compiler/msg/errorpt.msg
  • M compiler/msg/errorptu.msg
  • M compiler/msg/errorr.msg
  • M compiler/msg/errorru.msg
  • M compiler/msg/errorues.msg
  • M compiler/msgtxt.inc


Avoid running cleanppulogs and ppulogs rules in parallel
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc
  • M packages/Makefile
  • M packages/Makefile.fpc
  • M utils/Makefile
  • M utils/Makefile.fpc