diff --git a/sys/jit/kern_jit_asm.pas b/sys/jit/kern_jit_asm.pas index 67aa7b2f..70660b59 100644 --- a/sys/jit/kern_jit_asm.pas +++ b/sys/jit/kern_jit_asm.pas @@ -602,28 +602,32 @@ begin Assert(False); end; -//cpuid(0x0) :eax=0xd ebx=0x68747541 ecx=0x444d4163 edx=0x69746e65 -//cpuid(0x1) :eax=0x710f31 ebx=0x7080800 ecx=0x3ed8220b edx=0x178bfbff -//0x4 +//cpuid(0x00000000,0x0):eax=0x0000000d ebx=0x68747541 ecx=0x444d4163 edx=0x69746e65 +//cpuid(0x00000001,0x0):eax=0x00710f31 ebx=0x07080800 ecx=0x3ed8220b edx=0x178bfbff //0x6 -//cpuid(0x7) :eax=0x0 ebx=0x0 ecx=0x0 edx=0x0 +//cpuid(0x00000007,0x0):eax=0x00000000 ebx=0x00000008 ecx=0x00000000 edx=0x00000000 +//cpuid(0x00000007,0x1):eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000 +//cpuid(0x00000007,0x2):eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000 + //0xb //0x40000000 //0x40000010 -//cpuid(0x80000000):eax=0x8000001e ebx=0x68747541 ecx=0x444d4163 edx=0x69746e65 -//cpuid(0x80000001):eax=0x00710f31 ebx=0x00000000 ecx=0x154837ff edx=0x2fd3fbff -//cpuid(0x80000002):eax=0x31314744 ebx=0x4b533130 ecx=0x48343846 edx=0x20202056 -//cpuid(0x80000003):eax=0x20202020 ebx=0x20202020 ecx=0x20202020 edx=0x20202020 -//cpuid(0x80000004):eax=0x20202020 ebx=0x20202020 ecx=0x20202020 edx=0x00202020 +//cpuid(0x80000000,0x0):eax=0x8000001e ebx=0x68747541 ecx=0x444d4163 edx=0x69746e65 +//cpuid(0x80000001,0x0):eax=0x00710f31 ebx=0x00000000 ecx=0x154837ff edx=0x2fd3fbff +//cpuid(0x80000002,0x0):eax=0x31314744 ebx=0x4b533130 ecx=0x48343846 edx=0x20202056 +//cpuid(0x80000003,0x0):eax=0x20202020 ebx=0x20202020 ecx=0x20202020 edx=0x20202020 +//cpuid(0x80000004,0x0):eax=0x20202020 ebx=0x20202020 ecx=0x20202020 edx=0x00202020 //0x80000005 //0x80000006 -//cpuid(0x80000008):eax=0x00003028 ebx=0x00000000 ecx=0x3007 edx=0x00000000 + +//cpuid(0x80000008,0x0):eax=0x00003028 ebx=0x00000000 ecx=0x00003007 edx=0x00000000 //0xc0000000 //0xc0000001 + procedure jit_cpuid; assembler; nostackframe; label _cpuid_0, @@ -723,11 +727,16 @@ asm _cpuid_7: + test %ecx,%ecx //set bits if ecx=0 + mov $0x0,%eax mov $0x0,%ebx mov $0x0,%edx mov $0x0,%ecx + mov $0x8,%r15d + cmove %r15d,%ebx //if ecx=0 {ebx=8} + jmp _exit _cpuid_80000000: diff --git a/sys/kern/kern_namedobj.pas b/sys/kern/kern_namedobj.pas index b144e590..5430eda3 100644 --- a/sys/kern/kern_namedobj.pas +++ b/sys/kern/kern_namedobj.pas @@ -117,11 +117,12 @@ begin obj^.desc.free:=@namedobj_free; obj^.objt:=Word(objt) or NAMED_OBJT; - obj^.name:=name; + obj^.name:=_name; obj^.objp:=objp; namedobj_add(obj); + key:=0; if not id_name_new(@named_table,obj,@key) then begin namedobj_free(obj); @@ -132,6 +133,8 @@ begin td^.td_retval[0]:=key; + Writeln('namedobj_create("',_name,'"):',key); + Result:=0; end;