1/* 2 * Copyright (c) 2002-2005 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; --- 34 unchanged lines hidden (view full) --- 43 // into the instruction's own operand index table. Note that a 44 // raw pointer to the StaticInst is provided instead of a 45 // ref-counted StaticInstPtr to reduce overhead. This is fine as 46 // long as these methods don't copy the pointer into any long-term 47 // storage (which is pretty hard to imagine they would have reason 48 // to do). 49 50 /** Reads an integer register. */ |
51 uint64_t readIntRegOperand(const StaticInst *si, int idx); |
52 53 /** Reads a floating point register of a specific width. */ |
54 FloatReg readFloatRegOperand(const StaticInst *si, int idx, int width); |
55 56 /** Reads a floating point register of single register width. */ |
57 FloatReg readFloatRegOperand(const StaticInst *si, int idx); |
58 59 /** Reads a floating point register of a specific width in its 60 * binary format, instead of by value. */ |
61 FloatRegBits readFloatRegOperandBits(const StaticInst *si, int idx, 62 int width); |
63 64 /** Reads a floating point register in its binary format, instead 65 * of by value. */ |
66 FloatRegBits readFloatRegOperandBits(const StaticInst *si, int idx); |
67 68 /** Sets an integer register to a value. */ |
69 void setIntRegOperand(const StaticInst *si, int idx, uint64_t val); |
70 71 /** Sets a floating point register of a specific width to a value. */ |
72 void setFloatRegOperand(const StaticInst *si, int idx, FloatReg val, 73 int width); |
74 75 /** Sets a floating point register of single width to a value. */ |
76 void setFloatRegOperand(const StaticInst *si, int idx, FloatReg val); |
77 78 /** Sets the bits of a floating point register of a specific width 79 * to a binary value. */ |
80 void setFloatRegOperandBits(const StaticInst *si, int idx, 81 FloatRegBits val, int width); |
82 83 /** Sets the bits of a floating point register of single width 84 * to a binary value. */ |
85 void setFloatRegOperandBits(const StaticInst *si, int idx, 86 FloatRegBits val); |
87 88 /** Reads the PC. */ 89 uint64_t readPC(); 90 /** Reads the NextPC. */ 91 uint64_t readNextPC(); 92 /** Reads the Next-NextPC. Only for architectures like SPARC or MIPS. */ 93 uint64_t readNextNPC(); 94 --- 66 unchanged lines hidden --- |