A test register, in the Intel 80386 and Intel 80486 processor, was a register used by the processor, usually to do a self-test. Most of these registers were undocumented, and used by specialized software. The test registers were named TR3 to TR7. Regular programs don't usually require these registers to work. With the Pentium, the test registers were replaced by a variety of model-specific registers (MSRs).[1]
In the 80386, two test registers, TR6 and TR7, were provided for the purpose of TLB testing. TR6 was the test command register, and TR7 was the test data register. The 80486 provided three additional registers, TR3, TR4 and TR5, for testing of the L1 cache. TR3 was a data register, TR4 was an address register and TR5 was a command register. These registers were accessed by variants of the MOV instruction. A test register may either be the source operand or the destination operand. The MOV instructions are defined in both real-address mode and protected mode. The test registers are privileged resources. In protected mode, the MOV instructions that access them can only be executed at privilege level 0. An attempt to read or write the test registers when executing at any other privilege level causes a general protection exception. Also, those instructions generate invalid opcode exception on most CPUs newer than 80486.
The instruction is encoded in two ways, depending on the flow of data. Moving data from a general purpose register into a test register is encoded as 0F 26 /r (with r/m being the GPR, and reg being the test register). Moving data the other way (i.e. from the test register into a general purpose register) is encoded as 0F 24 /r (with r/m being the GPR, and reg being the test register).[2] Only register-register moves are allowed; memory forms of the ModR/M byte are undefined. In other words, the mod field (the two MSBs) must be set to 1.
The test registers and/or associated opcodes were supported in the following x86 processors:
TR0-TR7 registers present as 32-bit read/write data registers without any cache/TLB test functionality.[15]
IDT WinChip (all models)
Registers not present. The MOV TRx opcodes can be enabled with the WinChip's FCR.EMOVTR[16] bit, but will act as NOPs.
Intel Quark X1000
No
Yes[17]
Yes
^On the Intel 386, the TR4 and TR5 registers have been reported to act as undocumented read-only registers returning a data item related to instruction prefetch.[3]
^Cyrix manufacturing partner CPU models from IBM, TI and ST also all supported the same test registers as their corresponding Cyrix-branded CPU models.
^SoCs based on the Cyrix-derived ST486 CPU core also supported the same set of test registers as the Cyrix 486 - such SoCs include e.g. STPC Atlas and ZFMicro ZFx86.[7]
^On the Cyrix 6x86, the TR1 and TR2 registers could be enabled by setting bit 6 of Cyrix configuration register 30h. These registers are not documented, but example code using them has been published by Cyrix.[9]
^On the Cyrix 6x86, the TR6 and TR7 registers could be used not only to test the TLB, but also to configure the processor's VSPM (Variable-Size Paging Mechanism).[10] The VSPM was a 4-entry[11] software TLB with a per-entry mask to support all power-of-2 page sizes from to bytes. It was present in the Cyrix 6x86 only - it was removed in 6x86MX and later processors.
^"Joshua" core only. "Samuel" core variants of Cyrix III did not support the TRx test registers.
^On the 6x86MX, MII, and "Joshua" Cyrix III processors, the TR3-TR5 registers could be used not just to test the L1 cache but also to lock individual L1 cache-lines to specific addresses for scratchpad memory use.[12][13]
^Intel, Pentium® Processor Family Developer’s Manual, order no. 241428-005, 1997, section 16.1.2, page 442 - provides a list of Pentium MSRs that provide the same functionality as the 386/486 TRx registers.
^Introduction to the 80386 Including the 80386 Data Sheet. Intel. April 1986. p. 122.
^Robert Collins, Move Special Registers, archived on 5 Jun 1997.
^AMD, Am386 Microprocessors Data Book, 1992, pages 21 and 151
testregister, in the Intel 80386 and Intel 80486 processor, was a register used by the processor, usually to do a self-test. Most of these registers...
interface connects to an on-chip Test Access Port (TAP) that implements a stateful protocol to access a set of testregisters that present chip logic levels...
The Rorschach test is a projective psychological test in which subjects' perceptions of inkblots are recorded and then analyzed using psychological interpretation...
64-bit only), debug registers (DR0 through 3, plus 6 and 7), testregisters (TR3 through 7; 80486 only), and model-specific registers (MSRs, appearing with...
Candidates for this test must register at their respective schools/institutions. For private candidates and other candidates, they can register at any State...
The Registered Tax Return Preparer Test was a test produced by the U.S. Internal Revenue Service (IRS). Until the program was suspended in January 2013...
another register) to form the "effective" address of the actual data (operand). Special instructions are typically provided to test the index register and...
overseas-trained healthcare professionals seeking to register and practise in an English-speaking environment. The test is recognised by organisations around the...
program performing multiple-word addition can test whether a single-word addition of registers overflowed by testing whether the sum is lower than an operand:...
memory into registers where they are used for arithmetic operations, bitwise operations, and other operations, and are manipulated or tested by machine...
x86 architecture, a debug register is a register used by a processor for program debugging. There are six debug registers, named DR0...DR7, with DR4...
2017. AVX uses sixteen YMM registers to perform a single instruction on multiple pieces of data (see SIMD). Each YMM register can hold and do simultaneous...
(May 15, 1984). National Register of Historic Places Inventory-Nomination: Rocket Propulsion Test Complex / A-1/A-2 B-1/B-2 Test Stands (pdf) (Report)....
The MHT-CET or Common Entrance Test is an annual entrance exam conducted by the Government of Maharashtra. It is conducted by the Directorate of Technical...
paternity testing is the use of DNA profiles to determine whether an individual is the biological parent of another individual. Paternity testing can be...
instruction stands for Bit Test and was added to the x86 instruction set with the 80386 processor. BT copies a bit from a given register to the carry flag. Example:...
The Common Admission Test (CAT) is a computer based test for admission in graduate management programs. The test consists of three sections: Verbal Ability...
connected together to form the external boundary scan shift register (BSR), and combined with JTAG Test Access Port (TAP) controller support comprising four...
The MOT test (or simply MOT) is an annual test of vehicle safety, roadworthiness aspects and exhaust emissions required in the United Kingdom for most...
A hydrostatic test is a way in which pressure vessels such as pipelines, plumbing, gas cylinders, boilers and fuel tanks can be tested for strength and...
In quantum computation, the Hadamard test is a method used to create a random variable whose expected value is the expected real part R e ⟨ ψ | U | ψ ⟩...
In the United States, the phrase testing the waters is used to describe someone who is exploring the feasibility of becoming a candidate for political...