Rigger, Manuel, Marr, Stefan, Kell, Stephen, Leopoldseder, David, Mössenböck, Hanspeter (2018) An Analysis of x86-64 Inline Assembly in C Programs. ACM SIGPLAN Notices, 53 (3). pp. 84-99. ISSN 0362-1340. E-ISSN 1558-1160. (doi:10.1145/3186411.3186418) (KAR id:66147)
|
PDF
Author's Accepted Manuscript
Language: English |
|
|
Download this file (PDF/566kB) |
|
| Request a format suitable for use with assistive technology e.g. a screenreader | |
| Official URL: https://doi.org/10.1145/3186411.3186418 |
|
Abstract
C codebases frequently embed nonportable and unstandardized elements such as inline assembly code. Such elements are not well understood, which poses a problem to tool developers who aspire to support C code. This paper investigates the use of x86-64 inline assembly in 1264 C projects from GitHub and combines qualitative and quantitative analyses to answer questions that tool authors may have. We found that 28.1% of the most popular projects contain inline assembly code, although the majority contain only a few fragments with just one or two instructions. The most popular instructions constitute a small subset concerned largely with multicore semantics, performance optimization, and hardware control. Our findings are intended to help developers of C-focused tools, those testing compilers, and language designers seeking to reduce the reliance on inline assembly. They may also aid the design of tools focused on inline assembly itself.
| Item Type: | Article |
|---|---|
| DOI/Identification number: | 10.1145/3186411.3186418 |
| Subjects: | Q Science > Q Science (General) |
| Institutional Unit: | Schools > School of Computing |
| Former Institutional Unit: |
Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
|
| Depositing User: | Stefan Marr |
| Date Deposited: | 26 Feb 2018 17:38 UTC |
| Last Modified: | 20 May 2025 10:21 UTC |
| Resource URI: | https://kar.kent.ac.uk/id/eprint/66147 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):

https://orcid.org/0000-0001-9059-5180
Altmetric
Altmetric