m5op_sparc.S revision 12157
14090Ssaidi@eecs.umich.edu/* 24090Ssaidi@eecs.umich.edu * Copyright (c) 2003-2006 The Regents of The University of Michigan 34090Ssaidi@eecs.umich.edu * All rights reserved. 44090Ssaidi@eecs.umich.edu * 54090Ssaidi@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 64090Ssaidi@eecs.umich.edu * modification, are permitted provided that the following conditions are 74090Ssaidi@eecs.umich.edu * met: redistributions of source code must retain the above copyright 84090Ssaidi@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 94090Ssaidi@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 104090Ssaidi@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 114090Ssaidi@eecs.umich.edu * documentation and/or other materials provided with the distribution; 124090Ssaidi@eecs.umich.edu * neither the name of the copyright holders nor the names of its 134090Ssaidi@eecs.umich.edu * contributors may be used to endorse or promote products derived from 144090Ssaidi@eecs.umich.edu * this software without specific prior written permission. 154090Ssaidi@eecs.umich.edu * 164090Ssaidi@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 174090Ssaidi@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 184090Ssaidi@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 194090Ssaidi@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 204090Ssaidi@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 214090Ssaidi@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 224090Ssaidi@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 234090Ssaidi@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 244090Ssaidi@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 254090Ssaidi@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 264090Ssaidi@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 274090Ssaidi@eecs.umich.edu * 284090Ssaidi@eecs.umich.edu * Authors: Nathan Binkert 294090Ssaidi@eecs.umich.edu * Ali Saidi 304090Ssaidi@eecs.umich.edu */ 314090Ssaidi@eecs.umich.edu 324090Ssaidi@eecs.umich.edu#define m5_op 0x2 334090Ssaidi@eecs.umich.edu#define m5_op3 0x37 344090Ssaidi@eecs.umich.edu 3512157Sandreas.sandberg@arm.com#include <gem5/asm/generic/m5ops.h> 364090Ssaidi@eecs.umich.edu 374090Ssaidi@eecs.umich.edu#define INST(func, rs1, rs2, rd) \ 384090Ssaidi@eecs.umich.edu .long (m5_op) << 30 | (rd) << 25 | (m5_op3) << 19 | (func) << 7 | \ 394090Ssaidi@eecs.umich.edu (rs1) << 14 | (rs2) << 0; 404090Ssaidi@eecs.umich.edu 414090Ssaidi@eecs.umich.edu 424090Ssaidi@eecs.umich.edu#define LEAF(func) \ 434090Ssaidi@eecs.umich.edu .section ".text"; \ 444090Ssaidi@eecs.umich.edu .align 4; \ 454090Ssaidi@eecs.umich.edu .global func; \ 464090Ssaidi@eecs.umich.edu .type func, #function; \ 474090Ssaidi@eecs.umich.edufunc: 484090Ssaidi@eecs.umich.edu 494090Ssaidi@eecs.umich.edu#define END(func) \ 504090Ssaidi@eecs.umich.edu .size func, (.-func) 514090Ssaidi@eecs.umich.edu 5212157Sandreas.sandberg@arm.com#define DEBUGBREAK INST(M5OP_DEBUG_BREAK, 0, 0, 0) 5312157Sandreas.sandberg@arm.com#define M5EXIT INST(M5OP_EXIT, 0, 0, 0) 5412157Sandreas.sandberg@arm.com#define PANIC INST(M5OP_PANIC, 0, 0, 0) 5512157Sandreas.sandberg@arm.com#define READFILE INST(M5OP_READ_FILE, 0, 0, 0) 564090Ssaidi@eecs.umich.edu 574090Ssaidi@eecs.umich.eduLEAF(m5_exit) 584090Ssaidi@eecs.umich.edu retl 594090Ssaidi@eecs.umich.edu M5EXIT 604090Ssaidi@eecs.umich.eduEND(m5_exit) 614090Ssaidi@eecs.umich.edu 624090Ssaidi@eecs.umich.eduLEAF(m5_panic) 634090Ssaidi@eecs.umich.edu retl 644090Ssaidi@eecs.umich.edu PANIC 654090Ssaidi@eecs.umich.eduEND(m5_panic) 664090Ssaidi@eecs.umich.edu 674098Ssaidi@eecs.umich.eduLEAF(m5_readfile) 684098Ssaidi@eecs.umich.edu retl 694098Ssaidi@eecs.umich.edu READFILE 704098Ssaidi@eecs.umich.eduEND(m5_readfile) 714098Ssaidi@eecs.umich.edu 724098Ssaidi@eecs.umich.eduLEAF(m5_debugbreak) 734098Ssaidi@eecs.umich.edu retl 744098Ssaidi@eecs.umich.edu DEBUGBREAK 754098Ssaidi@eecs.umich.eduEND(m5_debugbreak) 764090Ssaidi@eecs.umich.edu 774090Ssaidi@eecs.umich.edu/* !!!!!! All code below here just panics !!!!!! */ 784090Ssaidi@eecs.umich.eduLEAF(arm) 794090Ssaidi@eecs.umich.edu retl 804090Ssaidi@eecs.umich.edu PANIC 814090Ssaidi@eecs.umich.eduEND(arm) 824090Ssaidi@eecs.umich.edu 834090Ssaidi@eecs.umich.eduLEAF(quiesce) 844090Ssaidi@eecs.umich.edu retl 854090Ssaidi@eecs.umich.edu PANIC 864090Ssaidi@eecs.umich.eduEND(quiesce) 874090Ssaidi@eecs.umich.edu 884090Ssaidi@eecs.umich.eduLEAF(quiesceNs) 894090Ssaidi@eecs.umich.edu retl 904090Ssaidi@eecs.umich.edu PANIC 914090Ssaidi@eecs.umich.eduEND(quiesceNs) 924090Ssaidi@eecs.umich.edu 934090Ssaidi@eecs.umich.eduLEAF(quiesceCycle) 944090Ssaidi@eecs.umich.edu retl 954090Ssaidi@eecs.umich.edu PANIC 964090Ssaidi@eecs.umich.eduEND(quiesceCycle) 974090Ssaidi@eecs.umich.edu 984090Ssaidi@eecs.umich.eduLEAF(quiesceTime) 994090Ssaidi@eecs.umich.edu retl 1004090Ssaidi@eecs.umich.edu PANIC 1014090Ssaidi@eecs.umich.eduEND(quiesceTime) 1024090Ssaidi@eecs.umich.edu 1034090Ssaidi@eecs.umich.eduLEAF(m5_initparam) 1044090Ssaidi@eecs.umich.edu retl 1054090Ssaidi@eecs.umich.edu PANIC 1064090Ssaidi@eecs.umich.eduEND(m5_initparam) 1074090Ssaidi@eecs.umich.edu 1084090Ssaidi@eecs.umich.eduLEAF(m5_loadsymbol) 1094090Ssaidi@eecs.umich.edu retl 1104090Ssaidi@eecs.umich.edu PANIC 1114090Ssaidi@eecs.umich.eduEND(m5_loadsymbol) 1124090Ssaidi@eecs.umich.edu 1134090Ssaidi@eecs.umich.eduLEAF(m5_reset_stats) 1144090Ssaidi@eecs.umich.edu retl 1154090Ssaidi@eecs.umich.edu PANIC 1164090Ssaidi@eecs.umich.eduEND(m5_reset_stats) 1174090Ssaidi@eecs.umich.edu 1184090Ssaidi@eecs.umich.eduLEAF(m5_dump_stats) 1194090Ssaidi@eecs.umich.edu retl 1204090Ssaidi@eecs.umich.edu PANIC 1214090Ssaidi@eecs.umich.eduEND(m5_dump_stats) 1224090Ssaidi@eecs.umich.edu 1234090Ssaidi@eecs.umich.eduLEAF(m5_dumpreset_stats) 1244090Ssaidi@eecs.umich.edu retl 1254090Ssaidi@eecs.umich.edu PANIC 1264090Ssaidi@eecs.umich.eduEND(m5_dumpreset_stats) 1274090Ssaidi@eecs.umich.edu 1284090Ssaidi@eecs.umich.eduLEAF(m5_checkpoint) 1294090Ssaidi@eecs.umich.edu retl 1304090Ssaidi@eecs.umich.edu PANIC 1314090Ssaidi@eecs.umich.eduEND(m5_checkpoint) 1324090Ssaidi@eecs.umich.edu 1334090Ssaidi@eecs.umich.eduLEAF(m5_switchcpu) 1344090Ssaidi@eecs.umich.edu retl 1354090Ssaidi@eecs.umich.edu PANIC 1364090Ssaidi@eecs.umich.eduEND(m5_switchcpu) 1374090Ssaidi@eecs.umich.edu 1384090Ssaidi@eecs.umich.eduLEAF(m5_addsymbol) 1394090Ssaidi@eecs.umich.edu retl 1404090Ssaidi@eecs.umich.edu PANIC 1414090Ssaidi@eecs.umich.eduEND(m5_addsymbol) 1424090Ssaidi@eecs.umich.edu 1434090Ssaidi@eecs.umich.eduLEAF(m5_anbegin) 1444090Ssaidi@eecs.umich.edu retl 1454090Ssaidi@eecs.umich.edu PANIC 1464090Ssaidi@eecs.umich.eduEND(m5_anbegin) 1474090Ssaidi@eecs.umich.edu 1484090Ssaidi@eecs.umich.eduLEAF(m5_anwait) 1494090Ssaidi@eecs.umich.edu retl 1504090Ssaidi@eecs.umich.edu PANIC 1514090Ssaidi@eecs.umich.eduEND(m5_anwait) 1524090Ssaidi@eecs.umich.edu 1534090Ssaidi@eecs.umich.edu 154