---------------------------------------------------------------------- -- FILE: RegisterName.hs -- DATE: 2/6/2001 -- PROJECT: HARM (was VARM (Virtual ARM)), for CSE240 Spring 2001 -- LANGUAGE PLATFORM: HUGS -- OS PLATFORM: RedHat Linux 6.2 -- AUTHOR: Jeffrey A. Meunier -- EMAIL: jeffm@cse.uconn.edu -- MAINTAINER: Alex Mason -- EMAIL: axman6@gmail.com ---------------------------------------------------------------------- module Arm.RegisterName ( RegisterName(..) , nthReg ) where import Data.Word import Data.Array ---------------------------------------------------------------------- -- Data type for register names. ---------------------------------------------------------------------- data RegisterName = R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 | R11 | R12 | R13 | R14 | R15 | CPSR deriving (Enum, Eq, Ix, Ord, Read) instance Show RegisterName where show r = show' r ---------------------------------------------------------------------- ---------------------------------------------------------------------- nthReg :: Word32 -> RegisterName nthReg 0 = R0 nthReg 1 = R1 nthReg 2 = R2 nthReg 3 = R3 nthReg 4 = R4 nthReg 5 = R5 nthReg 6 = R6 nthReg 7 = R7 nthReg 8 = R8 nthReg 9 = R9 nthReg 10 = R10 nthReg 11 = R11 nthReg 12 = R12 nthReg 13 = R13 nthReg 14 = R14 nthReg 15 = R15 ---------------------------------------------------------------------- -- Convert a register name to a string. ---------------------------------------------------------------------- show' R0 = "r0" show' R1 = "r1" show' R2 = "r2" show' R3 = "r3" show' R4 = "r4" show' R5 = "r5" show' R6 = "r6" show' R7 = "r7" show' R8 = "r8" show' R9 = "r9" show' R10 = "r10" show' R11 = "r11" show' R12 = "r12" show' R13 = "r13" show' R14 = "r14" show' R15 = "r15" show' CPSR = "cpsr" ---------------------------------------------------------------------- -- Convert a string to a register name. ---------------------------------------------------------------------- read' "r0" = R0 read' "r1" = R1 read' "r2" = R2 read' "r3" = R3 read' "r4" = R4 read' "r5" = R5 read' "r6" = R6 read' "r7" = R7 read' "r8" = R8 read' "r9" = R9 read' "r10" = R10 read' "r11" = R11 read' "r12" = R12 read' "r13" = R13 read' "r14" = R14 read' "r15" = R15 read' "cpsr" = CPSR ---------------------------------------------------------------------- -- Convert register name to index (will be used to index register array). ---------------------------------------------------------------------- {- index' R0 = 0 index' R1 = 1 index' R2 = 2 index' R3 = 3 index' R4 = 4 index' R5 = 5 index' R6 = 6 index' R7 = 7 index' R8 = 8 index' R9 = 9 index' R10 = 10 index' R11 = 11 index' R12 = 12 index' R13 = 13 index' R14 = 14 index' R15 = 15 index' CPSR = 16 -} ---------------------------------------------------------------------- -- eof ----------------------------------------------------------------------