2a3
> * Copyright (c) 2013 Advanced Micro Devices, Inc.
56a58
> #include "debug/CCRegs.hh"
101a104
> typedef TheISA::CCReg CCReg;
110a114,116
> #ifdef ISA_HAS_CC_REGS
> TheISA::CCReg ccRegs[TheISA::NumCCRegs];
> #endif
226a233,235
> #ifdef ISA_HAS_CC_REGS
> memset(ccRegs, 0, sizeof(ccRegs));
> #endif
262a272,286
> CCReg readCCReg(int reg_idx)
> {
> #ifdef ISA_HAS_CC_REGS
> int flatIndex = isa->flattenCCIndex(reg_idx);
> assert(flatIndex < TheISA::NumCCRegs);
> uint64_t regVal(readCCRegFlat(flatIndex));
> DPRINTF(CCRegs, "Reading CC reg %d (%d) as %#x.\n",
> reg_idx, flatIndex, regVal);
> return regVal;
> #else
> panic("Tried to read a CC register.");
> return 0;
> #endif
> }
>
292a317,329
> void setCCReg(int reg_idx, CCReg val)
> {
> #ifdef ISA_HAS_CC_REGS
> int flatIndex = isa->flattenCCIndex(reg_idx);
> assert(flatIndex < TheISA::NumCCRegs);
> DPRINTF(CCRegs, "Setting CC reg %d (%d) to %#x.\n",
> reg_idx, flatIndex, val);
> setCCRegFlat(flatIndex, val);
> #else
> panic("Tried to set a CC register.");
> #endif
> }
>
374a412,417
> int
> flattenCCIndex(int reg)
> {
> return isa->flattenCCIndex(reg);
> }
>
395a439,448
> #ifdef ISA_HAS_CC_REGS
> CCReg readCCRegFlat(int idx) { return ccRegs[idx]; }
> void setCCRegFlat(int idx, CCReg val) { ccRegs[idx] = val; }
> #else
> CCReg readCCRegFlat(int idx)
> { panic("readCCRegFlat w/no CC regs!\n"); }
>
> void setCCRegFlat(int idx, CCReg val)
> { panic("setCCRegFlat w/no CC regs!\n"); }
> #endif