Stratified Synthesis: Automatically Learning the x86-64 Instruction Set

被引:0
|
作者
Heule, Stefan [1 ]
Schkufza, Eric [2 ]
Sharma, Rahul [1 ]
Aiken, Alex [1 ]
机构
[1] Stanford Univ, Stanford, CA 94305 USA
[2] VMware, Palo Alto, CA USA
基金
美国国家科学基金会;
关键词
ISA specification; program synthesis; x86-64;
D O I
10.1145/2908080.2908121
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The x86-64 ISA sits at the bottom of the software stack of most desktop and server software. Because of its importance, many software analysis and verification tools depend, either explicitly or implicitly, on correct modeling of the semantics of x86-64 instructions. However, formal semantics for the x86-64 ISA are difficult to obtain and often written manually through great effort. We describe an automatically synthesized formal semantics of the input/output behavior for a large fraction of the x86-64 Haswell ISA's many thousands of instruction variants. The key to our results is stratified synthesis, where we use a set of instructions whose semantics are known to synthesize the semantics of additional instructions whose semantics are unknown. As the set of formally described instructions increases, the synthesis vocabulary expands, making it possible to synthesize the semantics of increasingly complex instructions. Using this technique we automatically synthesized formal semantics for 1,795 instruction variants of the x86-64 Haswell ISA. We evaluate the learned semantics against manually written semantics ( where available) and find that they are formally equivalent with the exception of 50 instructions, where the manually written semantics contain an error. We further find the learned formulas to be largely as precise as manually written ones and of similar size.
引用
收藏
页码:237 / 250
页数:14
相关论文
共 50 条
  • [21] Free simulator lets developers start on x86-64 development
    Myrvaagnes, R
    ELECTRONIC PRODUCTS MAGAZINE, 2000, 43 (06): : 29 - 29
  • [22] PTLsim:: A cycle accurate full system x86-64 microarchitectural simulator
    Yourst, Matt T.
    ISPASS 2007: IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE, 2007, : 23 - +
  • [23] AMD备战64位——x86-64架构规范出台
    王洋
    每周电脑报, 2000, (32) : 16 - 16
  • [24] Below C Level: A Student-Centered x86-64 Simulator
    Fanning, Caitlin
    Garcia, Saturnino
    PROCEEDINGS OF THE 2019 ACM CONFERENCE ON INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION (ITICSE '19), 2019, : 381 - 387
  • [25] Formally Verified Lifting of C-Compiled x86-64 Binaries
    Verbeek, Freek
    Bockenek, Joshua
    Fu, Zhoulai
    Ravindran, Binoy
    PROCEEDINGS OF THE 43RD ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '22), 2022, : 934 - 949
  • [26] x86-64教学操作系统EOS的设计
    李蓓
    王禹
    肖明明
    郭京英
    李宗璞
    教育现代化, 2016, 3 (34) : 144 - 145
  • [27] Hyperchaining for LLVM-Based Binary Translators on the x86-64 Platform
    Lai, Jyun-Kai
    Yang, Wuu
    JOURNAL OF SIGNAL PROCESSING SYSTEMS FOR SIGNAL IMAGE AND VIDEO TECHNOLOGY, 2022, 94 (12): : 1569 - 1589
  • [28] Proof Pearl: A Verified Bignum Implementation in x86-64 Machine Code
    Myreen, Magnus O.
    Curello, Gregorio
    CERTIFIED PROGRAMS AND PROOFS, CPP 2013, 2013, 8307 : 66 - 81
  • [29] Hyperchaining for LLVM-Based Binary Translators on the x86-64 Platform
    Jyun-Kai Lai
    Wuu Yang
    Journal of Signal Processing Systems, 2022, 94 : 1569 - 1589
  • [30] Porting NetBSD to the AMD x86-64: a case study in OS portability
    van der Linden, F
    USENIX ASSOCIATION PROCEEDINGS OF BSDCON 2002, 2002, : 1 - 9