Instruction
LSL
Loads the limit of the segment descriptor that a selector names and sets ZF, if the descriptor is visible at this privilege level.
- Extensions
- Forms
- 2 (2 Legacy)
- Data
- Intel XED v2026.08.23
Forms
| Instruction | Encoding | Requires |
|---|---|---|
LSL r16/32/64, m16
LSL_GPRv_MEMw | 0F 03 /r | Base instruction set |
LSL r16/32/64, r16/32
LSL_GPRv_GPRz | 0F 03 /r | Base instruction set |
Operation
What the forms do, in pseudocode that our tests run against results recorded on real processors. How to read.
sel = src.read() & 0xFFFF # bits 15:0 of a register count
ok = 0
if sel & 0xFFFC and in_table(sel):
d = descriptor(sel) # not null, and within its table
t = d >> 40 & 0xF # the type
if d >> 44 & 1: # S: a code or data segment, any
ok = 1
elif t in (2, 9, 0xB): # LDT, TSS: 16 bytes; no gates
if in_table(sel + 8):
hi = descriptor(sel + 8)
ok = hi >> 40 & 0x1F == 0
dpl = d >> 45 & 3
if not (d >> 44 & 1 and t & 0xC == 0xC):
if CPL > dpl or sel & 3 > dpl:
ok = 0 # not visible: conforming code alone
# is visible from any level
lim = d & 0xFFFF | (d >> 48 & 0xF) << 16
if d >> 55 & 1: # G: the limit counts 4-KiB pages
lim = lim << 12 | 0xFFF
if ok:
dest.write(lim) # the last byte's offset; 16 bits:
# its low half, bits 63:16 kept
zf = okRun on AMD Zen 5 (EPYC 9645): 35 cases.
Operands
| Operand | Kind | Action |
|---|---|---|
LSL r16/32/64, m16 | ||
r16/32/64 | explicit | read, write |
m16 | explicit | read |
RFLAGS | implicit | write |
LSL r16/32/64, r16/32 | ||
r16/32/64 | explicit | read, write |
r16/32 | explicit | read |
RFLAGS | implicit | write |
Flags
| ZF |
|---|
| All forms |
| M |
Attributes
What else XED records about the forms. How to read.
- All forms
- not in real-address mode
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 |
|---|---|---|
I286PROTECTED | No CPUID bit: part of the base instruction set. | Every x86-64 processor in XED’s model and Zen 3 to Zen 6 |
More System 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-573 (LSL)
- 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.