In Using the GNU Compiler Collection (GCC)

Total Page:16

File Type:pdf, Size:1020Kb

In Using the GNU Compiler Collection (GCC) Using the GNU Compiler Collection For gcc version 4.9.3 (GCC) Richard M. Stallman and the GCC Developer Community Published by: GNU Press Website: http://www.gnupress.org a division of the General: [email protected] Free Software Foundation Orders: [email protected] 51 Franklin Street, Fifth Floor Tel 617-542-5942 Boston, MA 02110-1301 USA Fax 617-542-2652 Last printed October 2003 for GCC 3.3.1. Printed copies are available for $45 each. Copyright c 1988-2015 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being \Funding Free Software", the Front-Cover Texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled \GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Short Contents Introduction ::::::::::::::::::::::::::::::::::::::::::::: 1 1 Programming Languages Supported by GCC ::::::::::::::: 3 2 Language Standards Supported by GCC :::::::::::::::::: 5 3 GCC Command Options ::::::::::::::::::::::::::::::: 9 4 C Implementation-defined behavior ::::::::::::::::::::: 343 5 C++ Implementation-defined behavior :::::::::::::::::: 351 6 Extensions to the C Language Family ::::::::::::::::::: 353 7 Extensions to the C++ Language :::::::::::::::::::::: 709 8 GNU Objective-C features :::::::::::::::::::::::::::: 723 9 Binary Compatibility :::::::::::::::::::::::::::::::: 739 10 gcov|a Test Coverage Program ::::::::::::::::::::::: 743 11 Known Causes of Trouble with GCC :::::::::::::::::::: 753 12 Reporting Bugs ::::::::::::::::::::::::::::::::::::: 769 13 How To Get Help with GCC :::::::::::::::::::::::::: 771 14 Contributing to GCC Development ::::::::::::::::::::: 773 Funding Free Software ::::::::::::::::::::::::::::::::::: 775 The GNU Project and GNU/Linux::::::::::::::::::::::::: 777 GNU General Public License :::::::::::::::::::::::::::::: 779 GNU Free Documentation License ::::::::::::::::::::::::: 791 Contributors to GCC :::::::::::::::::::::::::::::::::::: 799 Option Index :::::::::::::::::::::::::::::::::::::::::: 815 Keyword Index ::::::::::::::::::::::::::::::::::::::::: 835 iii Table of Contents Introduction :::::::::::::::::::::::::::::::::::::::: 1 1 Programming Languages Supported by GCC ::::::::::::::::::::::::::::::::::::::::::::::::: 3 2 Language Standards Supported by GCC ::::: 5 2.1 C language::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 2.2 C++ language ::::::::::::::::::::::::::::::::::::::::::::::::: 6 2.3 Objective-C and Objective-C++ languages ::::::::::::::::::::: 7 2.4 Go language ::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.5 References for other languages :::::::::::::::::::::::::::::::::: 8 3 GCC Command Options ::::::::::::::::::::::: 9 3.1 Option Summary::::::::::::::::::::::::::::::::::::::::::::::: 9 3.2 Options Controlling the Kind of Output ::::::::::::::::::::::: 25 3.3 Compiling C++ Programs :::::::::::::::::::::::::::::::::::: 31 3.4 Options Controlling C Dialect ::::::::::::::::::::::::::::::::: 31 3.5 Options Controlling C++ Dialect ::::::::::::::::::::::::::::: 37 3.6 Options Controlling Objective-C and Objective-C++ Dialects :: 48 3.7 Options to Control Diagnostic Messages Formatting ::::::::::: 52 3.8 Options to Request or Suppress Warnings ::::::::::::::::::::: 53 3.9 Options for Debugging Your Program or GCC ::::::::::::::::: 78 3.10 Options That Control Optimization ::::::::::::::::::::::::: 101 3.11 Options Controlling the Preprocessor:::::::::::::::::::::::: 155 3.12 Passing Options to the Assembler ::::::::::::::::::::::::::: 167 3.13 Options for Linking ::::::::::::::::::::::::::::::::::::::::: 167 3.14 Options for Directory Search :::::::::::::::::::::::::::::::: 171 3.15 Specifying subprocesses and the switches to pass to them :::: 173 3.16 Specifying Target Machine and Compiler Version :::::::::::: 180 3.17 Hardware Models and Configurations ::::::::::::::::::::::: 181 3.17.1 AArch64 Options :::::::::::::::::::::::::::::::::::::: 181 3.17.1.1 `-march' and `-mcpu' feature modifiers ::::::::::::: 183 3.17.2 Adapteva Epiphany Options ::::::::::::::::::::::::::: 183 3.17.3 ARC Options :::::::::::::::::::::::::::::::::::::::::: 185 3.17.4 ARM Options:::::::::::::::::::::::::::::::::::::::::: 191 3.17.5 AVR Options :::::::::::::::::::::::::::::::::::::::::: 197 3.17.5.1 EIND and Devices with more than 128 Ki Bytes of Flash :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 200 3.17.5.2 Handling of the RAMPD, RAMPX, RAMPY and RAMPZ Special Function Registers:::::::::::::::::::::::::::::::::::::: 202 3.17.5.3 AVR Built-in Macros:::::::::::::::::::::::::::::: 202 3.17.6 Blackfin Options ::::::::::::::::::::::::::::::::::::::: 204 iv Using the GNU Compiler Collection (GCC) 3.17.7 C6X Options::::::::::::::::::::::::::::::::::::::::::: 207 3.17.8 CRIS Options:::::::::::::::::::::::::::::::::::::::::: 208 3.17.9 CR16 Options ::::::::::::::::::::::::::::::::::::::::: 210 3.17.10 Darwin Options::::::::::::::::::::::::::::::::::::::: 210 3.17.11 DEC Alpha Options :::::::::::::::::::::::::::::::::: 214 3.17.12 FR30 Options :::::::::::::::::::::::::::::::::::::::: 218 3.17.13 FRV Options ::::::::::::::::::::::::::::::::::::::::: 218 3.17.14 GNU/Linux Options :::::::::::::::::::::::::::::::::: 222 3.17.15 H8/300 Options::::::::::::::::::::::::::::::::::::::: 223 3.17.16 HPPA Options:::::::::::::::::::::::::::::::::::::::: 223 3.17.17 Intel 386 and AMD x86-64 Options ::::::::::::::::::: 226 3.17.18 i386 and x86-64 Windows Options :::::::::::::::::::: 243 3.17.19 IA-64 Options :::::::::::::::::::::::::::::::::::::::: 244 3.17.20 LM32 Options :::::::::::::::::::::::::::::::::::::::: 248 3.17.21 M32C Options :::::::::::::::::::::::::::::::::::::::: 248 3.17.22 M32R/D Options ::::::::::::::::::::::::::::::::::::: 249 3.17.23 M680x0 Options :::::::::::::::::::::::::::::::::::::: 250 3.17.24 MCore Options ::::::::::::::::::::::::::::::::::::::: 255 3.17.25 MeP Options ::::::::::::::::::::::::::::::::::::::::: 256 3.17.26 MicroBlaze Options ::::::::::::::::::::::::::::::::::: 258 3.17.27 MIPS Options :::::::::::::::::::::::::::::::::::::::: 259 3.17.28 MMIX Options ::::::::::::::::::::::::::::::::::::::: 272 3.17.29 MN10300 Options :::::::::::::::::::::::::::::::::::: 273 3.17.30 Moxie Options :::::::::::::::::::::::::::::::::::::::: 274 3.17.31 MSP430 Options:::::::::::::::::::::::::::::::::::::: 274 3.17.32 NDS32 Options ::::::::::::::::::::::::::::::::::::::: 275 3.17.33 Nios II Options ::::::::::::::::::::::::::::::::::::::: 277 3.17.34 PDP-11 Options :::::::::::::::::::::::::::::::::::::: 280 3.17.35 picoChip Options ::::::::::::::::::::::::::::::::::::: 281 3.17.36 PowerPC Options::::::::::::::::::::::::::::::::::::: 282 3.17.37 RL78 Options::::::::::::::::::::::::::::::::::::::::: 282 3.17.38 IBM RS/6000 and PowerPC Options :::::::::::::::::: 282 3.17.39 RX Options :::::::::::::::::::::::::::::::::::::::::: 297 3.17.40 S/390 and zSeries Options :::::::::::::::::::::::::::: 300 3.17.41 Score Options::::::::::::::::::::::::::::::::::::::::: 303 3.17.42 SH Options ::::::::::::::::::::::::::::::::::::::::::: 303 3.17.43 Solaris 2 Options ::::::::::::::::::::::::::::::::::::: 312 3.17.44 SPARC Options :::::::::::::::::::::::::::::::::::::: 312 3.17.45 SPU Options ::::::::::::::::::::::::::::::::::::::::: 317 3.17.46 Options for System V ::::::::::::::::::::::::::::::::: 319 3.17.47 TILE-Gx Options ::::::::::::::::::::::::::::::::::::: 319 3.17.48 TILEPro Options ::::::::::::::::::::::::::::::::::::: 320 3.17.49 V850 Options ::::::::::::::::::::::::::::::::::::::::: 320 3.17.50 VAX Options ::::::::::::::::::::::::::::::::::::::::: 323 3.17.51 VMS Options ::::::::::::::::::::::::::::::::::::::::: 323 3.17.52 VxWorks Options ::::::::::::::::::::::::::::::::::::: 323 3.17.53 x86-64 Options ::::::::::::::::::::::::::::::::::::::: 324 3.17.54 Xstormy16 Options ::::::::::::::::::::::::::::::::::: 324 v 3.17.55 Xtensa Options ::::::::::::::::::::::::::::::::::::::: 324 3.17.56 zSeries Options ::::::::::::::::::::::::::::::::::::::: 326 3.18 Options for Code Generation Conventions ::::::::::::::::::: 326 3.19 Environment Variables Affecting GCC :::::::::::::::::::::: 336 3.20 Using Precompiled Headers ::::::::::::::::::::::::::::::::: 339 4 C Implementation-defined behavior :::::::: 343 4.1 Translation :::::::::::::::::::::::::::::::::::::::::::::::::: 343 4.2 Environment::::::::::::::::::::::::::::::::::::::::::::::::: 343 4.3 Identifiers:::::::::::::::::::::::::::::::::::::::::::::::::::: 343 4.4 Characters ::::::::::::::::::::::::::::::::::::::::::::::::::: 344 4.5 Integers:::::::::::::::::::::::::::::::::::::::::::::::::::::: 345 4.6 Floating point ::::::::::::::::::::::::::::::::::::::::::::::: 345 4.7 Arrays and pointers :::::::::::::::::::::::::::::::::::::::::: 346 4.8 Hints :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 347 4.9 Structures, unions, enumerations, and bit-fields ::::::::::::::: 347 4.10 Qualifiers ::::::::::::::::::::::::::::::::::::::::::::::::::: 348 4.11 Declarators ::::::::::::::::::::::::::::::::::::::::::::::::: 349 4.12 Statements ::::::::::::::::::::::::::::::::::::::::::::::::: 349 4.13 Preprocessing directives :::::::::::::::::::::::::::::::::::::
Recommended publications
  • Using the GNU Compiler Collection (GCC)
    Using the GNU Compiler Collection (GCC) Using the GNU Compiler Collection by Richard M. Stallman and the GCC Developer Community Last updated 23 May 2004 for GCC 3.4.6 For GCC Version 3.4.6 Published by: GNU Press Website: www.gnupress.org a division of the General: [email protected] Free Software Foundation Orders: [email protected] 59 Temple Place Suite 330 Tel 617-542-5942 Boston, MA 02111-1307 USA Fax 617-542-2652 Last printed October 2003 for GCC 3.3.1. Printed copies are available for $45 each. Copyright c 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being \GNU General Public License" and \Funding Free Software", the Front-Cover texts being (a) (see below), and with the Back-Cover Texts being (b) (see below). A copy of the license is included in the section entitled \GNU Free Documentation License". (a) The FSF's Front-Cover Text is: A GNU Manual (b) The FSF's Back-Cover Text is: You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free Software Foundation raise funds for GNU development. i Short Contents Introduction ...................................... 1 1 Programming Languages Supported by GCC ............ 3 2 Language Standards Supported by GCC ............... 5 3 GCC Command Options .........................
    [Show full text]
  • SIMD Extensions
    SIMD Extensions PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Sat, 12 May 2012 17:14:46 UTC Contents Articles SIMD 1 MMX (instruction set) 6 3DNow! 8 Streaming SIMD Extensions 12 SSE2 16 SSE3 18 SSSE3 20 SSE4 22 SSE5 26 Advanced Vector Extensions 28 CVT16 instruction set 31 XOP instruction set 31 References Article Sources and Contributors 33 Image Sources, Licenses and Contributors 34 Article Licenses License 35 SIMD 1 SIMD Single instruction Multiple instruction Single data SISD MISD Multiple data SIMD MIMD Single instruction, multiple data (SIMD), is a class of parallel computers in Flynn's taxonomy. It describes computers with multiple processing elements that perform the same operation on multiple data simultaneously. Thus, such machines exploit data level parallelism. History The first use of SIMD instructions was in vector supercomputers of the early 1970s such as the CDC Star-100 and the Texas Instruments ASC, which could operate on a vector of data with a single instruction. Vector processing was especially popularized by Cray in the 1970s and 1980s. Vector-processing architectures are now considered separate from SIMD machines, based on the fact that vector machines processed the vectors one word at a time through pipelined processors (though still based on a single instruction), whereas modern SIMD machines process all elements of the vector simultaneously.[1] The first era of modern SIMD machines was characterized by massively parallel processing-style supercomputers such as the Thinking Machines CM-1 and CM-2. These machines had many limited-functionality processors that would work in parallel.
    [Show full text]
  • How Microprocessors Work E 1 of 64 ZM
    How Microprocessors Work e 1 of 64 ZM How Microprocessors Work ZAHIDMEHBOOB +923215020706 [email protected] 2003 BS(IT) PRESTION UNIVERSITY How Microprocessors Work The computer you are using to read this page uses a microprocessor to do its work. The microprocessor is the heart of any normal computer, whether it is a desktop machine, a server or a laptop. The microprocessor you are using might be a Pentium, a K6, a PowerPC, a Sparc or any of the many other brands and types of microprocessors, but they all do approximately the same thing in approximately the same way. If you have ever wondered what the microprocessor in your computer is doing, or if you have ever wondered about the differences between types of microprocessors, then read on. Microprocessor History A microprocessor -- also known as a CPU or central processing unit -- is a complete computation engine that is fabricated on a single chip. The first microprocessor was the Intel [email protected] +923215020706 (2003) How Microprocessors Work e 2 of 64 ZM 4004, introduced in 1971. The 4004 was not very powerful -- all it could do was add and subtract, and it could only do that 4 bits at a time. But it was amazing that everything was on one chip. Prior to the 4004, engineers built computers either from collections of chips or from discrete components (transistors wired one at a time). The 4004 powered one of the first portable electronic calculators. The first microprocessor to make it into a home computer was the Intel 8080, a complete 8- bit computer on one chip, introduced in 1974.
    [Show full text]
  • Read the Thesis
    Making compiler tests based on compiler source code coverage Jelle Witsen Elias [email protected] January 19, 2021, 33 pages Academic supervisor: Clemens Grelck, [email protected] Daily supervisors: Jos´eLuis March Cabrelles, [email protected] Remi van Veen, [email protected] Host organisation: Solid Sands, www.solidsands.nl Universiteit van Amsterdam Faculteit der Natuurwetenschappen, Wiskunde en Informatica Master Software Engineering http://www.software-engineering-amsterdam.nl Abstract Compilers are important elements in software infrastructure. It is therefore important that these complex pieces of software are tested. We found a way of making C compiler tests that is different from the usual approach of doing this. With our new process we base new tests on their coverage of compiler source code, instead of constructing them by solely looking at the rules defined in language standards. This way, we manage to make tests with constructions that were overlooked when building our existing compiler test suites. We built a tool that takes source code of a C application as input, along with a C compiler test suite. The tool outputs pieces of code which, when compiled, cover parts of compiler source code that the test suite does not yet cover. With this output, we can construct new tests for inclusion in our existing test suite. Our process is as follows: we take an open source C application and compile its sources with an open source compiler. This compiler has been instrumented to enable source code coverage analysis. After compilation, we compare the coverage of compiler source code of the application with coverage of our existing test suites.
    [Show full text]
  • Evolution Des X86befehlssatzes Und Seiner Erweiterungen
    Technische Universität Dresden Evolution des x86-Befehlssatzes und seiner Erweiterungen Peter Ebert Dresden, 15.07.2009 Einführung · Überblick & Historie · Konkurrierende Befehlssatzarchitekture n · Befehlsarten · Registerstruktur · x87 15.07.2009 Evolution des x86-Befehlssatzes und seiner Erweiterungen 2/24 Übersicht & Historie · IBM 1981: erster PC · x86-Architektur verwendet einen CISC-Befehlssatz · alle Prozessoren seit dem Pentium Pro sind aber hybride CISC/RISC-Prozessoren 1978 1. Gen.: 8086 1982 2. Gen.: 80286 1985 3. Gen.: 80386 IA-32 1989 4. Gen.: 80486 1993 5. Gen.: Pentium MMX 1995 6. Gen.: P2, P3 3DNow!, SSE 1999 7. Gen.: Athlon (XP), P4 SSE2 2003 8. Gen.: Opteron x86-64 15.07.2009 Evolution des x86-Befehlssatzes und seiner Erweiterungen 3/24 Konkurrierende Befehlssatzarchitekturen · ARM (Acorn Risc Machine) RISC-Architektur 1983 vom englischen Computerhersteller Acorn. Einsatz vor allem im eingebetteten Bereich z.B.: Mobiltelefonen, PDAs, Routern, iPod, iPhone, Internet Tablets von Nokia und den neueren PDAs von ASUS, Konsolen wie der Nintendo DS, der GP2X und die Pandora. · PowerPC (Performance optimization with enhanced RISC Performance Chip) 1991 durch ein Konsortium aus Apple, IBM und Motorola. z.B.: Nintendo GameCube und Wii, Xbox 360 von Microsoft, Playstation 3 von Sony und in vielen eingebetteten Systemen. Auch benutzen PKW und Produkte in der Luft- und Raumfahrt · SPARC (Scalable Processor ARChitecture) Von Sun Microsystems entwickelt ab 1985 und vermarktete ab 1987, offene Architektur, 1995 64-Bit-Erweiterung (UltraSparc) 15.07.2009 Evolution des x86-Befehlssatzes und seiner Erweiterungen 4/24 Befehlsarten · Transferbefehlen werden Daten innerhalb des Systems bewegt. Die Daten werden dabei nur kopiert, d. h. bleiben an ihrem Quellort unverändert.
    [Show full text]
  • IDT Winchip 2A Data Sheet
    Preliminary Information PROCESSOR Version A Data Sheet Preliminary Information January 1999 IDT WINCHIP 2ATM PROCESSOR DATA SHEET This is Version 1.0 of the IDT WinChip 2 version A Processor data sheet. The latest versions of this data sheet may be obtained from www.winchip.com © 1999 Integrated Device Technology, Inc. All Rights Reserved Integrated Device Technology, Inc. (IDT) reserves the right to make changes in its products without notice in order to improve design or performance characteristics. This publication neither states nor implies any representations or warranties of any kind, including but not limited to any implied warranty of merchantability or fitness for a particular purpose. No license, express or implied, to any intellectual property rights is granted by this document. IDT makes no representations or warranties with respect to the accuracy or completeness of the contents of this publication or the information contained herein, and reserves the right to make changes at any time, without notice. IDT disclaims responsibility for any consequences resulting from the use of the information included herein. LIFE SUPPORT POLICY Integrated Device Technology's products are not authorized for use as components in life support or other medical devices or systems (hereinafter life support devices) unless a specific written agreement pertaining to such intended use is executed between the manufacturer and an officer of IDT. 1. Life support devices are devices which (a) are intended for surgical implant into the body or (b) support or sustain life and whose failure to perform, when properly used in accordance with instructions for use provided in the labeling, can be reasonably expected to result in a significant injury to the user.
    [Show full text]
  • Assignment 10 — 18.11.2020 – V1.2 Dynamic Program Analysis
    SMA: Software Modeling and Analysis Prof. Dr. Oscar Nierstrasz A2020 Pascal Gadient, Pooja Rani Assignment 10 — 18.11.2020 – v1.2 Dynamic Program Analysis Please submit this exercise by email to [email protected] before 25 November 2020, 10:15am. You must submit your code as editable text, i.e., use plain text file(s). Exercise 1: Theory (1 pt) a) Suppose you have an application and you want to test all code paths with dynamic analysis. Is this approach reasonable? Justify! b) Is monkey testing a dynamic analysis technique? Justify! Exercise 2: Contracts (3 pts) In this exercise, we use the syntax and features from jContracts available here. Consider the Java code below. /** * @pre number >= 100.0 * @post return == true * @inv number < 0 || number >= 0 */ public boolean add(int number) f if (number < 10) f this.number = this.number + number; return true; g else f return false; g g a) Are the contracts for add(int number) valid, i.e., exists a configuration that passes all three checks? If yes, which configuration succeeds? If no, what is the problem? b) Can the invariant contract be removed without any side effects? If yes, why do no side-effects occur? If no, which side-effects would occur? c) Suppose you have a Java method that calculates from a given number the number multiplied by itself as shown in the code below. Design a post contract that validates the result, i.e., the contract must be violated whenever a result is wrong. public float square(int number) f return number * number; g page 1 of 5 SMA: Software Modeling and Analysis Prof.
    [Show full text]
  • Table of Contents
    Table Of Contents TABLE OF CONTENTS 1. INTRODUCTION 1.1. PREFACE ................................................................................. 1-1 1.2. KEY FEATURES ....................................................................... 1-1 1.3. PERFORMANCE LIST .............................................................. 1-3 1.4. BLOCK DIAGRAM..................................................................... 1-4 1.5. INTRODUCE THE PCI - BUS .................................................... 1-5 1.6. FEATURES ............................................................................... 1-5 1.7. What is AGP ............................................................................. 1-6 2. SPECIFICATION 2.1. HARDWARE ............................................................................. 2-1 2.2. SOFTWARE.............................................................................. 2-2 2.3. ENVIRONMENT ........................................................................ 2-2 3. HARDWARE INSTALLATION 3.1. UNPACKING............................................................................. 3-1 3.2. MAINBOARD LAYOUT.............................................................. 3-2 3.3. QUICK REFERENCE FOR JUMPERS & CONNECTORS .......... 3-3 3.4. SRAM INSTALLATION DRAM INSTALLATION.......................... 3-5 3.5. DRAM INSTALLATION.............................................................. 3-5 3.6. CPU INSTALLATION AND JUMPERS SETUP........................... 3-5 3.7. CMOS RTC & ISA CFG CMOS SRAM......................................
    [Show full text]
  • SMBIOS Specification
    1 2 Document Identifier: DSP0134 3 Date: 2019-10-31 4 Version: 3.4.0a 5 System Management BIOS (SMBIOS) Reference 6 Specification Information for Work-in-Progress version: IMPORTANT: This document is not a standard. It does not necessarily reflect the views of the DMTF or its members. Because this document is a Work in Progress, this document may still change, perhaps profoundly and without notice. This document is available for public review and comment until superseded. Provide any comments through the DMTF Feedback Portal: http://www.dmtf.org/standards/feedback 7 Supersedes: 3.3.0 8 Document Class: Normative 9 Document Status: Work in Progress 10 Document Language: en-US 11 System Management BIOS (SMBIOS) Reference Specification DSP0134 12 Copyright Notice 13 Copyright © 2000, 2002, 2004–2019 DMTF. All rights reserved. 14 DMTF is a not-for-profit association of industry members dedicated to promoting enterprise and systems 15 management and interoperability. Members and non-members may reproduce DMTF specifications and 16 documents, provided that correct attribution is given. As DMTF specifications may be revised from time to 17 time, the particular version and release date should always be noted. 18 Implementation of certain elements of this standard or proposed standard may be subject to third party 19 patent rights, including provisional patent rights (herein "patent rights"). DMTF makes no representations 20 to users of the standard as to the existence of such rights, and is not responsible to recognize, disclose, 21 or identify any or all such third party patent right, owners or claimants, nor for any incomplete or 22 inaccurate identification or disclosure of such rights, owners or claimants.
    [Show full text]
  • The X86 Is Dead. Long Live the X86!
    the x86 is dead. long live the x86! CC3.0 share-alike attribution copyright c 2013 nick black with diagrams by david kanter of http://realworldtech.com “Upon first looking into Intel’s x86” that upon which we gaze is mankind’s triumph, and we are its stewards. use it well. georgia tech ◦ summer 2013 ◦ cs4803uws ◦ nick black The x86 is dead. Long live the x86! Why study the x86? Used in a majority of servers, workstations, and laptops Receives the most focus in the kernel/toolchain Very complex processor, thus large optimization space Excellent documentation and literature Fascinating, revealing, lengthy history Do not think that x86 is all that’s gone on over the past 30 years1. That said, those who’ve chased peak on x86 can chase it anywhere. 1Commonly expressed as “All the world’s an x86.” georgia tech ◦ summer 2013 ◦ cs4803uws ◦ nick black The x86 is dead. Long live the x86! In the grim future of computing there are 10,000 ISAs Alpha + BWX/FIX/CIX/MVI SPARC V9 + VIS3a AVR32 + JVM JVMb CMS PTX/SASSc PA-RISC + MAX-2 TILE-Gxd SuperH ARM + NEONe i960 Blackfin IA64 (Itanium) PowerISA + AltiVec/VSXf MIPS + MDMX/MIPS-3D MMIX IBMHLA (s390 + z) a Most recently the “Oracle SPARC Architecture 2011”. b m68k Most recently the Java SE 7 spec, 2013-02-28. c Most recently the PTX ISA 3.1 spec, 2012-09-13. VAX + VAXVA d TILE-Gx ISA 1.2, 2013-02-26. e z80 / MOS6502 ARMv8: A64, A32, and T32, 2011-10-27. f MIX PowerISA v.2.06B, 2010-11-03.
    [Show full text]
  • IDT Winchip 3 Processor Data Sheet
    Preliminary Information PROCESSOR Data Sheet Preliminary Information April 1999 IDT WINCHIPTM 3 PROCESSOR DATA SHEET This is Version 0.9 of the IDT WinChip 3 Processor data sheet. The latest versions of this data sheet may be obtained from www.winchip.com All Rights Reserved Integrated Device Technology, Inc. (IDT) reserves the right to make changes in its products without notice in order to improve design or performance characteristics. This publication neither states nor implies any representations or warranties of any kind, including but not limited to any implied warranty of merchantability or fitness for a particular purpose. No license, express or implied, to any intellectual property rights is granted by this document. IDT makes no representations or warranties with respect to the accuracy or completeness of the contents of this publication or the information contained herein, and reserves the right to make changes at any time, without notice. IDT disclaims responsibility for any consequences resulting from the use of the information included herein. LIFE SUPPORT POLICY Integrated Device Technology's products are not authorized for use as components in life support or other medical devices or systems (hereinafter life support devices) unless a specific written agreement pertaining to such intended use is executed between the manufacturer and an officer of IDT. 1. Life support devices are devices which (a) are intended for surgical implant into the body or (b) support or sustain life and whose failure to perform, when properly used in accordance with instructions for use provided in the labeling, can be reasonably expected to result in a significant injury to the user.
    [Show full text]
  • KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs
    KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs Cristian Cadar, Daniel Dunbar, Dawson Engler ∗ Stanford University Abstract bolic values and replace corresponding concrete program operations with ones that manipulate symbolic values. We present a new symbolic execution tool, KLEE, ca- When program execution branches based on a symbolic pable of automatically generating tests that achieve value, the system (conceptually) follows both branches, high coverage on a diverse set of complex and on each path maintaining a set of constraints called the environmentally-intensive programs. We used KLEE to path condition which must hold on execution of that thoroughly check all 89 stand-alone programs in the path. When a path terminates or hits a bug, a test case GNU COREUTILS utility suite, which form the core can be generated by solving the current path condition user-level environment installed on millions of Unix sys- for concrete values. Assuming deterministic code, feed- tems, and arguably are the single most heavily tested set ing this concrete input to a raw, unmodified version of of open-source programs in existence. KLEE-generated the checked code will make it follow the same path and tests achieve high line coverage — on average over 90% hit the same bug. per tool (median: over 94%) — and significantly beat Results are promising. However, while researchers the coverage of the developers’ own hand-written test have shown such tools can sometimes get good cover- suites. When we did the same for 75 equivalent tools in age and find bugs on a small number of programs, it the BUSYBOX embedded system suite, results were even has been an open question whether the approach has any better, including 100% coverage on 31 of them.
    [Show full text]