Misplaced Pages

SSE2

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

SSE2 ( Streaming SIMD Extensions 2 ) is one of the Intel SIMD (Single Instruction, Multiple Data) processor supplementary instruction sets introduced by Intel with the initial version of the Pentium 4 in 2000. SSE2 instructions allow the use of XMM (SIMD) registers on x86 instruction set architecture processors. These registers can load up to 128 bits of data and perform instructions, such as vector addition and multiplication, simultaneously.

#466533

88-459: SSE2 introduced double-precision floating point instructions in addition to the single-precision floating point and integer instructions found in SSE. SSE2 extends earlier SSE instruction set by adding 144 new instructions to the previous 70 instructions. SSE2 intends to fully replace MMX , a SIMD instruction set found on IA-32 architecture processors. Competing chip-maker AMD added support for SSE2 with

176-517: A Microsoft Visual Studio project, the programmer had to either manually write inline-assembly or import object-code from an external source. Later the Visual C++ Processor Pack added SSE2 support to Visual C++ and MASM . The Intel C++ Compiler can automatically generate SSE4 , SSSE3 , SSE3 , SSE2, and SSE code without the use of hand-coded assembly. Since GCC 3, GCC can automatically generate SSE/SSE2 scalar code when

264-636: A code editor supporting IntelliSense (the code completion component) as well as code refactoring . The integrated debugger works as both a source-level debugger and as a machine-level debugger. Other built-in tools include a code profiler , designer for building GUI applications, web designer , class designer, and database schema designer. It accepts plug-ins that expand the functionality at almost every level—including adding support for source control systems (like Subversion and Git ) and adding new toolsets like editors and visual designers for domain-specific languages or toolsets for other aspects of

352-550: A concurrent build system, among others. It ships with an enhanced set of UI widgets, both for Windows Forms and WPF . It also includes a multithreaded build engine ( MSBuild ) to compile multiple source files (and build the executable file) in a project across multiple threads simultaneously. It also includes support for compiling icon resources in PNG format, introduced in Windows Vista. An updated XML Schema designer

440-413: A debugger that works both as a source-level debugger and as a machine-level debugger. It works with both managed code as well as native code and can be used for debugging applications written in any language supported by Visual Studio. In addition, it can also attach to running processes, monitor, and debug those processes. If source code for the running process is available, it displays the code as it

528-581: A modeless list box over the code editor window, in proximity of the editing cursor . In Visual Studio 2008 onwards, it can be made temporarily semi-transparent to see the code obstructed by it. The code editor is used for all supported languages. The code editor in Visual Studio also supports setting bookmarks in code for quick navigation. Other navigational aids include collapsing code blocks and incremental search , in addition to normal text search and regex search. The code editor also includes

616-440: A 32-bit application, Visual C++ 2005 supports compiling for x86-64 (AMD64 and Intel 64) as well as IA-64 ( Itanium ). The Platform SDK included 64-bit compilers and 64-bit versions of the libraries. Microsoft also announced Visual Studio Tools for Applications as the successor to Visual Basic for Applications (VBA) and VSA (Visual Studio for Applications). VSTA 1.0 was released to manufacturing along with Office 2007 . It

704-502: A certain position) and watches (which monitor the values of variables as the execution progresses). Breakpoints can be conditional, meaning they get triggered when the condition is met. Code can be stepped over , i.e., run one line (of source code) at a time. It can either step into functions to debug inside it, or step over it, i.e., the execution of the function body isn't available for manual inspection. The debugger supports Edit and Continue , i.e., it allows code to be edited as it

792-523: A commercial license; Enterprise organizations require a commercial license for use outside of the noted exceptions. Visual Studio Community is oriented towards individual developers and small teams. As of Visual Studio 2010, the Professional edition is the entry level commercial edition of Visual Studio. (Previously, a more feature restricted Standard edition was available.) It provides an IDE for all supported development languages. MSDN support

880-460: A different machine architecture. A related issue is that, historically, language standards and compilers had been inconsistent in their handling of the x87 80-bit registers implementing double extended precision variables, compared with the double and single precision formats implemented in SSE2: the rounding of extended precision intermediate values to double precision variables was not fully defined and

968-433: A format called Microsoft Intermediate Language (MSIL) or Common Intermediate Language (CIL). When a CIL application executes, it is compiled while being executed into the appropriate machine language for the platform it is being executed on, thereby making code portable across several platforms. Programs compiled into CIL can be executed only on platforms which have an implementation of Common Language Infrastructure . It

SECTION 10

#1732772408467

1056-597: A limited subset of the BCL source is available, with more library support planned for later. On April 12, 2010, Microsoft released Visual Studio 2010, codenamed Dev10 , and .NET Framework 4 . It is available for Windows Server 2003 SP2, Windows XP SP3, Windows Vista SP2 and Windows Server 2008 SP2 and has support for Windows Server 2008 R2 , as well as for Windows 7 . It is the last version to support Windows XP SP3 , Windows Server 2003 SP2 , Windows Server 2003 R2 , Windows Vista SP2 and Windows Server 2008 SP2 , and

1144-476: A local web server, separate from IIS , that can host ASP.NET applications during development and testing. It also supports all SQL Server 2005 databases. Database designers were upgraded to support the ADO.NET 2.0 , which is included with .NET Framework 2.0. C++ also got a similar upgrade with the addition of C++/CLI which is slated to replace the use of Managed C++ . Other new features of Visual Studio 2005 include

1232-641: A multi-item clipboard and a task list. The code editor supports code snippets, which are saved templates for repetitive code and can be inserted into code and customized for the project being worked on. A management tool for code snippets is built in as well. These tools are surfaced as floating windows which can be set to automatically hide when unused or docked to the side of the screen. The code editor in Visual Studio also supports code refactoring including parameter reordering, variable and method renaming, interface extraction, and encapsulation of class members inside properties, among others. Visual Studio includes

1320-403: A new HTML / CSS editor influenced by Microsoft Expression Web are included. J# is not included. Visual Studio 2008 requires .NET 3.5 Framework and by default configures compiled assemblies to run on .NET Framework 3.5, but it also supports multi-targeting which lets the developers choose which version of the .NET Framework (out of 2.0, 3.0, 3.5, Silverlight CoreCLR or .NET Compact Framework)

1408-734: A new programming language, that targets .NET. It also introduced the successor to Visual J++ called Visual J#. Visual J# programs use Java's language-syntax. However, unlike Visual J++ programs, Visual J# programs can only target the .NET Framework, not the Java Virtual Machine that all other Java tools target. Visual Basic changed drastically to fit the new framework, and the new version was called Visual Basic .NET. Microsoft also added extensions to C++, called Managed Extensions for C++ , so .NET programs could be created in C++. Visual Studio .NET can produce applications targeting Windows (using

1496-616: A set of functions that are used to implement various source control functionality, with a standard Visual Studio user interface. MSSCCI was first used to integrate Visual SourceSafe with Visual Studio 6.0 but was later opened up via the Visual Studio SDK. Visual Studio .NET 2002 used MSSCCI 1.1, and Visual Studio .NET 2003 used MSSCCI 1.2. Visual Studio 2005, 2008, and 2010 use MSSCCI Version 1.3, which adds support for rename and delete propagation, as well as asynchronous opening. Visual Studio supports running multiple instances of

1584-800: A sophisticated complement of numeric format conversion instructions. AMD's implementation of SSE2 on the AMD64 ( x86-64 ) platform includes an additional eight registers, doubling the total number to 16 (XMM0 through XMM15). These additional registers are only visible when running in 64-bit mode. Intel adopted these additional registers as part of their support for x86-64 architecture (or in Intel's parlance, "Intel 64") in 2004. FPU (x87) instructions provide higher precision by calculating intermediate results with 80 bits of precision, by default, to minimise roundoff error in numerically unstable algorithms (see IEEE 754 design rationale and references therein). However,

1672-606: A trademark owned by Intel, and with Intel granting AMD rights to use the MMX trademark as a technology name, but not a processor name. MMX defines eight processor registers , named MM0 through MM7, and operations that operate on them. Each register is 64 bits wide and can be used to hold either 64-bit integers , or multiple smaller integers in a "packed" format: one instruction can then be applied to two 32-bit integers, four 16-bit integers, or eight 8-bit integers at once. MMX provides only integer operations. When originally developed, for

1760-489: Is available as MSDN Essentials or the full MSDN library depending on licensing. It supports XML and XSLT editing, and can create deployment packages that only use ClickOnce and MSI . It includes tools like Server Explorer and integration with Microsoft SQL Server also. Windows Mobile development support was included in Visual Studio 2005 Standard, however, with Visual Studio 2008, it is only available in Professional and higher editions. Windows Phone 7 development support

1848-479: Is available as a free download. After the release of Visual Studio 2008, Microsoft created the Visual Studio Gallery. It serves as the central location for posting information about extensions to Visual Studio. Community developers as well as commercial developers can upload information about their extensions to Visual Studio .NET 2002 through Visual Studio 2010. Users of the site can rate and review

SECTION 20

#1732772408467

1936-528: Is available in the following editions or SKUs : The Community edition was announced on November 12, 2014, as a new free version, with similar functionality to Visual Studio Professional. Prior to this date, the only free editions of Visual Studio were the feature-limited Express variants. Unlike the Express variants , Visual Studio Community supports multiple languages, and provides support for extensions. Individual developers have no restrictions on their use of

2024-519: Is available via plug-ins . Java (and J# ) were supported in the past. The most basic edition of Visual Studio, the Community edition, is available free of charge. The slogan for Visual Studio Community edition is "Free, fully-featured IDE for students, open-source and individual developers". As of February 19, 2024 , Visual Studio 2022 is a current production-ready version. Visual Studio 2013, 2015 and 2017 are on Extended Support, while 2019

2112-455: Is avoiding the mode switching penalty for issuing x87 instructions present in MMX because it is sharing register space with the x87 FPU. The SSE2 also complements the floating-point vector operations of the SSE instruction set by adding support for the double precision data type. Other SSE2 extensions include a set of cache control instructions intended primarily to minimize cache pollution when processing infinite streams of information, and

2200-543: Is being debugged. When debugging, if the mouse pointer hovers over any variable, its current value is displayed in a tooltip ("data tooltips"), where it can also be modified if desired. During coding, the Visual Studio debugger lets certain functions be invoked manually from the Immediate tool window. The parameters to the method are supplied at the Immediate window. Visual Studio includes many visual designers to aid in

2288-453: Is being run. If source code is not available, it can show the disassembly . The Visual Studio debugger can also create memory dumps as well as load them later for debugging. Multi-threaded programs are also supported. The debugger can be configured to be launched when an application running outside the Visual Studio environment crashes. The Visual Studio Debugger allows setting breakpoints (which allow execution to be stopped temporarily at

2376-409: Is included with Office 2007 and is also part of the Visual Studio 2005 SDK. VSTA consists of a customized IDE, based on the Visual Studio 2005 IDE, and a runtime that can be embedded in applications to expose its features via the .NET object model. Office 2007 applications continue to integrate with VBA, except for InfoPath 2007 which integrates with VSTA. Version 2.0 of VSTA (based on Visual Studio 2008)

2464-408: Is not strictly required. Although one SSE2 instruction can operate on twice as much data as an MMX instruction, performance might not increase significantly. Two major reasons are: accessing SSE2 data in memory not aligned to a 16-byte boundary can incur significant penalty, and the throughput of SSE2 instructions in older x86 implementations was half that for MMX instructions. Intel addressed

2552-558: Is officially a meaningless initialism trademarked by Intel; unofficially, the initials have been variously explained as standing for Advanced Micro Devices (AMD), during one of its many court battles with Intel, produced marketing material from Intel indicating that MMX stood for "Matrix Math Extensions". Since an initialism cannot be trademarked, this was an attempt to invalidate Intel's trademark. In 1995, Intel filed suit against AMD and Cyrix Corp. for misuse of its trademark MMX. AMD and Intel settled, with AMD acknowledging MMX as

2640-539: Is on Mainstream Support. Visual Studio does not support any programming language, solution or tool intrinsically; instead, it allows the plugging of functionality coded as a VSPackage. When installed, the functionality is available as a Service . The IDE provides three services: SVsSolution, which provides the ability to enumerate projects and solutions; SVsUIShell, which provides windowing and UI functionality (including tabs, toolbars, and tool windows); and SVsShell, which deals with registration of VSPackages. In addition,

2728-562: Is possible to run CIL programs in Linux or Mac OS X using non-Microsoft .NET implementations like Mono and DotGNU . This was the first version of Visual Studio to require an NT -based Windows platform. The installer enforces this requirement, and is the last version to support Windows NT 4.0 SP6 or later and Windows 2000 before SP3. Visual Studio .NET 2002 shipped in four editions: Academic, Professional, Enterprise Developer, and Enterprise Architect. Microsoft introduced C# (C-sharp),

SSE2 - Misplaced Pages Continue

2816-449: Is the last version available for Windows XP SP2 , Windows Server 2003 SP1 , as well as the only version to support Windows Vista before SP2 and Windows Server 2008 before SP2 and the last version to support targeting Windows 2000 for C++ applications. Visual Studio 2008 is focused on development of Windows Vista , 2007 Office system, and Web applications. For visual design, a new Windows Presentation Foundation visual designer and

2904-450: Is the last version to run on Windows 2000 and also the last version able to target Windows 98 and Windows Me for C++ applications. Visual Studio 2005's internal version number is 8.0 while the file format version is 9.0. Microsoft released Service Pack 1 for Visual Studio 2005 on December 14, 2006. An additional update for Service Pack 1 that offers Windows Vista compatibility was made available on June 3, 2007. Visual Studio 2005

2992-704: The ARM architecture core named Intel Wireless MMX Technology (iwMMXt) which functions are similar to those of the IA-32 MMX extension. It provides arithmetic and logic operations on 64-bit integer numbers, in which the software may choose to instead perform two 32-bit, four 16-bit or eight 8-bit operations in one instruction. The extension contains 16 data registers of 64-bits and eight control registers of 32-bits. All registers are accessed through standard ARM architecture coprocessor mapping mechanism. iwMMXt occupies coprocessors 0 and 1 space, and some of its opcodes clash with

3080-591: The IA-32 as a compatibility mode and includes the SSE2 in its specification. It also doubles the number of XMM registers, allowing for better performance. SSE2 is also a requirement for installing Windows 8 (and later) or Microsoft Office 2013 (and later) "to enhance the reliability of third-party apps and drivers running in Windows 8". The following IA-32 CPUs support SSE2: The following IA-32 CPUs were released after SSE2

3168-665: The Intel i750 video pixel processor. MMX is a processor supplementary capability that is supported on IA-32 processors by Intel and other vendors as of 1997 . AMD also added MMX instruction set in its K6 processor. The New York Times described the initial push, including Super Bowl advertisements, as focused on "a new generation of glitzy multimedia products, including videophones and 3-D video games." MMX has subsequently been extended by several programs by Intel and others: 3DNow! , Streaming SIMD Extensions (SSE), and ongoing revisions of Advanced Vector Extensions (AVX). MMX

3256-462: The Intel i860 , the use of integer math made sense (both 2D and 3D calculations required it), but as graphics cards that did much of this became common, integer SIMD in the CPU became somewhat redundant for graphical applications. Alternatively, the saturation arithmetic operations in MMX could significantly speed up some digital signal processing applications. To avoid compatibility problems with

3344-435: The city of the same name ). It includes an upgrade to the .NET Framework, version 1.1, and is the first release to support developing programs for mobile devices, using ASP.NET or the .NET Compact Framework. The Visual C++ compiler's standards-compliance improved, especially in the area of partial template specialization . Visual C++ Toolkit 2003 is a version of the same C++ compiler shipped with Visual Studio .NET 2003 without

3432-519: The context switch mechanisms in existing operating systems, the MMX registers are aliases for the existing x87 floating-point unit (FPU) registers, which context switches would already save and restore. Unlike the x87 registers, which behave like a stack , the MMX registers are each directly addressable (random access). Any operation involving the floating-point stack might also affect the MMX registers and vice versa, so this aliasing makes it difficult to work with floating-point and SIMD operations in

3520-593: The software development lifecycle (like the Azure DevOps client: Team Explorer). Visual Studio supports 36 different programming languages and allows the code editor and debugger to support (to varying degrees) nearly any programming language, provided a language-specific service exists. Built-in languages include C , C++ , C++/CLI , Visual Basic .NET , C# , F# , JavaScript , TypeScript , XML , XSLT , HTML , and CSS . Support for other languages such as Python , Ruby , Node.js , and M among others

3608-401: The "Deployment Designer" which allows application designs to be validated before deployments, an improved environment for web publishing when combined with ASP.NET 2.0 and load testing to see application performance under various sorts of user loads. Starting with the 2005 edition, Visual Studio also added extensive 64-bit support. While the host development environment itself is only available as

SSE2 - Misplaced Pages Continue

3696-505: The Community edition. The following uses also allow unlimited usage: contributing to Open Source projects, academic research, in a classroom learning environment and for developing and testing device drivers for the Windows operating system. All other use by an organization depends on its classification as an Enterprise (more than 250 employees or more than 1 million USD in annual revenue, per Microsoft). Non-Enterprises may use up to 5 copies without restriction, user number 6 and higher require

3784-780: The IDE is also responsible for coordinating and enabling communication between services. All editors, designers, project types and other tools are implemented as VSPackages. Visual Studio uses COM to access the VSPackages. The Visual Studio SDK also includes the Managed Package Framework ( MPF ), which is a set of managed wrappers around the COM-interfaces that allow the Packages to be written in any CLI compliant language . However, MPF does not provide all

3872-536: The IDE that Microsoft made freely available. As of 2010 it is no longer available and the Express Editions have superseded it. Visual Studio .NET 2003 also supports Managed C++, which is the predecessor of C++/CLI. The internal version number of Visual Studio .NET 2003 is version 7.1 while the file format version is 8.0. Visual Studio .NET 2003 drops support for Windows NT 4.0, and is the last version to support Windows 2000 SP3 and Windows XP before SP2 and

3960-480: The IDE via COM and can be created in any COM-compliant languages. Packages are created using the Visual Studio SDK and provide the highest level of extensibility. They can create designers and other tools, as well as integrate other programming languages. The Visual Studio SDK provides unmanaged APIs as well as a managed API to accomplish these tasks. However, the managed API isn't as comprehensive as

4048-788: The MMX register and instruction set. However, the new XMM register-file allowed SSE SIMD-operations to be freely mixed with either MMX or x87 FPU ops. Streaming SIMD Extensions 2 ( SSE2 ), introduced with the Pentium 4 , further extended the x86 SIMD instruction set with integer (8/16/32 bit) and double-precision floating-point data support for the XMM register file. SSE2 also allowed the MMX operation codes ( opcodes ) to use XMM register operands, extended to even wider YMM and ZMM registers by later SSE revisions. Intel's and Marvell Technology Group 's XScale microprocessor core starting with PXA270 include an SIMD instruction set architecture extension to

4136-509: The MPF includes wrappers for writing managed language services. Visual Studio does not include any source control support built in but it defines two alternative ways for source control systems to integrate with the IDE. A Source Control VSPackage can provide its own customised user interface. In contrast, a source control plugin using the MSSCCI (Microsoft Source Code Control Interface) provides

4224-690: The STL/CLR, which is a port of the C++ Standard Template Library (STL) containers and algorithms to managed code . STL/CLR defines STL-like containers, iterators and algorithms that work on C++/CLI managed objects. Visual Studio 2008 features include an XAML -based designer (codenamed Cider ), workflow designer , LINQ to SQL designer (for defining the type mappings and object encapsulation for SQL Server data), XSLT debugger, JavaScript Intellisense support, JavaScript Debugging support, support for UAC manifests ,

4312-436: The Visual Studio 2008 IDE is available under a shared source license to some of Microsoft 's partners and ISVs . Microsoft released Service Pack 1 for Visual Studio 2008 on August 11, 2008. The internal version number of Visual Studio 2008 is version 9.0 while the file format version is 10.0. Visual Studio 2008 requires Windows XP Service Pack 2 plus Windows Installer 3.1, Windows Server 2003 Service Pack 1 or later. It

4400-611: The Windows Forms part of the .NET Framework), the Web (using ASP.NET and Web Services ) and, with an add-in, portable devices (using the .NET Compact Framework). The internal version number of Visual Studio .NET 2002 is version 7.0. Microsoft released Service Pack 1 for Visual Studio .NET 2002 in March 2005. In April 2003, Microsoft introduced a minor upgrade to Visual Studio .NET called Visual Studio .NET 2003, codenamed Everett (for

4488-481: The assembly runs on. Visual Studio 2008 also includes new code analysis tools, including the new Code Metrics tool (only in Team Edition and Team Suite Edition). For Visual C++ , Visual Studio adds a new version of Microsoft Foundation Classes (MFC 9.0) that adds support for the visual styles and UI controls introduced with Windows Vista . For native and managed code interoperability, Visual C++ introduces

SECTION 50

#1732772408467

4576-441: The code window, along with indicating the location of the currently executing instruction in the current thread, the currently executing instructions in other threads are also pointed out. The Visual Studio debugger supports integrated debugging of the .NET 3.5 Framework Base Class Library (BCL) which can dynamically download the BCL source code and debug symbols and allow stepping into the BCL source during debugging. As of 2010

4664-522: The development of applications. These tools include: Microsoft Visual Studio can write high-quality code with comprehensive testing tools to aid in the development of applications. These tools include: Unit testing , IntelliTest, Live Unit Testing, Test Explorer, CodeLens test indicators, code coverage analysis, Fakes. Visual Studio allows developers to write extensions for Visual Studio to extend its capabilities. These extensions "plug into" Visual Studio and extend its functionality. Extensions come in

4752-478: The development on the platform independent .NET Framework . Visual Studio 6.0 was the last version to include Visual J++, which Microsoft removed as part of a settlement with Sun Microsystems that required Microsoft Internet Explorer not to provide support for the Java Virtual Machine . Visual Studio 6.0 came in two editions: Professional and Enterprise. The Enterprise edition contained extra features not found in Professional edition, including: Visual Studio

4840-533: The different AppIds. The Visual Studio Express edition products are installed with their own AppIds, but the Standard, Professional, and Team Suite products share the same AppId. Consequently, one can install the Express editions side-by-side with other editions, unlike the other editions which update the same installation. The professional edition includes a superset of the VSPackages in the standard edition, and

4928-595: The environment (each with its own set of VSPackages). The instances use different registry hives (see MSDN 's definition of the term "registry hive " in the sense used here) to store their configuration state and are differentiated by their AppId (Application ID). The instances are launched by an AppId-specific .exe that selects the AppId, sets the root hive, and launches the IDE. VSPackages registered for one AppId are integrated with other VSPackages for that AppId. The various product editions of Visual Studio are created using

5016-437: The extensions to help assess the quality of extensions being posted. An extension is stored in a VSIX file. Internally a VSIX file is a ZIP file that contains some XML files, and possibly one or more DLL's. One of the main advantages of these extensions is that they do not require Administrator rights to be installed. RSS feeds to notify users on updates to the site and tagging features are also planned. Microsoft Visual Studio

5104-528: The first problem by adding an instruction in SSE3 to reduce the overhead of accessing unaligned data and improving the overall performance of misaligned loads, and the last problem by widening the execution engine in their Core microarchitecture in Core 2 Duo and later products. Since MMX and x87 register files alias one another, using MMX will prevent x87 instructions from working as desired. Once MMX has been used,

5192-463: The floating-point representation. This can be used by software to decide whether a given register's content is intended as floating-point or SIMD data. Software support for MMX developed slowly. Intel's C Compiler and related development tools obtained intrinsics for invoking MMX instructions and Intel released libraries of common vectorized algorithms using MMX. Both Intel and Metrowerks attempted automatic vectorization in their compilers, but

5280-461: The floating-point routine to fail, returning NaN. Since the problem is not locally apparent in the MMX code, finding and correcting the bug can be very time consuming. As SSE2 does not have this problem and it usually provides much better throughput and provides more registers in 64-bit code, it should be preferred for nearly all vectorization work. When introduced in 2000, SSE2 was not supported by software development tools. For example, to use SSE2 in

5368-513: The form of macros , add-ins , and packages . Macros represent repeatable tasks and actions that developers can record programmatically for saving, replaying, and distributing. Macros, however, cannot implement new commands or create tool windows. They are written using Visual Basic and are not compiled. Add-Ins provide access to the Visual Studio object model and can interact with the IDE tools. Add-Ins can be used to implement new functionality and can add new tool windows. Add-Ins are plugged into

SECTION 60

#1732772408467

5456-818: The functionality exposed by the Visual Studio COM interfaces. The services can then be consumed for creation of other packages, which add functionality to the Visual Studio IDE. Support for programming languages is added by using a specific VSPackage called a Language Service . A language service defines various interfaces which the VSPackage implementation can implement to add support for various functionalities. Functionalities that can be added this way include syntax coloring, statement completion, brace matching, parameter information tooltips, member lists, and error markers for background compilation. If

5544-545: The installation. The Isolated mode of the shell creates a new AppId where the packages are installed. These are to be started with a different executable. It is aimed for development of custom development environments, either for a specific language or a specific scenario. The Integrated mode installs the packages into the AppId of the Professional/Standard/Team System editions, so that the tools integrate into these editions. The Visual Studio Shell

5632-506: The interface is implemented, the functionality will be available for the language. Language services are implemented on a per-language basis. The implementations can reuse code from the parser or the compiler for the language. Language services can be implemented either in native code or managed code . For native code, either the native COM interfaces or the Babel Framework (part of Visual Studio SDK) can be used. For managed code,

5720-475: The introduction of their Opteron and Athlon 64 ranges of AMD64 64-bit CPUs in 2003. SSE2 was extended to create SSE3 in 2004, and extended once again to create SSE4 in 2006. Most of the SSE2 instructions implement the integer vector operations also found in MMX. Instead of the MMX registers they use the XMM registers, which are wider and allow for significant performance improvements in specialized applications. Another advantage of replacing MMX with SSE2

5808-450: The only version to support Windows 7 before SP1 and Windows Server 2008 R2 before SP1. The Visual Studio 2010 IDE was redesigned which, according to Microsoft , clears the UI organization and "reduces clutter and complexity." The new IDE better supports multiple document windows and floating tool windows, while offering better multi-monitor support. The IDE shell has been rewritten using

5896-714: The only version to support Windows Server 2003 before SP1. Visual Studio .NET 2003 shipped in five editions: Academic, Standard, Professional, Enterprise Developer, and Enterprise Architect. The Visual Studio .NET 2003 Enterprise Architect edition includes an implementation of Microsoft Visio 2002's modeling technologies, including tools for creating Unified Modeling Language -based visual representations of an application's architecture, and an object-role modeling (ORM) and logical database-modeling solution. "Enterprise Templates" were also introduced, to help larger development teams standardize coding styles and enforce policies around component usage and property settings. Service Pack 1

5984-683: The opcodes of the earlier floating-point extension, FPA. Later versions of Marvell's ARM processors support both Wireless MMX (WMMX) and Wireless MMX2 (WMMX2) opcodes. Microsoft Visual Studio Visual Studio is an integrated development environment (IDE) developed by Microsoft . It is used to develop computer programs including websites , web apps , web services and mobile apps . Visual Studio uses Microsoft software development platforms including Windows API , Windows Forms , Windows Presentation Foundation (WPF), Microsoft Store and Microsoft Silverlight . It can produce both native code and managed code . Visual Studio includes

6072-552: The operations in the C programming language mapped poorly onto the MMX instruction set and custom algorithms as of 2000 typically still had to be written in assembly language . AMD, a competing x86 microprocessor vendor, enhanced Intel's MMX with their own 3DNow! instruction set. 3DNow is best known for adding single-precision (32-bit) floating-point support to the SIMD instruction-set, among other integer and more general enhancements. Following MMX, Intel's next major x86 extension

6160-548: The professional edition has three CDs, and the enterprise four CDs. It included Visual J++ 1.1 for Java programming and introduced Visual InterDev for creating dynamically generated web sites using Active Server Pages. There was a single companion CD that contained the Microsoft Developer Network library . Visual Studio 97 is only compatible with Windows 95 and Windows NT 4.0 . It is the last version to support Windows NT 4.0 before SP3. Visual Studio 97

6248-408: The programmer must use the emms instruction (C: _mm_empty()) to restore operation to the x87 register file. On some operating systems, x87 is not used very much, but may still be used in some critical areas like pow() where the extra precision is needed. In such cases, the corrupt floating-point state caused by failure to emit emms may go undetected for millions of instructions before ultimately causing

6336-437: The same program. To maximize performance, software often used the processor exclusively in one mode or the other, deferring the relatively slow switch between them as long as possible. Each 64-bit MMX register corresponds to the mantissa part of an 80-bit x87 register. The upper 16 bits of the x87 registers thus go unused in MMX, and these bits are all set to ones, making them Not a Number ( NaN ) data types, or infinities in

6424-505: The target supports those instructions. Automatic vectorization for SSE/SSE2 has been added since GCC 4. The Sun Studio Compiler Suite can also generate SSE2 instructions when the compiler flag -xvector=simd is used. Since Microsoft Visual C++ 2012, the compiler option to generate SSE2 instructions is turned on by default. SSE2 is an extension of the IA-32 architecture, based on the x86 instruction set . Therefore, only x86 processors can include SSE2. The AMD64 architecture supports

6512-626: The team suite includes a superset of the VSPackages in both other editions. The AppId system is leveraged by the Visual Studio Shell in Visual Studio 2008. Visual Studio includes a code editor that supports syntax highlighting and code completion using IntelliSense for variables , functions , methods , loops , and LINQ queries. IntelliSense is supported for the included languages, as well as for XML , Cascading Style Sheets , and JavaScript when developing web sites and web applications . Autocomplete suggestions appear in

6600-442: The unmanaged one. Extensions are supported in the Standard (and higher) versions of Visual Studio 2005. Express Editions do not support hosting extensions. Visual Studio 2008 introduced the Visual Studio Shell that allows for development of a customized version of the IDE. The Visual Studio Shell defines a set of VSPackages that provide the functionality required in any IDE. On top of that, other packages can be added to customize

6688-443: The x87 FPU is a scalar unit only whereas SSE2 can process a small vector of operands in parallel. If code designed for x87 is ported to the lower precision double precision SSE2 floating point, certain combinations of math operations or input datasets can result in measurable numerical deviation, which can be an issue in reproducible scientific computations, e.g. if the calculation results must be compared against results generated from

6776-498: Was Visual Studio 97. Before that, Visual Basic, Visual C++, Visual FoxPro and Visual SourceSafe were sold as separate products. Microsoft first released Visual Studio (codenamed Boston , for the city of the same name , thus beginning the VS codenames related to places) in 1997, bundling many of its programming tools together for the first time. Visual Studio 97 came in two editions: Visual Studio Professional and Visual Studio Enterprise,

6864-486: Was added to all editions in Visual Studio 2010. Development for Windows Mobile is no longer supported in Visual Studio 2010. It is superseded by Windows Phone 7 . In addition to the features provided by the Professional edition, the Enterprise edition provides a new set of software development, database development, collaboration, metrics, architecture, testing and reporting tools. The first version of Visual Studio

6952-582: Was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and Visual FoxPro. Microsoft released Visual Studio .NET (VS.NET), codenamed Rainier (for Washington's Mount Rainier ), in February 2002 (the beta version was released via Microsoft Developer Network in 2001). The biggest change was the introduction of a managed code development environment using the .NET Framework. Programs developed using .NET are not compiled to machine language (like C++ is, for example) but instead to

7040-518: Was an attempt at using the same development environment for multiple languages. Visual J++, InterDev, and the MSDN Library had all been using the same 'environment', called Developer Studio. Visual Studio was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and Visual FoxPro. The next version, version 6.0 (codenamed Aspen , after the ski resort in Colorado),

7128-429: Was dependent on implementation details such as when registers were spilled to memory. SSE2 extends MMX instructions to operate on XMM registers. Therefore, it is possible to convert all existing MMX code to an SSE2 equivalent. Since an SSE2 register is twice as long as an MMX register, loop counters and memory access may need to be changed to accommodate this. However, 8 byte loads and stores to XMM are available, so this

7216-412: Was developed, but did not implement it: MMX (instruction set) MMX is a single instruction, multiple data ( SIMD ) instruction set architecture designed by Intel , introduced on January 8, 1997 with its Pentium P5 (microarchitecture) based line of microprocessors , named "Pentium with MMX Technology". It developed out of a similar unit introduced on the Intel i860 , and earlier

7304-676: Was released September 13, 2006. Visual Studio 2005, codenamed Whidbey (a reference to Whidbey Island in Puget Sound region ), was released online in October 2005 and to retail stores a few weeks later. Microsoft removed the ".NET" moniker from Visual Studio 2005 (as well as every other product with .NET in its name), but it still primarily targets the .NET Framework, which was upgraded to version 2.0. It requires Windows 2000 with Service Pack 4, Windows XP with at least Service Pack 2 or Windows Server 2003 with at least Service Pack 1. It

7392-550: Was released in April 2008. It is significantly different from the first version, including features such as dynamic programming and support for WPF , WCF , WF , LINQ , and .NET 3.5 Framework. Visual Studio 2008, and Visual Studio Team System 2008 codenamed Orcas (a reference to Orcas Island , also an island in Puget Sound region , like Whidbey for the previous 2005 release), were released to MSDN subscribers on November 19, 2007, alongside .NET Framework 3.5. The source code for

7480-569: Was released in June 1998 and is the last version to support the Windows 9x platform, as well as Windows NT 4.0 before SP6, but after SP2. Each version of each language in part also settled to v6.0, including Visual J++ which was prior v1.1, and Visual InterDev at the first release. The v6 edition of Microsoft was the core environment for the next four releases to provide programmers with an integrated look-alike platform. This led Microsoft to transition

7568-497: Was released separately some time after the release of Visual Studio 2008. Visual Studio Debugger includes features targeting easier debugging of multi-threaded applications. In debugging mode, in the Threads window, which lists all the threads, hovering over a thread displays the stack trace of that thread in tooltips. The threads can directly be named and flagged for easier identification from that window itself. In addition, in

7656-625: Was the Streaming SIMD Extensions (SSE), introduced with the Pentium III family in 1999, roughly a year after AMD's 3DNow! was introduced. SSE addressed the core shortcomings of MMX (inability to mix integer-SIMD ops with any floating-point ops) by creating a new 128-bit wide register file (XMM0–XMM7) and new SIMD instructions for it. Like 3DNow!, SSE focused exclusively on single-precision floating-point operations (32-bit); integer SIMD operations were still performed using

7744-464: Was upgraded to support all the new features introduced in .NET Framework 2.0, including generics and ASP.NET 2.0. The IntelliSense feature in Visual Studio was upgraded for generics and new project types were added to support ASP.NET web services. Visual Studio 2005 additionally introduces support for a new task-based build platform called Microsoft Build Engine ( MSBuild ) which employs a new XML-based project file format. Visual Studio 2005 also includes

#466533