Skip to main content

An Analysis of x86-64 Inline Assembly in C Programs

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)

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)
Divisions: 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: 09 Dec 2022 02:15 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/66147 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.