Newsgroups: comp.binaries.apple2 Path: icaen!news.uiowa.edu!uunet!think.com!sdd.hp.com!ux1.cso.uiuc.edu!news.cso.uiuc.edu!mrcnext.cso.uiuc.edu!stuckey From: stuckey@mrcnext.cso.uiuc.edu (Anthony J. Stuckey) Subject: Jump.c 2.1 - HyperC optimize utility [ 1/1] Message-ID: Summary: bug fix release. Sender: usenet@news.cso.uiuc.edu (Net Noise owner) Organization: University of Illinois at Urbana Date: Thu, 29 Oct 1992 08:26:49 GMT Keywords: optimize Lines: 184 Notes on Jump.c By Anthony J. Stuckey, 10-28-92. Version 1: 10-27-92: did only jump combination. Version 2: 10-28-92: added detection of no-op jumps Version 2.1: 10-29-92: Immediate bug-fix release. Jump.c addresses one of the problem cases of HyperC's CP-code generation. It looks for cases where two consecutive instructions are jumps, and tries to combine them in such a way as to make one instruction out of them. This problem occurs at the end of some switch() statements, in for loops and some other places that use break, and potentially where goto's are used. No-op jumps are jumps that jump to the following instruction. From what I know, they appear in only one place: switch statements that are badly terminated. This program is intended to be added to your "cc" script, just before either asmcp or mac. Example source is included, to show you where the problems this program catches are generated in C code. They are probably not an exhaustive test, just a couple examples I've run across. This program will run on any machine that will run HyperC. There's no charge for it, but comments are welcome at my address in the source. Packed with Binscii + Shrinkit. FiLeStArTfIlEsTaRt ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789() KJUMP2.1.SHK AsByAAAACA(4PIAgAAAAAAAAAAAAAsByAITy GVvTlzW6DM8iAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAIDAAAAwGAAAAAAAA GVvTN8E2BAAPAMAABAAAA8CAAAw4AQAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAwAAAAAGAAAAAAAAAAIAAAABAAAAAAAAAAAAgMACAAAAIAA AAAAloMAUCAAAAwENVlSD5CUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAWdHAAsNAvEAEoBIVgKEAtpjmYgL4FJ6AhBxC4BI3Od4ApZjmRSJ9ML8A054G BQJ0hDTcpBBHJLCJjf2ADBBEYQLoMb48vlDyZgs6FY8UUFYQ5QK0NcSegYzGhSox NYwMjAJih68UnH5EmdTyEJJIjfKCvN6mhQp7MJ0ASgoHhi76MZY6vtoGhRI3rN38 kRrQpRZ5OaUEnhIn9JkRwcj2pMZnRzb6lfiOjYTGsqySrTympNDYdyE5knFaLuz0 (MSJpZSGwdLXVKS5lIAzzRZH0aq6OH5s4ABWZJ6nkunqslbmUSoWMO)kkh40pA(y OZ6MWwtac40jjw50tIOHJDb5gM749qMieb2O2kBLqBhWOJa2ue3EtiTXh98B8ptf bT44Eq96MtJbQAz6p00eowdiOazgJhBxaCzr7sqGYzag4GLqBDJQ0hRBmGAA8oRp 30YyoDqWCNZv80q4TKcx54gijjh6pLRujsMqg4Os2QaUjrM04CjjCtyqTidzYIMy uyvMGbTjpOmSoSckxzw4QgH80PCBHNmKMQavBYq6MAX3ObjItgO(cAHNAkiKPr59 sYcj12qo79lJQqyAIMpdoYhRl2y0D4bNafTYqRkvjUBsIPjY6g2kNEE0hCwkYnOK 2oMGCp(NzKaMUvAkLPCtwMOcITMiQWb6Trnh7fUOTvs(k4zsz0Y1CzApiTzUJskO YC0FW4ogjgy1ka9jGICk4RIEQ8wAhhqYaathFvGirZ(NmkQLBNrWophBKHEq1jXq 2gYFQoidWozDFmswoJtOxWY0pjv6aYQhlGCGoidMQYywKiJeQfBDeHA8waEgCMbC iCSQqGCCFKEOuMwdRC(YiiKnQGSiKKECFCZKGYYAhKgAIFLwBxCXIidrOl86qN3i 8mjKWFJRQjsNEca4hwINgBRBiGEayS4O44QbpyBGY4bqz2Etum2BKaG83rLaSb(Z pyEwWDJ1baIcW6xcQ2oot06IAbOilwQatO8()DKDozuUkWTmPaW4jJFO(njDO06w zhYMRWqLyKE5T7ZNMpOa2aUikaYYMMtdfJJhJqTRsB3EPVSFjpyNSttqN(qC0D5N XLKFDjHyyLzSwtD6cDJEM5AX6oZwffAyggV5a(kU6Y9ghbAYEfjuMOECaoc7QISK 4ioiYdaiFks6OeBX9C(ViDXQkUSCnJgh70V2FPcw3oJaWvZD3ymEAA21ecYoCygp KmSi55JWn8phikIWCAtodceWJ4lhwq4J8bwXEwQPCAmS3weFqDwA9nwjNEwA)iCE wyyIc4gBOKRiQAEUCCG2fQqAg6GCV0fw4QQABAC(DAZQwYoErthBrAAWYIMmCCNf foPyXV)CGLRh1AI4N8NlAj9UwIVHUmSYFABIqADmDuCICRVRXw6EK)wA55ir0yJs GCLQB09Dh)IBsvXnlcB0y5c)LFNEzh4RRKwhw5QpsvAi0AjGHRlja75LoEvgpErZ FEIdQEz1wo(eKpzBX4IzOI86YCpGBz39xZrJKgV09gcePGq2Cj)cZZijJRvHNp3j ARGLZKi6hZJRzUWker0UIRqosQYabJYCj5FVtNgJWmC5cvxKFDOQmGKSB69RpQCp vAaCRdOlZmBS2q8zI(oyhZy75JJQHSlVrjrnQryXZiyTgdwQFUgcDv5N0wGgkOjk SYTgLnVWwMjFKgos5lVJIx2iZOxAy0CNcnJXEply8qcN7(iRaOskYKKtpltX8ILf EGlC4irI1EKlIsZU5rSw5BwN73SRiYqiNnYrgBKhs5nDStYiEbM4jSUFRN3TwORI kYwhZEKYBGVXCAo4hiaEQHHDYhwgOKFIFEo0oNvbawkAJg6rHAGrKhxSdC3EhjJx dGTpqgQKyikyEQAODgZJQx9FEPxU0NVshEESpA9Rhi5tUrPqQtRi6)LMoWbcpBUf wgdGCW3H8XKYSlKlTR0CU72mNpjm99UAz8iKgVNBCtDCq)YUCTaqN5K1TZerQK)G 1bVq1nlq9qFVoap2UWTirUDZQS7)u6p1tFQNKtafSZ9VBKbp9enD35VqTStWwWj) sVyQL1wTqS8B6VbIowKWVNxbVqFyVjVB3yRivWt2narYnW(YonQWmIZ2jSLIWpUj apH5mJEm1lXt77V0gulCoykOs0ygL6wysLj2llq1V1y(ctzg1i2vNgss1I3qBw9y z(u9rWW0bk6WSP9VBaaFI5e0ar(cX4nnVEOsrFFLb79WAXnKmWLvb)xbSksXH77N 9xSvcD7EwrrslrWurm2LXC2C1ilCtUWNs)wdmB)V0GchDqeNGsXc46U1NyesnAHr 4x9azeTzxSw(MUUB7LhWBo71KquXTv5t3n3qOqwpJzW8lS1iHTjywU76b99jylPX biMW(taPftdpZoCuooWxLMJUoIAzKb1vv2hsc(6goGJ2SJ8tPCXvZz0MVNYDlfPz Rm5XTYOjOY5opbcbak)mug951pMu29iNYfcQ5(eLG4zyrD6cmT(OQHqUz1jo6mVa sgMZw9qWcCrRn10I5stG(i3tB6Jt4H2iInh)0bfYoUBmeku6qRt2qykDqvbuZ90F G2AvVXaNtgBEPr51watXtvjrSsfY)iQuJWrJh1RhVPeROdczXyJ8bsVb3q7WyWOU NczeeRO6VM9(0VDDizVzbo3)DgrpNs4NWhG7Kr5Q36zrNcvUnVX7(1tulFr)h1fr Q69seMi3T3b9UBHXRv5h3aiLd18qPv44O2tWtifTuz)vc(jDu6reLF6t1cVPMk6O 3ZfxuOAlTkB7P)NXCPjzn1db8MDX(yLy3CxrEFXXfz56u7uT8F2o3sycpn02PDnp u3ep7Msa0cU5RKpeEaorRzLz6eXNoHAjNEgDIRiEEYwYyhjCJhtyOb6839CnUxjw Nc6UBQBnJ7eBhBAm0djGQAKzhAVggc4Qx5sPiLyAUABHoJYLEJQ0clTighI3MJWY JkTHYbaQPFbwsJjxhTp5gFFufkzRU54QMN5IlpTGlAmxmP7M7wZzM4)eodmSNARU xRpRgZ4Q0RoxBprfJQaoCMLFAaSjFexKKdykFjtqBR7afAzmZQYUEJwwYsDGeozo KR5QUxSEQhKQohZ8GZqgpAjkMktoqYMnwvMTNZAPgkDGseAKOZ24uNjmtBnyEqR) Nq4m5sbeOZ2UWw6Yx87GpY0YvIaHQTDVKIIDvQjmhR4xMZaKDfNbgOYdEZw8ZeiE BA9whcakvFD7ZhN3tb2muIDmHgJQ(bSQKXfiOOAw7YNr80IzhPlpI2(ux48MqIlt 60LquCCQScDw88gGoSGEFYYoMgV5elzKMgiSy5jr43LbhMm7aYfQ(EmOwg9x8wYk wjAQE3tPHNwagJ8Ov7woQAMzCaChKIGwoRqKy0IrovvtrjBD7GNkg69MsU84DgS0 eToNNOIE4ptMNwTiDr1PaETMFOsoI8FBDCCiBOgF44xhjiExCwDjRQSSDqAHg1BO OigqwwNlx04IpiXXZUUTnkUxK6Jv9)k60hkk2(eUJq(4aLkO5QIFIiG066aDMG8A ghtO4QwADPE1eCTjFMMnNgCs60AMhgGUNqkBEag2DwUA38cAJRmB2uTMLEKiQSkF zSwQWUChMmhDE1cjkhOrnZoVjhbRkiuWZ5woTbo(NhMkDrwX)GBjNo2y1XdKuLar uvFYodd1LrcvoY9l4wwoxjn5lXVSNMKebxFEz0NKDI2EAh)xPKCQYUeAOFug3Da2 ofDXePcD63gVqPSAOUPIIAqPNhPlMJezGgLQBX4sW89smPtxapEg5EKqhCotPx2i GKA4AY3E6pbIDAaYnTUDOOEoiRrOsXCiiCHQybiCmHyUSUqPtrQY5BA3w1BOOye9 0Y86xUICwBreMRBDFEySALEE9c10ot8PNerzoNbxg70Nn(2u1CA4QlTNFGMOT0jw WeCyCodQFE65ppxNuCnjEIfOjLoYwu6C8ok0nkEPQvI8LCRU(Ir8FgwJfIEFT)V3 Boeuur7zEGsMyLxgIGS2drFJbsLUBaC2SYTA5Eo91it7NBeN4np(P5YiCEgPe9tm AV6OIKKUQTLKCsfQbBg56NBJ4ksPITdEu8QTpgL6JnMrGKm2NhqL2DIol8cWJPpx Qxp7Q0CBFkXR57MiQOJqHijFyRvDAenmvTCJAuA6gNxwoqB6l5CovFD6ZMASqUq2 NSl2hotYSlZ2BU5pFEgwgEFGk6cd8PDq7uDxbGkAGMHHhjLx0TTTEnv21IKY7BNJ OGvEYxgElOvv(pyDG0paGe63hRsMbWvfG3)w6Yhs)9I6fxfS3xN8mhRPkz3SRM6G ERYogHR7kx0eeWhAoAMqKqoWZwfZARNta3CH4fyjYI2(Gf0(w2m6LFKeOEx4jYMy OGjJfzwSozOaOxzP71XkfgEdHA0zRJHQs6FkM4P3zUcW3JnLjj6RY09IGmTSWG5r 6)JRIhI9hL7KLQ)kyvOpxo8VDKpnjokhYFRHCjERKZZEsUOWVkSMy6dTCM2jfdRZ gh0VhIvbgQiw51RJmcFTqJ5cd8NNNlwaxkV4Ms7NJ8SZzvc(ROVBgxywZoVEqcjh gL5TRI2aJlHyxa1cch1j9VzZ4ZUKVOhZfzw8JyO(uXyT(74kUUKpQlxnHGB(0KKo Vsj5s)EGZOXcmzf9p8VPMFtzrnJ1fg6uRDa6yLpdN5BoPYD6qoUpkSNOkx2(aGgS 6mWTFsIdMdadRdf)O6ONNkjjp605KON0nSvrTvB8ZcwSSP1Uh4JVS1cHMn68VkTr N6jiqzvJhGFkgStbl2LWaNkQ2ZUhMJaF)oF3VpQxzK6WNY2jt(iKOasCrWjGpVLI K6N((I5Uz9JVdla5Oh381k(9dU1lL(V50hkewWptqEVg6WnYWCL2P668ZNW5WpYq 2ZFmtiZrprRaFflGu8shOuo5YttAqIiUDFIk51E9eOicnnzMFKYV5fQozYwUVFIh Bm26SC2DxdAne7Q5h)Q6RMh1nzIk9VcDIyhkos1EBBMnPiyc1eEdIBZKjhLzFYh4 VW5RBBJ(j6Pi(QhzW(pcEEOlDJSGAAuwx84Br51p(qY49sg2BFa6NWshIrnmjXM9 EkAdiVkti7lSNyihjBkaagEIejpVhSMhIlmD9wHS8dKGEsgBBj1DWZmCqSAnC8CW 4rQQ2Yv)NYgy7L4cAFuQDuD40VDHeMFy3Q78QQOAMcmdV4MpjUFOI0NK4uGB00B8 Y7JpohF4u5aFDehhE0)HvlSIHxMaHIIrhkpe41WYXJZEKMIE(EWpJF0LEG8ey4RM Rh7JA9UKkOT(rYN7iigIkTtT5aKM(0A3DGKt04VrxNFBv5QBtNImjSIxBAt7KkqX okEUo7ZLU1WODPpU4Tm4uwtMi22bIEkQdCIU5nH9sZtxsP7stPsNA8YdyZEL1OIJ 0UOvZry5hSvK(qe8EW9u(b01zF6WWf4EnUZ(CwdVz3JsPQCLpddGVhYIEKkChjgI sCXrugQpkJA3qoaFKt9tiw2VUBbqqxS0btYYSlq82O5YNR5rFQZAasTAAtEbc6IA SbnMzkKvdu85V3AMDkG1PQ0Be6EESnKKArEBeRQghBAqbywJARGNzkCiDzgJuDiM jzFwd0s5QTHEDEKhdwkYdfQOzwE8YQ0BCzGEjTGrKSoAJIwFxglrbeqRmX2MYTCf Ip2Jd6VFCgggFJiQM(GnaVlIO1ghNzTnDHGvRbmxJzDNKkMvObmoddFN51BhZ20B kXGnziMgYeGERATNY15li1Y8Wwyvj7yNdUmJNOIO8Qp8bw0JSCHmJEojM3C(I)WM MEBlVwiUPP5wjSntsZqELfoNskMko5spXmE3Tgmgv)kJNfA08aOJbXmOKUWONd6T UnC0uOQg6G)lZs6xpD4gxFEmLYgXozVEDjJlI0YxMYiFITlIWVMMAZuA1j6Tosj8 mXYo((Gewz0(OjSCPDP6O0)KhgMZw4LiLK6qCxPNYpjNMGpACo7)Es6rvQBUKHgq N8yAAB0M(LUgCgt5s4ihEiuuI50LzzTgPSFBcjTP(G2Ecih(JEUERqSQCFJIqw6k AYtlF7SQBwjdULKBNOoWAjsOe2qCjuBDXviyOqmWIxO0G6AbNooeonjpMmK2aS40 xm6ojAI4oDKj5MMYgK4JmUowihhgaL6yPOClIBO0nz0wopFlOpDKNsMuzyIOmLj0 DAK64ODssA0I8scKQIz0ITGlDxhRLgIuACEG4wArrqviePIKOMEOzI00344QSjt2 kzeDqUPEIRctq0oyDI3Tc1ppM0(6YwNw3QYFtiAzqCDjOGmAYRehhVdjNUTfqnDB n2C44seYt04AVhS64RCrNMiuixou1x9Yjy37cWZTwYRhTqlv0ILzDXnrGDNp1kW) a95eQWUUoTiWbhRxGFfrFIGEZRY4qy4eLwIgO(EOrZN94377PQrjZ64vAAKTwlwJ AAocQ4xV3LQhBD1Q0hROaCNE4j(Bogow3gysMwDORwgbgrxtvSBRFHhVbrMBUMme BAkQmcTBEEhyAIFGTQQwqQiYLDHQMGGQYIVbMWMYJBxBSXD3pWBwQn8b8CjtTLvs BrI3CrxMuhcLLe8A6hqxrasqBqjvU90qhUemZS4ibkpPonO)QLRHvw423g55RqTK bhnOzEAGZ)9YgsGvXDSgN(8gqKlEryoKpLJ(CXOoF0MkwnFJ5gfH8yLJ50bAbn4S Y01ptZ)oHgPAz2(e7793nHs7sznXAAwaGVvTtdG2BAAPAIAABAAAA8CAAAw4AQAA AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAJAAAAAAA AAAIAIAAAAgAAAAAAUQMCILAFBAANFEWFxEUAMlLAAAAAAAAAAAAAAAAAAAAAAAA AAAA3GBAjtNAJEABxSJXNZ8U38ygwBIdMYUwg02mAwuHMbSMzJDn5hJQEfwIptDn BxI6OF54lpDGkSh2NL4AyJTyIQDXjcIefRQmgBsYmOWEyp5iB7nbGKQw3A6TJ73d gNX4uZawJjM6NN7gGQDmFj1vgNiqzYzQZhb2GD4kKgRwEqTGiCGunJDmBrLsEbge aMzGYLaOFNSsvdzyMhM4MbIwGRAmY6QIOY(wyYBiYaCIEdAiwAxDQRjdxhNzSqxC xa(JzmFjsVjYRhuyyUC)TIAiFB(0HkdUbSh5QxQQOYw0z8CiYMoQOZkLrBTmufLN sahqNajYeu7HFLGDayjC9A2EBND3QSw5A(wc0kh7WrOCfT287DqnH8899T6ZiZny 2JTQs7W8vfLukB8332qOQI233wo7jABQWHDjOEIAK(NB524yDjD3CFehNGiAILMj (74SDIG)cFMMLkOkbZuG2S4CLRoEyrrLMi68w5dM9)7APxPQMALs8y0QTQqzLLrr xsvME(suI14GDR30WXTTIAoan1gN20(qzjX8bsQ7uvBhBdAw5(Eu7jpGyzjSvxjg wuuI9k4mDox9zY4TPQzjUXRvNM9c6Zm7BwyzTTbtbUQrCPDBMuyFQ8TcRQhcsNIw hONKMIOs7M7jIJEWC9IuRloGbAHPHWsKoypVwsooOF40ba6z2gDazu91r4Tv5Ofn surOY9sDuSf(b(j0pCHHrQB0kjr7BJozaW8BAg(gq0yU0SwA2QBsNy1h56URtaEH bw0LUR(YQRDJCFOS4xNEHUyAJiT0dlWXlOomYdNbq3UNjiK1Az4tNMApSGba644V jAqxZrRjjcXd46N6QO6ItRtAhk2uNDmU9i26x70QDDK5YgYDc)AsAC0u344QjApz CYDjfCOBGyVbYWe(Z7ZaxlpZZAsB17EAWgtRAwzQCAQAAAAAvAQAAMOAEAAAAAAA AAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAQCAACA CAAAAIAAAAAAFgBAGAAAAAwABhVRMBVTD5SRAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0DAAbDAnBQgl0Q1LCEKA8EBRArdYGMVY3gJxSrBZiNQe3opDWyxdnMUk3oBTESMI CMQIPupzAaOdmPCC60RTkDJIxNbg5kIy(swAijAj3kBTQP8GGPfSQsQj8aIIGiZU 6gQIoKNawkN3SuBjUKtd1iQypsYo0wMIzPZL5UcKiSSZHhQaxshzouNDGOPdykhT GosL1OQcQ4BaO5oSnNVoyoJzAP2fDECacs4RSIvMYjErgIGMMSebHqYAxsoj469c mOJq7uIsKpcdDKRkhgQBAC)bjFFimsuh4meR6seRXPRCQTmNjEFoGs454pdDiMId tNYRsbAId4Re8gQJsLPLw6BQpSFL8iNIHPQeywZoousQCNADF2RTY7NISgb230BZ m(6D0oVG2vJDjPo3oCBKtuAW45(p3zyoKrJFaApqNMimIhdh7y6QpqFzO)ooBpIc j2YAzAgbDAp321Rh66AcbZ6Ae8YEuhNYgxTxEGBlEwyA8UQABBIfWARRuMKOi4ni DY8wBglVTOyj66I1Ur4A(kc4uhuGU9us88oEzC98A0zaPOZ4vfgvM(4yyhY)w8zw qSUBkUPQBDnSE0BAIwYSIz1JI1qQDhkmo3dCPEKsoNRJBLgsMOyGLE8AT64wJDGy e(YqpsiWqAyhcU7wJA38m)IhksGsSOCTcIrcBQ(dIcuR66kgNxFnYlkcSu2ooGg1 EhCJ0k0VfUcEyzXWfiRxYHJplHVFqfU0jDhFWDDvJJFYc1ZaqockI2SDaLDiUpCK KRYOz4zMrSKN)0ShgULNkp0k7(y4jjG5IR)oOOumAZc)Knzojvm0K)8JlSlQCgSi EyyTIqG4IFi0ATR16PEUHFyi0yaORfWIsa7igw8Nwv6tJVoFq7dU)k8IN4e8YOF9 DTC)OLfrM8GPNytOxV67L7SLRznXucN4qk)fRgD9jY6dB2x3GHfbCuRkorUQVDpF XhqxIZBq9EKjZnuk67rnt2YWqLVfMgqBiQICD4ScLrQIgyI(BY744(J4ba55tvr7 uvrz(MevAAwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AE(J -- Anthony J. Stuckey stuckey@mrcnext.cso.uiuc.edu "And if you frisbee-throw a universe where does it go?" Turquoise, Steve Blunt.