16515Sgblack@eecs.umich.edu/* 26515Sgblack@eecs.umich.edu * Copyright (c) 2009 The Regents of The University of Michigan 36515Sgblack@eecs.umich.edu * All rights reserved. 46515Sgblack@eecs.umich.edu * 56515Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 66515Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are 76515Sgblack@eecs.umich.edu * met: redistributions of source code must retain the above copyright 86515Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 96515Sgblack@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 106515Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 116515Sgblack@eecs.umich.edu * documentation and/or other materials provided with the distribution; 126515Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its 136515Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from 146515Sgblack@eecs.umich.edu * this software without specific prior written permission. 156515Sgblack@eecs.umich.edu * 166515Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 176515Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 186515Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 196515Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 206515Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 216515Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 226515Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 236515Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 246515Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 256515Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 266515Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 276515Sgblack@eecs.umich.edu * 286515Sgblack@eecs.umich.edu * Authors: Gabe Black 296515Sgblack@eecs.umich.edu */ 306515Sgblack@eecs.umich.edu 3111793Sbrandon.potter@amd.com#include "arch/x86/insts/micromediaop.hh" 3211793Sbrandon.potter@amd.com 338229Snate@binkert.org#include <string> 348229Snate@binkert.org 357629Sgblack@eecs.umich.edu#include "arch/x86/regs/misc.hh" 366515Sgblack@eecs.umich.edu 376515Sgblack@eecs.umich.edunamespace X86ISA 386515Sgblack@eecs.umich.edu{ 396515Sgblack@eecs.umich.edu std::string MediaOpReg::generateDisassembly(Addr pc, 406515Sgblack@eecs.umich.edu const SymbolTable *symtab) const 416515Sgblack@eecs.umich.edu { 426515Sgblack@eecs.umich.edu std::stringstream response; 436515Sgblack@eecs.umich.edu 446515Sgblack@eecs.umich.edu printMnemonic(response, instMnem, mnemonic); 456515Sgblack@eecs.umich.edu printDestReg(response, 0, destSize); 466515Sgblack@eecs.umich.edu response << ", "; 476515Sgblack@eecs.umich.edu printSrcReg(response, 0, srcSize); 486515Sgblack@eecs.umich.edu response << ", "; 496515Sgblack@eecs.umich.edu printSrcReg(response, 1, srcSize); 506515Sgblack@eecs.umich.edu return response.str(); 516515Sgblack@eecs.umich.edu } 526515Sgblack@eecs.umich.edu 536515Sgblack@eecs.umich.edu std::string MediaOpImm::generateDisassembly(Addr pc, 546515Sgblack@eecs.umich.edu const SymbolTable *symtab) const 556515Sgblack@eecs.umich.edu { 566515Sgblack@eecs.umich.edu std::stringstream response; 576515Sgblack@eecs.umich.edu 586515Sgblack@eecs.umich.edu printMnemonic(response, instMnem, mnemonic); 596515Sgblack@eecs.umich.edu printDestReg(response, 0, destSize); 606515Sgblack@eecs.umich.edu response << ", "; 616515Sgblack@eecs.umich.edu printSrcReg(response, 0, srcSize); 626515Sgblack@eecs.umich.edu ccprintf(response, ", %#x", imm8); 636515Sgblack@eecs.umich.edu return response.str(); 646515Sgblack@eecs.umich.edu } 656515Sgblack@eecs.umich.edu} 66