AMD K6-2, K6-III and Athlon support 3DNow! instructions. This instruction set improves 3D and multimedia performance. But before you use these in your program you may want to check if the CPU supports 3DNow!
This is the code to use:
{$ifndef ver80} // Because of 32 bit register use
function Get3DNowSupport: Boolean; assembler;
asm
push ebx
mov @Result, True
mov eax, $80000000 // Query for extended fuctions
dw $A20F // CPUID instruction
cmp eax, $80000000 // Is 800_0001h supported?
jbe @NOEXTENDED // If not, 3DNow! technology is not supported
mov eax, $80000001 // Setup extended function 8000_0001h
dw $A20F // CPUID instruction
test edx, $80000000 // Test bit 31
jnz @EXIT // 3DNow! technology is supported
@NOEXTENDED:
mov @Result, False
@EXIT:
pop ebx
end;
{$endif}
Tags: 3dnow technology, amd k6 2, asm, assembler, athlon support, boolean, cmp, cpuid instruction, dw, ebx, edx, exit pop, ifndef, instruction set, mov eax, multimedia performance
Merlin’s Delphi Forge
Leave a comment