Sun 25 Mar 2018 16:30 - 17:00 - Session 3: Following Instructions Chair(s): Carl Waldspurger

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.

Sun 25 Mar

Displayed time zone: Eastern Time (US & Canada) change

16:00 - 17:00
Session 3: Following InstructionsResearch Papers
Chair(s): Carl Waldspurger Carl Waldspurger Consulting
16:00
30m
Talk
Fast PokeEMU: Scaling Generated Instruction Tests Using Aggregation and State Chaining
Research Papers
Qiuchen Yan University of Minnesota, Stephen McCamant University of Minnesota
16:30
30m
Talk
An Analysis of x86-64 Inline Assembly in C Programs
Research Papers
Manuel Rigger Johannes Kepler University Linz, Stefan Marr University of Kent, Stephen Kell University of Cambridge, David Leopoldseder Johannes Kepler University Linz, Hanspeter Mössenböck JKU Linz, Austria
Link to publication Pre-print Media Attached