1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

401
402 /** Returns the result of a floating point instruction. */
403 float readFloatResult() { return (float)instResult.dbl; }
404
405 /** Returns the result of a floating point (double) instruction. */
406 double readDoubleResult() { return instResult.dbl; }
407
408 /** Records an integer register being set to a value. */
409 void setIntReg(const StaticInst *si, int idx, uint64_t val)
409 void setIntRegOperand(const StaticInst *si, int idx, uint64_t val)
410 {
411 if (recordResult)
412 instResult.integer = val;
413 }
414
415 /** Records an fp register being set to a value. */
416 void setFloatReg(const StaticInst *si, int idx, FloatReg val, int width)
416 void setFloatRegOperand(const StaticInst *si, int idx, FloatReg val,
417 int width)
418 {
419 if (recordResult) {
420 if (width == 32)
421 instResult.dbl = (double)val;
422 else if (width == 64)
423 instResult.dbl = val;
424 else
425 panic("Unsupported width!");
426 }
427 }
428
429 /** Records an fp register being set to a value. */
429 void setFloatReg(const StaticInst *si, int idx, FloatReg val)
430 void setFloatRegOperand(const StaticInst *si, int idx, FloatReg val)
431 {
432 if (recordResult)
433 instResult.dbl = (double)val;
434 }
435
436 /** Records an fp register being set to an integer value. */
436 void setFloatRegBits(const StaticInst *si, int idx, uint64_t val, int width)
437 void setFloatRegOperandBits(const StaticInst *si, int idx, uint64_t val,
438 int width)
439 {
440 if (recordResult)
441 instResult.integer = val;
442 }
443
444 /** Records an fp register being set to an integer value. */
443 void setFloatRegBits(const StaticInst *si, int idx, uint64_t val)
445 void setFloatRegOperandBits(const StaticInst *si, int idx, uint64_t val)
446 {
447 if (recordResult)
448 instResult.integer = val;
449 }
450
451 /** Records that one of the source registers is ready. */
452 void markSrcRegReady();
453

--- 301 unchanged lines hidden ---