SPARC Instruction Set - PowerPoint PPT Presentation

About This Presentation
Title:

SPARC Instruction Set

Description:

Trap Base register. Window Invalid Mask. Two program counters (PC and nPC) SPARC Program ... Example /* This program converts temperatures between 10 and 20. in ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 21
Provided by: george354
Category:

less

Transcript and Presenter's Notes

Title: SPARC Instruction Set


1
(No Transcript)
2
SPARC Programming Model
  • 24 window registers
  • 8 global registers
  • Control registers
  • Multiply step
  • PSR (status flags, etc.)
  • Trap Base register
  • Window Invalid Mask
  • Two program counters (PC and nPC)

3
SPARC Program
/ This program converts a temperature in
Celcius to Fahrenheit. George Wells - 30 May
2003 / offs 32 / Variables c and f
are stored in l0 and l1 / .global
main main mov 24, l0 !
Initialize c 24 mov 9, o0 ! 9
into o0 for multiplication mov l0,
o1 ! c into o1 for multiplication
call .mul ! Result in o0 nop
! Delay slot mov 5, o1
! 5 into o1 for division call .div
! Result in o0 nop
! Delay slot
4
Example (cont.)
... add o0, offs, l1 ! f
result offs mov 1, g1 !
Trap dispatch ta 0 !
Trap to system
5
Filling Delay Slots
mov 9, o0 ! 9 into o0 for
multiplication mov l0, o1 ! c
into o1 for multiplication call .mul
! Result in o0 nop !
Delay slot
  • Not very efficient

6
Modified Program
main mov 24, l0 ! Initialize c
24 mov 9, o0 ! 9 into o0 for
multiplication call .mul !
Result in o0 mov l0, o1 ! c into
o1 for multiplication call .div
! Result in o0 mov 5, o1 ! 5
into o1 for division ...
7
(No Transcript)
8
3. Control Transfer Instructions
  • Branching
  • Unconditional ba bn
  • Conditional bicc
  • icc Integer Condition Codes
  • Condition flags are set explicitly by arithmetic
    and logical operations
  • E.g. addcc

9
Delayed Control Transfer
  • Increases the efficiency of pipelining

10
Example
/ This program converts temperatures between 10
and 20 in Celcius to Fahrenheit. George
Wells - 30 May 2003 / offs 32 /
Variables c and f are stored in l0 and l1 /
.global main main mov 10, l0
! Initialize c 10 loop mov
9, o0 ! 9 into o0 for .mul
call .mul ! Result in o0
mov l0, o1 ! c into o1 for .mul
call .div ! Result in o0
mov 5, o1 ! 5 into o1 for .div
. . .
11
Example (cont.)
. . . add o0, offs, l1 ! f
result offs add l0, 1, l0
! c cmp l0, 21 ! c lt 21
? bl loop nop
! Delay slot mov 1, g1
! Trap dispatch ta 0
! Trap to system
12
Annulled Branches
  • Delay slot instruction is ignored
  • Conditional if branch is not taken
  • Unconditional always annulled

13
An Annulled Branch
  • Java/C Code

while (a lt 17) a a b
14
Optimised Assembler
! Assumes a is in l0 and b is in l1 b test
! See if loop should execute nop ! Delay
slot loop test cmp l0, 17 ! a lt 17
ble,a loop ! If so branch back to start add
l0, l1, l0 ! a a b
15
(No Transcript)
16
4. Logical and Arithmetic Operations
  • Logical Operators
  • and or xor
  • xnor andn orn
  • cc to set the condition codes
  • Shift Operators
  • sra srl sll

17
Arithmetic Operators
  • Only addition and subtraction
  • addxcc
  • subxcc
  • x with carry
  • cc to set the flags

18
Multiplication
  • Long multiplication is supported by the multiply
    step instruction
  • mulscc

19
Division
  • Use the standard routines
  • .div .rem
  • .udiv .urem

20
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com