Intel ARCHITECTURE IA-32 User Manual Page 389

  • Download
  • Add to my manuals
  • Print
  • Page
    / 636
  • Table of contents
  • BOOKMARKS
  • Rated. / 5. Based on customer reviews
Page view 388
Vol. 3A 9-15
PROCESSOR MANAGEMENT AND INITIALIZATION
64-bit mode consistency checks fail in the following circumstances:
An attempt is made to enable or disable IA-32e mode while paging is enabled.
IA-32e mode is enabled and an attempt is made to enable paging prior to enabling
physical-address extensions (PAE).
IA-32e mode is active and an attempt is made to disable physical-address extensions
(PAE).
If the current CS has the L-bit set on an attempt to activate IA-32e mode.
The TR must contain a 16-bit TSS.
9.8.5.1 IA-32e Mode System Data Structures
After activating IA-32e mode, the system-descriptor-table registers (GDTR, LDTR, IDTR, TR)
continue to reference legacy protected-mode descriptor tables. Tables referenced by the descrip-
tors all reside in the lower 4 GBytes of linear-address space. After activating IA-32e mode,
64-bit operating-systems should use the LGDT, LLDT, LIDT, and LTR instructions to load the
system-descriptor-table registers with references to 64-bit descriptor tables.
9.8.5.2 IA-32e Mode Interrupts and Exceptions
Software must not allow exceptions or interrupts to occur between the time IA-32e mode is acti-
vated and the update of the interrupt-descriptor-table register (IDTR) that establishes references
to a 64-bit interrupt-descriptor table (IDT). This is because the IDT remains in legacy form
immediately after IA-32e mode is activated.
If an interrupt or exception occurs prior to updating the IDTR, a legacy 32-bit interrupt gate will
be referenced and interpreted as a 64-bit interrupt gate with unpredictable results. External inter-
rupts can be disabled by using the CLI instruction.
Non-maskable interrupts (NMI) must be disabled using external hardware.
9.8.5.3 64-bit Mode and Compatibility Mode Operation
IA-32e mode uses two code segment-descriptor bits (CS.L and CS.D, see Figure 3-8) to control
the operating modes after IA-32e mode is initialized. If CS.L = 1 and CS.D = 0, the processor
is running in 64-bit mode. With this encoding, the default operand size is 32 bits and default
address size is 64 bits. Using instruction prefixes, operand size can be changed to 64 bits or 16
bits; address size can be changed to 32 bits.
When IA-32e mode is active and CS.L = 0, the processor operates in compatibility mode. In this
mode, CS.D controls default operand and address sizes exactly as it does in the legacy IA-32
architecture. Setting CS.D = 1 specifies default operand and address size as 32 bits. Clearing
CS.D to 0 specifies default operand and address size as 16 bits (the CS.L = 1, CS.D = 1 bit
combination is reserved).
Page view 388
1 2 ... 384 385 386 387 388 389 390 391 392 393 394 ... 635 636

Comments to this Manuals

No comments