NDIS 5.1 driver and SSE2

I am writing an ndis 5.1 driver specifically targeting machines that
support SSE2 ie Pentium4. I have 2 questions:

  1. The version of cl.exe packaged with the DDK does not support /G7
    as does the .net version of visual C++. Is it possible to build a
    driver using the .net version of the compiler? I know it is not
    generally qualified for all drivers, but I am targeting an extremely
    small subset of the processor space.

  2. If my interrupt code will call functions that use SSE2, I will need
    to save/restore the SSE2 context. The provided instructions (FSAVE,
    FRSTOR)
    save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
    is used, is there a quicker, more compact, method?

Thanks, Mark

Mark Roths
SoftAir Microsystems

You’re 99.999% safe with the VS7 C++ compiler. And even if you want
maximum compatability paranoia, you can isolate your SSE2 code, and
compile just that code with the VS7 compiler, then link everything
together. You’ll have to bend over backwards to get the build to work.
Personally, I would just the VS7 compiler.

– arlie

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roths
Sent: Monday, December 08, 2003 2:17 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] NDIS 5.1 driver and SSE2

I am writing an ndis 5.1 driver specifically targeting machines that
support SSE2 ie Pentium4. I have 2 questions:

  1. The version of cl.exe packaged with the DDK does not support /G7 as
    does the .net version of visual C++. Is it possible to build a driver
    using the .net version of the compiler? I know it is not
    generally qualified for all drivers, but I am targeting an extremely
    small subset of the processor space.

  2. If my interrupt code will call functions that use SSE2, I will need
    to save/restore the SSE2 context. The provided instructions (FSAVE,
    FRSTOR)
    save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
    is used, is there a quicker, more compact, method?

Thanks, Mark

Mark Roths
SoftAir Microsystems


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@sublinear.org To
unsubscribe send a blank email to xxxxx@lists.osr.com

But that .001% can kill you or your customers systems. What are you trying
to do that requires SSE2? What do you intend to do if a customer tries to
run your driver on a system without SSE2? Using anything other than the
standard BUILD environment is one of the stupidest things you can do.

Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting

----- Original Message -----
From: “Arlie Davis”
To: “Windows System Software Devs Interest List”
Sent: Monday, December 08, 2003 2:38 AM
Subject: [ntdev] RE: NDIS 5.1 driver and SSE2

> You’re 99.999% safe with the VS7 C++ compiler. And even if you want
> maximum compatability paranoia, you can isolate your SSE2 code, and
> compile just that code with the VS7 compiler, then link everything
> together. You’ll have to bend over backwards to get the build to work.
> Personally, I would just the VS7 compiler.
>
> – arlie
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roths
> Sent: Monday, December 08, 2003 2:17 AM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] NDIS 5.1 driver and SSE2
>
>
> I am writing an ndis 5.1 driver specifically targeting machines that
> support SSE2 ie Pentium4. I have 2 questions:
>
> 1. The version of cl.exe packaged with the DDK does not support /G7 as
> does the .net version of visual C++. Is it possible to build a driver
> using the .net version of the compiler? I know it is not
> generally qualified for all drivers, but I am targeting an extremely
> small subset of the processor space.
>
> 2. If my interrupt code will call functions that use SSE2, I will need
> to save/restore the SSE2 context. The provided instructions (FSAVE,
> FRSTOR)
> save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
> is used, is there a quicker, more compact, method?
>
> Thanks, Mark
>
> Mark Roths
> SoftAir Microsystems
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@sublinear.org To
> unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@acm.org
> To unsubscribe send a blank email to xxxxx@lists.osr.com

Mark,

There’s been a few comments to this already. I’ll add my 0.02p worth…

I am writing an ndis 5.1 driver specifically targeting machines that
support SSE2 ie Pentium4. I have 2 questions:

  1. The version of cl.exe packaged with the DDK does not support /G7
    as does the .net version of visual C++. Is it possible to build a
    driver using the .net version of the compiler? I know it is not
    generally qualified for all drivers, but I am targeting an extremely
    small subset of the processor space.

  2. If my interrupt code will call functions that use SSE2, I
    will need
    to save/restore the SSE2 context. The provided instructions (FSAVE,
    FRSTOR)
    save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
    is used, is there a quicker, more compact, method?

You probably want to use FXSAVE and FXRSTOR, first of all. FSAVE and FRSTOR
only save MMX/FP registers.

Second, you don’t know what format the xmmX register was loaded with, so
you’ll have penalties for “reformatting” the register, should you store it
with a different format than the previous load. (What I mean is: Say the
xmm2 is loaded as a pair of double precision floats, and you store it as a
set of 32-bit ints, the processor will have to “reformat” the contents to
match integer values. Next when you restore the info, you’ll load it up as
32-bit ints (assuming symetrical store/restore), and when the code
eventually returns to the user of xmm2, it will have to reformat the
contents again.) This type of reformatting is a performance penalty,
although if you’re “lucky” you’ll see little of it at the store phase, and
most of it will happen at the application that is actually using the
register.

Now, it’s probably a bad idea to call SSE2 code from an interrupt in the
first place, but if really have to, use FXSAVE and FXRSTOR. This ensures
that the processor internal state is preserved (including format info, for
example), and that any other data that the processor may want to store is
kept intact. It’s also more future proof, for instance if you’d decide to
compile this for AMD64 that has 16 SSE registers, it would still preserve
the 16 registers, and you don’t have to keep track of which it is in the
code that saves the registers.

Btw, when you say SSE2, do you actually refer to SSE Double Precision
instructions, or are you just going to use SSE instructions in general? I’m
not sure where you’d get double precision calculation needs in an NDIS
driver. SSE has a wide range of useful integer operations, but I’m pretty
sure no new ones were added in SSE2 (could be wrong, I’ve never REALLY used
SSE in anger). Just curious…

I hope this helps.


Mats

Thanks, Mark

Mark Roths
SoftAir Microsystems

Mats Petersson wrote:

Mark,

There’s been a few comments to this already. I’ll add my 0.02p worth…
>
> I am writing an ndis 5.1 driver specifically targeting machines that
> support SSE2 ie Pentium4. I have 2 questions:
>
> 1. The version of cl.exe packaged with the DDK does not support /G7
> as does the .net version of visual C++. Is it possible to build a
> driver using the .net version of the compiler? I know it is not
> generally qualified for all drivers, but I am targeting an extremely
> small subset of the processor space.
>
> 2. If my interrupt code will call functions that use SSE2, I
> will need
> to save/restore the SSE2 context. The provided instructions (FSAVE,
> FRSTOR)
> save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
> is used, is there a quicker, more compact, method?

You probably want to use FXSAVE and FXRSTOR, first of all. FSAVE and FRSTOR
only save MMX/FP registers.

Second, you don’t know what format the xmmX register was loaded with, so
you’ll have penalties for “reformatting” the register, should you store it
with a different format than the previous load. (What I mean is: Say the
xmm2 is loaded as a pair of double precision floats, and you store it as a
set of 32-bit ints, the processor will have to “reformat” the contents to
match integer values. Next when you restore the info, you’ll load it up as
32-bit ints (assuming symetrical store/restore), and when the code
eventually returns to the user of xmm2, it will have to reformat the
contents again.) This type of reformatting is a performance penalty,
although if you’re “lucky” you’ll see little of it at the store phase, and
most of it will happen at the application that is actually using the
register.

Now, it’s probably a bad idea to call SSE2 code from an interrupt in the
first place, but if really have to, use FXSAVE and FXRSTOR. This ensures
that the processor internal state is preserved (including format info, for
example), and that any other data that the processor may want to store is
kept intact. It’s also more future proof, for instance if you’d decide to
compile this for AMD64 that has 16 SSE registers, it would still preserve
the 16 registers, and you don’t have to keep track of which it is in the
code that saves the registers.

Btw, when you say SSE2, do you actually refer to SSE Double Precision
instructions, or are you just going to use SSE instructions in general? I’m
not sure where you’d get double precision calculation needs in an NDIS
driver. SSE has a wide range of useful integer operations, but I’m pretty
sure no new ones were added in SSE2 (could be wrong, I’ve never REALLY used
SSE in anger). Just curious…

SSE2 allows 128-bit packed ints whereas SSE only allows 64-bit. Thanks
for
the advice above, that is what I was looking for.

-Mark

I hope this helps.


Mats

>
> Thanks, Mark
>
> Mark Roths
> SoftAir Microsystems
>


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@cruzio.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Mark,
[snip]

SSE2 allows 128-bit packed ints whereas SSE only allows
64-bit. Thanks
for
the advice above, that is what I was looking for.

-Mark

Previously I was under the impression that SSE actually supported integer
operations as well as 32-bit float, but it seems that I was wrong (not the
first time… :wink:
Ok, I went to the source of all knowledge: The IA32 Software Developers
Manual Vol 2.
The conclusion is that SSE2 added Integer and 64-bit float operations. I was
previously under the impression that SSE2 only added 64-bit float
operations.

Just in case anyone else was similarly confused… the different x86
extensions would be:
MMX - 8, 16, 32-bit integer SIMD operations in 64-bit register.
3DNow! - 32-bit float SIMD operations in 64-bit register.
SSE - 32-bit float SIMD operations in 128-bit register.
SSE2 - 64-bit float and 8, 16, 32-bit SIMD operations in 128-bit
register.


Mats

Thanks, I’ll try that. The fallback of using VS7 for just the SSE2
is a good idea as well.

-Mark

Arlie Davis wrote:

You’re 99.999% safe with the VS7 C++ compiler. And even if you want
maximum compatability paranoia, you can isolate your SSE2 code, and
compile just that code with the VS7 compiler, then link everything
together. You’ll have to bend over backwards to get the build to work.
Personally, I would just the VS7 compiler.

– arlie

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roths
Sent: Monday, December 08, 2003 2:17 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] NDIS 5.1 driver and SSE2

I am writing an ndis 5.1 driver specifically targeting machines that
support SSE2 ie Pentium4. I have 2 questions:

  1. The version of cl.exe packaged with the DDK does not support /G7 as
    does the .net version of visual C++. Is it possible to build a driver
    using the .net version of the compiler? I know it is not
    generally qualified for all drivers, but I am targeting an extremely
    small subset of the processor space.

  2. If my interrupt code will call functions that use SSE2, I will need
    to save/restore the SSE2 context. The provided instructions (FSAVE,
    FRSTOR)
    save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
    is used, is there a quicker, more compact, method?

Thanks, Mark

Mark Roths
SoftAir Microsystems


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@sublinear.org To
unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@cruzio.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

I think I was clear that I am targeting only SSE2 equipped machines.
This is not an issue for my customer. I understand the generic
pronouncements
(it’s bad), but my alternative is to ignore all the nice intrinsics
supported in VS7 and rewrite everything in embedded assembly. This
seems bad as well.

My assumption is that in the future VS7 will be qualified for driver
development. The way things are going it will probably take me that
long
to get my stuff to work …

-Mark

Don Burn wrote:

But that .001% can kill you or your customers systems. What are you trying
to do that requires SSE2? What do you intend to do if a customer tries to
run your driver on a system without SSE2? Using anything other than the
standard BUILD environment is one of the stupidest things you can do.

Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting

----- Original Message -----
From: “Arlie Davis”
> To: “Windows System Software Devs Interest List”
> Sent: Monday, December 08, 2003 2:38 AM
> Subject: [ntdev] RE: NDIS 5.1 driver and SSE2
>
> > You’re 99.999% safe with the VS7 C++ compiler. And even if you want
> > maximum compatability paranoia, you can isolate your SSE2 code, and
> > compile just that code with the VS7 compiler, then link everything
> > together. You’ll have to bend over backwards to get the build to work.
> > Personally, I would just the VS7 compiler.
> >
> > – arlie
> >
> >
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roths
> > Sent: Monday, December 08, 2003 2:17 AM
> > To: Windows System Software Devs Interest List
> > Subject: [ntdev] NDIS 5.1 driver and SSE2
> >
> >
> > I am writing an ndis 5.1 driver specifically targeting machines that
> > support SSE2 ie Pentium4. I have 2 questions:
> >
> > 1. The version of cl.exe packaged with the DDK does not support /G7 as
> > does the .net version of visual C++. Is it possible to build a driver
> > using the .net version of the compiler? I know it is not
> > generally qualified for all drivers, but I am targeting an extremely
> > small subset of the processor space.
> >
> > 2. If my interrupt code will call functions that use SSE2, I will need
> > to save/restore the SSE2 context. The provided instructions (FSAVE,
> > FRSTOR)
> > save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
> > is used, is there a quicker, more compact, method?
> >
> > Thanks, Mark
> >
> > Mark Roths
> > SoftAir Microsystems
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@sublinear.org To
> > unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@acm.org
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
>
> —
> Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@cruzio.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

First, I’ve never heard of any intent to qualify VS7 for drivers, Microsoft
has taken the approach that they will bundle the DDK with the compiler and
appropriate libraries. Second, what is your driver going to do on the poor
customer who does not have SSE2 on a system? Are you providing a generic
version that doesn’t need SSE2? Does the customer really know what they are
doing?

Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting

----- Original Message -----
From: “Mark Roths”
To: “Windows System Software Devs Interest List”
Sent: Monday, December 08, 2003 12:29 PM
Subject: [ntdev] RE: NDIS 5.1 driver and SSE2

> I think I was clear that I am targeting only SSE2 equipped machines.
> This is not an issue for my customer. I understand the generic
> pronouncements
> (it’s bad), but my alternative is to ignore all the nice intrinsics
> supported in VS7 and rewrite everything in embedded assembly. This
> seems bad as well.
>
> My assumption is that in the future VS7 will be qualified for driver
> development. The way things are going it will probably take me that
> long
> to get my stuff to work …
>
> -Mark
>
> Don Burn wrote:
> >
> > But that .001% can kill you or your customers systems. What are you
trying
> > to do that requires SSE2? What do you intend to do if a customer tries
to
> > run your driver on a system without SSE2? Using anything other than
the
> > standard BUILD environment is one of the stupidest things you can do.
> >
> > Don Burn (MVP, Windows DDK)
> > Windows 2k/XP/2k3 Filesystem and Driver Consulting
> >
> > ----- Original Message -----
> > From: “Arlie Davis”
> > To: “Windows System Software Devs Interest List”
> > Sent: Monday, December 08, 2003 2:38 AM
> > Subject: [ntdev] RE: NDIS 5.1 driver and SSE2
> >
> > > You’re 99.999% safe with the VS7 C++ compiler. And even if you want
> > > maximum compatability paranoia, you can isolate your SSE2 code, and
> > > compile just that code with the VS7 compiler, then link everything
> > > together. You’ll have to bend over backwards to get the build to
work.
> > > Personally, I would just the VS7 compiler.
> > >
> > > – arlie
> > >
> > >
> > > -----Original Message-----
> > > From: xxxxx@lists.osr.com
> > > [mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roths
> > > Sent: Monday, December 08, 2003 2:17 AM
> > > To: Windows System Software Devs Interest List
> > > Subject: [ntdev] NDIS 5.1 driver and SSE2
> > >
> > >
> > > I am writing an ndis 5.1 driver specifically targeting machines that
> > > support SSE2 ie Pentium4. I have 2 questions:
> > >
> > > 1. The version of cl.exe packaged with the DDK does not support /G7
as
> > > does the .net version of visual C++. Is it possible to build a driver
> > > using the .net version of the compiler? I know it is not
> > > generally qualified for all drivers, but I am targeting an extremely
> > > small subset of the processor space.
> > >
> > > 2. If my interrupt code will call functions that use SSE2, I will
need
> > > to save/restore the SSE2 context. The provided instructions (FSAVE,
> > > FRSTOR)
> > > save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
> > > is used, is there a quicker, more compact, method?
> > >
> > > Thanks, Mark
> > >
> > > Mark Roths
> > > SoftAir Microsystems
> > >
> > > —
> > > Questions? First check the Kernel Driver FAQ at
> > > http://www.osronline.com/article.cfm?id=256
> > >
> > > You are currently subscribed to ntdev as: xxxxx@sublinear.org To
> > > unsubscribe send a blank email to xxxxx@lists.osr.com
> > >
> > >
> > > —
> > > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> > >
> > > You are currently subscribed to ntdev as: xxxxx@acm.org
> > > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@cruzio.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@acm.org
> To unsubscribe send a blank email to xxxxx@lists.osr.com

Server 2003 DDK (build 3790) contains the same compiler version (13.10) as
VS.NET 2003 although different build. It seems to support /G7 and SSE2:

-CODE GENERATION-

/G3 optimize for 80386 /Gh enable _penter function call
/G4 optimize for 80486 /GH enable _pexit function call
/G5 optimize for Pentium /GR[-] enable C++ RTTI
/G6 optimize for PPro, P-II, P-III /GX[-] enable C++ EH (same as
/EHsc)
/G7 optimize for Pentium 4 or Athlon /EHs enable C++ EH (no SEH
exceptions)
/GB optimize for blended model (default) /EHa enable C++ EH (w/ SEH
exceptions)
/Gd __cdecl calling convention /EHc extern “C” defaults to nothrow
/Gr __fastcall calling convention /GT generate fiber-safe TLS
accesses
/Gz __stdcall calling convention /Gm[-] enable minimal rebuild
/GA optimize for Windows Application /GL[-] enable link-time code
generation
/Gf enable string pooling /QIfdiv[-] enable Pentium FDIV fix
/GF enable read-only string pooling /QI0f[-] enable Pentium 0x0f fix
/Gy separate functions for linker /QIfist[-] use FIST instead of
ftol()
/GZ Enable stack checks (/RTCs) /RTC1 Enable fast checks (/RTCsu)
/Ge force stack checking for all funcs /RTCc Convert to smaller type
checks
/Gs[num] control stack checking calls /RTCs Stack Frame runtime checking
/GS enable security checks /RTCu Uninitialized local usage
checks
/clr[:noAssembly] compile for the common language runtime
noAssembly - do not produce an assembly
/arch: minimum CPU architecture requirements, one of:
SSE - enable use of instructions available with SSE enabled CPUs
SSE2 - enable use of instructions available with SSE2 enabled CPUs

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

> ----------
> From: xxxxx@cruzio.com[SMTP:xxxxx@cruzio.com]
> Reply To: xxxxx@lists.osr.com
> Sent: Monday, December 08, 2003 6:25 PM
> To: xxxxx@lists.osr.com
> Subject: [ntdev] RE: NDIS 5.1 driver and SSE2
>
> Thanks, I’ll try that. The fallback of using VS7 for just the SSE2
> is a good idea as well.
>
> -Mark
>
> Arlie Davis wrote:
> >
> > You’re 99.999% safe with the VS7 C++ compiler. And even if you want
> > maximum compatability paranoia, you can isolate your SSE2 code, and
> > compile just that code with the VS7 compiler, then link everything
> > together. You’ll have to bend over backwards to get the build to work.
> > Personally, I would just the VS7 compiler.
> >
> > – arlie
> >
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roths
> > Sent: Monday, December 08, 2003 2:17 AM
> > To: Windows System Software Devs Interest List
> > Subject: [ntdev] NDIS 5.1 driver and SSE2
> >
> > I am writing an ndis 5.1 driver specifically targeting machines that
> > support SSE2 ie Pentium4. I have 2 questions:
> >
> > 1. The version of cl.exe packaged with the DDK does not support /G7 as
> > does the .net version of visual C++. Is it possible to build a driver
> > using the .net version of the compiler? I know it is not
> > generally qualified for all drivers, but I am targeting an extremely
> > small subset of the processor space.
> >
> > 2. If my interrupt code will call functions that use SSE2, I will need
> > to save/restore the SSE2 context. The provided instructions (FSAVE,
> > FRSTOR)
> > save a lot of extra stuff like the FPU and MMX contexts. If only SSE2
> > is used, is there a quicker, more compact, method?
> >
> > Thanks, Mark
> >
> > Mark Roths
> > SoftAir Microsystems
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@sublinear.org To
> > unsubscribe send a blank email to xxxxx@lists.osr.com
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@cruzio.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: michal.vodicka@st.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

> ----------

From: xxxxx@cruzio.com[SMTP:xxxxx@cruzio.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, December 08, 2003 6:25 PM
To: xxxxx@lists.osr.com
Subject: [ntdev] RE: NDIS 5.1 driver and SSE2

Thanks, I’ll try that. The fallback of using VS7 for just the SSE2
is a good idea as well.

If there is a hypothetical incompatibility between compiler versions it
would be safer to use one compiler for whole project. There shouldn’t be a
problems with DDK libraries as LIBs created by older compiler versions are
usually usable with newer.

Anyway, the latest DDK should solve all problems at once.

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]

Michal Vodicka wrote:

> ----------
> From: xxxxx@cruzio.com[SMTP:xxxxx@cruzio.com]
> Reply To: xxxxx@lists.osr.com
> Sent: Monday, December 08, 2003 6:25 PM
> To: xxxxx@lists.osr.com
> Subject: [ntdev] RE: NDIS 5.1 driver and SSE2
>
> Thanks, I’ll try that. The fallback of using VS7 for just the SSE2
> is a good idea as well.
>
If there is a hypothetical incompatibility between compiler versions it
would be safer to use one compiler for whole project. There shouldn’t be a
problems with DDK libraries as LIBs created by older compiler versions are
usually usable with newer.

Anyway, the latest DDK should solve all problems at once.

Agreed, this is the best alternative.

-Mark

Best regards,

Michal Vodicka
STMicroelectronics Design and Application s.r.o.
[michal.vodicka@st.com, http:://www.st.com]


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@cruzio.com
To unsubscribe send a blank email to xxxxx@lists.osr.com