m5op_sparc.S revision 4098
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
354090Ssaidi@eecs.umich.edu#include "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
524098Ssaidi@eecs.umich.edu#define DEBUGBREAK INST(debugbreak_func, 0, 0, 0)
534090Ssaidi@eecs.umich.edu#define M5EXIT INST(exit_func, 0, 0, 0)
544090Ssaidi@eecs.umich.edu#define PANIC INST(panic_func, 0, 0, 0)
554098Ssaidi@eecs.umich.edu#define READFILE INST(readfile_func, 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