cpu.x86.features: ( int alien-assembly ) c-bool> ==> ( bool alien-assembly )
parent
009408dd11
commit
3956dd1516
|
@ -69,15 +69,6 @@ IN: cpu.x86.features
|
||||||
"end" resolve-label
|
"end" resolve-label
|
||||||
] alien-assembly ;
|
] alien-assembly ;
|
||||||
|
|
||||||
: (popcnt?) ( -- n )
|
|
||||||
int { } cdecl [
|
|
||||||
int-regs return-reg 1 MOV
|
|
||||||
CPUID
|
|
||||||
ECX 23 BT
|
|
||||||
int-regs return-reg dup XOR
|
|
||||||
int-regs return-reg SETB
|
|
||||||
] alien-assembly ;
|
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
MEMO: sse-version ( -- n )
|
MEMO: sse-version ( -- n )
|
||||||
|
@ -92,7 +83,14 @@ MEMO: sse-version ( -- n )
|
||||||
: sse4.1? ( -- ? ) sse-version 41 >= ;
|
: sse4.1? ( -- ? ) sse-version 41 >= ;
|
||||||
: sse4.2? ( -- ? ) sse-version 42 >= ;
|
: sse4.2? ( -- ? ) sse-version 42 >= ;
|
||||||
|
|
||||||
: popcnt? ( -- ? ) (popcnt?) c-bool> ;
|
: popcnt? ( -- ? )
|
||||||
|
bool { } cdecl [
|
||||||
|
int-regs return-reg 1 MOV
|
||||||
|
CPUID
|
||||||
|
ECX 23 BT
|
||||||
|
int-regs return-reg dup XOR
|
||||||
|
int-regs return-reg SETB
|
||||||
|
] alien-assembly ;
|
||||||
|
|
||||||
: sse-string ( version -- string )
|
: sse-string ( version -- string )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue