Instruction
INTO
Raises an overflow exception (#OF) if the overflow flag is set; not in 64-bit mode.
- Extensions
- Forms
- 1 (1 Legacy)
- Data
- Intel XED v2026.08.23
INTO raises the overflow exception, #OF, vector 4, when OF is set, and does nothing when it is clear. Placed after a signed addition or subtraction, it turns an overflow into a call of the #OF handler. Unlike a fault, #OF from INTO is a trap: the handler’s IRET returns to the instruction after INTO, so a handler that returns lets the program go on with the wrapped result.
Delivery is that of INT n with vector 4, with the same check of the gate’s privilege level: INTO from code less privileged than the gate raises #GP. It differs from INT 4 (CD 04) in three ways that Intel’s manual lists: in virtual-8086 mode it ignores IOPL, it bypasses the redirection of interrupts that the virtual-8086 mode extensions provide, and with FRED it is delivered as a software exception, event type 6, where INT 4 is a software interrupt, type 4. Intel’s ordering rule for INT n, that later instructions wait until all earlier ones have completed, covers INTO only when OF is set.
Not in 64-bit mode
Opcode CE raises #UD in 64-bit mode, so the fixture has no case for
INTO: the probe runs there and lists it as not run. In compatibility
mode it runs, and #OF is then delivered through the 16-byte gates of the
long-mode IDT, as every interrupt in long mode is (AMD’s Volume 2). In
64-bit code a JNO over an INT 4 does the same job: the gate of vector 4
on the Linux host admits user code, as the recorded int 0x4 at CPL 3
reached #OF on Zen 5. Compilers check for overflow with a branch: in our
builds, __builtin_add_overflow followed by __builtin_trap() becomes
an ADD, a JO and a UD2 in GCC 14 at -O2 with -m32. GNU as 2.44 and
Clang 23 refuse into in 64-bit code.
Forms
| Instruction | Encoding | Requires |
|---|---|---|
INTO not in 64-bit mode
INTO | CE | Base instruction set |
Operation
What the forms do, in pseudocode that our tests run against results recorded on real processors. How to read.
if of: # else nothing happens
g = gate(4) # IA-32e mode's IDT
if g >> 40 & 0xF not in (0xE, 0xF):
fault(GP, 34) # 8 * 4 + 2
if g >> 45 & 3 < CPL:
fault(GP, 34) # the gate's DPL, as for INT n
if g >> 47 & 1 == 0:
fault(NP, 34)
interrupt(4) # #OF, a trap: the handler returns to
# the next instruction
# in 64-bit mode CE is not INTO: it raises #UDNot run on a processor: INTO does not exist in 64-bit mode, where the probe runs.
Operands
| Operand | Kind | Action |
|---|---|---|
INTO not in 64-bit mode | ||
EIP | implicit | write |
RFLAGS | implicit | read, write |
Flags
| OF | IF | TF | AC | IOPL | NT | RF | VM |
|---|---|---|---|---|---|---|---|
| All forms | |||||||
| T | M | M | M | T | M | 0 | TM |
Attributes
What else XED records about the forms. How to read.
- All forms
- may abort a TSX transaction
CPUID and processors
Each form belongs to an XED ISA set. A form can be used when the processor reports every CPUID bit of one of its ISA set's alternatives.
| ISA set | CPUID | Processors |
|---|---|---|
I86 | No CPUID bit: part of the base instruction set. | Every x86-64 processor in XED’s model and Zen 3 to Zen 6 |
More General-purpose instructions
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, operands, flags, exception classes, attributes, ISA sets, CPUID bits and chip model. - The CPU data of x86-64.net: Zen 3 to Zen 6, from GCC’s
-marchfeature sets and AMD’s Processor Programming References, which the page of each processor cites. - Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 2 (325383-093, September 2026): Volume 2A, page 3-467 (INT n/
INTO/ INT3/ INT1) - AMD64 Architecture Programmer's Manual, Volume 2: System Programming (24593, rev. 3.46, October 2026)
- AMD64 Architecture Programmer's Manual, Volume 3: General-Purpose and System Instructions (24594, rev. 3.39, October 2026)
- Intel 64 and IA-32 Architectures Software Developer's Manual, Volume 3 (325384-093, September 2026)
The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.