m5op_alpha.S revision 4090:08bd6439b907
12632Sstever@eecs.umich.edu/* 22632Sstever@eecs.umich.edu * Copyright (c) 2003-2006 The Regents of The University of Michigan 32632Sstever@eecs.umich.edu * All rights reserved. 42632Sstever@eecs.umich.edu * 52632Sstever@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 62632Sstever@eecs.umich.edu * modification, are permitted provided that the following conditions are 72632Sstever@eecs.umich.edu * met: redistributions of source code must retain the above copyright 82632Sstever@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 92632Sstever@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 102632Sstever@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 112632Sstever@eecs.umich.edu * documentation and/or other materials provided with the distribution; 122632Sstever@eecs.umich.edu * neither the name of the copyright holders nor the names of its 132632Sstever@eecs.umich.edu * contributors may be used to endorse or promote products derived from 142632Sstever@eecs.umich.edu * this software without specific prior written permission. 152632Sstever@eecs.umich.edu * 162632Sstever@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 172632Sstever@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 182632Sstever@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 192632Sstever@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 202632Sstever@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 212632Sstever@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 222632Sstever@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 232632Sstever@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 242632Sstever@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 252632Sstever@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 262632Sstever@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 272632Sstever@eecs.umich.edu * 282632Sstever@eecs.umich.edu * Authors: Nathan Binkert 292632Sstever@eecs.umich.edu * Ali Saidi 302632Sstever@eecs.umich.edu */ 312632Sstever@eecs.umich.edu 322632Sstever@eecs.umich.edu#define m5_op 0x01 332632Sstever@eecs.umich.edu 342632Sstever@eecs.umich.edu#include "m5ops.h" 352632Sstever@eecs.umich.edu 362632Sstever@eecs.umich.edu#define INST(op, ra, rb, func) \ 372632Sstever@eecs.umich.edu .long (((op) << 26) | ((ra) << 21) | ((rb) << 16) | (func)) 382632Sstever@eecs.umich.edu 392632Sstever@eecs.umich.edu#define LEAF(func) \ 402632Sstever@eecs.umich.edu .align 3; \ 412632Sstever@eecs.umich.edu .globl func; \ 422632Sstever@eecs.umich.edu .ent func; \ 432632Sstever@eecs.umich.edufunc: 442632Sstever@eecs.umich.edu 452632Sstever@eecs.umich.edu#define RET \ 462632Sstever@eecs.umich.edu ret ($26) 472632Sstever@eecs.umich.edu 482632Sstever@eecs.umich.edu#define END(func) \ 492632Sstever@eecs.umich.edu .end func 502632Sstever@eecs.umich.edu 512632Sstever@eecs.umich.edu#define ARM(reg) INST(m5_op, reg, 0, arm_func) 522632Sstever@eecs.umich.edu#define QUIESCE INST(m5_op, 0, 0, quiesce_func) 532632Sstever@eecs.umich.edu#define QUIESCENS(r1) INST(m5_op, r1, 0, quiescens_func) 542632Sstever@eecs.umich.edu#define QUIESCECYC(r1) INST(m5_op, r1, 0, quiescecycle_func) 552632Sstever@eecs.umich.edu#define QUIESCETIME INST(m5_op, 0, 0, quiescetime_func) 562632Sstever@eecs.umich.edu#define M5EXIT(reg) INST(m5_op, reg, 0, exit_func) 572632Sstever@eecs.umich.edu#define INITPARAM(reg) INST(m5_op, reg, 0, initparam_func) 582632Sstever@eecs.umich.edu#define LOADSYMBOL(reg) INST(m5_op, reg, 0, loadsymbol_func) 592632Sstever@eecs.umich.edu#define RESET_STATS(r1, r2) INST(m5_op, r1, r2, resetstats_func) 602632Sstever@eecs.umich.edu#define DUMP_STATS(r1, r2) INST(m5_op, r1, r2, dumpstats_func) 612632Sstever@eecs.umich.edu#define DUMPRST_STATS(r1, r2) INST(m5_op, r1, r2, dumprststats_func) 622632Sstever@eecs.umich.edu#define CHECKPOINT(r1, r2) INST(m5_op, r1, r2, ckpt_func) 632632Sstever@eecs.umich.edu#define READFILE INST(m5_op, 0, 0, readfile_func) 642632Sstever@eecs.umich.edu#define DEBUGBREAK INST(m5_op, 0, 0, debugbreak_func) 652632Sstever@eecs.umich.edu#define SWITCHCPU INST(m5_op, 0, 0, switchcpu_func) 662632Sstever@eecs.umich.edu#define ADDSYMBOL(r1,r2) INST(m5_op, r1, r2, addsymbol_func) 672632Sstever@eecs.umich.edu#define PANIC INST(m5_op, 0, 0, panic_func) 682632Sstever@eecs.umich.edu#define AN_BEGIN(r1) INST(m5_op, r1, 0, anbegin_func) 692632Sstever@eecs.umich.edu#define AN_WAIT(r1,r2) INST(m5_op, r1, r2, anwait_func) 702632Sstever@eecs.umich.edu 712632Sstever@eecs.umich.edu .set noreorder 722632Sstever@eecs.umich.edu 732632Sstever@eecs.umich.edu .align 4 742632Sstever@eecs.umich.eduLEAF(arm) 752632Sstever@eecs.umich.edu ARM(16) 762632Sstever@eecs.umich.edu RET 772632Sstever@eecs.umich.eduEND(arm) 782632Sstever@eecs.umich.edu 792632Sstever@eecs.umich.edu .align 4 802632Sstever@eecs.umich.eduLEAF(quiesce) 812632Sstever@eecs.umich.edu QUIESCE 822632Sstever@eecs.umich.edu RET 832632Sstever@eecs.umich.eduEND(quiesce) 842632Sstever@eecs.umich.edu 852632Sstever@eecs.umich.edu .align 4 862632Sstever@eecs.umich.eduLEAF(quiesceNs) 872632Sstever@eecs.umich.edu QUIESCENS(16) 882632Sstever@eecs.umich.edu RET 892632Sstever@eecs.umich.eduEND(quiesceNs) 902632Sstever@eecs.umich.edu 912632Sstever@eecs.umich.edu .align 4 922632Sstever@eecs.umich.eduLEAF(quiesceCycle) 932632Sstever@eecs.umich.edu QUIESCECYC(16) 942632Sstever@eecs.umich.edu RET 952632Sstever@eecs.umich.eduEND(quiesceCycle) 962632Sstever@eecs.umich.edu 972632Sstever@eecs.umich.edu .align 4 982632Sstever@eecs.umich.eduLEAF(quiesceTime) 992632Sstever@eecs.umich.edu QUIESCETIME 1002632Sstever@eecs.umich.edu RET 1012632Sstever@eecs.umich.eduEND(quiesceTime) 1022632Sstever@eecs.umich.edu 1032632Sstever@eecs.umich.edu .align 4 1042632Sstever@eecs.umich.eduLEAF(m5_exit) 1052632Sstever@eecs.umich.edu M5EXIT(16) 1062632Sstever@eecs.umich.edu RET 1072632Sstever@eecs.umich.eduEND(m5_exit) 1082632Sstever@eecs.umich.edu 1092632Sstever@eecs.umich.edu .align 4 1102632Sstever@eecs.umich.eduLEAF(m5_initparam) 1112632Sstever@eecs.umich.edu INITPARAM(0) 1122632Sstever@eecs.umich.edu RET 1132632Sstever@eecs.umich.eduEND(m5_initparam) 1142632Sstever@eecs.umich.edu 1152632Sstever@eecs.umich.edu .align 4 1162632Sstever@eecs.umich.eduLEAF(m5_loadsymbol) 1172632Sstever@eecs.umich.edu LOADSYMBOL(0) 1182632Sstever@eecs.umich.edu RET 1192632Sstever@eecs.umich.eduEND(m5_loadsymbol) 1202632Sstever@eecs.umich.edu 1212632Sstever@eecs.umich.edu .align 4 1222632Sstever@eecs.umich.eduLEAF(m5_reset_stats) 1232632Sstever@eecs.umich.edu RESET_STATS(16, 17) 1242632Sstever@eecs.umich.edu RET 1252632Sstever@eecs.umich.eduEND(m5_reset_stats) 1262632Sstever@eecs.umich.edu 1272632Sstever@eecs.umich.edu .align 4 1282632Sstever@eecs.umich.eduLEAF(m5_dump_stats) 1292632Sstever@eecs.umich.edu DUMP_STATS(16, 17) 1302632Sstever@eecs.umich.edu RET 1312632Sstever@eecs.umich.eduEND(m5_dump_stats) 1322632Sstever@eecs.umich.edu 1332632Sstever@eecs.umich.edu .align 4 1342632Sstever@eecs.umich.eduLEAF(m5_dumpreset_stats) 1352632Sstever@eecs.umich.edu DUMPRST_STATS(16, 17) 1362632Sstever@eecs.umich.edu RET 1372632Sstever@eecs.umich.eduEND(m5_dumpreset_stats) 1382632Sstever@eecs.umich.edu 1392632Sstever@eecs.umich.edu .align 4 1402632Sstever@eecs.umich.eduLEAF(m5_checkpoint) 1412632Sstever@eecs.umich.edu CHECKPOINT(16, 17) 1422632Sstever@eecs.umich.edu RET 1432632Sstever@eecs.umich.eduEND(m5_checkpoint) 1442632Sstever@eecs.umich.edu 1452632Sstever@eecs.umich.edu .align 4 1462632Sstever@eecs.umich.eduLEAF(m5_readfile) 1472632Sstever@eecs.umich.edu READFILE 1482632Sstever@eecs.umich.edu RET 1492632Sstever@eecs.umich.eduEND(m5_readfile) 1502632Sstever@eecs.umich.edu 1512632Sstever@eecs.umich.edu .align 4 1522632Sstever@eecs.umich.eduLEAF(m5_debugbreak) 1532632Sstever@eecs.umich.edu DEBUGBREAK 1542632Sstever@eecs.umich.edu RET 1552632Sstever@eecs.umich.eduEND(m5_debugbreak) 1562632Sstever@eecs.umich.edu 1572632Sstever@eecs.umich.edu .align 4 1582632Sstever@eecs.umich.eduLEAF(m5_switchcpu) 1592632Sstever@eecs.umich.edu SWITCHCPU 1602632Sstever@eecs.umich.edu RET 1612632Sstever@eecs.umich.eduEND(m5_switchcpu) 1622632Sstever@eecs.umich.edu 1632632Sstever@eecs.umich.edu .align 4 1642632Sstever@eecs.umich.eduLEAF(m5_addsymbol) 1652632Sstever@eecs.umich.edu ADDSYMBOL(16, 17) 1662632Sstever@eecs.umich.edu RET 1672632Sstever@eecs.umich.eduEND(m5_addsymbol) 1682632Sstever@eecs.umich.edu 1692632Sstever@eecs.umich.edu .align 4 1702632Sstever@eecs.umich.eduLEAF(m5_panic) 1712632Sstever@eecs.umich.edu PANIC 1722632Sstever@eecs.umich.edu RET 1732632Sstever@eecs.umich.eduEND(m5_panic) 1742632Sstever@eecs.umich.edu 1752632Sstever@eecs.umich.edu 1762632Sstever@eecs.umich.edu .align 4 1772632Sstever@eecs.umich.eduLEAF(m5_anbegin) 1782632Sstever@eecs.umich.edu AN_BEGIN(16) 1792632Sstever@eecs.umich.edu RET 1802632Sstever@eecs.umich.eduEND(m5_anbegin) 1812632Sstever@eecs.umich.edu 1822632Sstever@eecs.umich.edu 1832632Sstever@eecs.umich.edu .align 4 1842632Sstever@eecs.umich.eduLEAF(m5_anwait) 1852632Sstever@eecs.umich.edu AN_WAIT(16,17) 1862632Sstever@eecs.umich.edu RET 1872632Sstever@eecs.umich.eduEND(m5_anwait) 1882632Sstever@eecs.umich.edu 1892632Sstever@eecs.umich.edu 1902632Sstever@eecs.umich.edu