Volume 3: General-Purpose and System Instructions - Stanford ...
Volume 3: General-Purpose and System Instructions - Stanford ... Volume 3: General-Purpose and System Instructions - Stanford ...
AMD64 Technology 24594 Rev. 3.10 February 2005Stack, #SS(selector)ExceptionRealVirtual8086 Protected Cause of ExceptionXXAfter a stack switch, a memory address exceeded the stack segmentlimit or was non-canonical and a stack switch occurred.XXAs part of a stack switch, the SS register was loaded with a non-nullsegment selector and the segment was marked not present.General protection,#GPXXXA memory address exceeded the data segment limit or was noncanonical.XXXThe target offset exceeded the code segment limit or was noncanonical.General protection,#GP(selector)XXXXXThe interrupt vector was beyond the limit of IDT.The descriptor in the IDT was not an interrupt, trap, or task gate inlegacy mode or not a 64-bit interrupt or trap gate in long mode.XXThe DPL of the interrupt, trap, or task gate descriptor was less thanthe CPL.XXThe segment selector specified by the interrupt or trap gate had its TIbit set, but the LDT selector was a null selector.XXThe segment descriptor specified by the interrupt or trap gateexceeded the descriptor table limit or was a null selector.XXThe segment descriptor specified by the interrupt or trap gate wasnot a code segment in legacy mode, or not a 64-bit code segment inlong mode.XThe DPL of the segment specified by the interrupt or trap gate wasgreater than the CPL.XThe DPL of the segment specified by the interrupt or trap gatepointed was not 0 or it was a conforming segment.Page fault, #PF X X A page fault resulted from the execution of the instruction.Alignment check, #AC X X An unaligned memory reference was performed while alignmentchecking was enabled.306 INT 3
24594 Rev. 3.10 February 2005 AMD64 TechnologyINVDInvalidate CachesInvalidates internal caches (data cache, instruction cache, and on-chip L2 cache) andtriggers a bus cycle that causes external caches to invalidate themselves as well.No data is written back to main memory from invalidating internal caches. Afterinvalidating internal caches, the processor proceeds immediately with the executionof the next instruction without waiting for external hardware to invalidate its caches.This is a privileged instruction. The current privilege level (CPL) of a procedureinvalidating the processor’s internal caches must be 0.To insure that data is written back to memory prior to invalidating caches, use theWBINVD instruction.This instruction does not invalidate TLB caches.INVD is a serializing instruction.Mnemonic Opcode DescriptionINVD 0F 08 Flush internal caches and trigger external cache flushes.Related InstructionsWBINVD, CLFLUSHrFLAGS AffectedNoneExceptionsExceptionGeneral protection,#GPRealVirtual8086 Protected Cause of ExceptionX X CPL was not 0.INVD 307
- Page 286 and 287: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 288 and 289: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 290 and 291: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 292 and 293: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 294 and 295: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 296 and 297: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 298 and 299: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 300 and 301: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 302 and 303: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 304 and 305: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 306 and 307: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 308 and 309: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 310 and 311: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 312 and 313: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 314 and 315: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 316 and 317: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 318 and 319: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 320 and 321: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 322 and 323: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 324 and 325: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 326 and 327: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 328 and 329: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 330 and 331: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 332 and 333: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 334 and 335: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 338 and 339: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 340 and 341: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 342 and 343: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 344 and 345: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 346 and 347: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 348 and 349: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 350 and 351: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 352 and 353: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 354 and 355: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 356 and 357: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 358 and 359: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 360 and 361: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 362 and 363: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 364 and 365: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 366 and 367: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 368 and 369: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 370 and 371: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 372 and 373: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 374 and 375: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 376 and 377: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 378 and 379: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 380 and 381: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 382 and 383: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 384 and 385: AMD64 Technology 24594 Rev. 3.10 Fe
AMD64 Technology 24594 Rev. 3.10 February 2005Stack, #SS(selector)ExceptionRealVirtual8086 Protected Cause of ExceptionXXAfter a stack switch, a memory address exceeded the stack segmentlimit or was non-canonical <strong>and</strong> a stack switch occurred.XXAs part of a stack switch, the SS register was loaded with a non-nullsegment selector <strong>and</strong> the segment was marked not present.<strong>General</strong> protection,#GPXXXA memory address exceeded the data segment limit or was noncanonical.XXXThe target offset exceeded the code segment limit or was noncanonical.<strong>General</strong> protection,#GP(selector)XXXXXThe interrupt vector was beyond the limit of IDT.The descriptor in the IDT was not an interrupt, trap, or task gate inlegacy mode or not a 64-bit interrupt or trap gate in long mode.XXThe DPL of the interrupt, trap, or task gate descriptor was less thanthe CPL.XXThe segment selector specified by the interrupt or trap gate had its TIbit set, but the LDT selector was a null selector.XXThe segment descriptor specified by the interrupt or trap gateexceeded the descriptor table limit or was a null selector.XXThe segment descriptor specified by the interrupt or trap gate wasnot a code segment in legacy mode, or not a 64-bit code segment inlong mode.XThe DPL of the segment specified by the interrupt or trap gate wasgreater than the CPL.XThe DPL of the segment specified by the interrupt or trap gatepointed was not 0 or it was a conforming segment.Page fault, #PF X X A page fault resulted from the execution of the instruction.Alignment check, #AC X X An unaligned memory reference was performed while alignmentchecking was enabled.306 INT 3