{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,16]],"date-time":"2026-03-16T10:05:56Z","timestamp":1773655556495,"version":"3.50.1"},"reference-count":21,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2016,4,5]],"date-time":"2016-04-05T00:00:00Z","timestamp":1459814400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"Royal Society University Research Fellowship"},{"name":"UK EPSRC","award":["DOME EP\/J016330\/1 and PAMELA EP\/K008730\/1"],"award-info":[{"award-number":["DOME EP\/J016330\/1 and PAMELA EP\/K008730\/1"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2016,4,5]]},"abstract":"<jats:p>As the ARM architecture expands beyond its traditional embedded domain, there is a growing interest in dynamic binary modification (DBM) tools for general-purpose multicore processors that are part of the ARM family. Existing DBM tools for ARM suffer from introducing large overheads in the execution of applications. The specific questions that this article addresses are (i) how to develop such DBM tools for the ARM architecture and (ii) whether new optimisations are plausible and needed.<\/jats:p>\n          <jats:p>We describe the general design of MAMBO, a new DBM tool for ARM, which we release together with this publication, and introduce novel optimisations to handle indirect branches. In addition, we explore scenarios in which it may be possible to relax the transparency offered by DBM tools to allow extra optimisations to be applied. These scenarios arise from analysing the most typical usages: for example, application binaries without handcrafted assembly.<\/jats:p>\n          <jats:p>The performance evaluation shows that MAMBO introduces small overheads for SPEC CPU2006 and PARSEC 3.0 when comparing with the execution times of the unmodified programs: a geometric mean overhead of 28% on a Cortex-A9 and of 34% on a Cortex-A15 for CPU2006, and between 27% and 32%, depending on the number of threads, for PARSEC on a Cortex-A15.<\/jats:p>","DOI":"10.1145\/2896451","type":"journal-article","created":{"date-parts":[[2016,4,5]],"date-time":"2016-04-05T15:18:51Z","timestamp":1459869531000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":24,"title":["MAMBO"],"prefix":"10.1145","volume":"13","author":[{"given":"Cosmin","family":"Gorgovan","sequence":"first","affiliation":[{"name":"School of Computer Science, University of Manchester, Manchester, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Amanieu","family":"d'Antras","sequence":"additional","affiliation":[{"name":"School of Computer Science, University of Manchester, Manchester, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mikel","family":"Luj\u00e1n","sequence":"additional","affiliation":[{"name":"School of Computer Science, University of Manchester, Manchester, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2016,4,5]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168918.1168860"},{"key":"e_1_2_1_2_1","unstructured":"ARM. 2015. ARM\u00aeArchitecture Reference Manual ARMv8 for ARMv8-A Architecture Profile. http:\/\/infocenter.arm.com\/help\/index.jsp?topic=\/com.arm.doc.ddi0487a.i\/index.html.  ARM. 2015. ARM\u00aeArchitecture Reference Manual ARMv8 for ARMv8-A Architecture Profile. http:\/\/infocenter.arm.com\/help\/index.jsp?topic=\/com.arm.doc.ddi0487a.i\/index.html."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349303"},{"key":"e_1_2_1_4_1","volume-title":"USENIX Annual Technical Conference, FREENIX Track. 41--46","author":"Bellard Fabrice","year":"2005"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2015.12"},{"key":"e_1_2_1_7_1","volume-title":"Massachusetts Institute of Technology","author":"Bruening Derek Lane"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2714576.2714635"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2003.1191529"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176760.1176793"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1186736.1186737"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2259016.2259030"},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the 36th Annual IEEE\/ACM International Symposium on Microarchitecture. IEEE Computer Society, 253","author":"Kim Ho-Seop"},{"key":"e_1_2_1_14_1","volume-title":"Vijay Janapa Reddi, and Kim Hazelwood","author":"Luk Chi-Keung","year":"2005"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1242531.1242554"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250746"},{"key":"e_1_2_1_17_1","volume-title":"Proceedings of the 3rd Annual Haifa Experimental Systems Conference. ACM","author":"Payer Mathias"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2016604.2016634"},{"key":"e_1_2_1_19_1","volume-title":"USENIX Annual Technical Conference, General Track. 17--30","author":"Seward Julian","year":"2005"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1241601.1241602"},{"key":"e_1_2_1_21_1","first-page":"166","article-title":"Virtualbox: Bits and bytes masquerading as machines","volume":"2008","author":"Watson Jon","year":"2008","journal-title":"Linux Journal"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1952682.1952688"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2896451","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2896451","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:39:18Z","timestamp":1750221558000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2896451"}},"subtitle":["A Low-Overhead Dynamic Binary Modification Tool for ARM"],"short-title":[],"issued":{"date-parts":[[2016,4,5]]},"references-count":21,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2016,4,5]]}},"alternative-id":["10.1145\/2896451"],"URL":"https:\/\/doi.org\/10.1145\/2896451","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,4,5]]},"assertion":[{"value":"2015-08-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-01-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-04-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}