summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/inorder_dyn_inst.hh
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2009-05-12 15:01:15 -0400
committerKorey Sewell <ksewell@umich.edu>2009-05-12 15:01:15 -0400
commit6211fe5d2ee00dae9cd72d9cccdc900241a8f9a2 (patch)
treeee0ac43983c31c9c22b7ea28e69725d033287ef4 /src/cpu/inorder/inorder_dyn_inst.hh
parent3603dd25efb70ec400e8ea1e76137e8e288e533a (diff)
downloadgem5-6211fe5d2ee00dae9cd72d9cccdc900241a8f9a2.tar.xz
inorder-float: Fix storage of FP results
inorder was incorrectly storing FP values and confusing the integer/fp storage view of floating point operations. A big issue was knowing trying to infer when were doing single or double precision access because this lets you know the size of value to store (32-64 bits). This isnt exactly straightforward since alpha uses all 64-bit regs while mips/sparc uses a dual-reg view. by getting this value from the actual floating point register file, the model can figure out what it needs to store
Diffstat (limited to 'src/cpu/inorder/inorder_dyn_inst.hh')
-rw-r--r--src/cpu/inorder/inorder_dyn_inst.hh6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/cpu/inorder/inorder_dyn_inst.hh b/src/cpu/inorder/inorder_dyn_inst.hh
index 1f9c360df..490992638 100644
--- a/src/cpu/inorder/inorder_dyn_inst.hh
+++ b/src/cpu/inorder/inorder_dyn_inst.hh
@@ -243,9 +243,10 @@ class InOrderDynInst : public FastAlloc, public RefCounted
ResultType type;
InstValue val;
Tick tick;
+ int width;
InstResult()
- : type(None), tick(0)
+ : type(None), tick(0), width(0)
{}
};
@@ -856,8 +857,7 @@ class InOrderDynInst : public FastAlloc, public RefCounted
/** Depending on type, return Float or Double */
double readFloatResult(int idx)
{
- //assert(instResult[idx].type != Integer && instResult[idx].type != None);
- //@todo: TypeCast FLOAT onto DOUBLE instead of separate value
+ //Should this function have a parameter for what width of return?x
return (instResult[idx].type == Float) ?
(float) instResult[idx].val.dbl : instResult[idx].val.dbl;
}