Author Topic: Instruction Set detection for 32 bit Operating Systems  (Read 46043 times)

FORTRANS

  • Member
  • *****
  • Posts: 1084
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #15 on: February 04, 2013, 04:01:35 AM »
Hi,

   P-III, Win 2000.  P-MMX, Win 98.  Celeron, Win XP.

Code: [Select]
Supported by Processor and installed Operating System:
------------------------------------------------------

     MMX, CMOV and FCOMI, SSE

     featurenumber = 7
Supported by Processor and installed Operating System:
------------------------------------------------------

     MMX

     featurenumber = 5
Supported by Processor and installed Operating System:
------------------------------------------------------

     MMX, CMOV and FCOMI, SSE, SSE2

     featurenumber = 8

Cheers,

Steve

Gunther

  • Member
  • *****
  • Posts: 3700
  • Forgive your enemies, but never forget their names
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #16 on: February 04, 2013, 04:06:12 AM »
Hi Andy,

I know, I know. It was a joke.

Gunther
Get your facts first, and then you can distort them.

Gunther

  • Member
  • *****
  • Posts: 3700
  • Forgive your enemies, but never forget their names
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #17 on: February 04, 2013, 04:11:22 AM »
Hi Fortrans,

thank you for testing. Interesting enough: Windows 98 is XMM aware.

Gunther
Get your facts first, and then you can distort them.

Gunther

  • Member
  • *****
  • Posts: 3700
  • Forgive your enemies, but never forget their names
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #18 on: February 04, 2013, 04:46:57 AM »
Hi Dave,

well - that could be a number of things

but - i hadn't considered os's other than windows, really
at my age, i have more than i can handle learning xp, vista, and win7 - lol

yes, we've not much influence in which environment our well written software is running. Since the advent of the virtual machines - VMware, VirtualBox and the like - the environment can be very exotic. We've to live with that.

Gunther
Get your facts first, and then you can distort them.

Magnum

  • Member
  • *****
  • Posts: 2362
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #19 on: February 04, 2013, 08:32:00 AM »
I downloaded Boch's but it was way too involved setting up.

I tried Sanboxie, but whenever I told it to run something outside the box, it kept asking to run it in a box.

I got to do some Super Bowl preparations.

Take care,
                   Andy

Ubuntu-mate-18.04-desktop-amd64

http://www.goodnewsnetwork.org

FORTRANS

  • Member
  • *****
  • Posts: 1084
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #20 on: February 05, 2013, 12:14:44 AM »
Hi Gunther,

   Well that laptop was sold with Win 95 (or OS/2 Warp).
So Win 98 being MMX aware is not too surprising.  Or is
it?

Regards,

Steve N.

dedndave

  • Member
  • *****
  • Posts: 8829
  • Still using Abacus 2.0
    • DednDave
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #21 on: February 05, 2013, 01:29:00 AM »
i have a win 98 machine
i think it's somewhat like yours, Steve
it has a Pentium III MMX
MMX happened about the same time as windows 98, maybe a little before

win 95, 98, and ME may have executed whatever your CPU had   :P
the "illegal instruction" was caught by the CPU - not the OS
i don't recall any way to disable instructions or instruction sets on the older cores

Gunther

  • Member
  • *****
  • Posts: 3700
  • Forgive your enemies, but never forget their names
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #22 on: February 05, 2013, 03:00:12 AM »
Hi Fortrans,

   Well that laptop was sold with Win 95 (or OS/2 Warp).
So Win 98 being MMX aware is not too surprising.  Or is
it?

no, it isn't surprising. MMX was introduced 1997.

Dave,

i don't recall any way to disable instructions or instruction sets on the older cores

I think there isn't a way to disable instruction sets on the older cores. The only way is, to check what's supported and call the right library (if available). Intel calls that technique CPU dispatching.

Gunther
Get your facts first, and then you can distort them.

Gunther

  • Member
  • *****
  • Posts: 3700
  • Forgive your enemies, but never forget their names
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #23 on: April 27, 2014, 07:44:06 AM »
Under the first post of this thread is now the archive Iset32U1.zip. It's a major update of the instruction detection procedure. Please, have a look into that thread, too. Both programs have the same logic, because they are interwoven.

The C sources are compiled with gcc, but VS or Pelle's C should also work, but that must be tested. The assembly language source is for jWasm/ml. For a more detailed description of the source files, please have a look into the readme.txt file.

Here is the output under Windows 7 (64 bit):
Quote

   Supported Features by Processor and Operating System
   ====================================================

Vendor String: GenuineIntel
Brand  String: Intel(R)Core(TM)i7-3770CPU@3.40GHz

   Instruction Sets
   ----------------

MMX  SSE  SSE2  SSE3  SSSE3  SSE4.1  SSE4.2  AVX

   Supported Special Instructions
   ------------------------------

Conditional Moves
FXSAVE and FXSTOR
XSAVE and XSTOR for processor extended state management.
POPCNT
RDRAND
AES (Advanced Encryption Standard) Instruction Set
16-bit floating-point Conversion Instructions

Please, press enter to end the application ...


Here with the same machine, but with Windows XP Mode under VirtualPC:
Quote

   Supported Features by Processor and Operating System
   ====================================================

Vendor String: GenuineIntel
Brand  String: Intel(R)Core(TM)i7-3770CPU@3.40GHz

   Instruction Sets
   ----------------

MMX  SSE  SSE2  SSE3  SSSE3  SSE4.1  SSE4.2

   Supported Special Instructions
   ------------------------------

Conditional Moves
FXSAVE and FXSTOR
XSAVE and XSTOR for processor extended state management.
POPCNT
RDRAND
AES (Advanced Encryption Standard) Instruction Set
16-bit floating-point Conversion Instructions

Please, press enter to end the application ...



The little difference comes from the point, that XP doesn't support AVX and subsequent instruction sets. Here's the output from my old AMD box running a native XP with SP3:
Quote

   Supported Features by Processor and Operating System
   ====================================================

Vendor String: AuthenticAMD
Brand  String: AMDAthlon(tm)64X2Dual-CoreProcessorTK-57

   Instruction Sets
   ----------------

MMX  SSE  SSE2  SSE3

   Supported Special Instructions
   ------------------------------

Conditional Moves
FXSAVE and FXSTOR

Please, press enter to end the application ...


Your help and test results are very welcome.

Gunther
« Last Edit: April 28, 2014, 05:17:41 AM by Gunther »
Get your facts first, and then you can distort them.

Siekmanski

  • Member
  • *****
  • Posts: 2357
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #24 on: April 27, 2014, 02:30:35 PM »
Results with Windows 8.1 64 bit

Quote
        Supported Features by Processor and Operating System
        ====================================================

Vendor String: GenuineIntel
Brand  String: Intel(R)Core(TM)i7-4930KCPU@3.40GHz

        Instruction Sets
        ----------------

MMX  SSE  SSE2  SSE3  SSSE3  SSE4.1  SSE4.2  AVX

        Supported Special Instructions
        ------------------------------

Conditional Moves
FXSAVE and FXSTOR
XSAVE and XSTOR for processor extended state management.
POPCNT
RDRAND
AES (Advanced Encryption Standard) Instruction Set
16-bit floating-point Conversion Instructions

Marinus
Creative coders use backward thinking techniques as a strategy.

hutch--

  • Administrator
  • Member
  • ******
  • Posts: 8152
  • Mnemonic Driven API Grinder
    • The MASM32 SDK
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #25 on: April 27, 2014, 02:53:31 PM »
Hi Gunther,

Code: [Select]
Supported by Processor and installed Operating System:
------------------------------------------------------

     MMX, CMOV and FCOMI, SSE, SSE2, SSE3, SSSE3, SSE4.1

     featurenumber = 11

This is correct on my old Core2 quad.
hutch at movsd dot com
http://www.masm32.com    :biggrin:  :skrewy:

Magnum

  • Member
  • *****
  • Posts: 2362
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #26 on: April 27, 2014, 03:46:49 PM »
SuperDave,

I am probably as  old as you, and that is a compliment. :-)

You have an older system, but I would recommend Puppy LInux.




Take care,
                   Andy

Ubuntu-mate-18.04-desktop-amd64

http://www.goodnewsnetwork.org

Gunther

  • Member
  • *****
  • Posts: 3700
  • Forgive your enemies, but never forget their names
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #27 on: April 27, 2014, 07:58:01 PM »
Hi Marinus,

thank you for testing the application. I think your CPU is a later Ivy Bridge, isn't it?

Gunther
Get your facts first, and then you can distort them.

Gunther

  • Member
  • *****
  • Posts: 3700
  • Forgive your enemies, but never forget their names
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #28 on: April 27, 2014, 08:00:06 PM »
Steve,

Hi Gunther,

Code: [Select]
Supported by Processor and installed Operating System:
------------------------------------------------------

     MMX, CMOV and FCOMI, SSE, SSE2, SSE3, SSSE3, SSE4.1

     featurenumber = 11

This is correct on my old Core2 quad.

okay, but that's the old archive. The update is in Iset32U1.zip.

Gunther
Get your facts first, and then you can distort them.

Biterider

  • Member
  • ****
  • Posts: 629
  • ObjAsm Developer
    • ObjAsm
Re: Instruction Set detection for 32 bit Operating Systems
« Reply #29 on: April 27, 2014, 11:13:52 PM »
Hi

Microsoft Windows [Version 6.3.9600] = Win 8.1 64 bit with an Haswell CPU

Supported by Processor and installed Operating System:
------------------------------------------------------

     MMX, CMOV and FCOMI, SSE, SSE2, SSE3, SSSE3, SSE4.1,
     POPCNT, SSE4.2

     featurenumber = 13

Regards, Biterider