amo.hh revision 12323
16313Sgblack@eecs.umich.edu/* 26313Sgblack@eecs.umich.edu * Copyright (c) 2015 RISC-V Foundation 36313Sgblack@eecs.umich.edu * Copyright (c) 2017 The University of Virginia 46313Sgblack@eecs.umich.edu * All rights reserved. 56313Sgblack@eecs.umich.edu * 66313Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 76313Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are 86313Sgblack@eecs.umich.edu * met: redistributions of source code must retain the above copyright 96313Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 106313Sgblack@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 116313Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 126313Sgblack@eecs.umich.edu * documentation and/or other materials provided with the distribution; 136313Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its 146313Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from 156313Sgblack@eecs.umich.edu * this software without specific prior written permission. 166313Sgblack@eecs.umich.edu * 176313Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 186313Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 196313Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 206313Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 216313Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 226313Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 236313Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 246313Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 256313Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 266313Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 276313Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 286313Sgblack@eecs.umich.edu * 296313Sgblack@eecs.umich.edu * Authors: Alec Roelke 306313Sgblack@eecs.umich.edu */ 3111793Sbrandon.potter@amd.com 3211793Sbrandon.potter@amd.com#ifndef __ARCH_RISCV_INSTS_AMO_HH__ 337678Sgblack@eecs.umich.edu#define __ARCH_RISCV_INSTS_AMO_HH__ 347678Sgblack@eecs.umich.edu 3512334Sgabeblack@google.com#include <string> 366313Sgblack@eecs.umich.edu 379384SAndreas.Sandberg@arm.com#include "arch/riscv/insts/mem.hh" 387680Sgblack@eecs.umich.edu#include "arch/riscv/insts/static_inst.hh" 396313Sgblack@eecs.umich.edu#include "cpu/static_inst.hh" 406313Sgblack@eecs.umich.edu 416313Sgblack@eecs.umich.edunamespace RiscvISA 426313Sgblack@eecs.umich.edu{ 439384SAndreas.Sandberg@arm.com 4410033SAli.Saidi@ARM.comclass LoadReserved : public MemInst 459384SAndreas.Sandberg@arm.com{ 469384SAndreas.Sandberg@arm.com protected: 479384SAndreas.Sandberg@arm.com using MemInst::MemInst; 489384SAndreas.Sandberg@arm.com 499384SAndreas.Sandberg@arm.com std::string generateDisassembly( 509384SAndreas.Sandberg@arm.com Addr pc, const SymbolTable *symtab) const override; 519384SAndreas.Sandberg@arm.com}; 529384SAndreas.Sandberg@arm.com 539384SAndreas.Sandberg@arm.comclass StoreCond : public MemInst 549384SAndreas.Sandberg@arm.com{ 559384SAndreas.Sandberg@arm.com protected: 566313Sgblack@eecs.umich.edu using MemInst::MemInst; 5710905Sandreas.sandberg@arm.com 586313Sgblack@eecs.umich.edu std::string generateDisassembly( 596330Sgblack@eecs.umich.edu Addr pc, const SymbolTable *symtab) const override; 606330Sgblack@eecs.umich.edu}; 616330Sgblack@eecs.umich.edu 626330Sgblack@eecs.umich.educlass AtomicMemOp : public RiscvMacroInst 636330Sgblack@eecs.umich.edu{ 646313Sgblack@eecs.umich.edu protected: 656313Sgblack@eecs.umich.edu using RiscvMacroInst::RiscvMacroInst; 666313Sgblack@eecs.umich.edu 6710905Sandreas.sandberg@arm.com std::string generateDisassembly( 686313Sgblack@eecs.umich.edu Addr pc, const SymbolTable *symtab) const override; 696330Sgblack@eecs.umich.edu}; 706330Sgblack@eecs.umich.edu 716330Sgblack@eecs.umich.educlass AtomicMemOpMicro : public RiscvMicroInst 726330Sgblack@eecs.umich.edu{ 736330Sgblack@eecs.umich.edu protected: 746330Sgblack@eecs.umich.edu Request::Flags memAccessFlags; 756330Sgblack@eecs.umich.edu using RiscvMicroInst::RiscvMicroInst; 766330Sgblack@eecs.umich.edu 776330Sgblack@eecs.umich.edu std::string generateDisassembly( 7810698Sandreas.hansson@arm.com Addr pc, const SymbolTable *symtab) const override; 796330Sgblack@eecs.umich.edu}; 806330Sgblack@eecs.umich.edu 816330Sgblack@eecs.umich.edu} 826330Sgblack@eecs.umich.edu 836330Sgblack@eecs.umich.edu#endif // __ARCH_RISCV_INSTS_AMO_HH__