The Spare ™ Architecture Manual Version 7
Total Page:16
File Type:pdf, Size:1020Kb
The SPARe™ Architecture Manual Version 7 SOLBOURNE COMPUTER, Inc. 2190 Miller Drive Longmont, Colorado 80501 303 772·3400 For Solboume Support Call: 1·800-447·2861 The X Window System is a trademark of MIT. Sun Mlcrosystems and Sun Workstation are registered trademarks of Sun Microsystems, Inc. Sun-3, Sun-4, SPARe, and DVMA are trademarks of Sun Microsystems, Inc. Part Number: 101482-00 September 1988 Reprinted by permission. Copyright 1988 by Solbourne Computer, Inc. All rights reserved. No part of this publication may be reproduced, stored in any media or in any type of retrieval system, transmitted in any form (e.g., electronic, mechanical, photocopying, recording) or translated into any language or computer language without the prior written permission of Solbourne Computer, Inc., 2190 Miller Drive, Longmont, Colorado 80501. There is no right to reverse engineer, decompile, or disassemble the information contained herein or in the accompanying software. Solbourne Computer, Inc. reserves the right to revise this publication and to make changes from time to time without obligation to notify any person of such reviSions or changes. TABLE OF CONTENTS SECTION 1: INTRODUCTION •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-1 1.1 Introduction 1-1 1.2 Architecture and Implementation ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-1 1.3 Features •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-1 1.4 Using This Manual ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-2 1.4.1 Contents •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-2 1.4.2 Fonts in Text •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-2 1.4.3 Notes •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-3 1.4.4 Grossary •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-3 1.4.5 References •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 1-3 SECTION 2: SPARC ARCHITECTURE OVERVIEW ...................................................... 2-1 2.1 Introduction •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-1 2.2 lU, FPU, and CP ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-1 2.3 Registers ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-3 2.4 Multitasking Support ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-3 2.5 Instruction Categories ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-3 2.5.1 Load and Store Instructions ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-3 2.5.2 Arithmetic/Logical/Shift ••••• ~ •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-3 2.5.3 Control-Transfer Instructions •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-4 2.5.4 Read/Write Control Register ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-4 2.5.5 Floating-point and Coprocessor Operate Instructions ....................................... 2-4 2.6 Processor Data Types •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-5 2.7 Traps and Exceptions ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 2-8 2.8 System Interface ............................................................................................ 2-8 SECTION 3: REGISTERS ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-1 3.1 Introduction •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-1 3.2 Integer Unit r Registers 3-1 3.2.1 Programming Note 3-1 3.3 Special r registers ••••••••••••••••••••••••••••••••••••••••••••••••••••••••• !' •••••••••••••••••••••••••••••••• 3-2 3.3.1 Programming Notes ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-2 3.4 Integer Unit Control/Status Registers ................................................................. 3-4 3.4.1 Integer Program Counters (PC and nPC) •••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-4 3.4.2 Processor State Register (PSR) •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-4 3.4.3 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-5 3.4.4 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-6 3.4.5 Window Invalid Mask Register (WIM) ........................................................... 3-6 3.4.6 Trap Base Register (TBR) ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-6 3.4.7 Y Re:gister •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-7 3.5 Floating-Point Registers •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-7 3.5.1 Floating-Point f registers •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-7 3.5.2 Floating-Point State Register (FSR) ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-7 3.5.3 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-9 3.5.4 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-11 3.5.5 FloatingooPoint Queue (FQ) ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-11 3.5.6 Implementation Note •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 3-11 iii SECTION 4: INSTRUCTIONS •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-1 4.1 Introduction •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-1 4.2 Instruction Formats •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-1 4.3 Load/Store Instructions ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-2 4.3.1 Address Space Identifier ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-2 4.3.2 Addressing Conventions •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-3 4.4 Arithmetic, Logical. and Shift Instructions •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-4 4.4.1 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-5 4.4.2 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-5 4.4.3 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-5 4.5 Control Transfer Instructions •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-5 4.5.1 Delayed Control Transfers ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-6 4.5.2 PC and nPC ............................................................................................ 4-6 4.5.3 Delay Instruction •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-6 4.5.4 Annul Bit •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-7 4.5.5 Programming Notes ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-8 4.5.6 Calls and Returns •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-8 4.5.7 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-9 4.5.8 Trap (Tice) Instruction ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-9 4.5.9 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-9 4.5.10 Delayed Control Transfers Couples ............................................................ 4-9 4.5.11 Programming Note ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-10 4.6 Read and Write Control Registers ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-11 4.7 Floating Point Operate (FPop) Instructions •••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-11 4.8 Coprocessor Operate (CPop) Instructions ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 4-11 SECTION 5: TRAPS, EXCEPTIONS, AND ERROR HANDLING ....................................... 5-1 5.1 I ntraduction •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 5-1 5.1.1 Implementation Note •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 5-1 5.2 Trap Addressing •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 5-1 5.3 Trap Priorities ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 5-2 5.4 Trap Definition •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 5-2 5.5 Interrupt Detection •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••