cpu.hh (13582:989577bf6abc) cpu.hh (13610:5d5404ac6288)
1/*
1/*
2 * Copyright (c) 2011, 2016 ARM Limited
2 * Copyright (c) 2011, 2016-2017 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating
9 * to a hardware implementation of the functionality of the software
10 * licensed hereunder. You may use the software subject to the license

--- 288 unchanged lines hidden (view full) ---

299
300 VecElem
301 readVecElemOperand(const StaticInst *si, int idx) const override
302 {
303 const RegId& reg = si->srcRegIdx(idx);
304 return thread->readVecElem(reg);
305 }
306
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating
9 * to a hardware implementation of the functionality of the software
10 * licensed hereunder. You may use the software subject to the license

--- 288 unchanged lines hidden (view full) ---

299
300 VecElem
301 readVecElemOperand(const StaticInst *si, int idx) const override
302 {
303 const RegId& reg = si->srcRegIdx(idx);
304 return thread->readVecElem(reg);
305 }
306
307 const VecPredRegContainer&
308 readVecPredRegOperand(const StaticInst *si, int idx) const override
309 {
310 const RegId& reg = si->srcRegIdx(idx);
311 assert(reg.isVecPredReg());
312 return thread->readVecPredReg(reg);
313 }
314
315 VecPredRegContainer&
316 getWritableVecPredRegOperand(const StaticInst *si, int idx) override
317 {
318 const RegId& reg = si->destRegIdx(idx);
319 assert(reg.isVecPredReg());
320 return thread->getWritableVecPredReg(reg);
321 }
322
307 CCReg
308 readCCRegOperand(const StaticInst *si, int idx) override
309 {
310 const RegId& reg = si->srcRegIdx(idx);
311 assert(reg.isCCReg());
312 return thread->readCCReg(reg.index());
313 }
314

--- 16 unchanged lines hidden (view full) ---

331 template<typename T>
332 void
333 setVecElemResult(T&& t)
334 {
335 result.push(InstResult(std::forward<T>(t),
336 InstResult::ResultType::VecElem));
337 }
338
323 CCReg
324 readCCRegOperand(const StaticInst *si, int idx) override
325 {
326 const RegId& reg = si->srcRegIdx(idx);
327 assert(reg.isCCReg());
328 return thread->readCCReg(reg.index());
329 }
330

--- 16 unchanged lines hidden (view full) ---

347 template<typename T>
348 void
349 setVecElemResult(T&& t)
350 {
351 result.push(InstResult(std::forward<T>(t),
352 InstResult::ResultType::VecElem));
353 }
354
355 template<typename T>
339 void
356 void
357 setVecPredResult(T&& t)
358 {
359 result.push(InstResult(std::forward<T>(t),
360 InstResult::ResultType::VecPredReg));
361 }
362
363 void
340 setIntRegOperand(const StaticInst *si, int idx, RegVal val) override
341 {
342 const RegId& reg = si->destRegIdx(idx);
343 assert(reg.isIntReg());
344 thread->setIntReg(reg.index(), val);
345 setScalarResult(val);
346 }
347

--- 30 unchanged lines hidden (view full) ---

378 const VecElem val) override
379 {
380 const RegId& reg = si->destRegIdx(idx);
381 assert(reg.isVecElem());
382 thread->setVecElem(reg, val);
383 setVecElemResult(val);
384 }
385
364 setIntRegOperand(const StaticInst *si, int idx, RegVal val) override
365 {
366 const RegId& reg = si->destRegIdx(idx);
367 assert(reg.isIntReg());
368 thread->setIntReg(reg.index(), val);
369 setScalarResult(val);
370 }
371

--- 30 unchanged lines hidden (view full) ---

402 const VecElem val) override
403 {
404 const RegId& reg = si->destRegIdx(idx);
405 assert(reg.isVecElem());
406 thread->setVecElem(reg, val);
407 setVecElemResult(val);
408 }
409
410 void setVecPredRegOperand(const StaticInst *si, int idx,
411 const VecPredRegContainer& val) override
412 {
413 const RegId& reg = si->destRegIdx(idx);
414 assert(reg.isVecPredReg());
415 thread->setVecPredReg(reg, val);
416 setVecPredResult(val);
417 }
418
386 bool readPredicate() const override { return thread->readPredicate(); }
387
388 void
389 setPredicate(bool val) override
390 {
391 thread->setPredicate(val);
392 }
393

--- 214 unchanged lines hidden ---
419 bool readPredicate() const override { return thread->readPredicate(); }
420
421 void
422 setPredicate(bool val) override
423 {
424 thread->setPredicate(val);
425 }
426

--- 214 unchanged lines hidden ---