Extending the C/C\texttt{++} Model with Inline Assembly

Paulo Emílio de Vilhena, Ori Lahav, Viktor Vafeiadis, Azalea Raad
{"title":"Extending the C/C\\texttt{++} Model with Inline Assembly","authors":"Paulo Emílio de Vilhena, Ori Lahav, Viktor Vafeiadis, Azalea Raad","doi":"arxiv-2408.17208","DOIUrl":null,"url":null,"abstract":"Programs written in C/C\\texttt{++} often include \\textit{inline assembly}: a\nsnippet of architecture-specific assembly code used to access low-level\nfunctionalities that are impossible or expensive to simulate in the source\nlanguage. % Although inline assembly is widely used, its semantics has not yet\nbeen formally studied. In this paper, we overcome this deficiency by investigating the effect of\ninline assembly on the \\textit{consistency} semantics of~C/C\\texttt{++}\nprograms. % We propose the first memory model of the~C\\texttt{++} Programming\nLanguage with support for inline assembly for Intel's \\textsf{x86} including\n\\textit{non-temporal stores} and \\textit{store fences}. % We argue that\nprevious provably correct compiler optimizations and correct compiler mappings\nshould remain correct under such an extended model and we prove that this\nrequirement is met by our proposed model.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-08-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2408.17208","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Programs written in C/C\texttt{++} often include \textit{inline assembly}: a snippet of architecture-specific assembly code used to access low-level functionalities that are impossible or expensive to simulate in the source language. % Although inline assembly is widely used, its semantics has not yet been formally studied. In this paper, we overcome this deficiency by investigating the effect of inline assembly on the \textit{consistency} semantics of~C/C\texttt{++} programs. % We propose the first memory model of the~C\texttt{++} Programming Language with support for inline assembly for Intel's \textsf{x86} including \textit{non-temporal stores} and \textit{store fences}. % We argue that previous provably correct compiler optimizations and correct compiler mappings should remain correct under such an extended model and we prove that this requirement is met by our proposed model.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
使用内联程序集扩展 C/C\texttt{++} 模型
用 C/Ctexttt{++} 编写的程序通常包括内联汇编:用于访问低级功能的特定体系结构汇编代码片段,而这些功能在源语言中是无法模拟的,或者模拟成本很高。尽管内联汇编被广泛使用,但其语义尚未得到正式研究。在本文中,我们通过研究内联汇编对 ~C/C\texttt{++} 程序语义的影响来克服这一缺陷。我们提出了第一个支持英特尔(Intel)textsf{x86}(包括textit{non-temporal stores}和textit{store fences})内联汇编的~C/Ctexttt{++}编程语言内存模型。我们认为,在这种扩展模型下,先前证明正确的编译器优化和正确的编译器映射应该保持正确,我们证明我们提出的模型满足了这一要求。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Repr Types: One Abstraction to Rule Them All $μλεδ$-Calculus: A Self Optimizing Language that Seems to Exhibit Paradoxical Transfinite Cognitive Capabilities Expressing and Analyzing Quantum Algorithms with Qualtran Conversational Concurrency The MLIR Transform Dialect. Your compiler is more powerful than you think
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1