Overview
A CISC instruction set refers to a complex instruction set computer style of instruction set. In the provided evidence, Y86-64 is described as a CISC processor styled after the Intel64 instruction set. [C1]
The same source also frames processor behavior through the Instruction Set Architecture (ISA): an ISA specifies the effect of each instruction on architectural state, including registers, the program counter, and memory, using a sequential model in which instructions execute in strict order. [C2]
CISC traits shown by Y86-64
The evidence explicitly lists several Y86-64 properties as typical of CISC instruction sets: [C3]
- Variable-length encodings: Y86-64 instruction encodings range from one to ten bytes. [C4]
- Condition-code side effects: arithmetic and logical instructions set condition codes as a side effect. [C3]
- Condition-code-driven control flow and moves: condition codes control conditional branching and conditional moves. [C3]
- Instructions with multiple architectural effects:
pushqandpopqboth operate on memory and alter register values as side effects. [C3] - Stack-based procedure calls: the procedure-call mechanism uses the stack to save the return pointer;
callpushes the return address and jumps, whileretpops the return address and jumps to it. [C5]
Encoding structure
For Y86-64, an instruction consists of a one-byte instruction specifier, possibly a one-byte register specifier, and possibly an eight-byte constant word. The instruction table in the evidence includes examples such as halt, nop, register moves, immediate moves, memory moves, ALU operations, jumps, conditional moves, call, ret, pushq, and popq; it also notes an optional iaddq instruction. [C4]
Function codes distinguish variants of operation classes: they specify the ALU operation, the jump condition, or the conditional move condition. Examples listed include addq, subq, andq, xorq, conditional jumps such as jle, jl, je, jne, jge, and jg, and conditional moves such as cmovle, cmovl, cmove, cmovne, cmovge, and cmovg. [C6]
Boundary with RISC-like simplifications
The cited Y86-64 material also notes that Y86-64 has simplifying features commonly associated with RISC instruction sets: arithmetic and logical instructions operate only on register data, addressing is limited to simple base-plus-displacement forms, and instruction bit fields are simple and used consistently across multiple instructions. [C7]
This makes Y86-64 useful in the cited work as a compact, formally verified case study: it has CISC-like characteristics while retaining simplifications that make the processor designs and ISA model tractable for verification. [C1] [C7]