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 * --- 50 unchanged lines hidden (view full) --- 59#include <string> 60 61namespace X86ISA 62{ 63 std::string LdStOp::generateDisassembly(Addr pc, 64 const SymbolTable *symtab) const 65 { 66 std::stringstream response; |
67 bool someAddr = false; |
68 69 printMnemonic(response, instMnem, mnemonic); |
70 if(flags[IsLoad]) 71 printDestReg(response, 0, dataSize); 72 else 73 printSrcReg(response, 2, dataSize); |
74 response << ", "; 75 printSegment(response, segment); |
76 response << ":["; 77 if(scale != 0 && _srcRegIdx[0] != ZeroReg) 78 { 79 if(scale != 1) 80 ccprintf(response, "%d*", scale); 81 printSrcReg(response, 0, addressSize); 82 someAddr = true; 83 } 84 if(_srcRegIdx[1] != ZeroReg) 85 { 86 if(someAddr) 87 response << " + "; 88 printSrcReg(response, 1, addressSize); 89 someAddr = true; 90 } 91 if(disp != 0) 92 { 93 if(someAddr) 94 response << " + "; 95 ccprintf(response, "%#x", disp); 96 someAddr = true; 97 } 98 if(!someAddr) 99 response << "0"; 100 response << "]"; |
101 return response.str(); 102 } 103} |