Deleted Added
sdiff udiff text old ( 5727:8b9aaeac5bab ) new ( 5912:d113f6def227 )
full compact
1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * All rights reserved.
4 *
5 * Redistribution and use of this software in source and binary forms,
6 * with or without modification, are permitted provided that the
7 * following conditions are met:
8 *

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

55 * Authors: Gabe Black
56 */
57
58#ifndef __ARCH_X86_INSTS_MICROLDSTOP_HH__
59#define __ARCH_X86_INSTS_MICROLDSTOP_HH__
60
61#include "arch/x86/insts/microop.hh"
62#include "mem/packet.hh"
63
64namespace X86ISA
65{
66 /**
67 * Base class for load and store ops
68 */
69 class LdStOp : public X86MicroopBase
70 {
71 protected:
72 const uint8_t scale;
73 const RegIndex index;
74 const RegIndex base;
75 const uint64_t disp;
76 const uint8_t segment;
77 const RegIndex data;
78 const uint8_t dataSize;
79 const uint8_t addressSize;
80 RegIndex foldOBit, foldABit;
81
82 //Constructor
83 LdStOp(ExtMachInst _machInst,
84 const char * mnem, const char * _instMnem,
85 bool isMicro, bool isDelayed, bool isFirst, bool isLast,
86 uint8_t _scale, RegIndex _index, RegIndex _base,
87 uint64_t _disp, uint8_t _segment,
88 RegIndex _data,
89 uint8_t _dataSize, uint8_t _addressSize,
90 OpClass __opClass) :
91 X86MicroopBase(machInst, mnem, _instMnem,
92 isMicro, isDelayed, isFirst, isLast, __opClass),
93 scale(_scale), index(_index), base(_base),
94 disp(_disp), segment(_segment),
95 data(_data),
96 dataSize(_dataSize), addressSize(_addressSize)
97 {
98 foldOBit = (dataSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0;
99 foldABit =
100 (addressSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0;
101 }
102
103 std::string generateDisassembly(Addr pc,
104 const SymbolTable *symtab) const;

--- 71 unchanged lines hidden ---