Specifying representations of machine instructions

Author:

Ramsey Norman1,Fernández Mary F.2

Affiliation:

1. Univ. of Virginia, Charlottesville

2. AT&T Labs, Florham Park, NJ

Abstract

We present SLED, a specification language for Encoding and Decoding, which describes, abstract, binary, and assembly-language representations of machine instructions. Guided by a SLED specification, the New Jersey Machine-Code Toolkit generates bit-manipulating code for use in applications that process machine code. Programmers can write such applications at an assembly language level of abstraction, and the toolkit enables the applications to recognize and emit the binary representations used by the hardware. SLED is suitable for describing both CISC and RISC machines; we have specified representations of MIPS R3000, SPARC, Alpha, and Intel Pentium instructions, and toolkit users have written specifications for the Power PC and Motorola 68000. The article includes representative excerpts from our SPARC and Pentium specifications. SLED uses four elements; fields and tokens describe parts of instructions; patterns describe binary representations of instructions or group of instructions; and constructors map between the abstract and binary levels. By combining the elements in different ways, SLED supports machine-independent implementations of machine-level concepts like conditional assembly, span-dependent instructions, relocatable addresses, object code, sections, and relocation. SLED specifications can be checked automatically for consistency with existing assemblers. The implementation of the toolkit is largely determined by our representations of patterns and constructors. We use a normal form that facilitates construction of encoders and decoders. The article describes the normal form and its use. The toolkit has been used to help build several applications. We have built a retargetable debugger and a retargetable, optimizing linker. Colleagues have built a dynamic code generator, a decompiler, and an execution-time analyzer. The toolkit generates efficient code; for example, the linker emits binary up to 15% faster than it emits assembly language, making it 1.7-2 times faster to produce an a.out directly than by using the assembler.

Publisher

Association for Computing Machinery (ACM)

Subject

Software

Reference33 articles.

1. Optimally profiling and tracing programs

2. BRAUN~ O. C. 1996. Retargetability issues in worst-case timing analysis of embedded systems. Bachelor's thesis Dept. of Computer Science Princeton Univ. Princeton N.J. BRAUN~ O. C. 1996. Retargetability issues in worst-case timing analysis of embedded systems. Bachelor's thesis Dept. of Computer Science Princeton Univ. Princeton N.J.

3. Automatic Derivation of Code Generators from Machine Descriptions

4. Shade: a fast instruction-set simulator for execution profiling

Cited by 69 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Towards a Framework for Developing Verified Assemblers for the ELF Format;Programming Languages and Systems;2023

2. SoK: Enabling Security Analyses of Embedded Systems via Rehosting;Proceedings of the 2021 ACM Asia Conference on Computer and Communications Security;2021-05-24

3. VeGen: a vectorizer generator for SIMD and beyond;Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems;2021-04-17

4. Automatic Generation and Validation of Instruction Encoders and Decoders;Computer Aided Verification;2021

5. Automated Generation of Machine Instruction Decoders;Programming and Computer Software;2019-12

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3