| Norman Ramsey and Mary F. Fernandez. The New Jersey Machine-Code Toolkit. In Proc. of the Usenix Technical Conf. 1995. |
....tractable: it takes on the order of minutes to hours for DERIVE to reverse engineer an instruction set s encoding, whereas Collberg s system takes days to reverse engineer an instruction set s semantics. The work whose goals most closely match DERIVE iS the New Jersey Machine Code Toolkit (NJT) [20]. The NJT automatically generates routines to manipulate machine code from user specifications written in a language called SLED. SLED specifications are exact descriptions of instruction layout, written at several levels of abstraction. At the lowest level of description, SLED fields are used ....
N. Ramsey and M. F. Fern&ndez. The New Jersey machine-code toolkit. In 1995.
....take a more traditional approach. Many retargetable compiler suite generates assembler by merely threading C code segment attached to ADL instruction specification. Among the few exceptions that achieved a reasonable amount of automation for downstream tools, the New Jersey machine code toolkit [11] can generate instruction encoding and decoding routines from an abstract ADL specification. However, its ADL does not allow a complete specification of ABI, and leave important issues such as the relocation closure organization to the application, which is not automated at all. While CHESS [5] ....
N. Ramsey and M. Fernandez, "The New Jersey machine-code toolkit," in Proceedings of the 1995.
....single source. They write the input to the model checker separately from their code, which introduces the possibility of errors. Domain specific languages have recently found considerable interest in the systems programming community. Recent examples include instruction set description languages [22, 3], an interface description language for remote procedure call stub generation and optimization [11] and a specification language for automatically generating network packet filters [21] 7 Conclusion: Implications for Domain Specific Languages for Systems Software It would be gratuitous to ....
Norman Ramsey and Mary F. Fernandez. The New Jersey Machine-Code Toolkit. In 1995.
....pattern matching, but the decode unit encompasses over half of the entire description. Our research is not directed at instruction decoding, so this part of the model is simply a necessary evil. Fortunately, other researchers have developed highlevel techniques for specifying instruction decoders [12], so a real, high level processor specification language should combine that work with ours. Our entire processor specification is 290 lines long, of which 150 lines are devoted to the instruction decoder. The description starts by declaring containers for memory, the 32 general purpose ....
N. Ramsey and M. Fernandez. The new jersey machinecode toolkit. In USENIX Technical Conference, pages 289-- 302, January 1995. The current version is available at http: //www.eecs.harvard.edu/~nr/toolkit/.
....aspects. In this paper, we present a system for building computing system descriptions that are application dependent, but can still be shared among many applications. 1. 1 Application Independence The use of a machine description can significantly reduce the retarget time of an application [Wic75, Cat78, GH84, Dav85, BHE91, RF95]. However, with each retarget of the application, a description for the new target machine must be written. For an application of any substance, this itself can be a daunting task. There are three sources of difficulty: 1. Information about the machine must be found, encoded using whatever ....
Norman Ramsey and Mary F. Fernndez. The new jersey machine-code toolkit. In 1995 Usenix Technical Conference, pages 289---301, January 1995.
....the automatic generation of the instruction selector. However, such specification is often tied to a particular compiler implementation, for example, a particular intermediate representation. A more recent effort is the the set of computer system description languages in the Zephra project, where [5] is devoted to the description of binary encoding of instruction set, 6] focuses on the semantics of instruction sets, and [7] describes the calling conventions. However, the models are not integrated and different aspects of the same architecture are scattered in different specifications in ....
N. Ramsey and M. Fernandez. The New Jersey Machine-Code Toolkit. Proceedings of the 1995 USENIX Technical Conference, New Orleans, LA, January 1995, pp 289-302.
....specifications for a different machine. The specification of the syntax of machine instructions and its associated assembly mnemonics has been made possible through the SLED (Specification Language for Encoding and Decoding) language [10] implemented by the New Jersey Machine Code (NJMC) toolkit [9]. The toolkit allows users to write a specification for the syntax of machine instructions for a particular machine, and decode or encode to that syntax based on extra language statements available in the toolkit. In this way, a decoder of machine instructions can be fully specified and the user ....
....low level machine dependencies such as memory alignment are also specified in ISP. EEL, an executable editing library [7] which aids users instrument executable programs, developed a simple semantic specification language based on the SLED language of the New Jersey Machine Code (NJMC) toolkit [9, 10]. EEL extends NJMC s specification constructs with a semantic construct, sem, which provides a simple attribute description of the semantic of an instruction (or a set of instructions) However, this language only models basic semantics of an instruction and does not provide a way of specifying ....
[Article contains additional citation context not shown here]
N. Ramsey and M. Fern'andez. The New Jersey machine-code toolkit. In Proceedings of the 1995 USENIX Technical Conference, pages 289--302, January 1995.
....the special purpose language Facile and its compiler, which is used to produce memoizing simulators, respectively. Facile is designed to make memoizing simulators more flexible and easier to implement. Special syntax, derived loosely from the New Jersey Machine Code Toolkit specification language [60], allows programmers to easily describe an instruction set architecture. More general programming language constructs allow implementation of the rest of an instruction level micro architecture simulator. In the compiler, partial evalua 10 tion algorithms automatically identify which parts of a ....
....is syntax that concisely describes an instruction set architecture. Several previous architecture description languages have been developed to describe instruction set architectures. Facile is loosely based on the New Jersey Machine Code Toolkit language. The New Jersey Machine Code Toolkit [60] is designed to help programmers write applications that manipulate machine code e.g. assemblers, disassemblers, code generators, tracers, profilers, and debuggers. Its specification language is very general, and is suitable for describing both CISC and RISC ISAs; The authors have written ....
[Article contains additional citation context not shown here]
Norman Ramsey and Mary Fernandez, "The New Jersey Machine-Code Toolkit," in the Proceedings of the USENIX Technical Conference, New Orleans, LA, 289-302, January 1995. 289
....automatic generation of the loader code that decodes binary files. Currently, this is experimental work. SLED: the specification language for encoding and decoding supports the description of the syntax of machine instructions [18] SLED is supported by the New Jersey machine code toolkit [13], which provides partial support for automatically generating an instruction decoder and its components. SSL: the semantic specification language [16] allows for the description of the semantics of machine instructions. It provides the assembly transitions between RTLs and binary instructions. ....
Norman Ramsey and Mary Fernndez. The New Jersey Machine-Code Toolkit. Proceedings of the 1995 USENIX Technical Conference, pages 289-302, New Orleans, LA, January 1995.
....of code to decode files specified using the BFF language. SLED: the specification language for encoding and decoding supports the description of the syntax of machine instructions; i.e. its binary to assembly mnemonic representation [18] SLED is supported by the New Jersey machine code toolkit [13]. The toolkit provides partial support for automatically generating an instruction decoder for a particular SLED specification. Current machines specified in this form include the Pentium, SPARC, MIPS and Alpha. SSL: the semantic specification language allows for the description of the ....
Norman Ramsey and Mary Fernndez. The New Jersey Machine-Code Toolkit. Proceedings of the 1995 USENIX Technical Conference, pages 289-302, New Orleans, LA, January 1995.
....translation tasks focus on the best understood aspects of compiler construction. Scanning and parsing are well understood tasks for which a wide variety of tools exist, while automated and portable machine code generation is not as well understood and is still the subject of considerable research [20, 53]. Existing techniques for the generation of programming support tools focus primarily on tools to generate interpreters. Examples of such systems are PSG [7] and Centaur [9] Both use high level specifications to generate interpreters and debuggers for the languages specified. Because these ....
Norman Ramsey and Mary Fernandez. The New Jersey machine-code toolkit. In Proceedings of the 1995 USENIX Technical Conference, pages 289--302, New Orleans, LA, January 1995.
....the input to the model checker separately from their code, which introduces the possibility of errors. The design and implementation of domain specific languages has spurred considerable interest in the systems programming community. Recent work includes instruction set description languages [3,23], a specification language for automatically generating network packet filters [22] and compiler optimizations for interface description languages [11] 7 Conclusion: Implications for DomainSpecific Languages for Systems Software It would be gratuitous to reiterate the successes and ....
Norman Ramsey and Mary F. Fernandez. The New Jersey Machine-Code Toolkit. In 1995 Usenix Technical Conference, pages 289--302, New Orleans, LA, January 1995.
....instruction is implemented by a function in the language which uses other helper functions to determine different addressing modes etc. When simulating or rather verifying the correctness of the specification, the specification file (program) is simply executed. The New Jersey Machine Code Toolkit [18] is used for helping programmers write applications that process machine code, i.e. assemblers, disassemblers and debuggers. The user can specify how instructions are coded in a description language and then the tool is able to generate code for an instruction encoder as well as a decoder. Larus ....
N. Ramsey and M. Fern'andez. The New Jersey Machine-Code Toolkit. In Proceedings of the USENIX Technical Conference, pages 289--302, January 1995.
....architecture, while CHDL s describe the organization of computer designs. Although machine descriptions and CHDL s may appear to be similar, they differ in two important ways: their purpose and level of abstraction. Traditionally, machine descriptions have been used with systems software [Fra77, GG78, GH84, Cat78, DF84, Ben89, BHE91, RF95], while CHDL s have been used, primarily, for simulation or synthesis of hardware designs [Coe89, Das89] This difference in purpose is reflected in the kind of information the description language provides and the way that it is presented. 1.1 Motivation Machines can be described at many levels ....
Norman Ramsey and Mary F. Fernandez. The new jersey machine-code toolkit. In 1995 Usenix Technical Conference, pages 289---301, January 1995.
....instructions are generated, programs using dynamic code generation must be retargeted for each machine. Generating binary instructions is non portable, tedious, error prone, and frequently the source of latent bugs due to boundary conditions (e.g. constants that don t fit in immediate fields) [21]. Many of the amenities of symbolic assemblers are not present, such as detection of scheduling hazards and linking of jumps to target addresses. Finally, dynamic code generation requires a working knowledge of chip specific operations that must be performed, the most common being programmer ....
....This low level interface allows VCODE to generate machine code from client specifications at an approximate cost of six to ten instructions per generated instruction. This overhead is roughly equivalent to that of a highly tuned, non portable dynamic code generator (or faster; compare [21]) Furthermore, the low level instruc tion set can be used by clients to write portable VCODE that translates to high quality code. VCODE is extensible, allowing clients to dynamically modify calling conventions and register classifications on a per generated function basis; it also provides a ....
[Article contains additional citation context not shown here]
N. Ramsey and M. F. Fernandez. The New Jersey Machine-Code Toolkit. Technical Report 95-082, Purdue University, Dept of Computer Sciences, December 1995. Submitted to ACM Transactions on Programming Languages and Systems .
....data is defined as 16 bit quantities, byte order is little endian and sp is a register. Once this information is defined, it is static for the entire compilation process. 4. 2 Templates Instruction templates give the user an easy mechanism to define new instruction sets similar to Ramsey s[9] method of templates. A template defines a collection of one or more sub templates. Each subtemplate defines which bits it maps to, with the freedom to choose non contiguous patterns of bits. A checking mechanism ensures multiple sub templates within a template don t write to the same bit ....
Norman Ramsey and Mary F. Fernandez. The New Jersey Machine-Code Toolkit. In USENIX Technical Conference, pages 289--302, New Orleans, LA, January 16-20 1995.
....address, and the immediate portion must be given the offset representing the address. Since the rt field appears in the argument list, it gets a register number from the parsed instruction. ADL representation of binary encoding is a concise representation and is more natural than the SLED approach [11, 12] since there is no need for separate opcode tables and constructors. Specifying Instruction Semantics: The semanticpart of an instruction specification serves two purposes. These are the specification of what each stage computes when such an instruction is received and instruction classification ....
N. Ramsey and M.F. Fernandez. The new jersey machine-code toolkit. In Proc. 1995 USENIX Technical Conference, January 1995.
....of the address, and the immediate portion must be given the offset of the address. Since the rt field appears in the argument list, it gets a register number from the parsed instruction. ADL representation of binary encoding is a concise representation and is more natural than the SLED approach [11, 12] since there is no need for separate opcode tables and constructors. declare register rt field rs register field immediate signed field address variable label Instruction lw rt address emit opcode=35 rs= address.base rt immediate= address.offset attributes (i type: load type, dest r: rt, lop r: ....
N. Ramsey and M.F. Fernandez. The new jersey machine-code toolkit. In Proc. 1995 USENIX Technical Conference, January 1995.
....of the front end can be partially automated to reduce not only the time required to build the tool, but also the error prone process of disassemblying code. An integrated environment for the reverse engineering of binary code is presented in Figure 1. This figure follows conventions expressed in [18]: code is shown in boxes, data in ovals, code in doubled boxes is machine dependent or language dependent, code in single boxes is machineindependent, code pointed to by dotted arrows is produced by an automated tool, and boxes and ovals with heavy borders contain code that is generated by an ....
....In a binary translator, this information is of use when the same library is available on the target platform and therefore, consistency of parameters is needed prior to determining that the routine is to be dynamically linked in by the translated program. The New Jersey machine code (NJMC) toolkit [18] facilitates the decoding of machine instructions by providing a specification language to define machine instructions in a way that resembles descriptions found in architecture manuals, and by allowing the user to write a single specification to decode machine instructions, for which the toolkit ....
N. Ramsey and M. Fernandez. The New Jersey machinecode toolkit. In Proceedings of the 1995 USENIX Technical Conference, pages 289--302, Jan. 1995.
....number of encodings exist for any instruction set. To ensure that our compiler can encode instructions quickly, we are creating a tool that generates optimized instruction assemblers from concise specifications of instruction set formats. Non optimizing tools with the same functionality exist [RF95] but they make no effort to optimize the instruction assembler. These specifications are being coordinated with the specifications used for instruction selection to enable the instruction selector to directly assemble and emit instructions without any delays from intermediate representations. ....
Norman Ramsey and Mary F. Fernandez. The New Jersey machine-code toolkit. In Proceedings of the 1995 Usenix Winter Conference, January 1995.
....machine readable form (object code format) Most commercial assemblers output object code which is stitched together into an executable file by a linker[16] This enables the source code to be distributed across several files and programs to utilize precompiled libraries. A retargetable assembler[24, 25] is able to read several different machine architecture assembly files and create object code for each machine. Unlike a retargetable compiler, no intermediate code is produced to re target the assembler. Once each target machine defines the assembly language mapping to machine readable code it ....
....Procedures may be built in hardware and the software recompiled with a command line option to include the hardware instead of the software procedure call. This method improves application performance and enhances source code maintainability. This assembler work is similar to Ramsey and Fernandez s[24, 25] toolkit. The toolkit is capable of assembling, disassembly, and creating relocatable addresses, segments and object code for both RISC and CISC machines. The features not available in the toolkit that are necessary in working with FPGAs are the ability to map operand or opcode bit patterns onto a ....
Norman Ramsey and Mary F. Fernandez. The New Jersey Machine-Code Toolkit. Technical Report 95-082, Purdue University, Dept of Computer Sciences, December 1995. Submitted to ACM Transactions on Programming Languages and Systems.
No context found.
Norman Ramsey and Mary F. Fernandez, `The New Jersey Machine-Code Toolkit', Proceedings of the 1995 USENIX Technical Conference, New Orleans, LA, January 1995, pp. 289--302.
....and the program counter. This example designates target as relocatable, which means that its value may be unknown at encoding time. The most common example of such an instruction is a branch to an unknown label. Discussions of how the toolkit automates relocation of instructions appear elsewhere [20, 16]. Many assemblers extend the real instruction set with synthetic instructions. We specify synthetic instructions in terms of existing instructions by applying the corresponding constructors. Here is the definition of decrement, p 86: constructors dec val, rd is sub(rd, imode(val) rd) Some ....
N. Ramsey and M. F. Fern'andez. The New Jersey Machine-Code Toolkit. In Proceedings of the 1995 USENIX Technical Conference, pages 289--302, New Orleans, LA, Jan. 1995.
No context found.
Norman Ramsey and Mary F. Fernandez. The New Jersey Machine-Code Toolkit. In Proc. of the Usenix Technical Conf. 1995.
No context found.
Norman Ramsey and Mary F. Fernandz. The new jersey machine-code toolkit. In 1995 Usenix Technical Conference, pages 289--302, January 1995.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC