Skip to content
STIMSMITH

DLX instruction set

Concept WIKI v1 · 5/26/2026

The DLX instruction set is identified in the supplied evidence as the full instruction set implemented by the VAMP processor, attributed to Hennessy and Patterson. In the VAMP case study, it includes load/store operations for multiple data widths, shift operations, jump-and-link operations, and arithmetic and logical operations, with an Isabelle/HOL assembler-level model used to abstract away bit-vector details, address translation, and interrupts.

Overview

The DLX instruction set is described in the evidence as the instruction set implemented by the VAMP processor: “The VAMP implements the full DLX instruction set from Hennessy and Patterson.” [C1]

In that implementation context, the instruction set includes:

  • load and store operations for double words, words, half words, and bytes;
  • different shift operations;
  • jump-and-link operations;
  • various arithmetic and logical operations. [C2]

VAMP implementation context

The supplied evidence discusses DLX through the VAMP processor model developed in the context of the Verisoft project. The VAMP processor is specified in Isabelle/HOL as a programmer’s model consisting of transitions over Instruction Set Architecture configurations. [C3]

A VAMP ISA configuration is composed of five elements:

  1. pcp, a 30-bit program-counter register containing the address of the next instruction to be executed;
  2. dcp, a 30-bit delayed program-counter register containing the currently executed instruction;
  3. gprs, a general-purpose register file with 32 32-bit registers, indexed from 0 to 31, with the first register always set to 0;
  4. sprs, a special-purpose register file with 32 32-bit registers, including registers used for status, flags, or conditions;
  5. mm, a memory model described as a 2^32-byte addressable memory. [C4]

The evidence also notes that VAMP uses a delayed program-counter mechanism: while the next instruction is fetched using pcp, dcp is kept unchanged until the current instruction finishes execution. [C5]

Assembler-level abstraction

To avoid a complex bit-vector representation of data and instructions, the VAMP case study introduced an assembly-language abstraction of the VAMP ISA. In this assembler model, addresses are represented by natural numbers, while registers and memory contents are represented by integers. [C6]

The Isabelle theory of this assembler model abstracts the instruction-set architecture further. Instructions are represented as an abstract datatype with readable names; address translation is not visible; assembler computations occur in a linear virtual memory space; and interrupts are not visible at this level. [C7]

The assembler configuration is represented as a record with fields for the program counters, register files, and memory model:

  • pcp: natural-number program counter;
  • dcp: natural-number delayed program counter;
  • gprs: list of integers for the general-purpose register file;
  • sprs: list of integers for the special-purpose register file;
  • mm: memory model mapping natural numbers to integers. [C8]

Technical significance in the evidence

Within the supplied material, DLX is primarily significant as the instruction set used by VAMP and as the target of an assembler-level formal model. The evidence connects the instruction set to formal verification and test-program generation work by describing how DLX-level program behavior is modeled through ISA configurations and then abstracted into a more convenient assembler representation. [C1] [C3] [C6]

CITATIONS

8 sources
8 citations
[1] C1: VAMP implements the full DLX instruction set from Hennessy and Patterson. Test Program Generation for a Microprocessor: A Case Study
[2] C2: The DLX instruction set in the VAMP context includes load/store operations for double words, words, half words, and bytes, as well as shift, jump-and-link, arithmetic, and logical operations. Test Program Generation for a Microprocessor: A Case Study
[3] C3: In the Verisoft project, VAMP was specified in Isabelle/HOL as a programmer’s model with transitions over ISA configurations. Test Program Generation for a Microprocessor: A Case Study
[4] C4: A VAMP ISA configuration consists of pcp, dcp, gprs, sprs, and mm, with the register and memory properties described in the article. Test Program Generation for a Microprocessor: A Case Study
[5] C5: VAMP uses a delayed program-counter mechanism in which pcp fetches the next instruction while dcp remains unchanged until the current instruction completes. Test Program Generation for a Microprocessor: A Case Study
[6] C6: An assembly-language abstraction of the VAMP ISA was introduced to avoid complex bit-vector representations, using natural numbers for addresses and integers for registers and memory contents. Test Program Generation for a Microprocessor: A Case Study
[7] C7: The Isabelle assembler model represents instructions with readable abstract datatypes, hides address translation and interrupts, and uses a linear virtual memory space. Test Program Generation for a Microprocessor: A Case Study
[8] C8: The assembler configuration contains pcp, dcp, gprs, sprs, and mm fields, represented using natural numbers, integer lists, and a mapping from naturals to integers. Test Program Generation for a Microprocessor: A Case Study