exec_context.hh (13611:c8b7847b4171) | exec_context.hh (13622:ba31c2a23eca) |
---|---|
1/* 2 * Copyright (c) 2014-2017 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 46 unchanged lines hidden (view full) --- 55#include "cpu/static_inst_fwd.hh" 56#include "cpu/translation.hh" 57#include "mem/request.hh" 58 59class BaseSimpleCPU; 60 61class SimpleExecContext : public ExecContext { 62 protected: | 1/* 2 * Copyright (c) 2014-2017 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 46 unchanged lines hidden (view full) --- 55#include "cpu/static_inst_fwd.hh" 56#include "cpu/translation.hh" 57#include "mem/request.hh" 58 59class BaseSimpleCPU; 60 61class SimpleExecContext : public ExecContext { 62 protected: |
63 typedef TheISA::CCReg CCReg; | |
64 using VecRegContainer = TheISA::VecRegContainer; 65 using VecElem = TheISA::VecElem; 66 67 public: 68 BaseSimpleCPU *cpu; 69 SimpleThread* thread; 70 71 // This is the offset from the current pc that fetch should be performed --- 288 unchanged lines hidden (view full) --- 360 const VecPredRegContainer& val) override 361 { 362 numVecPredRegWrites++; 363 const RegId& reg = si->destRegIdx(idx); 364 assert(reg.isVecPredReg()); 365 thread->setVecPredReg(reg, val); 366 } 367 | 63 using VecRegContainer = TheISA::VecRegContainer; 64 using VecElem = TheISA::VecElem; 65 66 public: 67 BaseSimpleCPU *cpu; 68 SimpleThread* thread; 69 70 // This is the offset from the current pc that fetch should be performed --- 288 unchanged lines hidden (view full) --- 359 const VecPredRegContainer& val) override 360 { 361 numVecPredRegWrites++; 362 const RegId& reg = si->destRegIdx(idx); 363 assert(reg.isVecPredReg()); 364 thread->setVecPredReg(reg, val); 365 } 366 |
368 CCReg | 367 RegVal |
369 readCCRegOperand(const StaticInst *si, int idx) override 370 { 371 numCCRegReads++; 372 const RegId& reg = si->srcRegIdx(idx); 373 assert(reg.isCCReg()); 374 return thread->readCCReg(reg.index()); 375 } 376 377 void | 368 readCCRegOperand(const StaticInst *si, int idx) override 369 { 370 numCCRegReads++; 371 const RegId& reg = si->srcRegIdx(idx); 372 assert(reg.isCCReg()); 373 return thread->readCCReg(reg.index()); 374 } 375 376 void |
378 setCCRegOperand(const StaticInst *si, int idx, CCReg val) override | 377 setCCRegOperand(const StaticInst *si, int idx, RegVal val) override |
379 { 380 numCCRegWrites++; 381 const RegId& reg = si->destRegIdx(idx); 382 assert(reg.isCCReg()); 383 thread->setCCReg(reg.index(), val); 384 } 385 386 RegVal --- 192 unchanged lines hidden --- | 378 { 379 numCCRegWrites++; 380 const RegId& reg = si->destRegIdx(idx); 381 assert(reg.isCCReg()); 382 thread->setCCReg(reg.index(), val); 383 } 384 385 RegVal --- 192 unchanged lines hidden --- |