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 条
  • [31] Formally Verified Big Step Semantics out of x86-64 Binaries
    Roessle, Ian
    Verbeek, Freek
    Ravindran, Binoy
    PROCEEDINGS OF THE 8TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS (CPP' 19), 2019, : 181 - 195
  • [32] Steamroller: An x86-64 Core Implemented in 28nm Bulk CMOS
    Gillespie, Kevin
    Fair, Harry R., III
    Henrion, Carson
    Jotwani, Ravi
    Kosonocky, Stephen
    Orefice, Robert S.
    Priore, Donald A.
    White, Jonathan
    Wilcox, Kathryn
    2014 IEEE INTERNATIONAL SOLID-STATE CIRCUITS CONFERENCE DIGEST OF TECHNICAL PAPERS (ISSCC), 2014, 57 : 104 - +
  • [33] Supporting x86-64 Address Translation for 100s of GPU Lanes
    Power, Jason
    Hill, Mark D.
    Wood, David A.
    2014 20TH IEEE INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE COMPUTER ARCHITECTURE (HPCA-20), 2014, : 568 - 578
  • [34] τCFI: Type-Assisted Control Flow Integrity for x86-64 Binaries
    Muntean, Paul
    Fischer, Matthias
    Tan, Gang
    Lin, Zhiqiang
    Grossklags, Jens
    Eckert, Claudia
    RESEARCH IN ATTACKS, INTRUSIONS, AND DEFENSES, RAID 2018, 2018, 11050 : 423 - 444
  • [35] Enhancing Randomization Entropy of x86-64 Code while Preserving Semantic Consistency
    Feng Xuewei
    Wang Dongxia
    Lin Zhechao
    Kuang Xiaohui
    Zhao Gang
    2020 IEEE 19TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS (TRUSTCOM 2020), 2020, : 1 - 12
  • [36] Jaguar: A Next-Generation Low-Power x86-64 Core
    Singh, Teja
    Bell, Joshua
    Southard, Shane
    2013 IEEE INTERNATIONAL SOLID-STATE CIRCUITS CONFERENCE DIGEST OF TECHNICAL PAPERS (ISSCC), 2013, 56 : 52 - 53
  • [37] 芯片就位之后——关于X86-64应用前景的讨论
    邢胜
    每周电脑报, 2005, (23) : 16 - 18
  • [38] 64位计算,革命乎?革新乎?——浅述AMD x86-64结构
    萧杰
    林果
    软件世界, 2000, (11) : 122 - 125
  • [39] BIRD: A Binary Intermediate Representation for Formally Verified Decompilation of X86-64 Binaries
    Engel, Daniel
    Verbeek, Freek
    Ravindran, Binoy
    TESTS AND PROOFS, TAP 2023, 2023, 14066 : 3 - 20
  • [40] An ECMA-55 Minimal BASIC Compiler for x86-64 Linux((R))
    Ham, John Gatewood
    COMPUTERS, 2014, 3 (03) : 69 - 116