PTQUERY
Operation
Reads the selected raw page-table descriptor without changing translation state.
Assembler Syntax
PTQUERY pt_level(i), <ea>(e), Rn(d)
PTQUERY pt_level(i), Rn(s), Rn(d)
Privilege
Supervisor only
PTQUERY reads the raw descriptor selected by a linear address and requested page-table level, or returns zero when the requested entry cannot be read. FLAGS.Z reports structural validity under the layout selected by PTE.T; FLAGS.N, FLAGS.C, and FLAGS.V are zero.
The requested level is the low three bits of the level operand. Values outside 1 through 4 raise INVALID_CONTROL_SELECTOR. With PTCR.TT=010, an L4 query is reported as an ordinary unsuccessful query before reading a PTE. With an unassigned PTCR.TT encoding, no geometry is selected and every query is reported as an ordinary unsuccessful query before reading a PTE.
-
Compute the linear address without reading the source memory and reject a noncanonical address as an unsuccessful query.
-
Starting at the PTCR root, read one 64-bit PTE per level. Every preceding entry must be a valid table pointer; a valid earlier leaf prevents traversal to a lower requested level.
-
Stop after reading the requested level. A structurally malformed entry or valid leaf terminates the query at that level.
-
Return the requested raw PTE and set
FLAGS.Zonly when it is structurally valid under the table-pointer or leaf layout selected byPTE.Tat that level. Table-pointer validity uses the current source level, and traversal preserves the completePTE.NEXT_TABLEvalue.FLAGS.N,FLAGS.C, andFLAGS.Vare zero.
Failure before the requested entry is read returns zero and clears all four flags. The walk ignores PTCR.PE, does not set PTE.A or PTE.D, does not modify a TLB, and does not raise an ADDRESS_TRANSLATION family event for walk failure.
2.75in
Encodings
PTQUERY pt_level(i), <ea>(e), Rn(d)
Format: Instruction format for PTQUERY pt_level(i), <ea>(e), Rn(d)
2.75in PTQUERY pt_level(i), Rn(s), Rn(d)
Format: Instruction format for PTQUERY pt_level(i), Rn(s), Rn(d)