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,cdce68451adb2285d3333a059f6003e1b32d55d7
64e8557180e68379b17d2d1a32b584c57893ffbf,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,0a0397c9f5c30e67ab1a94e4db4b5cde8288b92b
ba0768b6a6156b8c57274978ec072111b419ed6d,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,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,56d64b007f7eee75266dca41fc570e9286ee6e61
3c18dee6945d3cc2d8d59fd7909bfb1db1cc3061,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,b72419e2a517b6f89fcfa7dcc9506533b30745c7
72f6752b1cb6920c6483abe4705252f2eb51275e,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,37e934ffbd0864c0893f250e14c45130f11edb1b
60bb8600a1248ab490f5b5344e781967ba423bf7,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,3af6a9826347573ff8a33b50748e48541e41a1e9,fdfe06382a17e6daa86523b886dd03e013853146
f8c84dd1fd36d1647cca55943c640964579d13d9,99d88b91a9ec759fca2b345d7c38362ed1c285ee,ff87df758174e4f7be7303fb40f03895beaf270b
5ca2356638e7c3a144d832668a06e8dbe035993c,82957ec5a382eb151a7fcde2bed5f5ca041b887c,8e13adad4c6ad7e1b5a3a2f6358f0ae564eef30b
8192bf1b3373484e96c6a31c368b9dfbdddddbbc,fbb2e63fea518aa03f018f42589c14d8db8ed78f,c47d6d7af0ee2eedcf79aa76b91156ed4845e48b
9758bec36c75cdde8f63d4d2f822c6fe0ce5cf3a,0a3d980f7e883862dec13db1745e75646c5f6f09,ae71ab728462e24367107623c19c4ba6aaaf8716
9730a50a5badf6803d2f7412d98cc227240e70c8,c890a126fe2ce05614b0bbff10b8046146824d86,792b629aa6e33ed5f9dc8bd6427bd87aa9c2606d
7f07c9f94d9e963f5bd457ea667178ec0b73c1e3,d97929e9cf8db0b23a936830ec3e4e64206b6813,84bf87b20dbacb2db9bc8770043968fe1d4e35d9
9901a11d223ff5407a9d243a343e0811b1e41bf4,af17e9460b17f9e0cebf469fde8c221f8b501768,0b63068ad2b7270cd9abcdb79026f77956303d7d
06b229e1c33157af5d90c1596dd62b675ae34bc8,ec4556e03d6213debed73786cfa6e9f7cfdcd801,a7fa31aa10ffd22de56175d14a6321fdcad160b5
6230de31bb7507f9a4eb6694f283f769fe0eae9a,482698e566a62166d5cbb129409ba2d4cba8ea86,0cc91a50c782509d8fac0ed8f977f60a727fb387
28fdba2c08f6fdee34557b1419e310e70b864a41,0530a2f6e718ed0178d417551b0d4235506bd190,9c6bdcfbb793f7557fc0339c251a727e8f14b701
d8d472cf68aaa59c255456d23a5698d70858c45f,96fcd2e760881dff0086fa86eb208e30f0d47fb2,b2615a9ba11f613a7920efd59b2199cfbc4f4017
8e5a54c92e47f1257e804bab50b5e045917870d8,4f3a21eeecdcd63d878b4d010796a2bba43bb380,0189276a12c2784225e4d97baacb0a7bea6aac6c
19d5e4361575564889b0d4230a10fd84973c43e9,28d248c9d41e47fff2237448b7c30d1096d7908d,6e4997265ca10e315fa140d645b9166c64c95b7b
57dc416d9608f12749c1a50f7b058b0f62fd2c10,e60a367f1b325b10428f3c7a274a4b6d24d60ffe,7da0284bfce4513392431f80b2b4ea35e29c0011
19ce665b3d95ffd9a59577f980819665b32aa8fc,92520c423e7d6a78f7f657ddae930b6abb404794,4f3271500a84ec359824d38ec2a0f1da564dc4d3
c0d75c1c69f804e924f79271a188a2f5bc590397,1a9678f4c4fd4dc138cdfb5e1e94dee81877ce97,d49453edbadd3242cb7a1077d5d5390aeb7573ed
8d238cfaa17fdc886d8465f3d2416243400f30bc,b3680eb5bda0d635435859166223dcfae6d4690c,aeca33e80ad2db7c2c885c624b534c0b19aaef21
a7232669fff29a5a4054bb64ea000f402d31bc45,674c3f04e042493b93c3b89990bc321b20df1287,348be7657df8af9c28ad0230bd81e85ebb42dc2c
3707cb4b1ec8931596f2e0c33e820358bbf0a085,a0e96fd55111b9f4512653f9f782b43a8e7b479d,a849e51a3c698f59fe89facb9b161b2d8d91bfdb
7f96a26de03564f81ba124211601a0b969243b97,7040587cc3a8be4e692a4eb85ebf0a73eaff2b52,8c98be824df6e28fad2a957e4908cf96be65d400
2bd7877ec00e5de5cb954ce87403c604aad204b4,1efeb5851ada4f52ab63cda11fc1862198744a63,bb8c3fd153083180e5f527eaa95ec5a70f0b08fd
817ef6949ae0334c4cb2ffd3a1251b4f16439bee,0d592e8d1a3c232754f0de04a8803ed0dfc1b8a8,f0298f63d0a2442d867f9565155ac77ead27541c
a0a8a6911a1d0f9e17fbd6c7f4a54bcdb1a9adca,0ab69ea0ad067a2114eb1e5142afc99cf5f5d965,c82aae59a11fdfde4b5cf400392450312126e869
88a0d4d64bc49b3c18150773506a11a487467132,b90ec52a0eb7042ce95d12843c246c80a05caa4f,6d7d567a25a28dccb3f5603644a4fccbb9f1bacf
eb722c8294f91f274806673ee4941fd40334890a,00af340febfa4f8b38630d5818f3003d8e74d4dc,aeff5b3577af8d13b99a78e0021306a2c03aacf5
9a0107a19dee80cf629e147e6ccf70ac5843500b,a2b720da564edba0ab08efd53eba8a6aa126c0c5,d6fdb384590bf8306e16b990dac52ca86f90deab
2a7ca7ddc721fee3a36a0af405a47fdad1449af0,04b059268bb291cb1b5471481bacf5aa93a756eb,25b27281375284e07b7b9047d7cfcb14f2805555
fadac6a9a4169b7354b908e7ac7eb11b17927e68,9858d9c5e67ffc9580feda5de1789b8e7f6d1b2f,9af9f140a52981f0d88b7d26bdcf2f915c95ad89
80f87edffd5b383a3530571bebdf15899c7c1724,a1b252538fc592ad908f881b5b7aa63bc152696e,2a897f5b6b36e4817a73b18bc9e2d3c346befd30
518db35eb075e4bbee9fd9f55324b96d292abe4b,295e2d4dff621a17c042f1f48474b140f7bfb1d4,072be7b0f7dd383df9653c900080513e12a38afc
213f84ad6ce093b49829e9411b597b626fb113b8,75acaad1219d06bb3821c4d964dbd6bc17241ea9,2a990b8167e0da36ce24a4e90263ac8e6cb47aae
cc92af8423a84a63ca73688c50f211869af3be97,01691e9ecbe3a4cccd531799227886d3d1ac92b1,2ec8145ec543c0babf24ecd8de10d0114a91dca0
11c17a87de784e7cd6dd4e412336a6d2094244d4,2bcd2a4a937cb2c8eb5e2e090e03816e934b8549,b713c7380bbd705f224c1bc1ad1e26eb8f5694e4
3a668d9b7c1720851d9980e132e0201d02b6a1aa,b03eefd5d0bc17a5bcd03eb7850280509aa17b0b,6db164c9936938755328022913d2985b1d3eec66
26170815b410639e9a1b233a854884f913d47068,0fd7a5cb1fb05d0ee521c98cdcff695e95194b79,16a21eea87c564e9bd99c95eefb5980c9b230cfa
053c42da3376a83975d1b45b78587f466d28fcba,6190258f5d0c9b9992e8346bffbc8c18070f976b,33afecd117abbd8c48433ff6396bc3b7419cda09
c0c0acbcb9edd11007a891b0942d2d74ee315209,3e047d3691851aa988e95fd76fe241fdb2386470,5d51a788f77f5a9b6610375c5b7f7598274bc6ae
5e3e4437c442a0e916cc3137f1a17583161a78de,8ba4c4bcf0ccb8f927c6a15dd9cf07bb02789946,6169bbeed5936ec152279666681362007726f3cb
9b2bed6fdf168b694b7c62751b208bc82d075c16,e98771608e51c0ccb8b4910376e9e563b8b0c794,185f20b9ecfaa598d6d6e3c042707c4e87273e0f
93be88b270d425ff7725db6f653519d2459ae3dc,b7ade3e566160485a9fa8c5f16c337fe7b5dc47a,2452e991b86091045a296ca6251b66ca3f6cea5d
95fae1a81d7a92d9e7511e02400fa362d4763bbd,507f0b3362db9513e09255168306a3c46d35f0b3,2fc672452d27fe93609cb52bfca8a90a1b002cd7
eb7702bea42c58dc4591524ef35fce8ea9b5b62b,edfbf2ce30215262b7e8c2d5f0b9c516bead4fc3,7bba64854b52c877aac354180ba7928a903ff23f
195c8b599c1ddd61ebaa739fd2def0db21436cec,32999fbaba853286412aed98a5d2a89262a0cd65,b4a6c22234aeb9982a3d27ca0c37e0f2b7963958
97abf6b49557961c9fdd525b4b4db4e4763d6e37,e6037961e3be89a55dcb273dd8327fdb85d5338c,7de94e7a1dd1ee7de675c334fc936a64f72fb978
b6cf482fcf3fc1f916615c8fc80e552e241ad15c,f8fc0073248b2be95224d2419bb844b4bec0d5e9,3109005791794f433437c6d452e72f1bffbd4a4a
d854d18bd9730ffbe4340dd8a1dc9c2c1efd65b8,9179f9d43b5ebc1ba356a7d0ad12a13a2ac52b3f,43ba5b69d2b86a6b00908c0c1664cd893db22f9d
f42b39a7b5c586378c5baef31567ee53cc427715,a65d778f73ae920d4eeec28438c254ad9ee0f8cb,e4eed4e25994349c28dec79ab566831565bec643
7343e9c4a273b789577856915e0edf6613fa4b41,c96029ebd57c852dd3f006cf8769d9fd5473a605,b8578f804f48a7e7fc45a176f4556cf729dab2db
12adb47d65e06d4d730cbb860c711bb668a94367,de36d6c0499c2ce4ceba4825d004767f0ba944bb,c84c4eb1a4cfffe8cacef0193af7a854f34c5bc6
09c009868604cb1a9a065ea9c739a37c41c93923,ce1f115b2d17e17832f36c91b285e83aa3fe8f74,c3b5d0d5d5b522e8d1a594183e2b49dce34decfb
28efcfba65295ebf1b88238906b79594fe54fda4,57d9884d964cc8e1208814fc3b0f381c3140e642,aec18c2426a503c0c85e057bbc2f029d649fe3bf
6160abe37ec2fd61fcd1424cd62cf95fd2f8b1f6,80282d6effe141239c36d02d418c51142b38f6f5,7f775abb6dc5c5b3b3a1dfe347304a81d970df77
4e9b42344e5e19210d8ffec442f1bba631df9078,f42f62565bf31b15c943b91eab9fc5a9569e01fe,227bd3e9041fa1347905fcf666a951382c1a0f09
eb81b981cd66a1ab82fa0dcc05119e3a9c5a09d6,469959d9b52e49254c45885e9e9f6d631a3481b6,217e9ac5a5714fa60214616b33f0e7a0860c2a64
5c2303a76b1a616d24f9e41679bf61f79020f4c4,a286ad9d774c19718bea0cbfc84347dc67dd4862,64e796ace2f58eda26c7c732c8d592029f5cf297
17d1b8afdb7dfe862aaa84d4bb012c2674d8cfc6,ecdac1dd399df3d5dade5151e320686db821ef9e,472f8c900b8b5dd32333c930ba1c6f4a75828102
54ea8468fc0fa0c2775c82a10ad62785c2a8f11a,259c865667d580981c3b8b0e98287383f38b40a4,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,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,968d00fedf64ee56f23796069752cac3207d48e5,e310be017eb68e356085ffb0495fc1d042aaf294
a18a6b4391ee8c0786fdbccf8154949b41be86b1,9526fc64cde63ce5768ebc21f9cacdbd9b827219,4a67f098ee5f2077417ed8b47e6912a0e4794d1e
c28995494c33ff0cf4c66858e8a7de86e10dc411,5ab67753769a4dd11c3d6c4d2356a18a6bf14fba,f134e3b0eec1866a21572feb012813fa14623b87
3ce6cae11d0f754038ac31a3249431903a7909c3,468975aa3046e252c5ebbf4c9a01088dc7d86952,9305bff861034a05c8919a8dcc3783017eff6c61
4d8ecfb42270e418060c9de45ac5a1527150c66c,dca4bde3a2b43a31fa0e6dbc564c823f53a20da2,1f272f8f90cb1fc0a0a9ba3723aad13ebfcc5f03
8efae66956c35ef07d5dd817cfa20d6600b6fab7,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,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
2a50d5abf82d4806129fe9b6475a090dc9204534,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,326776c7fa47a36692b800a78966c66ba295ee38,9ee672f9eb8584c4d2de627aa131f6299711776f
4d33e5f137bce78e1d14a02cee370fd42e6adebe,d5a104f493227253eed8daa13f8b631366bfdccf,4966e9376477defcdf6f292a8ef84d2079c7ce41
6a9b4a1b13b4e0585301037c6f26838216f43ebd,1d4c28fb35ffe12a16ae79c8e6cd3c4a85b38c7b,c3e94051a18038745302b04dd6e1a75fa5153574
bb49c190afdd16da94cae4c6fdbc1e5ae4f8aa7f,6ac50f4100ee4c4e967dbd5754d338d4c7debe3a,088c746d45fadc744878771d586ecd42a1d75b31
9d95e6159ef7e9a88b50c751341e789db2e1033b,985e8d3d13ae35a53b3353ffe79df261cb8e5680,8e4e229a5fe9e8086d39bf36d23496794e29fe6f
d209d3ba846b9f8a5858efe1a261f793b30349e7,2d1ab3410dee76eece1a7e7b980f0b278fa19310,11d16be702862041c9793a389bbf5c9ce179bda8
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,6ca6666d28d27151fdf2bf04c570d92afba6e154
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
510a281c3fcbfc67a8691a892a17d37cb662dbae,8784dbc095442790a2f24cb675fdc67d1fe2d08f,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,98ecfb1e4146927de0530a862643ddbafdc7a249,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,43bdd8c07e7dc0ac9814135c4c99ad463ead4890,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
897caac4ac733e650c1e0109e692ddd066ad9238,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,b0675058f5764236ed3b32279700155fc968a1ed
c32d556a3c1377b40284b68ecce8a3eef74fd8b3,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,cdba427bcf82e1c7af5a47b132f17550be4a473b,130c36c406e500af2dfae72748bdf470db602b5f
36f771a3125ada1b155bb98b62765f88bb9bb540,e142953c6d2b796e833e441773acd51325a7ed77,dd0711a27e85d15d45dc47e7b014c6bcc3fbf230
626e23d89fbb58d5eb3aa4ac9532fe8790d1d689,399d82e1da8ddef74297867282862598aa96fd97,d35be8a9eac21ee762b452df1ea879c9c5699f03
2c51abf40dcbdfdfad4532f571e1f095dff9c8aa,2b48afe151a41943520040852a7d075968ff1bf6,3d805b8a9a2e9803f58ae40ce286b274877f2b78
a1ea1dd98e7c76d656a232e822d3d7c47063a11a,fb66369a3bcffdf7d2a96cffe8c633b2ecd12182,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,8bb3367a491826f1f5984810bdee49b8ee35552e
8520dabebb53c28245bb39d8b52503aa750e02a1,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,2596af84faf82b0cd93c56989bd774789be03d66
224f62a843c2d478e3de70e44d07f3b91a7afae5,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
a31f37b5e560433aea4eed2162d2dd19c35d7549,ecfff40f960ff65a27ea4cc6f72e21dc9e36b651,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
fc76d9fac299ff9630515bb62b980d09dd432437,62cc594ca469388c8bb45cadd24e73b21437230f,7133ad7ecc46700618193adff85cef84682355b0
251af216ce7c63204152c8cacfffaeab899c8c82,34f1a3ee280a5d2e1e9aff4f2f39c1b9e97c771e,f721210638e919e910d340b4187b2154df8e835c
d97d34ee9c538f4d9d9f0cb4ac1b2fbec6c91deb,3dc64dd67ef64da854e08093e229719ab1e3d49f,c7776d899bba809811549d2dd99b37b80fa361c9
78025d90b3ee3aec45bb100d2bb01e3d931391fc,a20e8b9a3d1c2bda0b5d62d50435a8647bcd7105,c994b5efe8809ce84b3ba52046c32fc37909a65e
78c0c267a5c62e1bb773813d24d12717256d2ca5,1e62913183eaf9906c5ebaf98241a7e14e45dca8,f47ca0c5d102655f5b336f04594f2cc15b9bbe96
92f148e667620fbdc439e5baa13c36f8a66302cc,2cc319bb8e2d21c61e051f77d8d31f0704275289,79d1fcd40d6ee362a0340751051edade7b124027
0261a025de8b59a41b3c43cd07c30d81a8e59567,486f3a0c7f7884895a0e9742a1a3ede419f208a7,e14692f59483e83b1ac55e9741916c93d5699582
21b135a6ecc49cfa6ed65ab0e26bd14aa04cde38,299f942d291fbeb2c3b6e6e653ae57ede9b7e525,7f4b2f63b3e384dc3589499f21e0545205b9d3df
70850835597032f7fb37777bf6fe44eea3b0d16a,d3cc97655125c9e8bfd6577c29ad61e3f4ed87f3,125bd9d5e91d67849303f33f47daed55130208f5
a6e0e1fe59ddc7349d9aae062fa264cc215dec7c,28a3223b6b017dec23f867c8ceead32d2b22bd72,d3111517d5cfd1d044e619766e37c3312ebe12fb
fd1f7b2ef8989c9da4fc58adcf90d29b0df6d8c5,2a83972db8c644948b29e3eb745f2796dd868af8,6ffa258abbf7f27a213cf96fac2b94a27e591dfa
e4d5de8d05d4ac260ac9d9c451d176486d88dbd0,2443fd0ad738f0f3232c779e9d2c9d7ff1072ce3,ee97c0ca03cf35ddc2ebb7c7590d57cd7d407e14
b8f8a1dd1f869bd4a09e571a766ccbd2d641193d,71ec7a94d17846597b89acf6de64caa3afe90f19,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
d63b6294b5e8b033f98e02b0654572964c5f972f,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,5605566e427158a4300941f4279b41000985fcdd
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,060a7185ab508b377b3d989768531e47e5187a71,eae74aaee07f8dc1ce1e2317bcfad967701ab218
63e8633262df27bbf20f1c164f2a5a8f5a9e9360,3ed5a4a022db3e68b6c84c0f749dfd9971c70f79,a71cc7158570729c256fc7573b7d556ceada1843
c96ef4902bf78e208033b9226f2475bc97caef82,fe62b3ace8c237d8bd1800beb5969e5cb540723f,57f6ed804ea377783098a2ba25646fcc81c370db
ac3425a14d1cf2fd82482cf0d1118b6d4ce39bef,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,318e31487a1e0dbbe49120373fb643815e3d668f,ce702df5264de939853ee92ac13f605be4fb5c71
010127a622d3b3608c16cfeaed46a38d70f5826c,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,9ee1821622f500efa9268ad130aeee8b08eecd3d
bba4edb6d0b921d0a36fb08f3809f8085d589578,1ba93085f73c8635dfa403a5b98f558dd4247a4f,88ab9576b159dc778ac34423683e9ed432e90dbb
139f2dfe84cf07d03e461e50097a426cd88a0797,2e65a5d458f7fc677442414dfee4058a39dd9b72,80750f7591998694e5849184ed63c17b6ea0bbdc
fd68d3bfbbf3ff8dd6f34287d18435578715883e,550397b98218b7b6b8e1def5bea34175c483c971,eaf24269bc7a77efbdbd0eb0458dcebb77e25dd3
0e9efd07efacd7d4184d5271f6450946e746dfee,7a1ef994b4579a63d4b5cfd9228da6a5ce543d1e,e76c5d96d8446fbbd6c338bc38dea54a95b0f12f
b0d61558e38f7e9ceb3918dbbaab13bc49496320,13fc4075f5a3ab3129f41f8812f0a7448bb2d4f6,1222456c13c21eaa8074279ce737b7e4992160fa
5c46b5116d5e75e4ef12a7ac325a331ace605b0b,0aa851b7f77dc9a0c4cbe808f6af11b4f8fbd56a,b3c1f294ba4b69f2d3bee53730c86af204e456b9
2e9556f2eb28769f913c9b8edb19f58938fa9abd,48eeaf00a4f9beb8313ebbf396f402aec9ef9ca5,6dfe323e6fc26fa7cc35710bf3e369be33b4d025
65f2dd233745fdbafa615308de06b4ab1f2b2eb0,b1a76314ae95e9d2652754b6a7adc7d06bd0faad,f29ff58ab97e2dc4ab553f9d683a63fcb5d81c01
a4240a0c62243e757f56e3f13f19d7257ddf9333,e601156b8c379fce44d8c92e956b73d40806fcd6,e130557d9fce5ae426c040a72786012bfce407a1
f36fbd17b1b4fc327984460acec850a1df7a9de1,e187d49590068d74c6f3b4f09eb0de32e8ec7955,1bc0ae3d18d475d9a6b2033f7a4299bcfcb51a37
d0c7838eec3c0e3297b1c35fbbb065415bb0ad73,85ee93c2c5edae6f49450cc81fb57380966ee60c,80f1d558229e3533c3a732a19074395847d229d2
2f9ed0576ec93815ae07a0571c3e3ee799b5dd8e,e412f6be55f9ba2b45c020a240ed467cce5ac28f,d5c6286852892f3cb1c9766a0837c4eed1d0f70a
902c93f3c3c213fd0600db49371e64e1f214766b,9409ec634186e7453346e17e55d4f3c4c657295a,c3a3cfe80fa1cff78441a38392700f034a70a3ac
2e86cdb6209f56939ae97f8d0e9516e4b81abcf6,17b7782929e4288a4dd67f644500347ec12ef6d5,2d1fba1fa15eda788f6d133aaca8804d4d28ab3d
61397d40ae0c43083844e850d87c60ba74b34d28,7f03fb696693a06f919965fffd2ad169cb60ee17,51f5726343727453333843f8c3093e34bbbad678
ab66440e76ad5133aeedc48923df2b84285c6b51,fc6d6c123d5b76c26f8b0d6b984111ac7017d71b,1de3aba4e3ad86ed2dc533a0042aa696c0805293
5a9d4d44faf1c8042d112e87bf3c60812d025cb7,ffe97bb7d966363d3f58f7c8782d6ff9a26b87c9,c39a3c6473a967b0f8bda6dc4037a813847007af
ebe7bc8097db6017f0959564bec070c942e041be,cba0ca490e456ecfcff524476f6db0cce09a7d7b,7b0578dc173f3eb5029ed3dfef964dab2c6a83bf
ad6e9049edc74085273451745d5d927ab8955601,346962beaaa5e896c155680f220a57a2eee2e6fc,f6a0da71fcd83a32037b6129fbd1f923804f58dc
b6da7a799a116154240ff0f11d94397fabaabc09,6cc391dfa13640cb6297e84de772cc06343beb01,b828529b24e149ed4129cbbf89b34d95f068b8de
edc1c79cbb2925e9f0d1b929d8da01348eeedc35,e60a7d01a45353fe263b3b5fc55e8904fdb00d69,a478a33c3262087cc9fe277372760244f1e558d7
1e9e533e6c27e8665aba11cdf6542798295025a7,e7145f5f7c677cc55f3e9208d08640db49a75e0b,312cf246adc4dcfa1a9aef3968e203660f94df40
3302dae600c38211c87ed5f2f3ec05755cda05aa,a888a141a2bdb99afdb4a0e9e83fc69613c796d6,02704f85a925475c71663e5db5ddf1700c00ceef
a04d2b59f643d3fd329129fc373835a8261694a3,70d2f81e5eceec3ac7ecfd0c188bb1a8adca6284,04631040b8a4eff865e06031d0b83e7b464c1480
bfe5733624f4e7c0a929ed684628b88908d6f72b,485b31de21583caf6165581588015e130425d445,11246aa5b4c2b72f50041d019165f6e3e48976ee
9b1861a1049aa0a646bbb2edbaa6280711bc31ab,5e00358f13ebdb36f70332431b8cbff7f6b04c0b,1e3865a187d8ef54d877185da306713640f935a1
a91c1ab6278349ddab8787751e4b561bdfd6cc2c,59ff8a0f654b5bca8a0cf32bb938256cfcb2d508,90779547622977b5aade4b06a2e0c131f9fed7c8
205e4f34212527488ea73f2fb4ff1a54f03db744,52849480878634dc1bc05288e780483d9cc9ebc8,fc1050a834eb612fd4333a1430fee1558a6c0556
1fa83a91abb262f6acfcef71e3976ac427dd830c,078e2eabf9d118854b09dbe32c4a0dc858bc81b3,b1a91501609c36a50532ecc324226085197acdaa
a9c88ace25531f56db09d2bb320b2dab6f6da153,096d5f50b21f8d4fab941c73982959109fb92631,291532e740b7187638d45538ecebe93a257b4d9c
4a4eadc60eede952c3d39eabec7fb5eb96a855eb,f49da0563310f72c509225c53a8cdcf01a92790e,b826ad8b7ee25ad5e70f9fbbf6c9b789dba8e200
c42bf9cdf5ef417b76093b3e8fb344e54397e62b,2d8a50556cdf0d49cfab4226ce47960bc4c87f47,a27abdd62170b60d641b1c439876243c17e06b2e
c86e7b43b434407e08a4c722d32dabaa2cb19a78,e29d1ecda9162428b813c1478f2c22e6ff6a6485,7284e161a205e7bb47fe42dc35a696fea7579510
8e717f41426df720dc5211801441a6a7efc8c71a,eff10ee9b7bb254c1a82c3e838eee6a20edcf3e8,8f106b616bf0ef62ea94601ddebc33b6c20ae6a2
e56052bb32d191e5de15645a38ac3071f12ace8d,cab3b8c06f91fbb847fca4234d776cdf4cbe0565,bba8558a1a22e5652cf76e5560445b9874d0d8a9
83abe1fb15e2ad290c9e0b0e484d49dbc123005b,ac0e641ce776cb13fc7e739ac9e2e2c2c4b32a21,53459fed2b18c72e64f4ad75949dff30338204f3
d9c786fee68349b4ffe3400cbde2de879d4747f1,627734e104652e6d10ae10e83815ded7f9daa71a,e507f612f5bee3e00effa488a48b0b1280add211
14b3c11c0d94f4972db7a40d09bfca284a24eea9,fbf20eee31f00b6e9cbe53803adbf1b9096a374e,0a886833104abbbb3742c40aa8f965ab14547e12
39f7172ee89eac78c2c68e9c951fe82caacaebb5,605b21af8c51d612fa54852d5545c5bdfd03164f,2de19f9e6695fd26f9aafc2201c1c43ce9d7ec71
bf970b29f46aa39f8294308c8598ddd86bbdaf5b,e0229632fbd5324090e43252aae1e171e7e2b0db,f6651f8855ab01cb6f53d3f70791a8bf8fe01d7d
d5ab671ec33f975082ddf04589bdf9e05a92053c,4eb8f8e5659868077b481bcac9e658f4a6f33b34,ba555ea68de61473e931e799e1c6887d0690a064
055681c8b4f5805b4eaa45e154fb88131c570827,8db51a367ec1b80b6cef6ad0c971df81eec52195,860c32f833d407ea1accb5e43fa81fa7b325c289
73a251410eee81a71e54b157a7ae12187485d353,c64fae2f8963fed5028c4b57edb83acad854542b,953a4e1b6452936c7de86a0c7f14d17423628e20
8c2aca6ece8c58b3bcf46cf67bb0736079bc4ecd,f584c559fd036f07885f527485dd803d3cd239d7,aaeefacf85974e22a3b8f84333a5d98230ac1f27
15b3f1664629c860920f2be31edc10824a19c7dd,52c5a0932d2fd596c5872f4e668212233f08e93e,f5beaa80d810f8164f179c8165d8e7fd1d7b6003
c2664fdfa557b7f8e5f31590864b8a5237d8e989,5bf93d220f34a840bc676d012a75ce05703299f5,bdb611c925aacdb6450dfc4e655f3f8e11d78f0a
d44a1c4100800fa59a5428c7c8db360d6766567d,a38effb29b4f0fc8ec503d9ff1e1cdbf146202cb,5fc78b223c11d08da3f9dea1be8bb59c2f2b4e79
2fe3955be93d40368dd6f1db2c4e49757e87ca00,83d3a3941715dfed0e09d9f8beb57e33c4c48229,8b2ebd07bf1a6b9cd2440b5748f95afe55ca3efe
f8da65f8e9a5fa02dadcd16ee19ce14c44133c85,13de117b8e52f4d7c1c5e3a0ece89f380d36975b,6c50c02f7c97118bdea91edd78085b47534f1261
9e8f09b93f3844cc6f8f5ad9926b6eebcfc06342,abcced55af080fd4577f0a107ac1366b3d5d7f16,440a635bce6aa43e7b26611e4625e91f778dcf9a
c491856533b75b0cd2f58d17b766c24dce7bf575,e17b6291f5c3fd88bc6ca2f73af68b1b80cd82f7,c4f046f1b8e9d71d894431c35d1a642d37f08a02
07da0058e3289ce240c7d80244ad6079ffa20d1a,28287525879799fc0bb5fd8b42976e5dc1079249,924d4b9b53b3066a6ac96ec304f7b104015e3f9c
6f8655ecc9c81617e3873674c4c509cd49fa73b5,a71995a521343e12b951ae07b0ff9d45f1f4c8ec,c88037b8a7e3682ddcf492d74a4322af7c5612cf
9ce7fbeef025dff2124bca6773d4c84b7b4f41b5,db5e821ead12339c031c5f9a3c208c509df8f9cf,adc66b233d33e90bbbb1248887e30287b38b9003
8cafafc3e670481482caec9e5318ea81a52cfe3f,0fadf3515e2cd9b53a99e21789e4b040a335b5d3,5b03123bd411c1455aa00f5ebb9ff3b185af087d
26c69d564f0d9b399c0bc3bdb08b84e05d87fb9f,35701f8fa2f826998b56f6a8a67de9e5a17a4174,fd74c26707e47ea8f1989941d05b02d92fd04598
b974e4a25f99f91d635d3023792a614f87d0125b,e87982e925720e0b29d7c097749802c99ed92125,ffaeec243a674a1fe4b447bdadd9d360dda314f5
9caabdc4e78ea95eba77a4ac9e17be420fbf4188,47d23951104be6402acb8ca5ef3c9b2a1ed175d3,b64701da1b8844dc50c51e453374a64967a9e1bc
f6002d80781aed00cf9549647cae12f17b1ebf98,a816fc2114eed47eb4617e14a4aaf9109988a60f,4c787b4b9f79a958991f248ec2db7a8e6497492e
0c61c7057a91560772a884b44cdd841100105ec1,1743df7b80edf021173e1ed7e4fc24586cd58f95,c6e715a54e9d058624b680c7d5c36511ac7982d5
4c3d8d016eff0753f2b6dad39a8aa08a087c0af7,748dbbcb20d662572667064bf4494f87fd8abc8d,1030f67fb4842fad0edc3d7ef2798ab0aedb7f08
e86882580d4ebcf6392ad27d18f2de1382656804,c1c1d46c1547cafe1e7b71864e100e82340b6dfd,8e79108e518ae31a8a354f26a998c84ff68f8455
02e90adfe1003b6ee2516023dc5e0c38c3ae019d,09f2fa0daffcea9d44570641d341b4fd40346cf4,ea988e0b920bd55fd07baaeaede08ce82eeb45cb
95593f15ddee345e0ac36a25b4de904c1f8378f9,8ec86ad053ed6c0777e2f9d1842de7aba29a86b7,152bb316c37eef709e576061abb8aab413908526
fd1fb255a6d2a706041e19f41521fdb6afd20558,d9e3afcb1d3d8f981d1daa05934e893b19282b32,83a8d584e0bb7f5a7a2da71f14351634c6839afd
4adac78f85014ad8e52d0dbdad28478d54273283,65d4319dc2f9f4643f8fed2cb0cf038ee945d27f,7cbf18c6f395b2133ff1fd8c44cffbe4c7c8f28f
437e7fa75af92b1ebf2dc97084b019374481fddf,de1b3a982b28624802102ba9a3dcce7a71099af6,b0a82993e6f8d0920c2ee789e84d67951e84a334
b71b5b771f4304a82d79ba84647320755253a19f,9f6a3eebb78048432f2240922b18cec3ae80a686,9059ac067c160ff836e8dc7d75b3e03f22404f12
e67094ec28727aa9f0df6f331e29179fddcfb623,6277c21261e0ed4116cf460ca08db26db2d99175,0a9169eb67beca37d9108bc9769011237c8a497b
258ad62c4d8562463516d40d5f4c5768b9f9ddeb,d8340641cc3c64d043524e8f52411e414440b4a2,b08b5bf136c80d80abdd52fa5295589aca38eff5
5cfd214b680339f496a630d8be236382ff5090fe,fcfcdc2ccd310f211d4ffa4ba084f48ca9d57379,43229cdf2e5e0245921e5b5be3495aa3f1cbc907
ee3ff193120005677c4ef63c84ae91af57ff8c37,6a067b55d1523bd258aa3bc8ed2eaa2046892d7c,478a227aa4ca965b1af6badb27f3df4c01b78183
28704b2976186d00132f872ada99234a80de9d7a,a06a20f9c03dd42ba19457a8c0a4c570af5fd6cd,87137a4aaaf7a9a389c2c34d2eb96ee0e744faf4
1737035501ddd392579f1da5974ecf778e9f1c9c,c81f10bfbd5ab6ac67067933be7c9edccec95040,1c96bf5d30ea0c339ab5234b17cb6352676576d9
ec2f18f8befdc0423298f1a439278988c0d6e4f6,d270c2ccddda47397de4bcf4fbd791e7d4b675f5,9c81c4a5faa18681f921caa8ca5a7cbdade4044e
6d157b5bf0128f5aa9077daea7f66e89d8dd00f9,657e4bf838f850e1d209baafed59ad2ddcf5246a,2f5cbbacb714ef74a99c483f545d530a01d600ae
a4242e60b2b8dbb6bf5b03bf2665343d7441fb42,80febbd8cf6cdf0dabb80612060d0eb36363a4cf,8708144c509651ebe9e928c500883c4703dfffe6
10ec49d75bf66731bda613fbad531fe49a8e3907,cc2406ad742a00b88568d4c2d9b64c562b42ccb2,9cf31e2bb3a99a883fe22275f205a87c39412108
4afb07cc5ecfc9d3fd300b9672ee83fa3626d4c5,3e6cd16bb56e5f468fecd2ab3250440cad90f7f2,23dec631f52229bc132d7050f4fa7e560de750e7
8bbb28ace8d4ebb6b051425761958e4b4d14d242,e6ba09aedd16890cb76de875abb370512ec0aa01,1ecc880fc813db7da9b55145e21cb6f62b45220e
d4816d12f790f6fc56d492fb8eec520da62035b0,34025aecac5ddc82c0b8fa17873849687aaaad5f,610f2bb3c9a50115f706a01488c2ab5942d3e395
961042356ccf45e7d6247aa334323c44230586f6,a87481cfa4c3e5de8c80387677c172cdf39029f8,0642f145520e2893519c967678575b6a2e3d2542
70ca28701b6fe30e3d0b8d81b02d5059eadbda85,44a5f6623bd8e58b80537eba80048ea01ed72df6,6ec1b7e1b55fb40c21c86eec260ebda0f5b1d1a4
db86dd07fb93ed5aa73827513dbe1483995d8a82,99b7b19f1743d796d9e5f78db2e64fb0c6afe8d4,f1a173bdf6ed78c5440ee794f8ec9bd6a9cf09b9
7e938ffafcff78037e849ef69727ae7fbdea395d,d1348d17bf8d5d81a03e2ea3c36d15add9a3150f,605ca8144f12c6f84cfd285925f91bd55a5f0926
cd8fda1c2887334eb49143c156536ea904f770f1,df4ef397624905f8ab0f9d7fd7673e36da1cb7f0,afbc36897debe5e933a07faf6f2daa961405f8d4
f38b12240d40e4684f7c7de354295812064b26e7,39ab212642b9c86dd002d39a9811d14785b885e1,334ef633a80967422b7c9a213da44731b47d1fea
0d5dd4196f9b83859a45cb62a1c2282a9df18f48,a441d8ff28f7e68a2801285bc58e8cb599602ef9,90a756931ed4e354ed958c55165b7fc31ce05d41
c9f6b93d226d8404f00dbe3786863340ef82806d,07b4ceac49abc1138ed4be662789a618c84c6824,3a473f9148adbe0219e6d11c634dce828571d12d
b6f60e33ca63f95d9c862edb186aadf20f266aa7,914b1fecebe3e44876dd69eba8a98a83501704d8,8648c0353aa73dc211796e0a0cfce6e5035c21cc
4d48e7e4d33604c67ad1c4f0e8192ae92dbbb28a,cfa7d6a0c61637941ed8ac693347bc52c112e3af,b985cd0ea55ca2b91e7b74bd58ccf9688f393bd1
dfe60b53d1a020908d0d585adf8f96d0282ccf86,4adb6b2beea805e62999fcde8f667313bf1a8d17,2e2281387cfe95db0175af1e145106d8f73a983b
f81485a9b10488eca3d521c79cbc15f9ca1ea59c,8833fabb4b16a4a492103636e9253241278f2966,7b05051fc16b5efe71e55dec68336ecf78d37e5a
3218f25d130f9e3989ee3a8c6e3079aacde55c8a,0366df9fbdfc89a0ea03b7ff89abaa953b5be5e7,6ef37d999a126d73500bc57d6b07a76bcca94aec
081af9a892a11c4ae29bfa932acc9b3ea8e96854,a53eb8b230b1783f11bc13898d2968521e3f97ae,bf78823e60877ba498c1297b560159de98cb9a01
c54d1d4b8938af969afa035435067ac224c8354d,159d97e86413c12d36e4c763e89a97c86931ae2c,7ec9d2bf9fb0b51a8962ae005eb30382ebcd64bb
167b5213d14e72cf0dc5ed04c8a6232ab22af047,b499e7593a593b86ee2f543ec1bee6efb0899b63,8dcf4e62b753d35569f4e5d815ae45bb4f02c20d
44f58c702fb70614cbbd3702228443212239b759,a4608bd008938e4e8853e5fffa1ca47c24abe4bb,4527365f0d0aa5e413c476bdaa5b1fb66941f044
0f39633acc39fd200a3c8cc29a5c5efd8ffdf762,4112318e2f22f8df913e17ef086c52a863505802,7fc6d5aaa1ec5245f4c4522f896ec7dabfcfa40f
184c612f7865eccc53ad40f688d9ce5d9288f6c9,cad9cd22d36c362b4de12cc3a80e1b207d5ce6de,0735ac0d1f05e1a017dfe19f2ea607bbb1fd7113
4f42553cb3b884a0a62ca6a5dd7edf80c5c63220,d2785117df1711e874d39e68494c263862584274,7a1c50ff87ab6a9a29f41415655fe65e2969b5e7
58a3f2ef64ff6ed1eec0380ef829c93aa1ed7572,b6527c6c031f373876d81d57da3f2bdc3af25026,7ce2f95db0266716057528bd9fb9083bdaf32789
54d65ff75c15029c7420b5e52252dcc15703b127,dd26c1502c8637ab6bc1741724fe876d66af1104,f81ce16d2abe8f15cd4477cbafd27c048073a173
90cc6db5cb13a68b33e100eae48ebfbad4432815,94d7aeb9986412338dc62fde6603e2dd17edfe75,b40d312521043069d928494839eda85cfa4702a9
4fea0e355ea297b6037c8452fbaeeb762402378c,ce5a632432ffcadaebbd5024637576561db422c5,d53a81e2d96bd580dcc90fe32fdf3d71cb412b9c
5e327453a858f41964f6751c5ebf766681d414d3,a76ca8f60e8f91d9594f3e7ae208c6e38183ab97,6ab6d613e0f272502306f306e05cf72af1904420
342ede81ee24eb90a1a31ffc63f226adbf443b0b,293ddffebd9c09cb3327bb97ce03d0e81346275e,28b080d9bcc50c59ccdc9ca300e48a3c0d05ab04
38100cd50193384ec3f68514d15e32d4c47b68a8,437faaab1293556a232cecdb3a6c7e5eda70de95,649173001c2503161bd85280562dd9dc97ecf800
d786b639c016e22d09da7c59e5d62f4d3c4085ff,3e036e4ff83042e70c62561455fc5044991281cc,75e061e06f3dd6fcae380256b04c115f8c6e8296
3d204dd0daa2ebfa70d37916960c7c366317a6d4,6149fe394e66d4612026cfab03847dc79e600470,3d25e52b614f2fdfd0a8e29f6b16971c9eb9d727
964aa8b71bfc312e004d7f41f0d0e04a12313de6,45374be28e8b735ab8244d1fdf567d2ea4574905,5e996dc18f9969d3a691625a19ec1e0fa75786dd
d79c549f039365c60123f239cd45149a037e731d,27fd290150dab0dc7c05989e8c93f3904987444a,2ba0f42508c179af0d79e41d711493b9eccd8197
a0cfed14fa4e9b0b7d6659043b60930e032092c3,424686ce34b2a84815ff79e6614b3bb2ece64d99,677fd4fb00c070eb2f5318589245c2ffda606898
a4ff1d185e956160be4d3c4ab96cf70ef7598a7b,adac1e6db211ade0b010590d5bce76ead3208f13,97e5936f788017402d80384ae987ac55ee08d1c3
d60300e807e911efd4e903412082084b21db8e07,1ed9054bb9e2e228524c475cbf10d389e5d09967,ee98fa8e3f5f31ebbad70b1f2225d62157db2413
9799c6a5ecdbf7d46363a0bfbc8e0ab7b94cf565,60965cdb69c7c9f0142138ee3d112bc325488174,b7742def46354751a38bda786b6abc36be303246
06917784d033fcf9e4a1c59888ef5758971e8105,dbc3e71edac58d1896c0896e5d3ef211a0b471c5,1ddf0149803ddccb0aad22d3e6545a04f17bbe89
cc15a2dba7fc9ad98ecc335fcce6a0c994214a4b,d2231e99e8cbdff20da1d4331fec565ecd3c6861,23debb77b39082f3c483337f10e4dd454952210c
d41d98b70baf95c1767395d713f1b10329c0da29,c8e4a52428e84c11e26493aec1952532e60fca1c,d81170ab23c3f1f76c69034f96d8b1e88a045978
99943610cbef38f25c7589329b5ef5b5532e5cc9,f5336f631141e3f43711928226a7eac5cc803991,84da5e619c4adc3c72c5a6f2da80c56be2899a72
190b27ad45fd6e8dc45643da93fb09c8f85eacee,761b45196210d758fabb7f87573c2632f9dea107,a685e2aa5a9a37bc09efe484f9f2e2c825b46a3b
05b67c740833c9bdd5dfb1e20e9302943b7edb91,b9ca30165cefbe0d857c4f2d32bbb6718b141bc5,80523e192a26f9918a7a942d0adffca8ed180f60
1a08d76ccb9422788daa011c3fed2d3f464f9638,562ca0ad801ea4d6015f8c9c971c8929b9c428cd,4914a5a31f907bdf8ec97ad9d9c5ca3ea52b716e
993db6cf32c96c03e2e339b4d30677211ea5052c,36ecb2b5daeaa10898b4d276cbd8c2ab33f545c8,aba44452f36284f757f4b8e899910b328864ce12
beee98e246d2684dc0d1fa42ef9c77c59a381733,0e0c4bd6210b11158e9ded139b9081858abab805,400094921cc3714875282ba96219af966c842d70
9d7ea2c069d125253462baabfeca9cc814701fcd,cf7d9fa4c5a22f6ee4b6ad563c54718107c168f1,29ee863e8faedc99e3b12b1e4d66b21bf51cddbb
b1a18f569018cac1082670353a18f8742b5731a7,76fc3275bce9cd593ff9841374ac4ef572336eb0,ffd461860b9e36af008caada650839ab99845053
2ee8a59fbda3b2d7fbe3b160a644459cc8064f59,85143f515ddbb545e199b5f2b3725a774d4a65fc,7c545cfa8b3e4d6d9950cb61ab1fb52b9a3d7689
b5d0cd57edfb7390bba5b8fb7b617311774ad1c5,507e728ee87ac8f16aa143e58e7a584dc9551291,a46c6229c516a172c35f68e36b2d35f6713d93a6
33a389dfb7dee9ccb787d70e6aa12cfe7a2ac330,44d9234f385531cd418214f6c14fff10712a14f1,1ea876b5173b6823a10898eb94acec7e7f3a2a3c
508e0dd01cf2d4a7511449e4e84eb5febdffb847,130d1e9d4050a29a8f2ee10261f59487402778f8,dba753eb8d899be32b91af258182243b109b74a4
a7be888255630421c404200098dfa23c4aeee5b0,3ae64e5e175d07677d9c367bd41a4edb101d2a16,5c94ccc4c214ddea0f81bbcc1561a0ec4f4dd07e
eb440e0ff132cf5854b326cb80c697d359e048a3,d247c30965fb9ced124b85502e7b1e7208a34da0,8c73d0a0e2fa2d847cdfeafeba39203200fd7a94
17c0765655f44cd0ac761df780f746f435c3aff7,d7e24e8708bba502dabde291f496b4e2feec3b0c,63d9c1f077fe89360a57f07c3fc5619f91f43090
034c361804c13b896340761ec26f09b78cd5b1bf,9a8c6fe93d3ce3eda84042f2a3fd8b64c50e8f1c,7c023d33d0cd106ddda298cac1e340ebd5a098d2
2123c5994181a14cbd912c4064755da6ab0bdce1,b47687852e39a2925ca9e35f0b9657c00ada96bf,14ad18a82b20d0c9cf48bcdaa8cb0e03a066087d
530a962dfcddfc079343559a51c96f7ca855c906,e9d8bcf484ea417ab2d599700a8e8e5a5d019df2,d1438e0d3905fc5ba6315e4b4bb216b2d07746bb
f356d8cc5198111bcd53e61cbc6bebbe0fb16960,fdae200281798334038bcda0cf43790d4ea6af03,8e6a8a36cd9dd38e516b9af63180cfb70851e5c8
a6eeaf2c72770f56ebe59005a0d2af0a62ac2d1f,be9bfbecc588b206ea124d7d2e27cbdcd8451e30,8cacfc3355fc5c82aaabcc191ae368b282d3d51c
66f73d466b16f14994b112cf6a6064fc271048e3,2f5fe67e56fad1e8a05058fe3099774f5c26d19f,66ffc986c02bc46b3abf1f9e6defc054c4d465b3
00d86d24be1b301eb7cada055e591dfc180db86b,180c23b3956a04de88e75ff33bebceb6b5e0fd38,7b02331168b52fd8f59f9dbdff6cfb22ba3078dc
44c8193cfa93c9417b9f5fff5abdd56fd68e7145,b8154e387757772ddd003f29c78cc8e297a302ac,bf7bf44727c0f26577e093a9cccdcbe44f163171
b077d17cddf1140a5aff2f176e12990f41e00e07,b667be825ef6555eceb4cae7c2c372b514617dfd,e8c627491557ec9da82e99d2c834db9d6f284e0d
e9fa0510d0b589026a57cb027fa45030b91681dc,584e49c6a20fe67d9b1ceee2ce99a0a3ec22d3d8,3431cf5bc032a23946e4e9964949648242836e8f
cd3a06f66e944656d87018cac9d45c542fbb3866,57eba4032c0e8569b40eea12123b3c77e31ee189,ce20ea80436b8dc97c226bbe6d7e3d18269268ef
42f15792ec8ed8752024b5b162aff2b3aa159022,a188322e76155477bc266b686db87c03f7f1f8d1,683b566cb7f30c643103d8f2d941c41f3be2e806
3e7d58bce78e5d8c5dc6c1a2a6f34f910112a59b,9fa091f8f5358d22d1d97cfbc257a9c655aed209,c24cae29d644cb68b0620fe1c576a2b2eeec5ef9
0c7aa1805d0f4e3574ac42cc7742007e625f570a,1850aa96b5e0afa40f5916a70921925268a3d0b1,477b9ad5568da3430987d95eb6ffec03b7e6ae50
fe4f12172124b3a6fe604b20980c556e6361ced1,7b0cd590a60f1d3c5d836fd4d829cb1cf86c2527,28e1daa8e1e368a02e2f08a7fbc1b3275ad0d62b
e91c8040eaaf56e3e6e85edebba4cea98407289f,23bbf87c101945b090bf3ceb95a2ad72cac77c6d,ef16a99c08ac8201c8264b9dce44ffab4c596af8
dcf6a97d64c9514cae9ea9866bbd954ca0e2521c,cc063e7a9c6ea5455b4afdc4d3507eafa45346c1,73420dcacedd0ea88ea26f3c9bbabf31903adc4d
c83a047dda5fdc5f6e5940ed6df0fba708931e05,210cb8cb74215c76bf1f3f9860d082e3139ec2f3,2cfb790eb7560f8827f086bfa678e64888783957
1d629270cab501ebf0a2193b4637024c2a59607d,46e5903792ac7bbf9c21910db01df1c41c0ad3bd,32d0531c7170455c208923ff1f47ed56344140cf
bdeb161d85e590f36fb0b5eb88c2cd1e3f1943ef,8e58bbea61d4288547dd5ef7aedc06b7651e0673,bb31f32941bf3e95b5f231d59df37d580aa6b676
e048266473f06c7e74ffa726e126a1cb3e11612f,04b0dfc8122fb817789f221f7925d9a613302735,46dcffed421e5f6093b65f17d6721c7cfc46a1b5
c82861588675daba0fdf004b5b471f314843ee13,b2892adebf22e769736c9191ff4a9b33885efd24,431d4395eaf0c4e1e9cf4eadfb0f1de0dd4a1047
b8a4a72760b1db9dd3101da2dd82011f1c6666a4,00ae194e0a1ffe6705a6b990eb5b585284eca598,22ec4a20332f8208273604b46e727e481f6502eb
397293f09f7a3e116119ab629687c64aae507539,74d2d2f0d8281e0d4a293d5569c832f201bdc3ca,a9f522c29df6c2ca2189c9b9582840d52924985b
5d4bb6db9be290e5316aefd9cd7cc18945b90307,4ef30edbd449910f1a5da609064eda65c184f820,00fc962ca310f7bc56a3962918a83fb68a7f8459
511beac49c57ef4c6791494a450cad1886a4fa9a,75d7b66bdf066af9f3dbd899c5db07e37c183370,bff561063fba763a9be03fa8b4d609040f849292
7a963ac56a0921ec1b12701c6a4c02bcd9421154,b28681e91d1fca8d60f7bf371468bd0f766d1d39,6618c0dbf7c282a58eb2f78c868f9ecdf96d70a1
1778fb6fe3f01f16c7de5270b19d3e2f15d941f5,b7edddf9d9274c827cfae90b610d84cd0f5ad7ba,59a1199110f4b4f9d937817994c2f369365ffbbe
800fb6624e395cadc11b0a4ceea9e2ff014211b2,bea36238e7ed10caf56df832ed070f569d6892f3,05b73f1523b619c68e08f7a63f00c7211fb698b5
7343a129088752d50e578547bfc8996bedfb0780,183a10b2928f2e804dde61b04191af01c8d05d6a,0b97f169b0eb951810216ef03a36200dad8ab8d9
8498eacdeb34d2b8cbffb24553914ac8af91912c,8450d4f5e7e24485f41314364c1baabc88aff5e5,091189a40c7de400cd14c694740904ae3032b47e
22d7033d18ff3bad17d2f22331de5f47e296e0fe,6efe984a2da795b134cff8743964dbae083e7e63,57fd8f13c9c8368db8949d835dd7a81d32f8b109
0430e1bd1ae4c64aacb78fa6a8f08dacc108507f,b7afb6237fd0a50d85c54003ca5ee8fed8e03b05,465537583b5c51f1e8e0d2682c41335e26787ed2
552ba9353657a25e0457ae36842afb8a8bbe9113,f2d44148fbf28294f0dabc8ab4260889e2c7e070,b67415d1a82a54b96349e18acec88a3ebf680e3f
bb27442b1963ea767dbcd322ce8beeea7810474a,dad75d44722010acf9c23518958d754a6e3702c8,e2dd3a09dc4184a0debcc3d87cfa09806be7418a
42c5e368bde9ca694e9389c5c8d64e6fec8bfa8c,ee6bfa357a056d26096ddc9064a85a45e84ce5d1,959804798cbfdae932b7ed962700ab26f1450975
43d1036b3a8ad931c8c7a2444b2daaf08c7e665c,ca92c49f8c8d1c226f2a3505181510ac4632a90b,ccae78f97a11267394bc62419c78e14f691fb069
4b92df28cfeacf147b4a3b555a1123282a5bac08,89b1cdefbeff7a773a31187097218c3138e6fb74,b6af220f1a99d352a574b0dda714ae57e1cde29a
e4af0fc1e989534551aa5df34d8fced260bf2787,798d793cdcbc23dfd952e85bb386d7afc775e71e,0b49fba6371411abb804cae8ebca925b54ef468a
4267545c72371e41ccc9c039a52bdc9d1eefbe7b,36611e66e62becc8dd75bb7e42f87966bc65cba6,4888442fb425fc85437547d360ced84d6c65bad0
4d732b44d47e2f0bc6a5a1216bb6d353f465e013,0e393084165b9c57b308920039d1c09c1c1f94c9,ad4fe174b114c63c0fc006cdbc35a1075c3d178b
7b3efe6397630799bd023b6abd573a02018ef356,8f37905609f636b79f3c368b05c86727aceea058,c236ac5e97b01b1f2407957f9908c5ce99a47d00
e1e301dea8e7569a7d68160c6891681438057f8f,e15f731a9b1ce32f5e44116362a457eb902499a2,81d24975f0a5f7400bd3c3e7a2f10b34e9bebd24
ac4b089e14bcd6af507ab6e6f9962710968d6aae,3206b2e0cddde24f0ef1ca944c9693b5082ce8cf,246d7865c552f9000a3c1dbc2fa875f055776f42
798f2ba63272467b5c4d2e1d5362304c759ff720,389c927061ea6b73bcef5f198fdf81fd73177821,3d6710c0e3cb9cf9e954a856b8b5c165cc5b65ed
04a56e2900f80fd62e34223b3b5bc72e74c77b7d,c45d03851afc8d46c3017888e688ef2426a7e3ca,27a0da5a20d1a1476678f715063450d57954d4b2
e8144afb6b2622825a0b204c90d1d4c9225bb716,f689746372a3889341136aeaa6b6ad852a8340f5,5b54ab2040772b029046f130fb3c13066923d5d7
60690e379eed41b2e342446bfb3dd7254303c08d,2390e70a4e434e5567c0b4e319da670e932afda5,0c5281343338d4963135c58f586d662b0219b445
9d94ccdc38542b77098666fc821a0e225196479d,6828da9c6c843ea5401d82e31a8b2a923f7dd778,311c023271a74374852431c0d9492cdf2749d4eb
b26c009d90049b91bebaca9616ae8e43add25d06,74bad92e4db4897b52b95d4e5f8a3626d03733a3,f32eaa1564e54eb793af9087a8c467681044c5ec
98b1aee2a515ed420dff3f94d424c625e85ee92a,5632af2afa36d8f178c916a355840d47fbf4f5a1,d33e7920a2eb99afdaf33173b41a0723efd72b7f
4bc9f64b7044a10050c32c7664213e60eaa83507,8023fffd3ce6e6713f2b508fabc5cfae73cb9fcb,49aa14170341f23598bb18e720cc6cd033d4b921
d14748813333c3e0826427bef025e3c3a5caeb7a,553a1b968d546f947f85acd344bf93a16a3a229c,0c749505eff609a619e6efe07840efa8ad078e41
2da48488d7075d84f0022cbaf0be8084482d4749,af233b8ef8b75f8f47ceadc5cefa95bcd76d1b0b,8d0bdf2f16632ca4385d7c95cabae36f2e7f299b
891e91590fb2ee43938d78065ca3cf1decee9207,57da25581e2e3b830a072358bf68765a28f9d98b,64ba751ef174c8c40fff1c88aac96ca7d09de115
065a81b72c3d2ff9ca6498c9a11cd2625590daf2,aa0ccd8b59475f48c55f58d837c1f9d32745caa1,b4a83e29a44254ff564c12278f172b2d05d16afd
9ba3b12eaa58fdb22ed90edbf421a33c171e4afc,310afcd78344b1dbe6455df06bf463c9b6029970,9de0025394fcf6d37f7726d17e208fed26a4f534
32b3477fe23c5f0639430f814c6cb8a64439c8c4,b7608b045b9fbc05d2ddfff1ad866d97cf493902,79ff74ac447bca6cb85d7b1ed2a01b433716a120
93d855b2ca1b285cf0288d9d0166bf274cfbda10,f7cbed1a72bdf83f88def30a963aa0baee4ab4d2,db83f9c696ca94eaee9d068bc255fdf719854e40
8f81b213dcc96104d0c3804ee544a80705004b7a,9b63123bf0535b0abb704b898c2e7f4f031c357f,dedc018beb810b57caa9880741a92de64f8f1aec
3b7d9956ca19fa5b451c80cb8d1997e75185e465,64e87c87bcda295da38e615b64068e1f9eaba1fd,de8d54cfef354dc0dab00d3f19e7b463468276d7
e30ca2791434447e1e7df097cbcddd250428ca7f,7fe7e266592d081419f56d47f54df38704e844ff,d335ce60dd4584a89ff9ca56ceba263b96aa585c
c3a6df26ee40a7acefb03c87eaa5d7ab62f52b6d,f2d41e680b765072e791c7f686637aca7b09ab95,a16f2ae35dc914bcb8ce5c545bd9019dac1fd98f
40f9d006d6f931f07b2df21849bd8a96776110ea,9a2d0e0692e726e018abdced722bdc9f7064a9c1,1388e2af5b82e388a14d7e255f4cfa5a0f32bf58
3ba27d3160fbe4b4600b85a4dae0869849598a46,b1791af0a3737f230436dc1103b1e94585a2b6b3,59be46a6fb02c4dfee8580b863b91e0327b709ab
558a7ef1edf41744d37c8a2da450bc4ea15fd347,5ec9386d27b93ea85844bcc56e7bde2f867be560,4f5b708d492c10de06fe7925340f240d029b8ef8
2a6fb3297410fbd4ea149d863c6f783342e1309d,540807c5c8cc03b662c1a9e41e9b60f03869414b,5add7991935fe7ec87f5659b795593268d5736a3
f3b28369474a70f7464a6cc94999c57c1b1cec29,bc3b68ae7e42c9d62e0dbbd9309e5c7a925f1c0e,ead882f58d4a99e73d6fe60ff0f4241fa9b685d9
4185e1dc671c371e5568b2bdd0f9d0ede480fa01,8674d45d7b6e407f09daeeb160747a27727a9926,83f1d1eefb7b819ba405346c73580e7c16d4c72f
f7264d3f2918102993cc4b20570d7fadcfdf79fa,dc6057a112aa528100cab408b6be81162486f767,06f8ad2e3dfa87fb4c8b623a04820df85bbf65c5
50b160651c091249c605731b5887d6430944a73f,72daf3f556208778d53f644711db13c5b24b1e2a,c8052a3f1d18e4a5f151c6c525246b6e331a088a
5c4db7dbca8f5d751aff8796c06c47ca339f2675,155756f668c3623565bf2f7cca2e61466e9912a6,b4d3468f684385086d1146a8f1218ac2d86b3698
2c5a070959e86b72c6e86ac78633a62a7f15b4fb,b5eaa8555aa8bca1977eb25cf3b60bcf2f062431,7aae7a8d51e763fd3c3fe3a17ce1c37ef58478b8
e082fe97528a712786b136263908e1eeeaa3cbef,3f0593b55489a7204ee246cc9ad57d3de5622135,f2f39d4aaadcefb1a20c4fe6d8202f82b58b1ba8
d595976f4cfc6022036dba60a6dae42008220a7a,a370b6ff1d4783db2208fc82f179e3de4e702b9b,5d100fd2c6cb07a929d7b5ad9e59f7eccbdd9c97
c3110dfaa982648f79ffef8de1847cf6a07c619d,87d4c189927636dd8bff5bb0275ff998347ab0fc,a9ab15c60d1ebc2ce17a894b15c69c03d13ada74
bcbf5219224ec9eadda2151f5cda05c4756da211,366acce9ef86d9f3f572a7db3735d746de3942e3,63845c2be6555b0887c45570a62ea7636d3ef479
1202b2612fc2d80bd448c3ebbcab4101a60e1cc1,971d97c179dd4b81ba52910d708a6aa6336ddbc7,cfee7d07d8b3b18a40690d95a20db6318ec8f53d
dc2c6c8996617465b43e53f88ef0d7faf491305e,5bb4049737468baaf97a5a67bc86f01e496ebed9,f417c87ec8137080b45c58423ec6f7e502dfbdd1
c6c05f839595c5aff6f1cf930c2e0c8068b5caec,1a130056f7ec23cd4d68cb2d954353d38fabadd1,d3c3b79e7914220f4a6ffe6843cd94f69137f280
9355e703d7fbe78c78eeae2708aec79637ca7b99,5c6abd2e514df0c9810a62a8f6dbd29692e4abc3,599b187589b51f8d6e6cce36c25c72a87de5d3d5
d1c3ba96f24008fc4d400353d68a357e0a0ba363,ea9e3e02bd1be61fe98ef28d9dc48270a74b7277,cfc5f17b0dc3dd6ef2dcd5a94752a367c8c2c478
7cb2e5a180df00eb8b5b18fa24a12564ea1bfa09,bf41de879a50447193b8ac33bab610d3cf0ba381,522612a632e38fb54d6f3099f80310832322d975
95c2a5a2d796d208c5e7c86485940c7b566af69e,5f9ea00b38ce9de9c48f7fbd8c1dcea937f75753,e17c5751234075579fdfd122ef5342b136ad0209
56fa196b03266a23c6446eef7d0ba4d48f3a5ad5,2e77e1a47178ee197608c6841982a9c6a3c82f52,6ce57a16257939c96c97fd1af1d44bb98ea04c77
bd1a6a60e85a5524339f9e1bda0f534d6dbff914,9a77a855e48641858be539edf52ce48a44863871,ba8554fcf5edd85995295642fdd0f05a9f1c8866
f75de6c340ed47a8b0bb0ee2f54fc84391b1dd86,125da5f10a8199ade31c07f5fd7103c214c25d3b,44282acecb50c64e9507abc318cd280266e93a25
6631f83ccf244b4f7c2eb777cbe57459d7bee2c3,b2f6214b33f66b5d50dfe8e7aa59ade2fd76758b,9cb6497faeadf07c48657a342bbbe675107502f4
d1ba97d46248d4061e2e13d55953b1ea5b40324b,bcaa58db019ac175d6857db93693133e0912ebd4,09be204011872adcc3fbc1ffd3a2d33bed479ed2
6cd75b75c3001e2125bbc687b59d878b90a26165,ec76f13bd7d4f2fdf2484e3f5388bbd385f499f7,1802a8c4936be2572af60b0b9d58d19c61ab03c2
f3ded5e82eb74efd6c9d0464381b3643ceaa8f72,8790c4303a6836ed7f21d0fa71c2111a9e6f8599,55aa5ac129fb44d38a1164f4917dcb3182fb8256
99b71eafdad72910e6be2f5a9838470f47350924,1a07e13c023a6ef423917c4500086f242fe056a3,29b3b092518ddd6ea3525fdfc1cfa1d7b512e824
490c431bf99b5ddeae2d13ecc5d75f08d0033430,21668148d853092dbb56bf5f8160f2eff0c0a1fc,d88aad944eb20e217c1a8d7cd47bd9e7d7e7549a
4e3fc8290a13cfb748416758caf51e840fa060e1,d71f8233735c29084123bcba463b9e955982410c,de51e6a32abe540960354cc1411b7a4f70a00d6d
9a223100d1c5604e4e3be573d93953073051bbc3,5a07867d202654130e326b89c2c6acdf0bce7f8c,d87ba066083c2b7ef48a3ace83745ce65b460632
847ae42cc11fa393a13977cbb810d58b81e60f2f,3a714774ffec45484fce4547c7b2fa72a6ddc789,ef7f2ab5a7aa65dbac4cfd06192faf5594c59b52
326356e8e9000eec4b8c1a24ca3db8515c57f80b,c005544f3dd010457719f39c8f6082172c3e7d61,eb38ba60c4b0efb9b5a6fe99cb7b7825a244062c
39fb7618e4d4e5e088f1381dc1b9e3fb933f6d79,9432af9ec67bd69d61b9e3458f8da00ef1e8bc22,7c01edf8314c9321857c76ec02e6833139c68f85
e09304f67163e4419ecee27440712da5e09e8451,0730e86c9db81917c48711b7f00c1dd503d1ac91,4427392d56d0cc33d961a9af0df1454d9d95e6be
d842d822ff3679bb77dac51e9f147d85a25ef5cf,8e45bb133dda3e4417c9427f1cc2c11739447b38,4664e510e64bd76fa3700d739204e12a72bf5f5e
fecd25bac187d7df0846f58ab719fa2aafede2bd,665b019ef3b1f43c4bef68237a604e2af1487317,da6c0e919b9846586a59ccfb77a698b2093b3b80
e749c81040070d3e8cb0c070e6e63f2f9b54fef4,e219b24aec902218ad27678a06d18359f10889c5,4648f967bdb769a954cdce0cf995a45d9aafdc55
7c443001362afde8da7686d318ff4d96c945394c,79b240ec8165084058d553693e696819c7732f1a,b2f5f6ac7d3527806868807d95621861b3a0247d
e237da95d2b16fe25ef196674215cb341b983188,4b757dd360796cdfd6ee412ddca5e806ef4159ee,671a36c823fcc87d2bd867a644bb50aeac68dcb2
0c939ac6c6e5ec83962f636cec7c98ab93199759,d35a2f53e770df0a1b7a5c5dc07264997e7a4f35,9b2726fe316a385ee349cdec688b79771f252f21
fa384956d60c96d19c3c6ef891f3ce0936b491f6,b2dd980329175ae2c9a308034893c06d6b9592cd,831a46eb2f20a1649fc30fe31bd5eb0a0b8998e6
f85aa24ad0f75a4a32c03ea62503d4cf2901ac2c,a70e4ed9be34661a2ac97994e99899fea47da7e7,553681007535fa3d8397aaa9c296f087808d69c6
fd72ed8c5691877125886042ad5da7e9cd33f9f6,83c9b17ec5aa3644201b414cf72c3166fd2f1930,e20466ffd120ca16ddecada5f822b25f0f206b6c
2bc965ee280146dd77ef7a968776c8759a0f7bc3,5a32b7159e3110c291c8ebeaaa641d3c61bce92a,59ab80bbb06eada221101354f6572aaa6dac8fa9
251ca6b6582660db76aa087a996020bef7bafd5c,32c1f78dc194610895ea173ae48fc2d96192f44e,4340d03ba9284c1388dbbd6bebe9284bb9f5ef4c
924c917276b094964f31f72a3a9cd01d38c7255c,ab3a10eaedf10ff086f89f5e7c940b86a93e130f,55d3d1447cbc07c98dedeff63d44ce1e4364abb6
b9098d8c5fb0762955acee79c0348d375558d44d,d86e726e87e279ea5c73e9c8d04c5f16e509f99a,698e16a12d13e20f468ad022453b708f4bfeeb78
70591f6449a75f084d5ebe630e4597495abe31d6,51035eb0f48892838ab40705676d4cefbb0336db,d1dbbc0a35aca0bcf45bdac1727808f2341b4775
4ac20ba523b5d11826b0f2c5d9e77861d2e63d27,2ef405b3e577461668de1e776cb07aba7ee5342f,0df9da502b666cddf8e5a4a8762202f777b20eec
2679972f3822ad5301d73f20c9da79ad0b27e208,b4b4896f7fc2b0f61a920dbfe3e220d8358a1a6e,4200ebd748aaf9bf82357212f6c2286649298509
a43f1bc1d0fcc3518412feb61019d124ff170f58,7878a7b390e07d0ea5000510a9634181afbed6cb,b0003f71dda8388ad74292edb82ba401296fc106
aaf0bf7e191b8abfe6cbf4540de096d4e5234b7b,aeef060a0ba3bdbad60f1597f66358de1591e03d,0ebb98da7bc60af4daaec6fcf08d6cf7eaee6620
c433b740e445095ee93b3c8cda5eb494755df256,783436f2a12e9860c28c5f5ca2f76182bfcfee29,39ac8a79233b885785148b3f4a2fcc1547dcf599
2b9455e262e7e7f7333180268dac1cb0263b4143,ce134abe46a0a22a91dceee69f6b2996a3959bde,7a19bc012a29b05540b958e90bf387c21c143397
373ebbcf41478383382db9db4b0fee61d649db9a,d91be468dadc5cf2c66efb2596ba4f45d31dc80b,e6d140df80b76227f76f632da148795fb696753f
1f6ac0609e416b083e8e3431263501dd729434fa,09417140dee6b84871b1d193457613b8258aad68,c515d4502644f9aeafd447169e848196a17f9083
263e7e1de1f5b93c9b06ae448faba3e32fcc4f6d,f0b2d4a4cab1f52c8d03cec742da524be80ebd6e,97fde501012bb27041b27a7153b4381a0784552d
c7290bfb78ae1802361d1efd937fbed9d4f4cf82,42b466015d8d342c42d03884c94d4620381ffa0d,b5bccf7a77fa90e095eedb24b57b9ef1af768c45
922457e5b58d76a13ff706f9220d9d6350631930,ad50adf5f329454329b5bac372c7b5091c620edf,860a2d01455925f60eb3f14a0289f2d47a22f72d
b5e20033924651f3481c3c223409af31a68e751b,b58469a7bd20259b4e6ecbded940cc3a4593bee7,07a2c6b37e194371572172e72e821163a0266447
e33f720fa5dc519ca19b936aaae9578cec74187c,c74c4ad9ada5fd217f40663fe65820b3136e6c4f,58df41dcf09036df5e244a2781b93f1529c20bd8
5e641960ac0ee1946d419175aa4594d68b0a66fb,98f6c64f826f0cacbd817d84e920c194a33ffcfb,b3a8fd009a8653c759f57549db0926e5b6af0c8c
b67e6ed75e558f7e7fa90b74c0ea7b2130ab3e07,be1fedb2ec90082a6393c6ee2998ea3a8db4ac28,1547f28a4001e3d405294bee87be5c889c87b1de
ef5c0a4ba85c12edfdfcf395c7317c85d34e6d4e,2f3c0bc8bf96ab70c031af16754bbdfff8fef1f0,25e955b6e4d407fbd87c0c743fb6201997643455
b09cdf35a55c30a7b4174868f2145eb4fe54b8d0,1068015c4da99af9466ccf7c4db1d5c8b8bc2780,480200a708885c2d63270a1314808ca0668a65e1
0f2248f923dc1cd790a9588b64d0a2dcffcf3560,21276413ea4f5044fb183efee1b78e303fbc0715,8b816782c3a6a06e4c30b61f89c618fbf384e5ca
859b100da682797de580abc1988b3103751a0a10,4652593a8c13f551efd3313da8616d7ca996d3a8,2cd92ee792e46297dc982a8990638cfcf0244bd1
328e60c15536be8fe559c9bf4b8f3eaea1370f38,e05a618483e8111d531a8f8dbe71988754c5d143,30c06d66c3c30adfee4d061a0902dc79924cd7c0
5aeaf398cd6ca30c3a0ea01fb78632eebc6dbe81,16d8d466919c531acaca0afaf1bab803cbf64c88,db7abc11d679d11bc1dab883a4b21b4c023be2ab
ec3ed04b73a1a8999a5683ad708f92cc823cd33b,36e9e39bcaa5c5175d96b4e7141126b9ec75384c,166a24ae7748c6a5f724325950c7533a25597b1f
f7edf0355ae2f2c1c538c24082048ff5afb5e574,61bf79c0ace37a74fa7ef47ed95577184175f9dd,8c5a48da2bb48162c53380d92d3cc192ee3271da
9792ef566ffa8fd34a18ad56b82176bb9c59c9f2,e0aed719edc7d2c7bcdea2dc35b1d978093d4e63,310069221a259dcc21e1ed90a58193716b8e39c3
e1478e27b3474c802494c2260b82c63b7376c115,04a31f8be27c7136b81319e0f2c3b4fc170bd3b7,36e65b34645b0b06770d401fb047cc5cd169b78e
d3a0a2dddfcbe3d8036e6f3f32e79488af221363,6ba102ee575ca97764117d05c580e30385438b52,1ef148148845ac920b73d8c32d836ca2130a4595
b20f968454f2c803485916fec7d5b4df4d52064d,4b5c6ba3fc0a23b340efae4ac53bccb72c26da92,1a57a65c5fe1a17f8b1d447051ff18559fdefb93
eb5c61281cbbee572ce4fbc0f4ad7adbf678dc78,f0cecf536700060b56eb12c7c8db20ec6e839428,dc5c99be6db706536ef07f18a4d06da831b6e2f5
cafaa9f5b805627f3ccd22ae9fd5202625152f8d,6314d69c400ff08dfe231a1a67e85e9185e2e819,547fa426c7f399f60cc70a06c7f4d1449c6a9634
754c40cdb0175f35f8e1b61472c14d424188918d,0785652b55ab72528d0514b2cf569be75fe641a0,a74a4aca030af59d0e76d8b0455916bbc1917e99
065ddfd8d434ff901b14c71b1ba5eaf095473a3b,f65994ddcb5ebe7e5d9122477ea2cd1e6cfc2cb8,f8f54dcbcfa27eafd4fa8593601c692e1bb1a13e
548e91f104a22e37552632fcfb43a612e50fe18b,c07da2a6546c72cda73c151a064e7508c47a63a6,84a852bc1368345c77cd1804aa60a630af3a27fc
b1151ef4ead1548855dbbcdb65bbd2c5c1250e40,425ef662cc54e3293ef63bab37cdff44b29a23a6,62236ec2bb058143ae3465884cb20f0856482f76
43538416e37d26d8bea7b2fb2bada8c52b24b236,b611c0011d4b874fa5cabb48799ac4a879d66e62,1a65b058b3845a129bd6c35a047e94218b5a0f0a
6c4d218b8d1c00cec55f889ab5fab9639a8159fe,b0852b70c613024ba1558036b3fc50fa8012fe04,bd1da8ffb7240bee2f5ab4055c94dffc48c30290
da65fc54a62b73a8f937fdb1036d2cc736982fbd,9bc294a5ed2ba951f6cc331ec28932c76355a44c,21e13f0c2c71f896dabfb3190144e10146e281eb
d6825a35612f7df856097fc778a74d3cbd88a729,4cae231a521302a6356875b1d2268323067a321d,f672d4cccf83d80351f5353a80270b55b6d74eb4
bbecb015c9c841c77d38d8499d26f4fa6a2a27b1,cc81e56eb22b94c0525dcd745aacc42b7f04ae55,835375e7e06ad42a02640b6a48a1bcc86c4e39bb
23875bd8c47e3cfcd9fc287781c9ff95870c7fbd,7afde9fe77b9f63131f5bc9ddfe1eec55416031d,eba0624535cc504fcaf367055cd3adeab56097a4
51b9f31f7cecef028afa71252926888ca9ea42b7,dc0e6f4aa83c8ee516b6b27104947a23fc834f48,927020d981031267e392273cf672c1bca8b5f6fd
e7b6a08eae73effb64efa5cae6025a72d01d7026,67ea121250f8d89f5d26c26088554cf4c9ca4e6a,32a19eb5b358499282ab50300ebee96114a613ac
f579f6dba5525abfbe88101f52bdf676d5b3a32c,f971398f4700e3847a500805ade5b34e4027882d,48fe8e6208ac91446b65d3a4260413eeccf7cc90
5e7bc906e5b4ca4e4ea05ea8add74e756de40ab8,ee5903fe3e57b68e4ceb3462eab02b31eb0d1fb7,9849de984bb974c4e253f134410fe5b52c28e1fd
d79db82ca2ebdf6a89396c6f73efb39f566ed83b,317b01db6528a6e0e2cff27caca9688a4ddc9373,9d85249ee5454a2dfa037edfab9e9ea29fa135e1
6008dba0f71e1e690c10751794dd442136996143,d2926867d688aec3b5fba8df1dfc09e64610bc3c,5646d14a3c5b7161d4d1c47f45d3ec2f2a8fc854
4e1c9aa1dffeb368e82d0376eeadc3c7e7630956,f372eb8a33e269d3ebb857703c4861bc7e62a1ab,4faba3dd5d7b2c49c80422a117d9e87c5fdc9162
992532d5657f135fb597b6e164fcf39186a8296b,5cf2fac78cfccd72dd2ed6f6dbcf480edc680f46,79708f45ab0e6a7f4c09ecec4da87a06c15b8b9c
105382b8a17691d31c3991ec127fb2ac391e305a,fb04659eb956e92b7f0d722c3f3c4403c4cc99df,0632cb548a40409e884a0e424c295ac4cc2790f5
6f526e83a4d83f9a4158863a156ef06b5428e5bb,95993ea7a4949af99f8987912788dffe382ea957,5ffdfdd04ff1a060e5ace0958c39d61ab5ffe1b3
b49d2f689f23e5e04d8d963cec7569799821830b,0c00e3ae132268798ad2574b38b71f50b1b7c4f4,2ec7817ad4c6f72be0ce69af53ad43ce890ee98a
c8cb48ed7393e5b4b794c9052db34d6478320eab,7d0ef337668af544e9712b025c75beed6f28e29d,4aaf65e9f849a8771046f8e2cdc68de851e4422e
0610d691b6ba50c6596ddaa3906503bda2771b5f,08b7d2ffdb662073c748512c3b5a60bc33d42119,5462dd388ba79274fc7f0dcd1bf9018966842487
4ee4e9ae1edc970498641c1bd864fa58f968de23,ff9aa15143dc4520453a4f35c4aeaff57776f01e,0dea63ab081bfc42541d6513f1f11bc25a126fb5
51249b103a8296dc7429981647bfbffc5ee52f4a,cca0c2e11132805adabe526c4e7dc91d0968c31e,b1f122ffadcc952a67cfd4de2afc72c99e080722
9bcb1b6f2104572fdd1a49dd08b3a729562c79df,de46b06f27cbd94134c533cd2e8016d340fda765,ee3fb5544246a4f3f5f1cada28f38798ffea5440
cd1251bf00fd0a3891feb0611bb4427fbbfcc8ed,37b3a88fa0b455b8e3084b66bb395f3f6510b873,d659ca7427cc2bc71fb26275b6a2e5d2fca54c5a
d47fa4cf1b94f0e7dfb8e826db552ac2bed57c65,470e3b94489c95b9ed86fe299771e50d801c62ea,e1509e1c6d287b826ff8968650bcb514cc4730c9
9d55e3aa0ed0711c8695927b1469565437319de5,d8682f36b99b3da55df517bd99eb75855d85b999,67df8802b1c513faad634e90893c690477f612e2
290c597878560282b24831336bfe41b31a464ab0,ca8bed443fdb37492837382e1415f866c8bd88e9,6548dd02119e46570611e64d5b9038d405a00fd6
f6353540426267c8a192124da5fa5fe83a8d7724,8a836ccafcee73fbb0cfc57e4c7b6674d93fc398,0b0033f53c759ac7c03578873bb8cb1848d8570d
1d72eeb2cfb4c82188138ec3b703b09937c2bc9e,5745635a713dda23ed3761de15d076d18c6143f2,1a5ca1e4bbf3022a549420a8bdf0d67ac0f52c05
a70129f39436ccf9fec1780aca4802ef0ef8a74a,b274091fe8d50ff6d490cff92b82f43b06f77bef,45d8ffe13dcb4dc2eb46e8977e145406641d8322
53cbfe3f85f70d0f8225d1e6432b08504e9e4645,d53ea44fe42c328070b800cb51b0ea1b754357d4,a06068b4f175a724b45b2322c7d92b947605e526
4c7d6b11607cf86e541347e5bccc5ab29c56074b,e3e1285c5d450a34766320e32a0b6387126503f8,095ff0d96a57d3d49a984d6a20f6c0024a36fd4a
6724e3dec8f871c0b718391e6c28a868d876e9f9,5c5d590abbca26edf633815ba771301517ea1cbd,f9fbbd4a88b447e5da34e624a8b0e07e0bc38571
71cc17d60d592700030b7d56624c205ac3720538,6870e68f4e9320f9b1775206e1c1183db646ad04,98563dd06904e1fdf03a0efab4ce75107e4e09f1
98d8830eb79bbc3d67ea9fc3a852e6088d014502,18f2553e8e9440a7bc95bfb1dcaf272fa7095f90

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


- x86 align does not use a register anymore, code removed
Commit consists out of
  • M compiler/x86/aasmcpu.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


+ 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


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


* building with -Cfvfpv2 hopefully fixed
Commit consists out of
  • M compiler/arm/cgcpu.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


* 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


+ in some language modes the loop counter is undefined after the loop by language definition
Commit consists out of
  • M compiler/pstatmnt.pas


* take care of for loop counter read after loop
Commit consists out of
  • M compiler/optdfa.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


* regenerated
Commit consists out of
  • M compiler/Makefile


+ add intrdat target
Commit consists out of
  • M compiler/Makefile.fpc


+ 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


* using ymm registers for copying data is always useful, regardless of alignment
Commit consists out of
  • M compiler/x86/cgx86.pas


+ copy mode avx512
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


* 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


* 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


* ARMv7A / A64: Constant writes to memory merged to larger forms where possible
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/arm/cpuinfo.pas
  • M compiler/armgen/aoptarm.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


Turn TCallCandidates into an object, make it create FIgnoredCandidateProcs on demand, and outline such adding on demand into dedicated TFPList.AddOnDemand.
Commit consists out of
  • M compiler/cclasses.pas
  • M compiler/htypechk.pas
  • M compiler/ncal.pas
  • M compiler/pgenutil.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


Merge foreachnodes into one version that uses a context object.
Commit consists out of
  • M compiler/nutils.pas


Add a bound parameter to node_count(_weighted).
Commit consists out of
  • M compiler/ncal.pas
  • M compiler/nutils.pas
  • M compiler/optloop.pas
  • M compiler/psub.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


* x86: m128 etc. are now vector arrays (giving correct memory alignment) and "use_vectorfpu" will return True for these types
Commit consists out of
  • M compiler/psystem.pas
  • M compiler/symdef.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


Use a set instead of boolean arguments to TCallCandidates.
Commit consists out of
  • M compiler/htypechk.pas
  • M compiler/ncal.pas


Outline freeing TFPList with disposing its items into TFPList.FreeAndNilDisposing.
Commit consists out of
  • M compiler/cclasses.pas
  • M compiler/globals.pas
  • M compiler/pgentype.pas
  • M compiler/psub.pas
  • M compiler/symdef.pas
  • M compiler/symtable.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


Simplify SanitiseXMLString.
Commit consists out of
  • M compiler/verbose.pas


* 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


* x86: Refactor of a DeepMOVOpt call to make use of a while loop and aoc_ForceNewIteration to increase compiler speed and efficiency.
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


* Seems not all was committed
Commit consists out of
  • M compiler/systems/t_wasi.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


+ add utility function to retrieve a signed integer def for a given integer def
Commit consists out of
  • M compiler/defutil.pas
  • M compiler/ncal.pas


+ add message in case an ordinal or pointer expression is expected (e.g. for the atomic intrinsics)
Commit consists out of
  • M compiler/msg/errore.msg


* 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


+ added WASI multithreading helper for setting the stack pointer for the linear stack
Commit consists out of
  • M compiler/wasm32/ccpuinnr.inc
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasminl.pas
  • M rtl/wasi/systhrd.inc
  • M rtl/wasm32/cpuh.inc
  • M rtl/wasm32/cpuinnr.inc


* a_load_subsetreg_reg will no longer generate an AND instruction if it isn't necessary
Commit consists out of
  • M compiler/hlcgobj.pas


* x86: Modification to PostPeepholeOptShr to skip over MOV instructions if they don't modify the current register
Commit consists out of
  • M compiler/x86/aoptx86.pas


* 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


* x86: CheckJumpMovTransferOpt now also copies over register deallocations to allow better optimisations
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aoptbase.pas
  • M compiler/x86/aoptx86.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: Refactored SetCC optimisations to better
spot label clusters and alignment hints.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New RET/lbl/RET optimisation
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


* 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


Optimize {$DEFINE x := y} and refactor tmacro.buftext.
Commit consists out of
  • M compiler/scanner.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas


Report correct error positions inside macros (at least more often).
Commit consists out of
  • M compiler/scanner.pas


* 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 support for parsing sets in preprocessor directives
Commit consists out of
  • M compiler/scanner.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


* 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


Omit FPC_INIT_FUNC_TABLE generation if no unit initialization is registered for current project.
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/ngenutil.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


Switch from functions for the Atomic*-family to intrinsics
Commit consists out of
  • M compiler/psystem.pas
  • M rtl/inc/system.inc
  • M rtl/inc/systemh.inc


* 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


Add x86_64-openbsd to LLVM supported list
Commit consists out of
  • M compiler/Makefile.fpc
  • M compiler/llvm/agllvm.pas
  • M compiler/systems/i_bsd.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


Compile “length(string or array) = 0” as “pointer(string or array) = nil” without further check, unless really required.

Also handle length <> 0, > 0, < 0, >= 0, <= 0, assuming lengths are never negative.
Commit consists out of
  • M compiler/nadd.pas
  • A tests/test/tlenzero.pp


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


* Added field to identify blocknodes that wrap entire subroutines
Commit consists out of
  • M compiler/nbas.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


* Framework for more complex block node simplification
Commit consists out of
  • M compiler/nbas.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


* New block node optimisation that attempts to
flatten nested blocks (makes labels and later
optimisation more efficient).
Commit consists out of
  • M compiler/nbas.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


* Only perform the block flattening if "forinline" is true or under -O2 and above
Commit consists out of
  • M compiler/nbas.pas


+ 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


Take care about endianess in arm eabi attribute section
Commit consists out of
  • M compiler/assemble.pas


Take care about endianess in arm instruction binary code generator
Commit consists out of
  • M compiler/arm/aasmcpu.pas


Add ogmacho unit loading unless NOOGMACHO macro is defined
Commit consists out of
  • M compiler/i386/cputarg.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


* arm / a64: Extended the AND; CMP -> ANDS family of optimisations to catch BIC as well as AND
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas
  • M compiler/arm/aoptcpu.pas
  • M compiler/armgen/aoptarm.pas


* a64: ARMv8.7 through ARMv8.9 have been added as AArch64 CPU types, along with support for the CSSC extension.
Commit consists out of
  • M compiler/aarch64/agcpugas.pas
  • M compiler/aarch64/cpuinfo.pas


* a64: Added DOTPROD and PAUTH support flags to relevant instruction sets (v8.4+ and v8.3+ respectively)
Commit consists out of
  • M compiler/aarch64/cpuinfo.pas


* a64: Added "ABS" and "CTZ" mnemonics (CSSC 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


* 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


- AND and DeepMovOpt optimisations upgraded.
Commit consists out of
  • M compiler/x86/aoptx86.pas


- OR and extension optimisations upgraded.
Commit consists out of
  • M compiler/x86/aoptx86.pas


- Const and ref merge optimisations upgraded.
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ get_int_value
Commit consists out of
  • M compiler/i8086/n8086add.pas
  • M compiler/nadd.pas
  • M compiler/nmat.pas
  • M compiler/nutils.pas


Fix compilation of i8086/n8086add.pas unit after introduction of get_int_value function
Commit consists out of
  • M compiler/i8086/n8086add.pas


* x86-64: Bug fix where RIP-relative references were made absolute in minmax optimisations by mistake.
Commit consists out of
  • M compiler/x86/nx86inl.pas


* optimize x < length(arr) and x >= length(arr) as proposed in gitlab 0040292
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw40292.pp


- 32-to-64-bit zero extension optimisations upgraded.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: New reference support methods to detect modification
Commit consists out of
  • M compiler/x86/aoptx86.pas


- Mov2Nop 5a and Mov2Nop 5b optimisations upgraded.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: CheckMovMov2MovMov2 now sets "Force New Iteration" if it optimises
Commit consists out of
  • M compiler/x86/aoptx86.pas


- MovLea2Add optimisation upgraded.
Commit consists out of
  • M compiler/x86/aoptx86.pas


- MovOp2Op optimisation upgraded.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* optimize x = length(...) also if the operands are swapped
Commit consists out of
  • M compiler/nadd.pas
  • M tests/webtbs/tw40292.pp


+ in on an empty set is always false, resolves gitlab 0040745
Commit consists out of
  • M compiler/nset.pas
  • A tests/webtbs/tw40745.pp


* x86: Bug fix in OptPass1MOV long-range optimisations where
the wrong register was checked to see if had changed.
Commit consists out of
  • M compiler/x86/aoptx86.pas


* do not limit the number of interfaces per class, resolves gitlab 0040268
Commit consists out of
  • M compiler/nobj.pas
  • A tests/webtbs/tw40258.pp


* workaround unsupported -march=...+pauth for some assembler/clang versions
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* avoid range check error in TVMTBuilder.intf_optimize_vtbls by early bailing out if a class has no interfaces
Commit consists out of
  • M compiler/nobj.pas


* allow swapping of operands for three operand instructions if they are commutative
Commit consists out of
  • M compiler/x86/nx86add.pas


* i386: Fixed issue where the peephole optimizer entered an infinite loop when building for CPUs older than Pentium II
Commit consists out of
  • M compiler/x86/aoptx86.pas


* disable (type ...), it did never work and there are not test, resolves gitlab 0040562
Commit consists out of
  • M compiler/pdecsub.pas
  • A tests/webtbf/tw40562.pp


* ensure that Insert() of a single element into a dynamic array is typechecked in a way that the user is notified of errors
+ added test
Commit consists out of
  • M compiler/ninl.pas
  • A tests/tbf/tb0298.pp


* revert the changes from b0d61558e38f7e9ceb3918dbbaab13bc49496320, as 61397d40ae0c43083844e850d87c60ba74b34d28 fixes it more correctly
Commit consists out of
  • M compiler/nadd.pas


* (hopefully) more consistent message when the compiler is stopped during showing the help screen, resolves gitlab 0039455
Commit consists out of
  • M compiler/compiler.pas
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc
  • M compiler/ncal.pas


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


* more debug statments removed
Commit consists out of
  • M compiler/ncal.pas


* few types fixed
Commit consists out of
  • M compiler/jvm/njvminl.pas
  • M compiler/x86_64/cpupara.pas


* Calling "internalstatements" now sets the "bnf_strippable" flag on the result
Commit consists out of
  • M compiler/nbas.pas
  • M compiler/psub.pas


* do_optconstpropagate and do_optdeadstoreelim now set their
"changed" parameter properly and is now an out type.
* Optimisations on calls to said functions
Commit consists out of
  • M compiler/optconstprop.pas
  • M compiler/optdeadstore.pas
  • M compiler/psub.pas


* x86: The ADD/SUB peephole optimisations that combine adjacent operations are now much more careful about the flags
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Arithmetic combination optimisations are now much more careful about the flags being in use
Commit consists out of
  • M compiler/x86/aoptx86.pas


* genlinearlist and genlinearcmplist for case blocks now allocate the flags properly
Commit consists out of
  • M compiler/aarch64/ncpuset.pas
  • M compiler/arm/narmset.pas
  • M compiler/ncgset.pas
  • M compiler/x86/nx86set.pas


* cleanup tnodeutils.InsertThreadvars as suggested in gitlab 0040538, resolves gitlab 0040538
Commit consists out of
  • M compiler/ngenutil.pas


Force usage of ld.lld for x86_64-openbsd system, because ld.bfd generates invalid executable which SIGSEGV at exit
Commit consists out of
  • M compiler/systems/t_bsd.pas


* compiler part of gitlab 0035433
Commit consists out of
  • M compiler/aoptobj.pas
  • M compiler/x86/cgx86.pas


Do not set USEINLINE macro if DISABLE_INLINE macro is set
Commit consists out of
  • M compiler/fpcdefs.inc


* regenerated
Commit consists out of
  • M compiler/x86/cx86mminnr.inc


* x86: Improved "Test2Bt" peephole optimisation
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Block nodes are now marked as strippable when created from "begin" statements
Commit consists out of
  • M compiler/pstatmnt.pas


* Bug fix where copied block nodes didn't inherit the original's flags
Commit consists out of
  • M compiler/nbas.pas


* Inc/Dec nodes converted to Add/Sub now remove
the "nf_modify" flag from the destination so
constant propagation works more efficiently.
Commit consists out of
  • M compiler/ninl.pas


* Correct location of new error message
Commit consists out of
  • M compiler/msg/errore.msg


* Replace object with record where possible
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/nbas.pas
  • M compiler/symbase.pas
  • M compiler/symtype.pas


* Blocks of statements are now pruned (within reason) if a raise, exit, break, continue or goto node is found
Commit consists out of
  • M compiler/nbas.pas


* Fix creating thunk class when inherited interfaces are used
Commit consists out of
  • M compiler/pmodules.pas
  • M compiler/symconst.pas
  • M compiler/symcreat.pas
  • M compiler/symdef.pas


* hlgcodegen needed when creating module info (fixes AV)
Commit consists out of
  • M compiler/wasm32/nwasmutil.pas


* remove do_compile, clearer flow when loading ppu/pas files
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/fppu.pas


* Wasm: generator for invoke helper now handles overloaded methods in interfaces
Commit consists out of
  • M compiler/symcreat.pas


* Emit better error when not able to load auto units
Commit consists out of
  • M compiler/pmodules.pas


+ store pic references in registers if possible
Commit consists out of
  • M compiler/optcse.pas


+ do do_consttovar optimization on i386 as well
Commit consists out of
  • M compiler/i386/cpuinfo.pas


* allow sp_generic_dummysym for procsyms even if there are no generic overloads
Commit consists out of
  • M compiler/symsym.pas


* fix gitlab 0040764: declare procsyms of a class/object also as sp_generic_dummysym if a symbol in a parent class has it set so that the parser will treat it as a potential generic
+ added test
Commit consists out of
  • M compiler/pdecsub.pas
  • A tests/webtbs/tw40764.pp
  • A tests/webtbs/uw40764a.pp
  • A tests/webtbs/uw40764b.pp


m68k-palmos: do not try to write section attributes, they're not really useful, and lead to assembler warnings
Commit consists out of
  • M compiler/aggas.pas


+ enable cs_opt_consts on arm as well
Commit consists out of
  • M compiler/arm/cpuinfo.pas


+ cs_opt_consts for sparc
Commit consists out of
  • M compiler/optcse.pas
  • M compiler/sparc/cpuinfo.pas


* patch by rasberryrabbit to resolve gitlab 0040761
Commit consists out of
  • M compiler/nbas.pas


* Added new node utility function to search for nodes of a specific type in a node tree
Commit consists out of
  • M compiler/nutils.pas


* Node-stripping optimisation in "TBlockNode.simplify" now uses "has_child_of_type" to determine stop point
Commit consists out of
  • M compiler/nbas.pas


* "no_exit_statement_in_block" replaced with "not has_child_of_type(..., [exitn])"
Commit consists out of
  • M compiler/nbas.pas


* "checkcontinue" replaced with "has_child_of_type(..., [continuen])"
Commit consists out of
  • M compiler/nflw.pas


* proper alignment information for constant addresses stored in registers
Commit consists out of
  • M compiler/optcse.pas


Make use of CPUX86_HINT_BSX_DEST_UNCHANGED_ON_ZF_1 in Bsf*/Bsr*.
Commit consists out of
  • M compiler/x86/cgx86.pas
  • M rtl/i386/i386.inc
  • M tests/test/tbsx1.pp


+ cs_opt_consts for sparc64
Commit consists out of
  • M compiler/optcse.pas
  • M compiler/sparc64/cpuinfo.pas


Simplify constexp.pas and fix certain edge cases.

High(uint64) - 2 - High(uint64) now gives correct −2.
Commit consists out of
  • M compiler/constexp.pas
  • M compiler/verbose.pas


* arm / a64: Factored out common conditional checks in "OptPass1UXTB",
"OptPass1SXTB", "OptPass1UXTH" and "OptPass1SXTH" to
improve performance.
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* handle unary minus in the preprocessor, resolves gitlab 0040782
Commit consists out of
  • M compiler/scanner.pas
  • A tests/test/tpreproc1.pp


* arm / a64: New optimisation for removing the number of necessary S/UXTB/H instructions
Commit consists out of
  • M compiler/armgen/aoptarm.pas


Do not set default target to system_sparc64_solaris on solaris OS for sparc64 compiler as this target is not yet supported
Commit consists out of
  • M compiler/systems.pas


* throw an error if varargs is used without appropriate calling conventions, resolves gitlab 0040342
Commit consists out of
  • M compiler/pparautl.pas
  • A tests/tbf/tw40342.pp


* unified g_concatcopy_move
Commit consists out of
  • M compiler/aarch64/cgcpu.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/avr/cgcpu.pas
  • M compiler/cgobj.pas
  • M compiler/mips/cgcpu.pas
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv64/cgcpu.pas
  • M compiler/sparcgen/cgsparc.pas
  • M compiler/xtensa/cgcpu.pas


+ CPUX86_HINT_FAST_SHORT_REP_MOVS
* use FPC_MOVE instead of rep movs if possible, partially fixes gitlab 0040785
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/x86/cgx86.pas
  • M compiler/x86_64/cpuinfo.pas


Extend riscv32-freertos functionality for esp32c3
Commit consists out of
  • M compiler/options.pas
  • M compiler/pmodules.pas
  • M compiler/systems/t_freertos.pas
  • M rtl/freertos/riscv32/esp32c3idf_50000.pp


Fix exclusion of ogelf unit using $ifndef NOOGELF
Commit consists out of
  • M compiler/i386/cputarg.pas


Add -WP option to help for ppcrossrv32
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/msgidx.inc
  • M compiler/msgtxt.inc


Add insert_init_final_table method
Commit consists out of
  • M compiler/riscv32/cpunode.pas
  • A compiler/riscv32/nrv32util.pas


* reorganize Tcgx86.g_concatcopy
Commit consists out of
  • M compiler/x86/cgx86.pas


Group linker scripts and search paths
Commit consists out of
  • M compiler/systems/t_freertos.pas


Add support for esp-idf v4.4
Commit consists out of
  • M compiler/pmodules.pas
  • M rtl/freertos/Makefile
  • M rtl/freertos/Makefile.fpc
  • A rtl/freertos/riscv32/esp32c3idf_40400.pp


* handle complexer references in tcg8086.a_loadaddr_ref_cgpara properly
Commit consists out of
  • M compiler/i8086/cgcpu.pas


Move .data with fpc specific information to outside normal memory range.
Commit consists out of
  • M compiler/systems/t_freertos.pas


Do not pass esp32c3.rom.newlib-time.ld to the linker, it causes the ROM version of _isatty_r to be linked instead of the newlib library version.
Commit consists out of
  • M compiler/systems/t_freertos.pas


* factor out tcgx86.getcopymode
Commit consists out of
  • M compiler/x86/cgx86.pas


* x86: Minor change to lineinfo in "MovAdd2Lea" so debugging is more logical
Commit consists out of
  • M compiler/x86/aoptx86.pas


* oc_blue properly named as noted by Don Siders
Commit consists out of
  • M compiler/comphook.pas


* Stripped down and refactored TAsmNode XML node dumps
for better platform-specific implementations.
Commit consists out of
  • M compiler/nbas.pas


+ CPUX86_HINT_BSX_DEST_UNCHANGED_ON_ZF_1
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/i8086/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


m68k: also allow TST from before Sxx instructions with explicit .b size to be optimized away
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


m68k: try to fold two consecutive AND instructions into one. This usually happens when a zero extension is followed by another AND.
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


m68k-palmos: further fixes to assembly section. also actually use aout, as we have aout binutils for palmos
Commit consists out of
  • M compiler/m68k/ag68kgas.pas


Initial support for esp32-c6-s2-s3. Support for idf versions 5.0.6 and 5.2.1
Commit consists out of
  • M Makefile
  • M compiler/options.pas
  • M compiler/pmodules.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv32/nrv32util.pas
  • M compiler/systems/t_freertos.pas
  • M compiler/xtensa/cpuinfo.pas
  • M packages/Makefile
  • M packages/build/Makefile.pkg
  • M packages/fpmkunit/Makefile
  • M rtl/Makefile
  • M rtl/freertos/Makefile
  • M rtl/freertos/Makefile.fpc
  • A rtl/freertos/riscv32/esp32c2.pp
  • A rtl/freertos/riscv32/esp32c2idf_50000.pp
  • A rtl/freertos/riscv32/esp32c2idf_50200.pp
  • M rtl/freertos/riscv32/esp32c3.pp
  • A rtl/freertos/riscv32/esp32c3idf_50200.pp
  • A rtl/freertos/riscv32/esp32c6.pp
  • A rtl/freertos/riscv32/esp32c6idf_50200.pp
  • A rtl/freertos/xtensa/esp32s2.pp
  • A rtl/freertos/xtensa/esp32s3.pp
  • M rtl/freertos/xtensa/espidf_40200.pp
  • A rtl/freertos/xtensa/espidf_50000.pp
  • A rtl/freertos/xtensa/espidf_50200.pp
  • M rtl/inc/Makefile.rtl
  • A rtl/namespaced/freertos/riscv32/System.esp32c2idf_50000.pp
  • A rtl/namespaced/freertos/riscv32/System.esp32c2idf_50200.pp
  • A rtl/namespaced/freertos/riscv32/System.esp32c3idf_50200.pp
  • A rtl/namespaced/freertos/riscv32/System.esp32c6.pp
  • A rtl/namespaced/freertos/riscv32/System.esp32c6idf_50200.pp
  • A rtl/namespaced/freertos/xtensa/System.esp32s2.pp
  • A rtl/namespaced/freertos/xtensa/System.esp32s3.pp
  • A rtl/namespaced/freertos/xtensa/System.espidf_50000.pp
  • A rtl/namespaced/freertos/xtensa/System.espidf_50200.pp
  • M utils/dotutils/known.txt


+ check for tf_init_final_units_by_calls in trv32nodeutils.insert_init_final_table
Commit consists out of
  • M compiler/riscv32/nrv32util.pas


+ do do_consttovar on RiscV
Commit consists out of
  • M compiler/optcse.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas


* do no generated debug comment in assembler output of RiscV if not requested
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv64/aoptcpu.pas
  • M compiler/riscv64/cgcpu.pas


* a64: win64 implementation of jump table now
uses 64-bit absolute references.
Commit consists out of
  • M compiler/aarch64/ncpuset.pas


* x86: Reimplemented TAsmNode XML dumping using new framework
Commit consists out of
  • M compiler/i386/cpunode.pas
  • M compiler/i8086/cpunode.pas
  • A compiler/x86/nx86bas.pas
  • M compiler/x86_64/cpunode.pas


* arm / a64: TAsmNode debugging info is now output for ARM and AArch64
Commit consists out of
  • M compiler/aarch64/cpunode.pas
  • M compiler/arm/cpunode.pas
  • A compiler/armgen/narmbas.pas


Make idfpath and idf_version macros available as replacement vars in fpc.cfg
Commit consists out of
  • M compiler/globals.pas


Add -Ff to firstpass options
Commit consists out of
  • M compiler/options.pas


* patch by Marģers: patch to enable ENTER asm instruction
+ test
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • A tests/test/tasm30.pp


* patch by Marģers
- Rename 3DNow instruction (fixed long lasting typo in mnemonic). PMULHRWA --> PMULHRW
- Add vpclmullqlqdq, vpclmulhqlqdq, vpclmullqhqdq, vpclmulhqhqdq.
- Fix "typo" for SHA1MSG2
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


* patch by Marģers to bump version
Commit consists out of
  • M compiler/utils/mkx86ins.pp


* correct change information for some instructions where the change
information cannot be modelled in x86ins.dat
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/x86ins.dat


* forgotten part of last commit
Commit consists out of
  • M compiler/x86/aasmcpu.pas


+ set CPUX86_HINT_BSX_DEST_UNCHANGED_ON_ZF_1 for suitable CPUs
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


+ 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


* missing AVX-2 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


* fix gitlab 0040563: apply slightly adjusted patch by byte bites to use fixed range of 1..Length(str) for for-in loops iterating over ShortStrings
+ added test
Commit consists out of
  • M compiler/nflw.pas
  • A tests/webtbs/tw40563.pp


* load 2 on x86 stack by fld1/fadd, if pic code is generated. It is more efficient as two memory accesses are saved.
Commit consists out of
  • M compiler/x86/nx86con.pas


* fold the MIPS tabitype into tabi as the former wasn't really used or hooked up anyway; this way the ABI can be set using -Ca
Commit consists out of
  • M compiler/mips/cpugas.pas
  • M compiler/mips/cpuinfo.pas
  • M compiler/systems.inc
  • M compiler/systems.pas


* also optimize loading of -1.0
Commit consists out of
  • M compiler/x86/nx86con.pas


* use fld1/fchs regardless of pic
Commit consists out of
  • M compiler/x86/nx86con.pas


* allow the COMDAT selection to be 0 in which case we'll simply assume that we don't have a COMDAT section (but we'll nevertheless look up a potentially associative section)
Commit consists out of
  • M compiler/ogcoff.pas


* the COMDAT record contains the section number which is off-by-one to the section index
Commit consists out of
  • M compiler/ogcoff.pas


* move setup of secrec outside of the if-statement as it's the same for both cases
Commit consists out of
  • M compiler/ogcoff.pas


* exact-match COMDAT sections are already supported since tdynamicarray.equal() has been implemented a couple of yours ago, so allow them
Commit consists out of
  • M compiler/ogcoff.pas


* small fix of 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


Remove compiler/msgtxt.inc and compiler/msgidx.inc from tracked file list
Commit consists out of
  • M .gitignore
  • D compiler/msgidx.inc
  • D compiler/msgtxt.inc


Add missing information about -T option for embedded and iphonesim target OS for aarch64 compiler help using -h option
Commit consists out of
  • M compiler/msg/errore.msg


Respect alphabetical order in -T listing for aarch64 compiler
Commit consists out of
  • M compiler/msg/errore.msg


+ 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


Avoid unnecessary call when length(s) is zero, which avoids range check error
Commit consists out of
  • M compiler/utils/msg2inc.pp


* don't throw an internal error if a procedure is passed to a const formal parameter, resolves gitlab 0040817
Commit consists out of
  • M compiler/htypechk.pas
  • A tests/webtbf/tw40817.pp


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


* give better error message for gitlab 0040821
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/pdecl.pas


* bail out early in tcgaarch64.make_simple_ref if possible
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* Properly reset state when (re)compiling, by Artem Izmaylov. Fixes issue gitlab 0040825
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/fppu.pas
  • M compiler/pgenutil.pas


* (lsighly, added safety check) patch by Евгений Савин, resolves gitlab 0040784
Commit consists out of
  • M compiler/symtable.pas
  • A tests/webtbs/tw40784.pp
  • A tests/webtbs/uw40784a.pp
  • A tests/webtbs/uw40784b.pp


+ initial compiler support for WebAssembly resources. Requires WebAssembly
support in the fpcres utility, which is not implemented, yet.
Commit consists out of
  • M compiler/ngenutil.pas
  • M compiler/rescmn.pas
  • M compiler/systems.inc
  • M compiler/systems/i_wasi.pas
  • M compiler/systems/t_wasi.pas


* changed the resource object extension for the WASI platform to .or (similar to Linux)
Commit consists out of
  • M compiler/systems/i_wasi.pas


+ WASI internal linker: add the 'fpc.resources' and 'fpc.reshandles' sections as well
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ wasi internal linker: also write the fpc.resources section to the file
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker optimization: write only the non-empty data sections to
the resulting .wasm file (the 'fpc.resources' section specifically can be
empty, if the binary doesn't use resources)
Commit consists out of
  • M compiler/ogwasm.pas


+ wasm internal linker: count the 'fpc.resources' section towards the binary
data size
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ wasm internal linker: count the 'fpc.reshandles' section towards the bss size
of the binary
Commit consists out of
  • M compiler/systems/t_wasi.pas


* split the sections strings into groups and add comments about the importance
of the section order and grouping. No functional changes.
Commit consists out of
  • M compiler/systems/t_wasi.pas


* wasi internal linker: fixed crashes introduced by previous commit in
GetDataSize and GetBssSize
Commit consists out of
  • M compiler/systems/t_wasi.pas


* fixed another crash in the wasi internal linker, caused by missing resource section
Commit consists out of
  • M compiler/ogwasm.pas


* 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


* 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


* Properly release procdefs. Patch by Evgenij Savin, fixes issue gitlab 0040844
Commit consists out of
  • M compiler/pmodules.pas
  • A tests/webtbs/tw40844.pp
  • A tests/webtbs/uw40844a.pp
  • A tests/webtbs/uw40844b.pp
  • A tests/webtbs/uw40844c.pp


+ add missing instructions
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas


* x86-64: Workaround to permit CPU types in command line with dashes in names (e.g. X86-64-V3)
Commit consists out of
  • M compiler/options.pas


* ensure register size is set properly by AndSxt2And
Commit consists out of
  • M compiler/armgen/aoptarm.pas


+ introduced WebAssembly helper is_atomic_op
Commit consists out of
  • M compiler/wasm32/cpubase.pas


* fail with an internal compiler error in case an atomic WebAssembly instruction
is generated, while WebAssembly multithreading is disabled
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* TARMAsmOptimizer.USxtOp2Op sets register size if needed
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* fix extension to 64 bit on aarch64, resolves gitlab 0040576
Commit consists out of
  • M compiler/aarch64/cgcpu.pas
  • A tests/webtbs/tw40576.pp


const array - reducing unnecessary data copying
Commit consists out of
  • M compiler/dbgdwarf.pas


Immediately set the capacity
Commit consists out of
  • M compiler/pgenutil.pas


Immediately set the capacity
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/ncal.pas
  • M compiler/ogbase.pas
  • M compiler/ogelf.pas
  • M compiler/pgentype.pas
  • M compiler/pgenutil.pas
  • M compiler/procdefutil.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas


* set operand size properly for STX*
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


Partial revert "Immediately set the capacity"
(capacity assignments of type TFPHashObjectList)
Commit consists out of
  • M compiler/pgenutil.pas


* ensure make_simple_ref is called, resolves gitlab 0040851
Commit consists out of
  • M compiler/x86/nx86inl.pas


* update project file
Commit consists out of
  • M compiler/ppcaarch64.lpi


+ started working on a WebAssembly inline assembler reader. Not ready, yet, just
includes a basic tokenizer for now.
Commit consists out of
  • M compiler/wasm32/cputarg.pas
  • A compiler/wasm32/rawasm.pas
  • A compiler/wasm32/rawasmtext.pas


* fixed some WebAssembly instruction names in the wasm_op2str array
Commit consists out of
  • M compiler/wasm32/strinst.inc


* Patch by Evgenii Savin to avoid IE 2010021502 when calling generic from other generic. Fixes issue gitlab 0040770
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw40770.pp


+ WebAssembly inline assembler instruction parsing work in progress
Commit consists out of
  • M compiler/wasm32/rawasm.pas
  • M compiler/wasm32/rawasmtext.pas


+ added else clause to silence warning, treated as error in CI
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


* fixed another warning
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


Use IndexQWord_SSE41 directly if -Cp RTL compiled with supports SSE 4.1.
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas
  • M rtl/i386/i386.inc
  • M rtl/inc/systemh.inc
  • M rtl/x86_64/x86_64.inc


* Do not free used units during reset, they can be in use during load cycle. Fixes issue gitlab 0040852
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/fppu.pas


+ parse the instructions with integer parameter i32.const and i64.const in twasmreader.HandlePlainInstruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


* changed twasmreader.HandlePlainInstruction to return an instruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


* Need IFDEF, compiler stops "with unreachable code"
Commit consists out of
  • M compiler/ppu.pas


+ support the f32.const and f64.const instructions in twasmreader.HandlePlainInstruction
Commit consists out of
  • M compiler/rautils.pas
  • M compiler/wasm32/rawasmtext.pas


+ recognize the memory access instructions with an optional memarg operand (not
parsed, yet) in twasmreader.HandlePlainInstruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


+ handle the local and global variable instructions with a constant integer
parameter in twasmreader.HandlePlainInstruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


+ insert plain instructions and parse nested instructions in twasmreader.HandleFoldedInstruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


+ call ConcatInstruction for plain instructions in twasmreader.HandleInstruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


* started implementing twasmreader.HandleBlockInstruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


+ actually enable the parsing of WebAssembly inline asm instructions
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


+ set result.ops in twasmreader.HandlePlainInstruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


+ respect the nostackframe directive in WebAssembly inline asm routines
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* don't do anything in postprocess_code for WebAssembly inline asm routines
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* don't create block..end_block around WebAssembly inline asm routines
Commit consists out of
  • M compiler/wasm32/cpupi.pas
  • M compiler/wasm32/hlcgcpu.pas


* make warning on unsupported esp-idf version a warning string so it can be translated
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/pmodules.pas


* Do not generate RTTI for generic methods (delphi compatible)
Commit consists out of
  • M compiler/ncgrtti.pas
  • A tests/test/texrtti15.pp


* Inherit extended RTTI settings from parent object
Commit consists out of
  • M compiler/pdecobj.pas
  • M rtl/inc/rttih.inc
  • A tests/test/texrtti16.pp
  • A tests/test/uexrtti16.pp


* fixes building for ARM
Commit consists out of
  • M compiler/globals.pas
  • M compiler/systems/t_freertos.pas


* handle adress registers properly in tcg64f68k.a_op64_reg_ref
Commit consists out of
  • M compiler/m68k/cgcpu.pas


* write dependent rtti for non-published in case of extended RTTI
Commit consists out of
  • M compiler/ncgrtti.pas


* WebAssembly temp gen: introduced localsfirsttemp and localslasttemp, use these
for the locals temps indices, instead of firsttemp and lasttemp, which refer
to the temps on the linear stack
Commit consists out of
  • M compiler/wasm32/tgcpu.pas


+ support OPR_FLOATCONSTANT in TInstruction.ConcatInstruction
Commit consists out of
  • M compiler/rautils.pas


+ allow referencing '$__stack_pointer' in WebAssembly inline asm as argument to
the global.get and global.set instructions. This will be used in the future to
implement the thread start routine in inline asm.
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/rawasmtext.pas


* Do not try to export symbol if an error occurred, avoid internal error. Fixes issue gitlab 0040858
Commit consists out of
  • M compiler/pexports.pas


+ support the call instruction in the WebAssembly inline asm
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


* fixed the WebAssembly inline asm call instruction with the internal assembler writer
Commit consists out of
  • M compiler/rautils.pas
  • M compiler/wasm32/rawasmtext.pas


* fixed WebAssembly inline asm parsing bug for the global.get/global.set ID instruction
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


- removed debug printing from the WebAssembly inline assembler reader
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


+ support the atomic instructions in the WebAssembly inline asm reader
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


+ allow referencing TLS_SIZE_SYM, TLS_ALIGN_SYM and TLS_BASE_SYM from WebAssembly inline asm
Commit consists out of
  • M compiler/wasm32/rawasmtext.pas


* Some minor rewordings as per 39349
Commit consists out of
  • M compiler/msg/errore.msg


* like as -> as
Commit consists out of
  • M compiler/msg/errore.msg


* distclean removes msgtxt.inc and msgidx.inc, resolves gitlab 0040861
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* x86: Fixed an issue where invalid typecast errors would be raised in the peephole optimizer under -CriotR
Commit consists out of
  • M compiler/x86/aoptx86.pas


* Do not include class and array properties in RTTI
Commit consists out of
  • M compiler/ncgrtti.pas
  • A tests/test/texrtti17.pp
  • A tests/test/texrtti18.pp


+ riscv32: trv32shlshrnode.second_64bit
Commit consists out of
  • M compiler/riscv32/nrv32mat.pas


+ apply OptPass1OP also to SRL/SLL
* fix commit
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ S*LI x,x,0 to nop optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


compiles cube.pas example
Commit consists out of
  • M .gitignore
  • A compiler/mips/cpuext.pas
  • M compiler/mips/cpupi.pas
  • M compiler/mips/hlcgcpu.pas
  • M compiler/systems/t_ps1.pas
  • A cu
  • A f2
  • A psy-q-sdk/bindings/libabs.pas
  • A psy-q-sdk/bindings/libapi.pas
  • A psy-q-sdk/bindings/libcd.pas
  • A psy-q-sdk/bindings/libcomb.pas
  • A psy-q-sdk/bindings/libds.pas
  • A psy-q-sdk/bindings/libetc.pas
  • A psy-q-sdk/bindings/libgpu.pas
  • A psy-q-sdk/bindings/libgs.pas
  • A psy-q-sdk/bindings/libgte.pas
  • A psy-q-sdk/bindings/libsnd.pas
  • A psy-q-sdk/bindings/libspu.pas
  • A psy-q-sdk/bindings/libstd.pas
  • A psy-q-sdk/bindings/libstrings.pas
  • A psy-q-sdk/bindings/r3000.pas
  • M rtl/mips/mips.inc
  • A rtl/ps1/Makefile
  • A rtl/ps1/Makefile.fpc
  • A rtl/ps1/rtl.cfg
  • A rtl/ps1/rtldefs.inc
  • M rtl/ps1/si_prc.pp
  • A rtl/ps1/sysdir.inc
  • A rtl/ps1/sysfile.inc
  • A rtl/ps1/sysheap.inc
  • R054 rtl/ps1/objpas.pp rtl/ps1/sysos.inc
  • A rtl/ps1/sysosh.inc
  • M rtl/ps1/system.pp
  • A rtl/ps1/tthread.inc
  • D rtl/ps1/typedefs.inc
  • A run
  • A test.pas


* better zero extension for Risc-V32
Commit consists out of
  • M compiler/riscv32/cgcpu.pas


* apply OptPass1OP to more instructions
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ Risc-V 32: optimize QWord(1) shl ...
Commit consists out of
  • M compiler/riscv32/nrv32mat.pas


* more use of OptPass1OP
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


DynArrays works

because of InitHeap3, malloc3 and free3 functions from the psy-q-sdk
Commit consists out of
  • M compiler/mips/opcode.inc
  • M compiler/mips/strinst.inc
  • M compiler/systems/i_ps1.pas
  • A cube.pas
  • M f2
  • M packages/fcl-process/fpmake.pp
  • M packages/fpmkunit/src/fpmkunit.pp
  • M rtl/ps1/Makefile
  • M rtl/ps1/system.pp
  • M test.pas


+ Risc-V 32: apply OptPass1OP also on ADD
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* Risc-V: use OptPass1OP more
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ RiscV: AndiAndi2Andi
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


Remap .data with fpc specific information to outside normal memory range.
Commit consists out of
  • M compiler/systems/t_freertos.pas


* factor out TRVCpuAsmOptimizer.OptPass1Add
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ show a message and automatically switch to external linking if WebAssembly multithreading is enabled
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/options.pas


+ Risc-V 32: tcpuparamanager.get_saved_registers_fpu
Commit consists out of
  • M compiler/riscv32/cpupara.pas


+ Risc-V 32: tcpuparamanager.get_saved_registers_int
Commit consists out of
  • M compiler/riscv32/cpupara.pas


+ Risc-V: apply OptPass1OP to more operations
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ WASI: enable the generic stack checking
Commit consists out of
  • M compiler/systems/i_wasi.pas
  • M compiler/wasm32/hlcgcpu.pas


+ Risc-V 64: tcpuparamanager.get_saved_registers_int and tcpuparamanager.get_saved_registers_fpu
Commit consists out of
  • M compiler/riscv64/cpupara.pas


+ cpu type RV64GC
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv64/cpuinfo.pas


* Risc-V 32 has also a GC variant
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv32/cpuinfo.pas


+ enable WebAssembly threads with the internal linker (which still doesn't work
with threads) if FPC is compiled with the FPC_WASM_THREADS_INTERNAL_LINKER
define
Commit consists out of
  • M compiler/options.pas


+ enable FPC_WASM_THREADS_INTERNAL_LINKER (not stable, yet) in ppcwasm32.lpi
Commit consists out of
  • M compiler/ppcwasm32.lpi


* WebAssembly threads internal linker: fix validation of R_WASM_GLOBAL_INDEX_LEB relocations in modules that support threads
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: declare the __tls_base, __tls_size and
__tls_align symbols in the internal linker script if threads are enabled
Commit consists out of
  • M compiler/systems/t_wasi.pas


* WebAssembly threads internal linker: declare the symbol __wasm_init_tls in the
.text section (function will be generated later by the linker)
Commit consists out of
  • M compiler/systems/t_wasi.pas


* WebAssembly threads internal linker: add the .tbss section to the linker
script in case threads are enabled
Commit consists out of
  • M compiler/systems/t_wasi.pas


+ WebAssembly threads internal linker: create the __wasm_init_tls symbol's
special WebAssembly properties, such as FuncType
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly threads internal linker: debug print threadvar relocations,
instead of stopping with an internal error
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: mark the __tls_base, __tls_size and __tls_align symbols as WebAssembly globals
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: import WASM_SYM_TLS symbols as AT_TLS, instead of AT_DATA
Commit consists out of
  • M compiler/ogwasm.pas


* improve Risv-V optimizer
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* WebAssembly threads internal linker: set MemPos for data sections correctly
when threads are enabled (take into account that the first data section with
threads enabled is .tbss, instead of .rodata)
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly threads internal linker: create a global symbol for all AT_TLS data symbols
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: set objsection properly for global
symbols, created for AT_TLS entries
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: create double relocation entries for
AT_TLS entries: one points to the AT_TLS entry (the data segment), the other
points to the WebAssembly global, holding that address. This causes the
smartlinking optimization to keep both the AT_TLS entry in the data segment,
as well as the WebAssembly global.
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: ignore RELOC_GLOBAL_INDEX_LEB
relocations, pointing to AT_TLS entries, because the actual relocation is done
by another relocation, overlaid on top of this one, pointing to a WebAssembly
global. The reason we use two relocations, is to cause the smartlinker to keep
both the AT_TLS symbol, thus reserving data space in linear memory for the
threadvar, as well as the WebAssembly global variable, used for holding the
address of the threadvar.
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly threads internal linker: introduced TWasmExeOutput.GenerateCode_InitTls (not ready, yet, just writes some dummy data)
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: set the global type of threadvar globals to wbt_i32
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: set MainFuncSymbol of the section of threadvar globals
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: starting working on TWasmExeOutput.SetThreadVarGlobalsInitValues
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads: don't do anything in TWasmExeOutput.SetThreadVarGlobalsInitValues
and TWasmExeOutput.GenerateCode_InitTls if threads are disabled
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: introduced TWasmObjSymbol.TlsDataSym
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: set initial values for threadvar globals
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: implemented the actual code generation in TWasmExeOutput.GenerateCode_InitTls
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: set threadvar globals as mutable
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: set initial values for __tls_size, __tls_align and __tls_base
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: use imported and shared memory if multithreading is enabled
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: create a startup function for
initializing shared memory (dummy for now)
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/systems/t_wasi.pas


+ WebAssembly threads internal linker: partial implementation of TWasmExeOutput.GenerateCode_InitSharedMemory
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: generate passive data segments, when multithreading is on
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly internal linker: moved the DataSections const array from local to
the method writeData to local to the class. No functional changes.
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: implement memory initialization in TWasmExeOutput.GenerateCode_InitSharedMemory
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: generate data.drop instructions in
TWasmExeOutput.GenerateCode_InitSharedMemory. This drops the passive memory
segments, after the memory has been initialized.
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: use WriteUleb instead of WriteUleb5 in
TWasmExeOutput.GenerateCode_InitTls and TWasmExeOutput.GenerateCode_InitSharedMemory.
This generates equivalent, but shorter code.
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: micro optimization in
TWasmExeOutput.GenerateCode_InitTls - skip generating instructions that add
zero
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly threads internal linker: use signed LEB when needed in TWasmExeOutput.GenerateCode_InitTls and TWasmExeOutput.GenerateCode_InitSharedMemory
Commit consists out of
  • M compiler/ogwasm.pas


+ enable the WebAssembly internal linker with multithreading
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/options.pas


* WebAssembly internal linker: add the .tbss section size to the result of GetBssSize
Commit consists out of
  • M compiler/systems/t_wasi.pas


* WebAssembly internal linker: reduced exe section alignment to 16 bytes
Commit consists out of
  • M compiler/ogwasm.pas


+ Zb* cpu capabilities
Commit consists out of
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas


+ Risc-V: instructions of B extension
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas


* overleft cosmetics
Commit consists out of
  • M compiler/riscv/cgrv.pas


+ Risc-V: make use of zext.h if available
Commit consists out of
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cgcpu.pas
  • M compiler/riscv64/cpuinfo.pas


+ WebAssembly internal linker: take into account the min heap size (specified
with the $M directive), when determining FMinMemoryPages
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly internal linker: the PageSize constant, which was repeated twice,
moved to the class level and renamed WasmPageSize. No functional changes.
Commit consists out of
  • M compiler/ogwasm.pas


* Risc-V: make use of sext.h instruction if available
Commit consists out of
  • M compiler/riscv32/cgcpu.pas
  • M compiler/riscv64/cgcpu.pas


Fix compilation with -dDEBUG_PPU
Commit consists out of
  • M compiler/entfile.pas


Rename conditional: INTFPPU => DEBUG_GENERATE_INTERFACE_PPU
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/ppu.pas


* corrected alignment for Risc-V on Linux
Commit consists out of
  • M compiler/systems/i_linux.pas


* FCVT.W.D returns only a 32 bit int
Commit consists out of
  • M compiler/riscv/nrvinl.pas


* get rid of WebAssembly constant DefaultMaxMemoryForThreads, because it was
repeated twice. Instead, set maxheapsize correctly with the default value in
init_parser.
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/parser.pas
  • M compiler/systems/t_wasi.pas


* increased the default max memory for WebAssembly threads to 256 MiB
Commit consists out of
  • M compiler/parser.pas


* WebAssembly threads default maxheapsize constant changed to more readable form - 256*1024*1024 instead of 268435456
Commit consists out of
  • M compiler/parser.pas


* generic second_addordinal can handle swapped nodes
Commit consists out of
  • M compiler/ncgadd.pas


* WebAssembly internal linker: allow specifying the max memory size also for
binaries that don't use threads and shared memory. Unlike the shared memory
case, in this case the max memory limit is optional.
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced method tscannerfile.readval64, similar to readval, but returns an int64
Commit consists out of
  • M compiler/scanner.pas


+ WebAssembly: allow specifying heapsize and maxheapsize larger than 2GiB
(WebAssembly has a 32-bit address space, so there's still a 4GiB limit)
Commit consists out of
  • M compiler/globals.pas
  • M compiler/scandir.pas


* ignore the '-gl' parameter on WebAssembly, since it's impossible to implement
this feature on this target. WebAssembly is a Harvard architecture and allows
no way for inspecting code addresses in stack traces from within the program
itself. Maybe a future extension to the WebAssembly spec would allow that, but
currently, it's not possible. The '-gl' option is ignored (producing only a
warning, instead of a fatal error), because not having line info should not be
fatal for most programs. It also reduces the number of test failures, since
many tests compile with '-gl', but don't actually require the line info, it's
just there for debugging purposes.
Commit consists out of
  • M compiler/options.pas


* throw an error in iso/extended pascal mode if enum types are passed to writeln, resolves gitlab 0040896
Commit consists out of
  • M compiler/ninl.pas
  • A tests/webtbf/tw40896.pp


* fix bug in thlcgwasm.a_op_reg_reg_reg_checkoverflow when either src1 or src2
is the same as dst
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* WebAssembly: fixed overflow checking for unsigned subtraction
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* fix warning
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* WebAssembly: changed the generated code in a_op_reg_reg_reg_checkoverflow to
avoid using a label
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ WebAssembly: check for exceptions after call of fpc_rangeerror in branchful
exceptions mode. This fixes catching of ERangeError exceptions when using
SysUtils and runtime errors are converted to exceptions.
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


- disallow enabling regvars for WebAssembly, because it's not supported, yet
Commit consists out of
  • M compiler/dirparse.pas


* WebAssembly: fixed crash when attempting to generate a functype directive for
a generic function
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* estimate complexity of ordconst node better on RiscV
Commit consists out of
  • M compiler/nutils.pas


+ AArch64: apply OptPass1FData also to FCSEL
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* armv7 should a synonyme for arm7a
Commit consists out of
  • M compiler/arm/cpuinfo.pas


Add msg as prerequisite for compiler to fix 'make distclean all' failure
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


Recompile rtl before trying to compile msg2inc binary
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


+ apply OptPass1FData on FRINT*
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


Remove the rest of the VER3_0 conditionals.
Commit consists out of
  • M compiler/systems.pas
  • M packages/fcl-base/src/syncobjs.pp
  • M packages/fcl-pdf/src/fppdf.pp
  • M packages/fcl-report/demos/rptgrouping.pp
  • M packages/fcl-web/src/restbridge/sqldbrestado.pp
  • M packages/fcl-web/src/restbridge/sqldbrestcds.pp
  • M packages/fcl-web/src/restbridge/sqldbrestdata.pp
  • M packages/fcl-web/src/restbridge/sqldbrestxml.pp
  • M packages/rtl-generics/src/generics.collections.pas
  • M rtl/arm/int64p.inc
  • M rtl/arm/setjump.inc
  • M rtl/bsd/sysctl.pp
  • M rtl/go32v2/go32.pp
  • M rtl/i8086/int64p.inc
  • M rtl/inc/objc1.inc
  • M rtl/inc/objcnf.inc
  • M rtl/java/jcompproc.inc
  • M rtl/java/jsystemh.inc
  • M rtl/java/justrings.inc
  • M rtl/linux/system.pp
  • M rtl/m68k/m68k.inc
  • M rtl/m68k/setjump.inc
  • M rtl/openbsd/i386/si_dll.inc
  • M rtl/openbsd/si_impl.inc
  • M rtl/openbsd/x86_64/si_dll.inc
  • M rtl/powerpc/int64p.inc


Exclude AW flags for sec_fpc data for embedded and freertos targets.
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/systems/t_embed.pas
  • M compiler/systems/t_freertos.pas


+ WebAssembly external asm writer: workaround for the 'missing functype' error,
produced by LLVM-MC versions 13 and above
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/agllvmmc.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/wasm32/nwasmutil.pas


+ pass '--no-type-check' to llvm-mc-13, because its type checking is broken
Commit consists out of
  • M compiler/systems.pas
  • M compiler/wasm32/agllvmmc.pas


+ add explicit support for LLVM-MC versions 15..18
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/systems.inc
  • M compiler/wasm32/agllvmmc.pas


* WebAssembly code generator: don't emit a return instruction at the end of the
function, because it's redundant
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ disable the WebAssembly type checker for all LLVM-MC versions since version 13
Commit consists out of
  • M compiler/wasm32/agllvmmc.pas


+ emit a size directive for the internal dynarray const label. This fixes
WebAssembly dynarray consts with the llvm-mc external asm.
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/ngtcon.pas


- don't generate .size directives for function symbols on WebAssembly, to avoid
warnings from the external assembler
Commit consists out of
  • M compiler/aggas.pas


+ indicate which LLVM-MC versions are broken in the compiler help screen
Commit consists out of
  • M compiler/msg/errore.msg


- WebAssembly internal object writer is no longer experimental
Commit consists out of
  • M compiler/msg/errore.msg


* WebAssembly wabt assembler id as_wasm32_wabt renamed as_wasm32_wasa
Commit consists out of
  • M compiler/systems.inc
  • M compiler/wasm32/agwat.pas


* WebAssembly WABT assembler ID changed to WASA
Commit consists out of
  • M compiler/wasm32/agwat.pas


* as_wasm_wabt_info renamed as_wasm_wasa_info
Commit consists out of
  • M compiler/wasm32/agwat.pas


* TWabtTextAssembler class renamed TWasaTextAssembler
Commit consists out of
  • M compiler/wasm32/agwat.pas


* unit agwat renamed agwasa
Commit consists out of
  • R099 compiler/wasm32/agwat.pas compiler/wasm32/agwasa.pas
  • M compiler/wasm32/cputarg.pas


* renamed the wabt assembler to wasa in the compiler help screen as well
Commit consists out of
  • M compiler/msg/errore.msg


+ added an optional nil pointer checking for WebAssembly (similar to
PowerPC-AIX), that can be activated via the -CN option
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ added -CN to the help screen of the WebAssembly compiler as well
Commit consists out of
  • M compiler/msg/errore.msg


+ added several missing targets to the help screen for the -P compiler option
Commit consists out of
  • M compiler/msg/errore.msg


* WebAssembly internal object writer: generate the symbol table after the
section numbers have been calculated. This is preparation for exporting
symbols from debug sections, which will be implemented in the future. No
functional changes.
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly object writer: record the custom section index for debug sections
in a new field TWasmObjSection.CustomSectionIdx
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly internal assembler and linker: support exporting symbols from
debug sections, via a FPC-specific extension. Unfortunately, this is not
supported by the LLVM external assembler and linker.
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasmbase.pas


* fix warning
Commit consists out of
  • M compiler/ogwasm.pas


* fix warning (second attempt :) )
Commit consists out of
  • M compiler/ogwasm.pas


* Added missing i386-win32 target selection
Commit consists out of
  • M compiler/systems.pas


* More efficient condition checks for "tnodeutils.has_init_list"
Commit consists out of
  • M compiler/ngenutil.pas


"tnodeutils.has_init_list" is now static
Commit consists out of
  • M compiler/ngenutil.pas


* generate debuginfo for WebAssembly threadvars like for normal vars, when
WebAssembly threads are turned off
Commit consists out of
  • M compiler/dbgdwarf.pas


+ WebAssembly DWARF debug info: generate DW_AT_frame_base entries for functions
Commit consists out of
  • M compiler/dbgdwarf.pas


* fix capabilites check
Commit consists out of
  • M compiler/avr/cgcpu.pas


+ WebAssembly internal linker: support data relocations to threadvars, resolve
them as relative values to the beginning of the TLS section. Will be used for
generating debug info for threadvars.
Commit consists out of
  • M compiler/dbgdwarf.pas
  • M compiler/ogwasm.pas


+ support writing R_WASM_GLOBAL_INDEX_I32 relocations in the WebAssembly internal object writer
Commit consists out of
  • M compiler/ogwasm.pas


+ generate proper reference to the TLS_BASE_SYM global in the WebAssembly debug info for threadvars
Commit consists out of
  • M compiler/dbgdwarf.pas


+ WebAssembly internal linker: support the R_WASM_GLOBAL_INDEX_I32 relocation,
used for threadvar debug info, among another possible uses.
Commit consists out of
  • M compiler/ogwasm.pas


- removed redundant if
Commit consists out of
  • M compiler/dbgdwarf.pas


+ more relocation types added to the enum TWasmRelocationType
Commit consists out of
  • M compiler/wasmbase.pas


* create a TWasmGlobalAsmSymbol instead of TAsmSymbol when generating debug info
for thread vars. This fixes a memory corruption error, when later the compiler
tries to access the extra fields in TWasmGlobalAsmSymbol for the '__tls_base'
symbol.
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/dbgdwarf.pas


* fixed blocksize when generating debug info for WebAssembly threadvars
Commit consists out of
  • M compiler/dbgdwarf.pas


* fix the final entry size in the .debug_aranges table on platforms where the
ALU size differs from the address size (such as WebAssembly 32-bit)
Commit consists out of
  • M compiler/dbgdwarf.pas


* set procalign and loopalign to 0 for WebAssembly - code alignment is unnecessary, as this is a VM.
Commit consists out of
  • M compiler/systems/i_embed.pas
  • M compiler/systems/i_wasi.pas


* WebAssembly internal object writer: fixed helper function SlebSize()
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


+ WebAssembly internal object writer: added safety check for catching bugs,
caused by instruction size changes between Pass1 and Pass2
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas


* fix generation of addend for R_WASM_FUNCTION_OFFSET_I32 relocations. This
improves code address accuracy for WebAssembly debug line info information.
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly: generate the final bashB opcode of a function via the
end_function instruction, instead of adding it magically in the object writer.
This makes the WebAssembly debug line info more accurate, covering the
end_function instruction as well.
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasm32/aasmcpu.pas


Set DynamicLinker for FreeBSD systems
Commit consists out of
  • M compiler/systems/t_bsd.pas


* use also an FNV hash to shorten interface wrapper names
Commit consists out of
  • M compiler/ncgvmt.pas


* use proper value for Fnv64 initialization
* PPU version increased
Commit consists out of
  • M compiler/fpchash.pas
  • M compiler/ncgvmt.pas
  • M compiler/ppu.pas
  • M compiler/symdef.pas


+ AVR: dummy thlcgcpu.g_intf_wrapper implementation
Commit consists out of
  • M compiler/avr/hlcgcpu.pas


+ avrsim6 controller type
Commit consists out of
  • M compiler/avr/cpuinfo.pas
  • M compiler/options.pas


- WebAssembly: removed tai_local.name, because we don't use it
Commit consists out of
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/agwasa.pas


* WebAssembly: refactored tai_local, so that it is a single directive,
containing multiple locals, instead of creating multiple tai_local directives,
each containing a single local. No functional changes.
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/ogwasm.pas
  • M compiler/wasm32/aasmcpu.pas
  • M compiler/wasm32/agwasa.pas
  • M compiler/wasm32/cpubase.pas
  • M compiler/wasm32/cpupi.pas


* TWasmObjData.DeclareLocal renamed DeclareLocals. No functional changes.
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/ogwasm.pas


+ WebAssembly: insert a tai_local directive also for assembler functions
Commit consists out of
  • M compiler/wasm32/cpupi.pas


* WebAssembly internal assembler writer: generate the function locals header
when assembling the tai_local directive, instead of injecting them manually in
TWasmObjOutput.WriteFunctionCode. This makes function code offsets correct
and avoids the need to manually adjust relocation fixups by adding the locals
header size. It also fixes relative relocations, used in DWARF debug line
info.
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/ogwasm.pas


+ introduced LINE_RANGE constant in the DWARF debug info generation unit
Commit consists out of
  • M compiler/dbgdwarf.pas


WebAssembly debug info: use different LINE_BASE and LINE_RANGE on WebAssembly to
improve compatibility with WasmTime's debugger support
Commit consists out of
  • M compiler/dbgdwarf.pas


* WebAssembly internal linker: don't remove unused code sections if smartlinking
is turned off. This is needed for debugging, because FPC doesn't support debug
info with smartlinking on most platforms, and that includes WebAssembly.
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly internal linker: also don't remove unused data sections if
smartlinking is turned off.
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly debug info: make wasmtime happy by not emitting line info end
sequences for procedures that lack any debug lines emitted previously
Commit consists out of
  • M compiler/dbgdwarf.pas


* make UpdateFnv64 closer to the original algorithm as proposed by Gareth
Commit consists out of
  • M compiler/fpchash.pas
  • M compiler/ppu.pas


Handle cross-endian case inside TCoffObjData.writereloc method
Commit consists out of
  • M compiler/ogcoff.pas


* revert check for boolean type when handling LOC_FLAG in tcgassignmentnode.pass_generate_code. This makes pas boolean the default,
resolves gitlab 0040908
Commit consists out of
  • M compiler/ncgld.pas
  • A tests/webtbs/tw40908.pp


+ WebAssembly internal linker: create a name custom section to help debugging
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasmbase.pas


- WebAssembly code generator: removed the g_fingerprint hack, that added 4
useless i64 constants on the stack with random numbers and then drop them. It
was used for primitive debugging, since previously it wasn't possible to
identify the function name. Now we can produce DWARF debug info, as well as a
"names" custom section to give each function a name and most WebAssembly
environments support at least one of the two mechanisms. Therefore the
g_fingerprint hack is no longer necessary.
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


Handle floatx80 records with gaps also in InternalAssembler
Commit consists out of
  • M compiler/assemble.pas


* handle except blocks as normal code block with regard to specialization of generics, resolves gitlab 0040890
Commit consists out of
  • M compiler/pexpr.pas
  • M compiler/pgentype.pas
  • A tests/webtbs/tw40890.pp


+ added extra values to TWasmNameSubsectionType from the extended name section
proposal and the gc proposal
Commit consists out of
  • M compiler/wasmbase.pas


+ introduced private type TCustomSectionNameMapEntry to class TWasmExeOutput
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced private type TCustomSectionNameMap to class TWasmExeOutput
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced method TWasmExeOutput.AddToNameMap
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced method TWasmExeOutput.AddToGlobalNameMap
Commit consists out of
  • M compiler/ogwasm.pas


+ introduced local method WriteNameMap for writing name maps in the WebAssembly name custom section
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly interal linker: add global names to the name custom section
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly internal linker: add the data segment names to the name section
Commit consists out of
  • M compiler/ogwasm.pas


* properly unlink unused type symbols from their defs to avoid
internal errors when generating debug info, resolves gitlab 0040886
Commit consists out of
  • M compiler/pgenutil.pas
  • M compiler/symtype.pas
  • A tests/webtbs/tw40886.pp


+ add tag names to the WebAssembly name section
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly internal linker: refactor writing the name custom section - group
generating subsection data with the actual writing of the subsection data
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly internal linker: only generate the tag name subsection if there
are any tags in the module
Commit consists out of
  • M compiler/ogwasm.pas


- removed obsolete define FPC_WASM_THREADS_INTERNAL_LINKER from ppcwasm32.lpi
Commit consists out of
  • M compiler/ppcwasm32.lpi


+ add optimizer units (empty for now) for the WebAssembly target
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc
  • M compiler/aoptobj.pas
  • M compiler/ppcwasm32.lpi
  • A compiler/wasm32/aoptcpu.pas
  • A compiler/wasm32/aoptcpub.pas


+ include unit aoptcpu in wasm32/cputarg.pas
Commit consists out of
  • M compiler/wasm32/cputarg.pas


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


+ Zen4 for i386
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86/agx86nsm.pas


* RiscV64: better code generation to clear upper 32 bit of a register
Commit consists out of
  • M compiler/riscv64/cgcpu.pas


Fix 2nd compilation in Textmode IDE
Commit consists out of
  • M compiler/parser.pas
  • M compiler/symdef.pas
  • M compiler/symtable.pas


Indentation
Commit consists out of
  • M compiler/mips/cputarg.pas


if not ps1 setup FPU defines
Commit consists out of
  • M compiler/options.pas


random new lines removed
Commit consists out of
  • M compiler/systems.pas


resolveReadAfterWrite moved to aasmcpu.pas
Commit consists out of
  • M compiler/mips/aasmcpu.pas
  • D compiler/mips/cpuext.pas
  • M compiler/mips/cpupi.pas


NtoLE() fix
Commit consists out of
  • M compiler/systems/t_ps1.pas


* RiscV: fix AndiAndi2Andi optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ RiscV: AndiAddwi02Andi optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


if taicpu(p).opcode in [....] beautiy fix
Commit consists out of
  • M compiler/mips/aasmcpu.pas


leave PIC code unchanged
Commit consists out of
  • M compiler/mips/hlcgcpu.pas


thx god You seen it! (reverse)
Commit consists out of
  • M compiler/mips/aasmcpu.pas


hlcgcpu.pas: uses unit systems + t_ps1.pas: correct Message3
Commit consists out of
  • M compiler/mips/hlcgcpu.pas
  • M compiler/msg/errore.msg
  • M compiler/systems/t_ps1.pas


check if next instruction exists
Commit consists out of
  • M compiler/mips/aasmcpu.pas


* fix RiscV32 compilation
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* RiscV64: don't use addiw for OS_32 to OS_32 type conversions obviously
Commit consists out of
  • M compiler/riscv64/cgcpu.pas


case statiment insteed of ifs
Commit consists out of
  • M compiler/mips/aasmcpu.pas


set_source_info behind defines
Commit consists out of
  • M compiler/systems/i_ps1.pas


typo fixed
Commit consists out of
  • M compiler/mips/aasmcpu.pas


Fix display of 80bit floats in cross-endian case
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


psy-q-sdk lib duplicate named *.o files excluded from link
Commit consists out of
  • M compiler/systems.pas
  • M compiler/systems/t_ps1.pas
  • D rtl/ps1/si_prc.pp


* FSRM works only with movsb
Commit consists out of
  • M compiler/x86/cgx86.pas


* fix alphabetical sorting of targets in comment
Commit consists out of
  • M compiler/pp.pas


* MIPS code generator: don't put floating point results in FPU registers for
function results, if the SoftFPU is enabled
Commit consists out of
  • M compiler/mips/cpupara.pas


* MIPS code gen: don't use FPU registers for function parameters in case SoftFPU
is enabled
Commit consists out of
  • M compiler/mips/cpupara.pas


+ added fpu_libgcc to MIPS
Commit consists out of
  • M compiler/mips/cpuinfo.pas


+ define cpufpemu for MIPS in order to enable (optionally) FPU emulation
Commit consists out of
  • M compiler/fpcdefs.inc


+ enable SoftFPU by default for the PS1 target
Commit consists out of
  • M compiler/options.pas


* MIPS: don't generate FPU code for abs(real), sqr(real) and sqrt(real) in case
FPU emulation is enabled
Commit consists out of
  • M compiler/mips/ncpuinln.pas


* MIPS: don't generate FPU code for int to real conversion when FPU emulation is enabled
Commit consists out of
  • M compiler/mips/ncpucnv.pas


+ RiscV: Addi0Op2Op optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


Add -msoft-float or -mhard-float option to GNU assembler calls
Commit consists out of
  • M compiler/mips/cpugas.pas


* RiscV: extend Addi0Op2Op
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* Addi0Op2Op has to consider both operands
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


switch all optimizations off
Commit consists out of
  • M compiler/options.pas


link all the sdk bindings .o files
Commit consists out of
  • M compiler/systems/t_ps1.pas


removed InitSysInitUnitName
Commit consists out of
  • M compiler/systems/t_ps1.pas


optimizecputype back to cpu_mips1
Commit consists out of
  • M compiler/options.pas


+ first batch of instructions added for Addi0Op2Op
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


Fixing bug where in const init no typecheck for symbol was performed
Commit consists out of
  • M compiler/ngtcon.pas
  • A tests/test/trecinit1.pp


* improve RiscV assembler optimizer
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


Rename function to reset_all_default_types
Commit consists out of
  • M compiler/parser.pas
  • M compiler/symdef.pas


* reduced the default stack size for PS1 to 256KB
Commit consists out of
  • M compiler/systems/i_ps1.pas


+ PS1: initialize StackLength and StackBottom
Commit consists out of
  • M compiler/systems/i_ps1.pas
  • M rtl/ps1/system.pp


+ PS1: allow creating a linker map file with the -Xm option
Commit consists out of
  • M compiler/systems/t_ps1.pas


+ PS1: show linking message
Commit consists out of
  • M compiler/systems/t_ps1.pas


+ RiscV: FOp.sFsgnj.s02FOp.s optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* generalize FOpFsgnj02FOp optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* PS1 target name in help screen changed to PlayStation 1
Commit consists out of
  • M compiler/msg/errore.msg


* apply OptPass1FOP to more opcodes
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* do not generate lea with 16 bit references on x86-64, resolves gitlab 0040936
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw40936.pp


* accidentally committed with a set debug define
Commit consists out of
  • M compiler/x86/aoptx86.pas


* partial fix gitlab 0040934: don't remove the DEF file if cs_link_deffile is set (thus if the user explicitly wants the file)
Commit consists out of
  • M compiler/gendef.pas


* partial fix gitlab 0040934: enable def file generation if only -D is provided as argument (as the help suggests and which also makes sense if -Dd is not set as then a default description is used)
Commit consists out of
  • M compiler/options.pas


* add procsyms from exports also to deffile if user explicitly asked for one
Commit consists out of
  • M compiler/pexports.pas


* ensure that Default() symbols that use management operators are properly initalized/finalized
+ added test
Commit consists out of
  • M compiler/ngenutil.pas
  • M compiler/ninl.pas
  • A tests/tbs/tb0717.pp
  • A tests/tbs/ub0717.pp


* extend use of OptPass1FOP
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* load 64 bit constants through a register into memory to avoid store-forwarding stalls, resolves gitlab 0040945
Commit consists out of
  • M compiler/x86/cgx86.pas


* apply OptPass1FOP to FCVT.*.*
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* RiscV64: fix abs()
Commit consists out of
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv64/cgcpu.pas


* Generate correct type name for procedural type arguments in thunk class
Commit consists out of
  • M compiler/symcreat.pas


* patch by lag programming: Code cleanup at function TAOptBase.RegInInstruction, resolves gitlab 0040952
Commit consists out of
  • M compiler/aoptbase.pas


* ignore the -gl parameter (and print a warning) on the embedded targets
Commit consists out of
  • M compiler/options.pas


* set proper expectloc for dyn. array comparisons, resolves gitlab 0040947
Commit consists out of
  • M compiler/nadd.pas


Force shortcut boolean evaluation when rewriting length(Windows widestring) = 0.
Commit consists out of
  • M compiler/nadd.pas


* fix gitlab 0040259: global managed records with Initialize operator need to be initialized no matter if they are referenced in the current unit or not.
+ added test
Commit consists out of
  • M compiler/ngenutil.pas
  • A tests/webtbs/tw40259.pp
  • A tests/webtbs/uw40259.pp


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


* MIPS64: make use of DMTC1 instruction
Commit consists out of
  • M compiler/hlcg2ll.pas
  • M compiler/mips/cpupara.pas


+ enable strength reduction for -O3, probably an oversight for years that it was not included in -O3
Commit consists out of
  • M compiler/globtype.pas


* do not set the addr taken flag for nodes to passed to const/var/out parameters, if
the code of the callee is known and within the callee no address of the parameters
is taken
Commit consists out of
  • M compiler/ncal.pas


+ print all sub nodes of call nodes
Commit consists out of
  • M compiler/ncal.pas


* properly process all child nodes of call nodes in foreachnode, resolves gitlab 0040957
Commit consists out of
  • M compiler/nutils.pas
  • A tests/webtbs/tw40957.pp


+ add printing of all fields of tcallnode in TCallNode.XMLPrintNodeData as well
Commit consists out of
  • M compiler/ncal.pas


* mark symbols used in conditional compiling expressions using sizeof, resolves gitlab 0040955
Commit consists out of
  • M compiler/scanner.pas
  • A tests/webtbs/tw40955.pp


+ more fixes to mark symbols used by preprocessor expressions properly
+ made MarkSymbolAsUsed more fail safe
+ tests
Commit consists out of
  • M compiler/scanner.pas
  • A tests/test/tpreproc2.pp
  • A tests/test/tpreproc3.pp
  • A tests/test/tpreproc4.pp
  • A tests/test/tpreproc5.pp
  • A tests/test/tpreproc6.pp


Remove unneeded, and possibly wrong typecast to fix cycle with -CR option
Commit consists out of
  • M compiler/scanner.pas


* consolidated code
Commit consists out of
  • M compiler/scanner.pas


* patch by lag programming to replace bitcnt by popcnt, resolves gitlab 0040962
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M tests/utils/avx/asmtestgenerator.pas


* set ra_addr_taken for addr. param only if really needed
Commit consists out of
  • M compiler/ncal.pas


+ fix gitlab 0040963: print suitable messages for local unit, include, library and object paths if -vt is given
+ added test
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/scandir.pas
  • A tests/webtbs/tw40963.pp


* get rid of the hack that tlabelnode inherits from tunarynode and stores a statement in left, resolves gitlab 0040964
Commit consists out of
  • M compiler/ncgflw.pas
  • M compiler/nflw.pas
  • M compiler/optdfa.pas
  • M compiler/optutils.pas
  • M compiler/pstatmnt.pas
  • A tests/webtbs/tw40964.pp


* compilation fixed
* cosmetics: trailing spaces removed
Commit consists out of
  • M compiler/pgenutil.pas


Use TFPList.FreeAndNilDisposing in four more places.
Commit consists out of
  • M compiler/ngenutil.pas
  • M compiler/symdef.pas


Align htypechk.pas:is_better_candidate to the left edge of the screen.
Commit consists out of
  • M compiler/htypechk.pas


* properly reject function calls as target of absolute, resolves gitlab 0040977
* better error message on invalid expressions for absolute
Commit consists out of
  • M compiler/htypechk.pas
  • M compiler/msg/errore.msg
  • A tests/webtbf/tw40977.pp


Fixing a bug where an empty postfix for enum was allowed
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/test/tenum7.pp


Implementing `TImplementedInterface.getcopy` to allow copying of interfaced objectcs

It's probably not fully correct(see comment about procdef copy) but
seems good enough ¯\_(ツ)_/¯
Commit consists out of
  • M compiler/symdef.pas
  • A tests/test/tinterface10.pp
  • A tests/test/tinterface7.pp
  • A tests/test/tinterface8.pp
  • A tests/test/tinterface9.pp


* do not eat the semicolon after an absolute expression to a symbol, noted in gitlab 0040978
Commit consists out of
  • M compiler/pdecvar.pas
  • A tests/webtbs/tw40978.pp


Adding support for indexed properties in extended RTTI
Commit consists out of
  • M compiler/ncgrtti.pas
  • M rtl/objpas/typinfo.pp
  • A tests/test/texrtti19.pp
  • A tests/test/texrtti20.pp


+ added a missing 'br 1' instruction in the code, generated by
GenerateCode_InitSharedMemory. This should fix the loading error in browsers,
when using multithreading.
Commit consists out of
  • M compiler/ogwasm.pas


* generate fmrx instruction only if the cpu has the vfp extension, resolves gitlab 0040985
Commit consists out of
  • M compiler/arm/cgcpu.pas


Postponing building of VMT until inheritance chain is specialized

This commit does 3 changes:
1. Introduce new option `oo_inherits_not_specialized` indicating if
somewhere in the inheritance chain of an object there is a non
specialized generic parameter
2. Avoid building the VMT for an object which has a generic parameter in
the inheritance chain (fixes gitlab 0040983)
3. When no vmt is build `insert_struct_hidden_paras` usually called as
part of `build_vmt` will be called seperately to add missing
parameters
Commit consists out of
  • M compiler/pdecl.pas
  • M compiler/pgenutil.pas
  • M compiler/ppu.pas
  • M compiler/symconst.pas
  • M compiler/symdef.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • A tests/test/tgeneric112.pp
  • A tests/test/tgeneric113.pp
  • A tests/test/tgeneric114.pp
  • A tests/test/tgeneric115.pp
  • A tests/test/tgeneric116.pp


Use “set of (op_unary, op_binary)” to check for supported operator overloads.
Commit consists out of
  • M compiler/htypechk.pas


* avoid code duplication :)
Commit consists out of
  • M compiler/symdef.pas


Remove conditionals that rely on not defined(FPC_HAS_CPSTRING).
Commit consists out of
  • M compiler/widestr.pas
  • M packages/rtl-extra/src/inc/objects.pp
  • M rtl/inc/astrings.inc
  • M rtl/inc/compproc.inc
  • M rtl/inc/sstrings.inc
  • M rtl/inc/systemh.inc
  • M rtl/inc/text.inc
  • M rtl/inc/textrec.inc
  • M rtl/inc/ustringh.inc
  • M rtl/inc/ustrings.inc
  • M rtl/inc/wstringh.inc
  • M rtl/inc/wstrings.inc
  • M rtl/java/jastrings.inc
  • M rtl/java/jcompproc.inc
  • M rtl/java/jsystemh.inc
  • M rtl/java/jsystemh_types.inc
  • M rtl/java/justrings.inc
  • M rtl/objpas/sysutils/fina.inc
  • M rtl/objpas/sysutils/finah.inc
  • M rtl/unix/cwstring.pp


Remove unused cutils functions.
Commit consists out of
  • M compiler/cutils.pas
  • M compiler/htypechk.pas


* fix gitlab 0040993: "inherit" the default RTTI options of a non-System unit from TObject as that picks up whatever had been declared in the System unit
Commit consists out of
  • M compiler/pmodules.pas


* Allow attributes on sub types. Fixes issue gitlab 0040997
Commit consists out of
  • M compiler/pdecobj.pas


* Attributes for methods. Fixes issue 41001
Commit consists out of
  • M compiler/pdecobj.pas
  • M compiler/pmodules.pas


* fix gitlab 0039407: multi variable initialization is not allowed in any mode, so don't say it's only not allowed in Delphi mode
Commit consists out of
  • M compiler/msg/errore.msg


* fix grammar
Commit consists out of
  • M compiler/msg/errore.msg


* pass all const record parameters on aarch64-win64 as references due to the habit of passing records as pointers by using the const modifier in the Windows unit
Commit consists out of
  • M compiler/aarch64/cpupara.pas


* fix encoding of ash_savereg and ash_savereg_x
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* on aarch64-win64 do the assignment of the exception frame pointer only after the SEH prologue has been done as there is no SEH directive for assigning a register to FP
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* on aarch64-win64 we need to restore the stack by first increasing the stackpointer and then restoring FP to match the code from the prologue
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* patch by Rika to fix position reporting in macro redefintions, resolves gitlab 0040082
Commit consists out of
  • M compiler/scanner.pas


* don't generate pdata and xdata if there is neither a relevant prologue nor a handler
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* when removing the STP FP,LR and MOV FP,SP instructions, also remove the corresponding SEH directives if available
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


clearing the bss section on startup

this allows smart linking
Commit consists out of
  • M compiler/systems.pas
  • M compiler/systems/t_ps1.pas
  • M rtl/ps1/Makefile
  • M rtl/ps1/Makefile.fpc
  • A rtl/ps1/si_prc.pp


* Fixed bug in "node_complexity" where a TLabelNode was put through an invalid typecast.
Commit consists out of
  • M compiler/nutils.pas


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


* don't restore SP if we hadn't stored it originally
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* also restore SP on aarch64-win64 if registers had been stored
Commit consists out of
  • M compiler/aarch64/cgcpu.pas


* fix encoding for save_freg_x
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* Avoid calling copy operator when moving data from temporary objects

When a function returns a managed record, a new temporary object is
created for the result, which is then copied to the real destination.
For managed records with a deep copy implementation, this can create
immense overhead. So instead this introduces a move, which basically
consists of
```pascal
procedure Move(var src, dst);
begin
Finalize(dst); // Finalize existing data
Move(src,dst,sizeof(dst)); // Shallow copy
Initialize(src); // Clear source
```

* nld.pas: use MOVE when assigning the function result from the
temporary return object
* rtl/inc/systemh.pas: Adding new macro to mark new RTTI version with MOVE
operation
* rtl/inc/compproc.inc, rtl/inc/rtti.inc: Adding new move mechanism when
indicated by the compiler.
Commit consists out of
  • M compiler/nld.pas
  • M rtl/inc/compproc.inc
  • M rtl/inc/rtti.inc
  • M rtl/inc/systemh.inc
  • M rtl/java/jcompproc.inc
  • A tests/test/tmoperator12.pp


+ RiscV64: apply OptPass1OP also to addiw
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas
  • M compiler/riscv/nrvset.pas
  • M rtl/x86_64/x86_64.inc


Adding static properties to extended RTTI
Commit consists out of
  • M compiler/ncgrtti.pas
  • M rtl/objpas/typinfo.pp
  • A tests/test/texrtti20.pp


* more use of OptPass1OP
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ print add node flags
Commit consists out of
  • M compiler/nadd.pas


* don't mess with boolean and/or operations in mixed short/full evaluated expressions, resolves gitlab 0041012
Commit consists out of
  • M compiler/optcse.pas
  • A tests/webtbs/tw41012.pp


Specialized fpc_copy_with_move_semantics for destructive copies.
Commit consists out of
  • M compiler/nld.pas
  • M rtl/inc/compproc.inc
  • M rtl/inc/rtti.inc
  • M rtl/java/jcompproc.inc


+ more RiscV extensions
* make use of F and D extension flags
Commit consists out of
  • M compiler/options.pas
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas


Update errore.msg

typo fix and correct position of 11068
Commit consists out of
  • M compiler/msg/errore.msg


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


* RiscV: more reliable use_fma
Commit consists out of
  • M compiler/riscv/nrvadd.pas


* correctly calculate the number of labels of a c boolean in case statemnts, resolves gitlab 0041025
Commit consists out of
  • M compiler/nset.pas
  • A tests/webtbs/tw41025.pp


* adjust comments to better match the situation with aarch64-win64 added to the mix
Commit consists out of
  • M compiler/aarch64/ncpuset.pas


* ensure that the section with the case-labels is 8-Byte aligned
Commit consists out of
  • M compiler/aarch64/ncpuset.pas


* on aarch64-win64 the case-labels are a list of 8-Byte aligned 8—Byte values, so adjust the alignment to avoid 2 32-bit loads
Commit consists out of
  • M compiler/aarch64/ncpuset.pas


* use a static data label for the case-label table on aarch64-win64 to avoid the linker discarding it
Commit consists out of
  • M compiler/aarch64/ncpuset.pas


* revert for loops also if the upper limit is non-constant
Commit consists out of
  • M compiler/optloop.pas


* Add missing methods to thunk class for parent interfaces without RTTI
Commit consists out of
  • M compiler/symcreat.pas
  • A tests/test/tthunkpc1.pp
  • A tests/test/tthunkpc2.pp


* Allow to parse internal symbol names generated for generics.
Commit consists out of
  • M compiler/scanner.pas
  • M compiler/symcreat.pas


* properly take care of tempinitcode when calculating def./use. sums of tempcreate nodes
Commit consists out of
  • M compiler/optdfa.pas


* avoid that types of limits of reverted loops are widened
Commit consists out of
  • M compiler/optloop.pas


* clean up
Commit consists out of
  • M compiler/optloop.pas


* less strict condition when a loop decrement can be moved to the end of a loop to increase code quality
Commit consists out of
  • M compiler/nflw.pas


* better code for ... downto 1 for-loops
Commit consists out of
  • M compiler/nflw.pas


Allow to use ld64.lld if -XLL option is used
Commit consists out of
  • M compiler/systems/t_darwin.pas


* don't see illegal calling conventions for procedure variables, resolves gitlab 0041041
Commit consists out of
  • M compiler/pdecsub.pas
  • A tests/webtbf/tw41041.pp


* properly calculate the size of enumeration types having negative elements and a max. value exceeding the upper bound of
the elsewhere matching signed type, resolves gitlab 0041019
Commit consists out of
  • M compiler/symdef.pas
  • A tests/webtbs/tw41019.pp


+ Addi2Nop optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* typo corrected
Commit consists out of
  • M compiler/riscv/cpubase.pas


* draft of improving Addi0Op2Op
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


cmpxchg16b instruction uses no size suffix in ATT syntax
Commit consists out of
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664ats.inc


+ zen5 architecture for completeness
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86/agx86nsm.pas
  • M compiler/x86_64/cpuinfo.pas


* typo fixed
Commit consists out of
  • M compiler/x86_64/cpuinfo.pas


* inline nodes can specify whether their result needs to be used
Commit consists out of
  • M compiler/ninl.pas
  • M compiler/pstatmnt.pas


+ add support for Delphi-compatible atomic intrinsics
Commit consists out of
  • M compiler/compinnr.pas
  • M compiler/ninl.pas
  • M compiler/pexpr.pas


* set types of start value calculation correctly when doing strength reduction, resolves gitlab 0041054
Commit consists out of
  • M compiler/optloop.pas
  • A tests/webtbs/tw41054.pp


* fix gitlab 0041062: correctly handle atomic intrinsics inside generics
+ added test
Commit consists out of
  • M compiler/ninl.pas
  • A tests/webtbs/tw41062.pp


* ensure that any Boolean type can be used for the Succeeded parameter and that there are no unitialized warnings
+ added test
Commit consists out of
  • M compiler/ninl.pas
  • A tests/test/tatomic8.pp


* apply Addi0Op2Op to more operations
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* formatting
Commit consists out of
  • M compiler/riscv64/cpupara.pas


* skeleton to unify the RiscV paramgr
* first routines unified
Commit consists out of
  • A compiler/riscv/pararv.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cpupara.pas
  • M compiler/symtable.pas


* more RiscV paramgr unification
Commit consists out of
  • M compiler/riscv/pararv.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cpupara.pas


* Correctly handle missing extensions for dotted include file names. Fixes issue gitlab 0041064
Commit consists out of
  • M compiler/scanner.pas
  • A tests/webtbs/iwb41064.msg.pp
  • A tests/webtbs/twb41064.pp


* more RiscV paramgr unification
Commit consists out of
  • M compiler/riscv/pararv.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cpupara.pas


* continued unification of RiscV paramgr
Commit consists out of
  • M compiler/riscv/pararv.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cpupara.pas


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


* major parts of the RiscV paramgr unified, improves code generation and less failures in RiscV32 regression tests
Commit consists out of
  • M compiler/riscv/pararv.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cgcpu.pas
  • M compiler/riscv64/cpupara.pas


* partly revert 8cd6606970c8fedda95a3411d684dbd57379b46d, resolves gitlab 0041052

(cherry picked from commit 854d4e6f4a5b53040160f8921d0089167f6b00be)
Commit consists out of
  • M compiler/nadd.pas
  • A tests/webtbs/tw41052.pp


* formatting
+ test for issue gitlab 0041066 which was already resolved previously
Commit consists out of
  • M compiler/pdecobj.pas
  • A tests/webtbs/tw41066.pp


* fpu type must be fpu_soft if the cpu is rv32ima
Commit consists out of
  • M compiler/globals.pas


* RiscV: emit an error if fpu_fd is used on a cpu without f and d extensions
Commit consists out of
  • M compiler/options.pas


* RiscV: floating point registers are saved only for hard float ABIs
Commit consists out of
  • M compiler/riscv/pararv.pas


+ RiscV: vector registers
Commit consists out of
  • M compiler/riscv/rvreg.dat
  • M compiler/riscv32/rrv32con.inc
  • M compiler/riscv32/rrv32dwa.inc
  • M compiler/riscv32/rrv32nor.inc
  • M compiler/riscv32/rrv32num.inc
  • M compiler/riscv32/rrv32rni.inc
  • M compiler/riscv32/rrv32sri.inc
  • M compiler/riscv32/rrv32sta.inc
  • M compiler/riscv32/rrv32std.inc
  • M compiler/riscv32/rrv32sup.inc
  • M compiler/riscv64/rrv64con.inc
  • M compiler/riscv64/rrv64dwa.inc
  • M compiler/riscv64/rrv64nor.inc
  • M compiler/riscv64/rrv64num.inc
  • M compiler/riscv64/rrv64rni.inc
  • M compiler/riscv64/rrv64sri.inc
  • M compiler/riscv64/rrv64sta.inc
  • M compiler/riscv64/rrv64std.inc
  • M compiler/riscv64/rrv64sup.inc
  • A compiler/utils/genrvvreg.pp


Do not add abi-call0 to linker options for esp8266
Commit consists out of
  • M compiler/systems/t_embed.pas
  • M compiler/systems/t_freertos.pas


+ write .option pic directive if needed
Commit consists out of
  • M compiler/aggas.pas
  • A compiler/riscv/nrvutil.pas
  • M compiler/riscv32/nrv32util.pas
  • M compiler/riscv64/cpunode.pas


* make use of LA pseudo-instruction
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/riscv/aasmcpu.pas
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv/cgrv.pas


+ apply OptPass1OP to LA as well
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* fix gitlab 0041072: proc_to_procvar_equal_internal() might be passed a procvar in case of "procvar := @", reject that as incompatible
+ added test
Commit consists out of
  • M compiler/defcmp.pas
  • A tests/webtbf/tw41072.pp


* fixes RiscV32 building
Commit consists out of
  • M compiler/riscv32/nrv32util.pas


* RiscV: unify push_addr_param
Commit consists out of
  • M compiler/riscv/pararv.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cpupara.pas


* fix gitlab 0041075: don't allow @
+ added tests
Commit consists out of
  • M compiler/pexpr.pas
  • A tests/webtbf/tw41075a.pp
  • A tests/webtbf/tw41075b.pp
  • A tests/webtbf/tw41075c.pp
  • A tests/webtbf/tw41075d.pp


* fix gitlab 0041074: adjust conversion level of class/interface to pointer and class to interface conversions so that sub class to class conversions take precedence
+ added tests
Commit consists out of
  • M compiler/defcmp.pas
  • A tests/test/toperator96.pp
  • A tests/webtbs/tw41074.pp


* fix gitlab 0041063: don't add classrefdefs or objectdefs to the WPOInfo if they are declared locally (e.g. capturer instances)
+ added test
Commit consists out of
  • M compiler/symdef.pas
  • A tests/webtbs/tw41063.pp
  • A tests/webtbs/uw41063.pp


* RiscV: push_addr_param unified
Commit consists out of
  • M compiler/riscv/pararv.pas
  • M compiler/riscv32/cpupara.pas
  • M compiler/riscv64/cpupara.pas


* fix gitlab 0041007: only unlink typesyms from their typedefs when releasing an unused implicit specialization if the typesym was created for the implicit specialization
+ added test
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw41007.pp
  • A tests/webtbs/uw41007.pp


Remove one of two CPULLVM define macro
Commit consists out of
  • M compiler/options.pas


def_system_macro -> undef_system_macro (fix oversight as if then block is equal to else block)
Commit consists out of
  • M compiler/options.pas


* keep track of the current specialization state of the current module
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/pgentype.pas
  • M compiler/pgenutil.pas


* keep track of the current generic def in the specialization state
Commit consists out of
  • M compiler/pgentype.pas
  • M compiler/pgenutil.pas


+ add utility function to check whether a generic belongs to the currently parsed generic even if it's further up in the specialization stack
Commit consists out of
  • M compiler/pgenutil.pas


* when parsing generic parameter types allow the use of generics that are part of the current specialization stack (this can be the case if a generic is used inside itself as a type parameter for a specialization)
+ added tests
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/test/tgeneric117.pp
  • A tests/test/tgeneric118.pp


* fix gitlab 0040653: don't allow the use of a class during its declaration as parent for a nested class (Delphi compatible)
+ added test
Commit consists out of
  • M compiler/pdecobj.pas
  • A tests/webtbf/tw40653.pp


* apply OptPass1OP to SLT/SLTU as well
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* reset oo_is_forward object option for external classes after parsing the parent classes
Commit consists out of
  • M compiler/pdecobj.pas


* RiscV: write also nopic directive
Commit consists out of
  • M compiler/riscv/nrvutil.pas


* use dispose() instead of freemem() for consistency with the allocation of pmessagestaterecord
Commit consists out of
  • M compiler/verbose.pas


* ensure that flushpendingswitchesstate had been called before the start of replaying tokens
Commit consists out of
  • M compiler/scanner.pas


* apply message state to the pending state so that they are applied at the correct moment
Commit consists out of
  • M compiler/scanner.pas


* when restoring the state after parsing the last token of the token buffer append the message state to the pending state so that they are reapplied at the correct time
Commit consists out of
  • M compiler/scanner.pas


* tai_eabi_attribute -> tai_attribute so it can be used by other architectures
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/arm/narmutil.pas
  • M compiler/assemble.pas


* write basic attributes for riscvXX-linux
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/riscv/nrvutil.pas


+ add method to TMessage to check whether a message is valid
Commit consists out of
  • M compiler/cmsgs.pas


* don't use tmessage.setverbosity() to check whether the message is valid as it should only be applied when the switches are flushed, so use the new tmessage.valid() instead
Commit consists out of
  • M compiler/verbose.pas


* ensure that current_settings.pmessage is reset when doing a replay and when loading the current message state from the token stream
Commit consists out of
  • M compiler/scanner.pas


* also (re)store the pending state when replaying a token stream
Commit consists out of
  • M compiler/scanner.pas


* reset the message state only inside flushpendingswitchesstate(), not during $POP itself
Commit consists out of
  • M compiler/scandir.pas
  • M compiler/switches.pas


* store the current verbosity as part of the settings so that they're stored as part of a generic token stream as well
Commit consists out of
  • M compiler/globals.pas
  • M compiler/ppu.pas
  • M compiler/scanner.pas
  • M compiler/utils/ppuutils/ppudump.pp


* ensure that only the newest message state is applied
Commit consists out of
  • M compiler/scanner.pas
  • M compiler/switches.pas
  • M compiler/verbose.pas


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


* don't use $MINSTACKSIZE and $MAXSTACKSIZE on non-Windows instead of disabling the warning
Commit consists out of
  • M compiler/pp.pas


WPO: don't crash on TP-style objects with only abstract virtual methods
Commit consists out of
  • M compiler/optvirt.pas
  • A tests/webtbs/tw41077.pp


* fix trvinlinenode.second_fma
Commit consists out of
  • M compiler/riscv/nrvinl.pas


Extended RTTI: generate RTTI for Objective-C fields like for generic pointers

Resolves gitlab 0041034
Commit consists out of
  • M compiler/ncgrtti.pas


+ as-macos for using as from Retro68
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/ppcgen/agppcgas.pas
  • M compiler/systems.inc


* fix gitlab 0040876: correctly check for generic constant parameters without concrete value
+ added test
Commit consists out of
  • M compiler/pgenutil.pas
  • A tests/webtbs/tw40876.pp


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


* better checking of valid addr_no
Commit consists out of
  • M compiler/ppcgen/agppcgas.pas


* write sections/section names correctly for as-macos
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/ppcgen/agppcgas.pas


* MacOS Classic uses apparently very similiar mechanisms for the TOC as powerpc-aix
Commit consists out of
  • M compiler/ppcgen/cgppc.pas


* .toc sections do not need a .csect on powerpc-macosclassic
Commit consists out of
  • M compiler/aggas.pas


* write " as octal number as well in assembler output, it is more compatible
Commit consists out of
  • M compiler/aggas.pas


* fix gitlab 0038122 in a more correct way than previously done: instead of adjusting the methodpointer node when it's a deref node adjust what value is stored in a temp if a call node is encountered: store the pointer value, not the pointed to value to avoid the reference getting lost
+ added test (note: the test fails at least on x86_64-win64 due to some different reason :/ )
Commit consists out of
  • M compiler/ncal.pas
  • A tests/webtbs/tw38122c.pp


* RiscV64: optimize 32 bit shift instructions as well
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* cleanup merge artefacts
Commit consists out of
  • M compiler/ninl.pas


Extended RTTI: more Objective-C handling

Resolves gitlab 0041034
Commit consists out of
  • M compiler/ncgrtti.pas


* if an outer capturer is required then that outer capturer must not be optimized into a register (fixes compilation with -Ooregvar enabled (e.g. in -O3))
Commit consists out of
  • M compiler/procdefutil.pas


* use HAS_MINMAX_INTRINSICS define
Commit consists out of
  • M compiler/nflw.pas


+ random bits for quad support on RiscV
Commit consists out of
  • M compiler/compinnr.pas
  • M compiler/defutil.pas
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas


* apply OptPass1FOP to FMIN/FMAX as well
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ min/max optimization support for RiscV
Commit consists out of
  • M compiler/nflw.pas
  • M compiler/riscv/nrvinl.pas


+ OptPass1FSGNJ optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* Better fix for atomic operations on wasm
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/ncginl.pas
  • M rtl/inc/systemh.inc


Avoid wrong typecast by checking explictly that hp1 is indeed an instruction
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ add missing cpu64bit defines for consistency
Commit consists out of
  • M compiler/fpcdefs.inc


* set is_jmp
Commit consists out of
  • M compiler/riscv/cgrv.pas


cpuNbitalu is not the correct type for fpc_atomic_cmp_xchg_alu on webassembly
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/ncginl.pas
  • M rtl/inc/generic.inc


+ RiscV: make use of the fneg.* instruction
Commit consists out of
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas
  • A compiler/riscv/nrvmat.pas
  • M compiler/riscv32/nrv32mat.pas
  • M compiler/riscv64/nrv64mat.pas


Every compile gets actual current directory (fix for Textmode IDE)
Commit consists out of
  • M compiler/cfileutl.pas


Fix compilation of riscv32 compiler
Commit consists out of
  • M compiler/riscv32/nrv32mat.pas


* updated copyright year to 2025
Commit consists out of
  • M compiler/msg/errorct.msg
  • M compiler/msg/errord.msg
  • M compiler/msg/errorda.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


* fix compiling binaries on JVM: the entries list contains pinitfinalentry values, not tused_unit
Commit consists out of
  • M compiler/jvm/njvmutil.pas


* missing Copyright year update
Commit consists out of
  • M compiler/msg/errordu.msg


+ RiscV: make use of the fl* rd,symbol,rd pseudoinstruction
Commit consists out of
  • M compiler/aasmtai.pas
  • M compiler/riscv/aasmcpu.pas
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas


+ RiscV: make use of the fmv.w.x/fmv.d.x instruction to load 0.0
Commit consists out of
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv/itcpugas.pas
  • M compiler/riscv/nrvcon.pas
  • M compiler/riscv32/cpunode.pas
  • M compiler/riscv64/cpunode.pas


* cleanup
Commit consists out of
  • M compiler/riscv/nrvcon.pas


* factor out TRVCpuAsmOptimizer.OptPass1Sub
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* remove accidently committed debug statement
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas
  • M compiler/riscv/cpubase.pas
  • M compiler/riscv64/cgcpu.pas


* RiscV: check for cpu capabilities before using fmv for loading zero
Commit consists out of
  • M compiler/riscv/nrvcon.pas


Check that index value is not below lower bound in TMessage.Valid method
Commit consists out of
  • M compiler/cmsgs.pas


* reformat statement for better readability
Commit consists out of
  • M compiler/ninl.pas


* don't cast the succeeded node succn to a tcallparanode (it's usually a tloadnode or something similar instead)
Commit consists out of
  • M compiler/ninl.pas


* change some getglobaldatalabel into getlocaldatalabel to simplify code if pic is used
Commit consists out of
  • M compiler/ncgcon.pas
  • M compiler/x86/nx86cnv.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/x86/nx86set.pas
  • M compiler/x86_64/nx64cnv.pas


* factor out TRVCpuAsmOptimizer.OptPass1SLTx
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* fix gitlab 0040979: don't recurse further into the nested hierarchy for code generation if the function is generic
+ added test
Commit consists out of
  • M compiler/psub.pas
  • A tests/webtbs/tw40979.pp


LoongArch: Always emit la.got for global symbol
Commit consists out of
  • M compiler/loongarch64/cgcpu.pas


+ RiscV: write arch attribute
Commit consists out of
  • M compiler/riscv/nrvutil.pas


+ CPURV_HAS_ZICOND
Commit consists out of
  • M compiler/riscv/nrvutil.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas


Browser information for generic records
Commit consists out of
  • M compiler/browcol.pas


* factor out TRVCpuAsmOptimizer.OptPass1SLTI
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ WebAssembly internal linker: rewrite the fpc_wasm_invoke_helper function in the linker, so that it becomes functional
Commit consists out of
  • M compiler/ogwasm.pas


+ RiscV: support ZMMUL extension
Commit consists out of
  • M compiler/riscv/cgrv.pas
  • M compiler/riscv/nrvadd.pas
  • M compiler/riscv/nrvutil.pas
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas
  • M compiler/riscv64/nrv64add.pas


* fixed WebAssembly code generator internal error when passing real constants as
constref parameters. Also fixes test webtbs/tw41011
Commit consists out of
  • M compiler/wasm32/cpunode.pas
  • D compiler/wasm32/nwasmcon.pas


* properly write RV32E/RV64E architecture tags
Commit consists out of
  • M compiler/riscv/nrvutil.pas
  • M compiler/riscv64/cpuinfo.pas


* properly read +/- for the warn directive, resolves gitlab 0041105
Commit consists out of
  • M compiler/scandir.pas
  • A tests/webtbs/tw41105.pp


* WebAssembly codegen: fixed access to absolute variables, pointing to just a constant address, e.g. var a: longint absolute 5;
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* WebAssembly: also handle dup=true in thlcgwasm.prepare_stack_for_ref for absolute address refs
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


+ added ref2string debug helper function to the WebAssembly code generator
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* WebAssembly codegen: enable -CN nil pointer checks in more places: a_cmp_const_ref_stack, a_cmp_ref_reg_stack and a_cmp_reg_ref_stack
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas


* override tcpuparamanager.has_strict_proc_signature and return true for WebAssembly
Commit consists out of
  • M compiler/wasm32/cpupara.pas


* check for 64 bit registers in TX86AsmOptimizer.RegReadByInstruction as well for sanity reasons
Commit consists out of
  • M compiler/x86/aoptx86.pas


* SubLea2Lea has to check both times for equal super registers, resolves the second part of gitlab 0041126
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw41126.pp


* Allow to process .fmx files just as .lfm/.dfm files
Commit consists out of
  • M compiler/comprsrc.pas


Change CompareChar uses inside compiler/RTL to CompareByte.
Commit consists out of
  • M compiler/cutils.pas
  • M packages/rtl-objpas/src/inc/strutils.pp
  • M rtl/objpas/classes/classes.inc
  • M rtl/objpas/sysutils/syshelps.inc


+ a_bit_scan_reg_reg gets a flag if src cannot be zero: this simplifies the generated code
Commit consists out of
  • M compiler/aarch64/cgcpu.pas
  • M compiler/arm/cgcpu.pas
  • M compiler/cghlcpu.pas
  • M compiler/cgobj.pas
  • M compiler/hlcg2ll.pas
  • M compiler/hlcgobj.pas
  • M compiler/jvm/hlcgcpu.pas
  • M compiler/llvm/hlcgllvm.pas
  • M compiler/loongarch64/cgcpu.pas
  • M compiler/ncginl.pas
  • M compiler/ppcgen/cgppc.pas
  • M compiler/riscv/cgrv.pas
  • M compiler/wasm32/hlcgcpu.pas
  • M compiler/x86/cgx86.pas
  • M compiler/xtensa/cgcpu.pas


+ function node_not_zero and make use of it
Commit consists out of
  • M compiler/ncginl.pas
  • M compiler/nutils.pas


Make use of not_zero in x86 bitscans.
Commit consists out of
  • M compiler/x86/cgx86.pas


* extend node_not_zero and make more use of it
Commit consists out of
  • M compiler/aarch64/ncpumat.pas
  • M compiler/nutils.pas


+ extend node_not_zero to take range types into account
+ aarch64: if no FPC_DIVBYZERO call is needed, div nodes do not generate calls
Commit consists out of
  • M compiler/aarch64/ncpumat.pas
  • M compiler/nutils.pas


* apply OptPass1Data to UDIV/SDIV as well
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* node_not_zero can be apply to int->int conversion only if no data is cut off
Commit consists out of
  • M compiler/nutils.pas


+ apply OptPass1Data to variable shifting/rotating operations as well
Commit consists out of
  • M compiler/aarch64/aoptcpu.pas


* WebAssembly: optimized the number of nested blocks inside the invoke helper
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly: impose a limit on the br_table instruction length, when generating the invoke helper
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly: micro optimization in the invoke helper - omit the last 'return' instruction
Commit consists out of
  • M compiler/ogwasm.pas


* simplified code
Commit consists out of
  • M compiler/ncginl.pas


Disable high(taitype)<=31 check for LLVM compiler
Commit consists out of
  • M compiler/aasmtai.pas


* allow absolutes on open arrays (use of this is doubtful though), resolves gitlab 0041147
Commit consists out of
  • M compiler/ncnv.pas
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw41147.pp


* make use of not_zero in tbasecgarm.a_bit_scan_reg_reg
Commit consists out of
  • M compiler/arm/cgcpu.pas


* WebAssembly internal linker: invoke helper code generation moved earlier,
before the relocation fixups are applied. This should make the DWARF debug
line info correct again. Also, the offsets in the linker map file should be
correct now, as well.
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly internal linker: add the contents of the type section to the map file
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly internal linker: write the indirect function table to the linker map file
Commit consists out of
  • M compiler/ogwasm.pas


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


* x86_64: Extension to MovMov2Mov optimisations to allow more MOVL to MOVQ zero-extensions
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ x86: proper flag (de)alloc in a_bit_scan
Commit consists out of
  • M compiler/x86/cgx86.pas


* RiscV: fixing spilling_get_operation_tpye for LI
Commit consists out of
  • M compiler/riscv/aasmcpu.pas


* improve complexity calculation for tempref nodes
Commit consists out of
  • M compiler/nutils.pas


+ WebAssembly internal linker: write the contents of the memory section to the linker map file
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly internal linker: write the export section to the linker map file
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly internal linker: write the import section in the linker map file
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly internal linker: write the memory section before the export section, so it appears in a more logical order in the map file
Commit consists out of
  • M compiler/ogwasm.pas


+ WebAssembly internal linker: write the global section in the linker map file
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasm32/cpubase.pas


* fixed warning after previous commit
Commit consists out of
  • M compiler/ogwasm.pas


* WebAssembly internal linker: refactored the writing of the memory section and
the memory import section: introduced a TWasmMemoryType record, and structures
for holding the memory entries in the import and memory sections, instead of
writing them in an ad hoc manner. The memory information in the linker map
file is now also a little more detailed.
Commit consists out of
  • M compiler/ogwasm.pas
  • M compiler/wasm32/cpubase.pas


* RiscV: play safe in taicpu.spilling_get_operation_type
Commit consists out of
  • M compiler/riscv/aasmcpu.pas


m68k: new CPU capability - the TST instruction supports address registers (68020+ and CF)
Commit consists out of
  • M compiler/m68k/cpuinfo.pas


m68k: do not try to optimize CMP #0,Ax to TST Ax, if the CPU doesn't support it
Commit consists out of
  • M compiler/m68k/aoptcpu.pas


m68k: refactor - use the new CPUM68K_HAS_TSTAREG capability where applicable
Commit consists out of
  • M compiler/m68k/n68kadd.pas
  • M compiler/m68k/n68kcnv.pas
  • M compiler/m68k/n68kmat.pas


* RiscV: fix AddiAddi2Addi optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* RiscV64: make use of zext.w instruction if available
Commit consists out of
  • M compiler/riscv64/cgcpu.pas


+ RV64GCB CPU type
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv64/cpuinfo.pas


* RiscV: handle more instructions in taicpu.spilling_get_operation_type
Commit consists out of
  • M compiler/riscv/aasmcpu.pas


* fix typo
* properly pass zba, zbb, zbs to march
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv/nrvutil.pas


Fix ld.lld options for i386-freebsd target
Commit consists out of
  • M compiler/systems/t_bsd.pas


+ RiscV: rv32gcb
Commit consists out of
  • M compiler/riscv/agrvgas.pas
  • M compiler/riscv32/cpuinfo.pas


Disable limitation of nonlocal setting for LLVM compiler
Commit consists out of
  • M compiler/rautils.pas


* RiscV64: make use of sext.h instruction
Commit consists out of
  • M compiler/riscv64/cgcpu.pas


* x86: Fixed bug in "MovMovMov2MovMovMov" optimisation where a register wasn't properly tracked
Commit consists out of
  • M compiler/x86/aoptx86.pas


* WebAssembly: fixed type conversion from pointer to qword (fixes bug gitlab 0041092)
Commit consists out of
  • M compiler/wasm32/hlcgcpu.pas
  • A tests/webtbs/tw41092.pp


* WebAssembly goto support: skip unused labels in resolve_labels_via_state_machine. Fixes gitlab 0041093
Commit consists out of
  • M compiler/wasm32/cpupi.pas
  • A tests/webtbs/tw41093.pp


+ RiscV32: use sext.b if available
Commit consists out of
  • M compiler/riscv32/cgcpu.pas


* most of tcgcallparanode.secondcallparan's code was moved into two new methods:
secondcallparan_do_secondpass and secondcallparan_after_secondpass. These are
protected methods, meant to be called in secondcallparan's descendants, to
provide alternative parameter handling algorithms (needed for WebAssembly). No
functional changes.
Commit consists out of
  • M compiler/ncgcal.pas


* On WebAssembly, when calling a function, first generate code for evaluating
all the parameters, and only after that, push them on the stack. This avoids
problems with our 'goto' support.
Commit consists out of
  • M compiler/wasm32/nwasmcal.pas


* fixed WebAssembly goto in case statement crash with internal error 2021011801
Commit consists out of
  • M compiler/wasm32/nwasmset.pas


+ WebAssembly: added support for using saturating (non-trapping) float-to-int conversion instructions via the new target switch SATURATINGFLOATINGTOINT
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/msg/errore.msg
  • M compiler/wasm32/nwasminl.pas


* the FPC_WASM_SATURATING_FLOAT_TO_INT_CONVERSIONS define shortened to FPC_WASM_SATURATING_FLOAT_TO_INT
* increased the max string length of ttargetswitchinfo.define in order to fit the new define
Commit consists out of
  • M compiler/globtype.pas


* fix compilation of ppudump
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


+ define EOL_ONE_CHAR for the WASI platform
Commit consists out of
  • M compiler/utils/msg2inc.pp


* x86: Fixed bug where flags register wasn't tracked during
long-range "AddMov2LeaAdd" and "SubMov2LeaSub" optimisations
Commit consists out of
  • M compiler/x86/aoptx86.pas


+ more sext.b usage
Commit consists out of
  • M compiler/riscv64/cgcpu.pas


* x86: Refactoring register update code in "OptPass2ADD" and "OptPass2SUB"
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: "OptPass2ADD" and "OptPass2SUB" now force another iteration if "OptPass2MOV" returned True
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Fixed bug where "aoc_ForceNewIteration" wouldn't update the registers properly in some circumstances
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86_64/aoptcpu.pas


* applied fix for gitlab 0041161 as proposed by Pierre
Commit consists out of
  • M compiler/ncgcon.pas


* x86: Fixed oversight in LeaLea2LeaLea optimisations where bad code is
generated if the intermediate register appears in the first reference
Commit consists out of
  • M compiler/x86/aoptx86.pas


* system_wasm32_wasi renamed system_wasm32_wasip1
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/ogwasm.pas
  • M compiler/parser.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_wasi.pas
  • M compiler/systems/t_wasi.pas
  • M compiler/wasm32/agbinaryen.pas
  • M compiler/wasm32/agllvmmc.pas
  • M compiler/wasm32/agwasa.pas


* the name string of the WASI target changed from 'The WebAssembly System Interface (WASI)' to 'The WebAssembly System Interface Preview 1 (WASI 0.1)'
Commit consists out of
  • M compiler/systems.pas
  • M compiler/systems/i_wasi.pas


* system_wasm32_wasi_info renamed system_wasm32_wasip1_info
Commit consists out of
  • M compiler/systems/i_wasi.pas
  • M compiler/systems/t_wasi.pas


+ add WASI as extra define for the wasip1 target
Commit consists out of
  • M compiler/systems/i_wasi.pas


* ifdef on wasip1 when setting the source OS info to wasip1
Commit consists out of
  • M compiler/systems/i_wasi.pas


* wasi renamed wasip1 in the compiler help screen
Commit consists out of
  • M compiler/msg/errore.msg


+ compiler support for a new target: wasip1threads
Commit consists out of
  • M compiler/options.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_wasi.pas


* fixed compilation of ppudump
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* WASI renamed WASIp1 in ppudump
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp


* increased string size of tsysteminfo.shortname in order to fit 'wasip1threads'
Commit consists out of
  • M compiler/systems.pas


+ register the wasip1threads target in the compiler
Commit consists out of
  • M compiler/systems/t_wasi.pas


* Invoke helper also needs generic ids
Commit consists out of
  • M compiler/symcreat.pas


+ added system_wasm32_wasip1threads to systems_wasm
Commit consists out of
  • M compiler/systems.pas


* factor out TRVCpuAsmOptimizer.OptPass1Andi
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ added system_wasm32_wasip1threads to systems_internal_sysinit
Commit consists out of
  • M compiler/systems.pas


+ also handle system_wasm32_wasip1threads in the compiler anywhere system_wasm32_wasip1 is handled
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/ogwasm.pas
  • M compiler/parser.pas
  • M compiler/wasm32/agbinaryen.pas
  • M compiler/wasm32/agllvmmc.pas
  • M compiler/wasm32/agwasa.pas


+ added tf_no_pic_supported to the WASI platforms
Commit consists out of
  • M compiler/systems/i_wasi.pas


* avoid that not explicitly as vectors marked arrays end up in registers where they are handled not properly
Commit consists out of
  • M compiler/defutil.pas


* Correct errors like "then;" . Fixes issue gitlab 0041171
Commit consists out of
  • M compiler/systems/t_msdos.pas
  • M compiler/systems/t_win.pas
  • M packages/chm/src/chmwriter.pas
  • M packages/fcl-sdo/src/base/sdo_xsdparser.pas
  • M packages/fcl-web/src/base/fpwebproxy.pp
  • M packages/ptc/src/wince/gapi/wincegapiconsolei.inc


* factor out TRVCpuAsmOptimizer.OptPass1SLTIU
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* ensure result is set
Commit consists out of
  • M compiler/systems/t_msdos.pas


* another ; after then removed, hopefully finally resolves gitlab 0041171
Commit consists out of
  • M compiler/options.pas


Change branch and jump destinations to byte based distances.
Commit consists out of
  • M compiler/avr/aasmcpu.pas


* better error reporting
* indentation
Commit consists out of
  • M compiler/avr/aasmcpu.pas


Check rjmp destination range.
Commit consists out of
  • M compiler/avr/aasmcpu.pas
  • M compiler/msg/errore.msg


* wasip1threads needs 14 characters
Commit consists out of
  • M compiler/systems.pas


* Enlarge target os/full variable for wasip1threads
Commit consists out of
  • M compiler/systems.pas


* Remove debug output
Commit consists out of
  • M compiler/systems.pas


Add/actualize CPUX86_HAS_SSSE3.
Commit consists out of
  • M compiler/i386/cpuinfo.pas
  • M compiler/x86_64/cpuinfo.pas


* factor out TRVCpuAsmOptimizer.OptPass1SxxI
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ write more information ttypeconvnodes
Commit consists out of
  • M compiler/ncnv.pas


* Fixed internal error 200411013 when typecasting and dereferencing nil into an array
Commit consists out of
  • M compiler/ncgmem.pas


Add -Twasip1threads
Commit consists out of
  • M compiler/msg/errore.msg


+ RiscV: SltiuAndi2Sltiu optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


Enable -Aas-clang for unix and embedded targets for aarch64 compiler
Commit consists out of
  • M compiler/aarch64/agcpugas.pas


* fix SltiuAndi2Sltiu optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* make TRVCpuAsmOptimizer.OptPass1SLTIU look further ahead
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


+ SltiAndi2Slti optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* Define for mormot memory manager. Speeds up by 66%
Commit consists out of
  • M compiler/pp.pas


+ added new target to the compiler: wasm32-wasip2. Not working, yet.
Commit consists out of
  • M compiler/aggas.pas
  • M compiler/ogwasm.pas
  • M compiler/parser.pas
  • M compiler/systems.inc
  • M compiler/systems.pas
  • M compiler/systems/i_wasi.pas
  • M compiler/systems/t_wasi.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/wasm32/agbinaryen.pas
  • M compiler/wasm32/agllvmmc.pas
  • M compiler/wasm32/agwasa.pas


* removed tf_under_development from the wasip1 and wasip1threads targets, since they're now relatively stable (unlike wasip2)
Commit consists out of
  • M compiler/systems/i_wasi.pas


+ added wasip2 to the compiler help screen (marked as experimental)
Commit consists out of
  • M compiler/msg/errore.msg


* regen makefiles
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/fcl-base/examples/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/examples/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/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/examples/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/libcurl/examples/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/libgd/examples/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/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/libsee/examples/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/univint/examples/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/xforms/examples/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/human68k/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/ps1/Makefile
  • M rtl/qnx/Makefile
  • M rtl/sinclairql/Makefile
  • M rtl/solaris/Makefile
  • M rtl/symbian/Makefile
  • M rtl/wasip1/Makefile
  • M rtl/wasip1threads/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/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/fpdoc/fpde/Makefile


* enclose {$define DEBUG_AOPTCPU} in {$ifdef EXTDEBUG}
Commit consists out of
  • M compiler/arm/aoptcpu.pas
  • M compiler/i8086/aoptcpu.pas
  • M compiler/loongarch64/aoptcpu.pas
  • M compiler/m68k/aoptcpu.pas
  • M compiler/mips/aoptcpu.pas
  • M compiler/riscv/aoptcpurv.pas
  • M compiler/riscv64/aoptcpu.pas
  • M compiler/sparcgen/aoptcpu.pas
  • M compiler/xtensa/aoptcpu.pas
  • M compiler/z80/aoptcpu.pas


+ added wasip2 to the NO_NATIVE_COMPILER_OS_LIST
Commit consists out of
  • M compiler/Makefile
  • M compiler/Makefile.fpc


* Fix typo
Commit consists out of
  • M compiler/defutil.pas


* Remove MMM after discussion on core
Commit consists out of
  • M compiler/pp.pas


* some RiscV optimizer improvements and fixes
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


- disable Slti0B2B as well
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* Create proper unicode string for single char if in unicode rtl
Commit consists out of
  • M compiler/pdecl.pas


* Change pchar to dynamic array of ansichar
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/assemble.pas
  • M compiler/entfile.pas
  • M compiler/globtype.pas
  • M compiler/ogbase.pas
  • M compiler/wasm32/agwasa.pas


* Replace labeltable with dynamic array
Commit consists out of
  • M compiler/aopt.pas
  • M compiler/aoptobj.pas


* Use new instead of getmem
Commit consists out of
  • M compiler/assemble.pas


* Use dynamic array instead of pointer for character map
Commit consists out of
  • M compiler/ccharset.pas


* Use dyn array for bitset
Commit consists out of
  • M compiler/cclasses.pas


* Allow to write tbytedynarray
Commit consists out of
  • M compiler/ppu.pas


* Write byte dyn array
Commit consists out of
  • M compiler/wpobase.pas


* user dyn array for Superregister
Commit consists out of
  • M compiler/cgbase.pas
  • M compiler/rgobj.pas


* Dyn array for interference bitmap
Commit consists out of
  • M compiler/rgobj.pas


* Use dynamic arrays instead of getmem for spill temp
Commit consists out of
  • M compiler/jvm/rgcpu.pas
  • M compiler/rgobj.pas
  • M compiler/wasm32/rgcpu.pas


* Use dynamic arrays for compiler messages
Commit consists out of
  • M compiler/cmsgs.pas
  • M compiler/verbose.pas


* use dynamic arrays instead of getmem for resource strings
Commit consists out of
  • M compiler/cresstr.pas


* Use dyn array for input buffer
Commit consists out of
  • M compiler/finput.pas
  • M compiler/scanner.pas


* source linebuf as dyn array
Commit consists out of
  • M compiler/assemble.pas
  • M compiler/finput.pas
  • M compiler/jvm/agjasmin.pas
  • M compiler/wasm32/agbinaryen.pas
  • M compiler/wasm32/agwasa.pas


* Derefmap as dyn array
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/fppu.pas


* unitmap as dyn array
Commit consists out of
  • M compiler/fmodule.pas


* Use dyn array of byte for CRC buffer
Commit consists out of
  • M compiler/link.pas


* Use dyn array of boolean for isHandled
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/link.pas


* Convert shstrtab to dyn array of ansichar
Commit consists out of
  • M compiler/ogelf.pas


* Convert strtab to dyn array of ansichar
Commit consists out of
  • M compiler/ogelf.pas


* Convert symversions to dyn array of word
Commit consists out of
  • M compiler/globtype.pas
  • M compiler/ogelf.pas


convert lfnstrs to array of ansichar
Commit consists out of
  • M compiler/owar.pas


* Dyn array for ReadArchive variables
Commit consists out of
  • M compiler/owar.pas


* Use new and dispose for asmmodeinfos
Commit consists out of
  • M compiler/rabase.pas


* Dyn ansichar array for fcoffstrs
Commit consists out of
  • M compiler/ogcoff.pas


* Dyn array for FSecTbl and FSymTbl
Commit consists out of
  • M compiler/ogcoff.pas


* Fix range check error
Commit consists out of
  • M compiler/cgbase.pas


* Fix range check error (len=0)
Commit consists out of
  • M compiler/cresstr.pas


* Fix preprocwrite code
Commit consists out of
  • M compiler/parser.pas
  • M compiler/scanner.pas


* Change buffer to dyn array
Commit consists out of
  • M compiler/owbase.pas


* allow type casted pointer constants being used as arrays which address can be takes, resolves gitlab 0041177
Commit consists out of
  • M compiler/htypechk.pas
  • A tests/webtbs/tw41177.pp


* Use dyn array of char for macro contents
Commit consists out of
  • M compiler/finput.pas
  • M compiler/ppu.pas
  • M compiler/scanner.pas
  • M compiler/symsym.pas
  • M compiler/symtable.pas


* Change pointer-to-array of deref to dynamic array
Commit consists out of
  • M compiler/wpoinfo.pas


+ RiscV: FcmpAndi2Fcmp optimization
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* Make compilerwidestring a class using dyn array, rework tstringconstnode: value_str -> valueas, valuews
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/aasmtai.pas
  • M compiler/aggas.pas
  • M compiler/cresstr.pas
  • M compiler/jvm/aasmcpu.pas
  • M compiler/jvm/agjasmin.pas
  • M compiler/jvm/njvmcon.pas
  • M compiler/jvm/njvmtcon.pas
  • M compiler/nadd.pas
  • M compiler/ncal.pas
  • M compiler/ncgcon.pas
  • M compiler/ncgobjc.pas
  • M compiler/ncnv.pas
  • M compiler/ncon.pas
  • M compiler/ngtcon.pas
  • M compiler/ninl.pas
  • M compiler/nmem.pas
  • M compiler/nobjc.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/ppcjvm.lpi
  • M compiler/ppcwasm32.lpi
  • M compiler/ppcx64.lpi
  • M compiler/scanner.pas
  • M compiler/symdef.pas
  • M compiler/symsym.pas
  • M compiler/symutil.pas
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/widestr.pas


* Undo changes to lpi files, committed by accident
Commit consists out of
  • M compiler/ppcjvm.lpi
  • M compiler/ppcwasm32.lpi
  • M compiler/ppcx64.lpi


* Do not enable new debug define
Commit consists out of
  • M compiler/ppcx64.lpi


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


Fix range check error inside tsuperregisterworklist.addnodup method
Commit consists out of
  • M compiler/cgbase.pas


Avoid range error in tbitset.clear method
Commit consists out of
  • M compiler/cclasses.pas


* Correct check
Commit consists out of
  • M compiler/ncon.pas


* Call free instead of destroy
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/ncal.pas
  • M compiler/nflw.pas
  • M compiler/parser.pas
  • M compiler/pass_1.pas
  • M compiler/pexpr.pas
  • M compiler/pinline.pas


* Do not set strval for unicode strings in tc_emit_stringdef
Commit consists out of
  • M compiler/ngtcon.pas


* Print unit name, flush output in status messages
Commit consists out of
  • M compiler/comphook.pas


* simple clean ups after dyn. array conversion
Commit consists out of
  • M compiler/aopt.pas


* Fix tgenconst13
Commit consists out of
  • M compiler/pgenutil.pas


* Fix tw13628b
Commit consists out of
  • M compiler/aasmcnst.pas


+ take care of asmmode in $push/$pop, resolves gitlab 0041190
Commit consists out of
  • M compiler/globals.pas
  • M compiler/pstatmnt.pas
  • M compiler/scandir.pas
  • M compiler/switches.pas
  • A tests/webtbs/tw41190.pp


tai_aggregatetypedconst.add_to_string: fix off-by-one errors
Commit consists out of
  • M compiler/aasmcnst.pas


LLVM: fix compilation after rgobj dynarray changes
Commit consists out of
  • M compiler/llvm/nllvmcon.pas
  • M compiler/llvm/rgllvm.pas


+ RiscV: handle rol(w) in the assembler optimizer
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* Correct allocation size for IsHandled, index is 1-based
Commit consists out of
  • M compiler/link.pas


Fix emit_ansistr_const: its input is not guaranteed to be #0-terminated

Also cleaned up all memory leaks where pchars were allocated, but never freed.
Before the change to dynamic arrays, these pchars were kept in the tai_string,
but now they got copied. Changed the tai_string constructor to support adding
a terminating #0, so we don't need to create intermediates just for that.
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/aasmtai.pas
  • M compiler/ncal.pas
  • M compiler/ncgcon.pas
  • M compiler/ncgvmt.pas
  • M compiler/ngtcon.pas
  • M compiler/objcgutl.pas


tai_string: remove useless #0 terminators

The string data in the array alrady includes any necessary #0 terminators
and the length of the array contains the length of the data, so there is
no need to add an additional #0 terminator
Commit consists out of
  • M compiler/aasmcnst.pas
  • M compiler/aasmtai.pas


+ RiscV: handle ror(i)(w) in the assembler optimizer
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


Avoid range check error in TObjData.writebytes overloads using dynamic arrays
Commit consists out of
  • M compiler/ogbase.pas


+ RiscV: ROL/ROR code generation support
Commit consists out of
  • M compiler/riscv/cgrv.pas


+ RiscV: flags for crypotography extensions
Commit consists out of
  • M compiler/riscv32/cpuinfo.pas
  • M compiler/riscv64/cpuinfo.pas


+ RiscV has internal rol/r support
Commit consists out of
  • M compiler/fpcdefs.inc
  • M compiler/options.pas


* fix rol/ror instruction usage and spilling on RiscV
Commit consists out of
  • M compiler/nadd.pas
  • M compiler/riscv/aasmcpu.pas


* typo
Commit consists out of
  • M compiler/fpcdefs.inc


* more aggressive cse on thread vars
Commit consists out of
  • M compiler/optcse.pas


+ missing instruction
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


* patch by Pierre to fix spilling and jump handling of pseudo-instructions
Commit consists out of
  • M compiler/riscv/aasmcpu.pas
  • M compiler/riscv/cpubase.pas


* proper naming
Commit consists out of
  • M compiler/riscv/aoptcpurv.pas


Handle ADR LDM and STM arm instructions
in taicpu.spilling_get_operation_type method
Commit consists out of
  • M compiler/arm/aasmcpu.pas


* x86: Fixed bug and refactored optimisations where SHR instructions were
merged incorrectly when a condition appears between them
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86_64: Bug fix in "PrePeepholeOptSxx" where shifts greater than or equal to 32 weren't handled correctly
Commit consists out of
  • M compiler/x86/aoptx86.pas


* use for threadvars on RiscV always the size optimization code path as loading addresses is expensive
Commit consists out of
  • M compiler/ncgld.pas


* Fixed oversight in TStringConstNode that stopped it building under DEBUG_NODE_XML
Commit consists out of
  • M compiler/ncon.pas


* align stack to 16 bytes on RiscV32 as required by the ABI
Commit consists out of
  • M compiler/systems/i_linux.pas


* align stack to 16 bytes on riscv32-embedded as well
Commit consists out of
  • M compiler/systems/i_embed.pas


* clean up
Commit consists out of
  • M compiler/systems/i_freertos.pas


Regenerate all Makefile's after: Change resource string extension variable RSTEXT to '.rsj'
Commit consists out of
  • M Makefile
  • M compiler/Makefile
  • M compiler/utils/Makefile
  • M installer/Makefile
  • M packages/Makefile
  • M packages/cdrom/examples/Makefile
  • M packages/dbus/examples/Makefile
  • M packages/fcl-base/examples/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/examples/Makefile
  • M packages/fcl-fpcunit/src/exampletests/Makefile
  • M packages/fcl-fpcunit/src/tests/Makefile
  • M packages/fcl-image/examples/Makefile
  • M packages/fcl-net/examples/Makefile
  • M packages/fcl-registry/tests/Makefile
  • M packages/fcl-web/src/base/Makefile
  • M packages/fcl-web/src/jsonrpc/Makefile
  • M packages/fcl-web/src/webdata/Makefile
  • M packages/fpgtk/examples/Makefile
  • M packages/fpmkunit/Makefile
  • M packages/fv/examples/Makefile
  • M packages/gdbm/examples/Makefile
  • M packages/ggi/examples/Makefile
  • M packages/gmp/examples/Makefile
  • M packages/gtk1/examples/Makefile
  • M packages/gtk1/examples/tutorial/Makefile
  • M packages/gtk1/src/gtkgl/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/examples/Makefile
  • M packages/httpd20/examples/Makefile
  • M packages/httpd22/examples/Makefile
  • M packages/httpd24/examples/Makefile
  • M packages/ibase/examples/Makefile
  • M packages/iconvenc/examples/Makefile
  • M packages/ide/compiler/Makefile
  • M packages/ide/fakegdb/Makefile
  • M packages/libcurl/examples/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/libgd/examples/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/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/libsee/examples/Makefile
  • M packages/libxml/examples/Makefile
  • M packages/mysql/examples/Makefile
  • M packages/ncurses/examples/Makefile
  • M packages/newt/examples/Makefile
  • M packages/numlib/examples/Makefile
  • M packages/odbc/examples/Makefile
  • M packages/openal/examples/Makefile
  • M packages/opengl/examples/Makefile
  • M packages/opengles/examples/Makefile
  • M packages/oracle/examples/Makefile
  • M packages/os2units/examples/Makefile
  • M packages/paszlib/examples/Makefile
  • M packages/postgres/examples/Makefile
  • M packages/ptc/examples/Makefile
  • M packages/pxlib/examples/Makefile
  • M packages/regexpr/examples/Makefile
  • M packages/rexx/examples/Makefile
  • M packages/svgalib/examples/Makefile
  • M packages/symbolic/examples/Makefile
  • M packages/syslog/examples/Makefile
  • M packages/univint/examples/Makefile
  • M packages/users/examples/Makefile
  • M packages/utmp/examples/Makefile
  • M packages/uuid/examples/Makefile
  • M packages/xforms/examples/Makefile
  • M rtl/android/jvm/Makefile
  • M rtl/qnx/Makefile
  • M tests/Makefile
  • M tests/tstunits/Makefile
  • M tests/utils/Makefile
  • M tests/utils/testsuite/Makefile
  • M utils/Makefile
  • M utils/debugsvr/console/Makefile
  • M utils/debugsvr/gtk/Makefile
  • M utils/fpdoc/fpde/Makefile


* cleanup
Commit consists out of
  • M compiler/riscv64/aoptcpu.pas


* dont' allow assignments to array of const, resolves gitlab 0041230
Commit consists out of
  • M compiler/nld.pas
  • A tests/webtbf/tw41230.pp


* constref does not mean that a variable is written, resolves gitlab 0041206
Commit consists out of
  • M compiler/ncal.pas
  • A tests/webtbs/tw41206.pp


* Avoid access violation. Use internal error instead
Commit consists out of
  • M compiler/ptype.pas


* Use linear mechanism to check whether function types were emitted
Commit consists out of
  • M compiler/fmodule.pas
  • M compiler/wasm32/nwasmutil.pas


* properly fix gitlab 0041161
Commit consists out of
  • M compiler/aasmdata.pas
  • M compiler/ncgcon.pas
  • M compiler/x86/nx86cnv.pas
  • M compiler/x86/nx86mat.pas
  • M compiler/x86/nx86set.pas
  • M compiler/x86_64/nx64cnv.pas


Return NaN from sin/cos(±∞/NaN).
Commit consists out of
  • M compiler/nadd.pas
  • M rtl/inc/genmath.inc


* don't do MovOpMov2MovOp optimization reducing bit width of the operation if symbols are involved, resolves gitlab 0040269
Commit consists out of
  • M compiler/x86/aoptx86.pas
  • A tests/webtbs/tw40269.pp


* Dwarf: write enum symbol constants with the size of the enum, as proposed in gitlab 0041021
Commit consists out of
  • M compiler/dbgdwarf.pas


* Dwarf 3+: write always a type for enums
Commit consists out of
  • M compiler/dbgdwarf.pas


* Determine publishable property type only when specializing a generic
Commit consists out of
  • M compiler/pdecvar.pas
  • A tests/test/tgeneric122.pp
  • A tests/test/tgeneric123.pp


* x86_64: More support for transferring directly between MM and int registers
Commit consists out of
  • M compiler/ncgcnv.pas
  • M compiler/x86_64/nx64cnv.pas


* x86: New peephole optimisation for improving newly inserted (V)MOVD/(V)MOVQ instructions
Commit consists out of
  • M compiler/i386/aoptcpu.pas
  • M compiler/x86/aoptx86.pas
  • M compiler/x86_64/aoptcpu.pas


* x86_64: "a_loadmm_intreg_reg" and "a_loadmm_reg_intreg" now use VMOVD/Q if AVX is selected
Commit consists out of
  • M compiler/x86_64/cgcpu.pas


* more readable code
Commit consists out of
  • M compiler/armgen/aoptarm.pas


Avoid out of range access to instab array
Commit consists out of
  • M compiler/x86/aasmcpu.pas


* throw an error if a second forward type declaration is found at the place of this second
declaration, resolves gitlab 0041150
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/pdecobj.pas
  • A tests/webtbf/tw41150.pp


* unify internalerror
* Aarch64: handle ASRV in taicpu.spilling_get_operation_type
Commit consists out of
  • M compiler/aarch64/aasmcpu.pas


Check that sizeof(tppuheader) was indeed read in ReadHeader method
Commit consists out of
  • M compiler/ppu.pas


Use same order in writeppu and getppucrc to get same output in debug files
Commit consists out of
  • M compiler/fppu.pas


Check index of CRC tables for Test_double_checksum_write code
Commit consists out of
  • M compiler/ppu.pas


Add information about different CPU or OS in CheckHeader local function of tppumodule.openppu method
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/msg/errore.msg


Give integer value of not found ppufile.header.common.target in CheckHeader
Commit consists out of
  • M compiler/fppu.pas


Add all CRC values into .INT and .IMP files
Commit consists out of
  • M compiler/ppu.pas


Fix usage of DEBUG_GENERATE_INTERFACE_PPU together with Test_Double_checksum conditional
Commit consists out of
  • M compiler/ppu.pas


* Reduce object size, use ansistring. Results in faster compilation, less memory usage
Commit consists out of
  • M compiler/ogwasm.pas


* arm/a64: Be more careful about hp1 and p_second being null in "TryConstMerge"
Commit consists out of
  • M compiler/armgen/aoptarm.pas


* Reduce memory usage of tspecializationcontext
Commit consists out of
  • M compiler/pgentype.pas


Other improvements and fixes for PPU debug code
Commit consists out of
  • M compiler/fppu.pas
  • M compiler/ppu.pas
  • M compiler/symtype.pas


Prepare for long GFNI instructions.
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/cpubase.pas


Add x86 instruction sets SHA512, SM3, GFNI. Pseudo-ops for VCMP*, VPCMP*.
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


Fix error in substitution character for commit d79db82ca2
Commit consists out of
  • M compiler/msg/errore.msg


* handling spilling of (v)movq/(v)movd properly if the mm register is replaced by a memory reference
Commit consists out of
  • M compiler/x86/rgx86.pas


Avoid calling compareword with maxi=0, as this generates an dynamic index range error when comiled with -CriotR option
Commit consists out of
  • M compiler/widestr.pas


Fix previous commit 105382b8 by setting Temp to zero if maxi is zero
Commit consists out of
  • M compiler/widestr.pas


* when handling spilling of mm registers of (v)movd/(v)movq consider also the destination operand
Commit consists out of
  • M compiler/x86/rgx86.pas


* Stopped Internal Error 2013032603 from triggering if a non-numeric ordinal type is passed into "Str"
Commit consists out of
  • M compiler/ninl.pas


* Str returns a nicer error (and corrects the position) if a non-ordinal type is passed into it
Commit consists out of
  • M compiler/ninl.pas


* Specify that an integer expression was expected for inline constant simplification routines
Commit consists out of
  • M compiler/ninl.pas


* Replaced Illegal Expression error with Internal Error for
"getaddsub_for_incdec" since it should never logically reach this point
Commit consists out of
  • M compiler/ninl.pas


* Replaced impossible-to-reach errors in case blocks with internal errors in "texprvalue.evaluate"
Commit consists out of
  • M compiler/scanner.pas


Instruction flags for SM3, SM4
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Add x86 instructions of SM4, VP2INTERSECT.
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


* avoid to call a_loadmm_reg_intreg for mm registers larger than the int registers, resolves gitlab 0041252
Commit consists out of
  • M compiler/ncgcnv.pas


Ensure that real constant put into rodata also get a end symbol to generate .size directive (required at least by llvm-mc-16 for wasm32 compiler)
Commit consists out of
  • M compiler/ncgcon.pas


Avoid adding size if tf_needs_symbol_size is not in target_info.flags
Commit consists out of
  • M compiler/ncgcon.pas


Discard ait_symbol_end if tai_symbol_end(hp).sym.is_used is false
Commit consists out of
  • M compiler/aggas.pas


* store lower set bound in a setdef
Commit consists out of
  • M compiler/ppu.pas
  • M compiler/symdef.pas


Fix failure in ppudump after 5462dd38

+ Handle new SetLow PPU field of TSetDef
Commit consists out of
  • M compiler/utils/ppuutils/ppudump.pp
  • M compiler/utils/ppuutils/ppuout.pp


Introduced 16 bit broadcast functionality.
Commit consists out of
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/agx86att.pas
  • M compiler/x86/rax86.pas
  • M compiler/x86/rax86int.pas


New EVEX maps 5,6,7.
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Distinct destination and source registers.
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Add x86 instruction sets FP16, BF16, 4VNNIW, 4FMAPS. Small updates.
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


Error message about distinct destination and source registers.
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/x86/aasmcpu.pas


+ range check assignments of constant sets, resolves gitlab 0041132
Commit consists out of
  • M compiler/ncnv.pas
  • M compiler/ncon.pas
  • A tests/tbs/tb0721.pp
  • A tests/webtbf/tw41132.pp


* fix 32 bit => 64 bit cross compilation, resolves gitlab 0041626
Commit consists out of
  • M compiler/ncon.pas


* Small refactor for easier debugging
Commit consists out of
  • M compiler/wasm32/cpubase.pas


* Flush output in case of redir
Commit consists out of
  • M compiler/comphook.pas


* Propagate delphi mode when scanning generated code for wasm (specially generic specialization)
Commit consists out of
  • M compiler/symcreat.pas


* x86: Fixed oversight in OptPass2Movx where a "movzwl/movzbl"
duplet didn't consider a different destination register
Commit consists out of
  • M compiler/x86/aoptx86.pas


Add Chinese msg file
Commit consists out of
  • A compiler/msg/errorzh.msg


Modify is_inlimit function to use setlow instead of setbase field
Commit consists out of
  • M compiler/defutil.pas


Use setlow field of tsetdef class to generate new set typedef in set add node
Commit consists out of
  • M compiler/nadd.pas


* x86: Fixed bug where XMM7 wasn't used by the register allocator
Commit consists out of
  • M compiler/i386/rgcpu.pas
  • M compiler/i8086/rgcpu.pas
  • M compiler/x86_64/rgcpu.pas


+ comments to explain difference between setbase and setlow
Commit consists out of
  • M compiler/symdef.pas


* avoid warning on unintialized variable
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Remove llvm-mc-10 support in agllvmmc unit
Commit consists out of
  • M compiler/wasm32/agllvmmc.pas


Remove option -Allvm-mc-10 for wasm32 compiler
Commit consists out of
  • M compiler/msg/errord.msg
  • M compiler/msg/errordu.msg
  • M compiler/msg/errore.msg


* x86: "MovMov2Mov 1" now removes the first instruction if the intermediate register is not in use afterwards.
Commit consists out of
  • M compiler/x86/aoptx86.pas


Allow more than 255 registers.
Commit consists out of
  • M compiler/utils/mkx86reg.pp


Support for tmmreg.
Commit consists out of
  • M compiler/cgbase.pas
  • M compiler/x86/aasmcpu.pas
  • M compiler/x86/cpubase.pas


Support for sibmem.
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Support for ymmreg_sae, ymmreg_er.
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Support ModRM 11:rrr:000. Only for TILEZERO.
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Instruction match tests supported register numbers. Thx to VMPSADBW.
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Instruction flag AVX102.
Commit consists out of
  • M compiler/x86/aasmcpu.pas


Add tmm registers.
Commit consists out of
  • M compiler/x86/x86reg.dat
  • M compiler/x86_64/r8664ari.inc
  • M compiler/x86_64/r8664att.inc
  • M compiler/x86_64/r8664con.inc
  • M compiler/x86_64/r8664dwrf.inc
  • M compiler/x86_64/r8664int.inc
  • M compiler/x86_64/r8664iri.inc
  • M compiler/x86_64/r8664nasm.inc
  • M compiler/x86_64/r8664nor.inc
  • M compiler/x86_64/r8664num.inc
  • M compiler/x86_64/r8664ot.inc
  • M compiler/x86_64/r8664rni.inc
  • M compiler/x86_64/r8664sri.inc
  • M compiler/x86_64/r8664stab.inc
  • M compiler/x86_64/r8664std.inc


Add x86 instruction set AVX102.
Commit consists out of
  • 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


Add x86 instruction set AVX102 for targets i386 and i8086.
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


Generalize asm error message for distinct registers.
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/x86/aasmcpu.pas


Fix AOR.
Commit consists out of
  • M compiler/x86/x86ins.dat
  • M compiler/x86_64/x8664tab.inc


Add new warning about variable with excessive align specification
Commit consists out of
  • M compiler/msg/errore.msg


Accept aign larger than varalignmax but issue a warning
Commit consists out of
  • M compiler/ngenutil.pas


Add new message about local variable with excessive alignment
Commit consists out of
  • M compiler/msg/errore.msg


Add tsym parameter to ttgobj.getlocal method.

* tgobj.pas: Change virtula method getlocal to
add tsym paramter to allow for bettter warning when
required alignment is more than localalignmax.
* hlcgobj.pas: Adapt thlcgobj.getlocal method to new ttgobj.getlocal
* ncgflw.pas: Add exceptvarsym as new parameter to getlocal methos
* jvm/tgcpu.pas: Adapt to added parameter for overloaded virtual method
* wasm32/tgcpu.pas: Same.
* llvm/tgllvm.pas: Same.
Commit consists out of
  • M compiler/hlcgobj.pas
  • M compiler/jvm/tgcpu.pas
  • M compiler/llvm/tgllvm.pas
  • M compiler/ncgflw.pas
  • M compiler/tgobj.pas
  • M compiler/wasm32/tgcpu.pas


Downgrade warning to note for scanner_w_local_alignment_large_than_max (fixes cycle for i386-linux taeget)
Commit consists out of
  • M compiler/msg/errore.msg


Do not set alignment above varalignmax, as this breaks msdos/win16 targets
Commit consists out of
  • M compiler/ngenutil.pas


Also downgrade alignment warning about variables to a note
Commit consists out of
  • M compiler/msg/errore.msg


* Remove underscores from tex code
Commit consists out of
  • M compiler/msg/errore.msg


* x86: New post-peephole optimisation that converts 32-bit registers
in a LEA reference to 64-bit if the destination is 32-bit
Commit consists out of
  • M compiler/x86/aoptx86.pas


* x86: Refactored and optimised "PostPeepholeOptLea"
Commit consists out of
  • M compiler/x86/aoptx86.pas


* throw proper error if no suitable NewInstance method is found, resolves gitlab 0041274
Commit consists out of
  • M compiler/msg/errore.msg
  • M compiler/psub.pas
  • A tests/webtbf/tw41274.pp

(inactive) Revisions in this set ccb169b0f1b3214c6b09b3bd89492e2ce0626fa1,f659e91a95f761b311814797f885eeb445ad1dc0,7a0c6ab591659dd05274fb4c8a05d39b760bb12d,e04df465efe7fdbdc8ebe6b812789daa0bea0e25,6dd0a1c0784f1fded1ff03cd1f967cd08d1c31d4,6f24c8b4efccea67d092062009f413cc789a052c,f4d9082028cac807d4580fdc73e0bc1490abcb43,7bb9638094c2fd4dd8f91c5f55463033db3b4b9c,8fa80295d0c9adb867aed5b018c1094ded82aef3,2bdfabe6076c625135525bf5a55909aae4ce4b91,fd83bb10d4b3c1bc30cf3a72cd419882b63b561a,13a5cdb8fab5e1bd98c7808206e140e6fd1a38ab


* 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.



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


- 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


* 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


* 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


* 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


* 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


windows: fix external linking with binutils >= 2.36, based on a patch by Pierre Muller
Commit consists out of
  • M compiler/systems/t_win.pas


macOS: use -macos_version_min for recent versions

-macosx_version_min was renamed. Ideally we would base this on the version of
the toolset used, but we don't know that. Instead, use it when targeting
more recent macOS versions
Commit consists out of
  • M compiler/systems/t_darwin.pas


Try to avoid clang error on global labels inside .cfi_start/.cfi_end pairs
Commit consists out of
  • M compiler/rautils.pas