From 218ca90543758a20ac326e444ca0643174ca7384 Mon Sep 17 00:00:00 2001 From: Rebellion Developments Date: Thu, 16 Mar 2000 11:25:00 +0100 Subject: Import Aliens vs Predator - Gold (Build 116) Source code release, imported from: https://www.gamefront.com/games/aliens-vs-predator-3/file/avp-gold-complete-source-code All text files were converted to Unix format. --- 3dc/win95/PENTIME.H | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 3dc/win95/PENTIME.H (limited to '3dc/win95/PENTIME.H') diff --git a/3dc/win95/PENTIME.H b/3dc/win95/PENTIME.H new file mode 100644 index 0000000..8c66961 --- /dev/null +++ b/3dc/win95/PENTIME.H @@ -0,0 +1,64 @@ +/* pentime.h */ +extern unsigned long int rdtsc_lo(void); +extern unsigned long int rdtsc_hi(void); +extern unsigned long int rdtsc_mid(void); + +#define ProfileStart() \ +{ \ + int time = rdtsc_lo(); +#define ProfileStop(x) \ + textprint("%s %d\n",x,rdtsc_lo()-time); \ +} + +#pragma aux rdtsc_lo = \ + "db 0fh, 31h" \ + value [eax] \ + modify [edx]; + +#pragma aux rdtsc_hi = \ + "db 0fh, 31h" \ + value [edx] \ + modify [eax]; + +#pragma aux rdtsc_mid = \ + "db 0fh, 31h" \ + "shr eax, 10h" \ + "shl edx, 10h" \ + "add eax, edx" \ + value [eax] \ + modify [edx]; + +/* Test to see if we have a Pentium or not. Note that this test is reliable + * enough for a tools project (where we can put in an overide switch) but not + * for a released product. + */ +extern unsigned char Pentium(void); +#pragma aux Pentium = \ + "pushfd" \ + "pop eax" \ + "or eax, 00200000h" \ + "push eax" \ + "popfd" \ + "pushfd" \ + "pop eax" \ + "mov ecx, eax" \ + "and eax, 00200000h" \ + "cmp eax, 0" \ + "je not_Pentium" \ + "mov eax, ecx" \ + "and eax, 0ffdfffffh" \ + "push eax" \ + "popfd" \ + "pushfd" \ + "pop eax" \ + "and eax, 00200000h" \ + "cmp eax, 0" \ + "jne not_Pentium" \ + "is_Pentium: mov al, 1" \ + "jmp finish" \ + "not_Pentium: mov al, 0" \ + "finish: nop" \ + value [al] \ + modify [eax ecx] + + -- cgit v1.3