m5op_sparc.S revision 4098
1/* 2 * Copyright (c) 2003-2006 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; 9 * redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution; 12 * neither the name of the copyright holders nor the names of its 13 * contributors may be used to endorse or promote products derived from 14 * this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * 28 * Authors: Nathan Binkert 29 * Ali Saidi 30 */ 31 32#define m5_op 0x2 33#define m5_op3 0x37 34 35#include "m5ops.h" 36 37#define INST(func, rs1, rs2, rd) \ 38 .long (m5_op) << 30 | (rd) << 25 | (m5_op3) << 19 | (func) << 7 | \ 39 (rs1) << 14 | (rs2) << 0; 40 41 42#define LEAF(func) \ 43 .section ".text"; \ 44 .align 4; \ 45 .global func; \ 46 .type func, #function; \ 47func: 48 49#define END(func) \ 50 .size func, (.-func) 51 52#define DEBUGBREAK INST(debugbreak_func, 0, 0, 0) 53#define M5EXIT INST(exit_func, 0, 0, 0) 54#define PANIC INST(panic_func, 0, 0, 0) 55#define READFILE INST(readfile_func, 0, 0, 0) 56 57LEAF(m5_exit) 58 retl 59 M5EXIT 60END(m5_exit) 61 62LEAF(m5_panic) 63 retl 64 PANIC 65END(m5_panic) 66 67LEAF(m5_readfile) 68 retl 69 READFILE 70END(m5_readfile) 71 72LEAF(m5_debugbreak) 73 retl 74 DEBUGBREAK 75END(m5_debugbreak) 76 77/* !!!!!! All code below here just panics !!!!!! */ 78LEAF(arm) 79 retl 80 PANIC 81END(arm) 82 83LEAF(quiesce) 84 retl 85 PANIC 86END(quiesce) 87 88LEAF(quiesceNs) 89 retl 90 PANIC 91END(quiesceNs) 92 93LEAF(quiesceCycle) 94 retl 95 PANIC 96END(quiesceCycle) 97 98LEAF(quiesceTime) 99 retl 100 PANIC 101END(quiesceTime) 102 103LEAF(m5_initparam) 104 retl 105 PANIC 106END(m5_initparam) 107 108LEAF(m5_loadsymbol) 109 retl 110 PANIC 111END(m5_loadsymbol) 112 113LEAF(m5_reset_stats) 114 retl 115 PANIC 116END(m5_reset_stats) 117 118LEAF(m5_dump_stats) 119 retl 120 PANIC 121END(m5_dump_stats) 122 123LEAF(m5_dumpreset_stats) 124 retl 125 PANIC 126END(m5_dumpreset_stats) 127 128LEAF(m5_checkpoint) 129 retl 130 PANIC 131END(m5_checkpoint) 132 133LEAF(m5_switchcpu) 134 retl 135 PANIC 136END(m5_switchcpu) 137 138LEAF(m5_addsymbol) 139 retl 140 PANIC 141END(m5_addsymbol) 142 143LEAF(m5_anbegin) 144 retl 145 PANIC 146END(m5_anbegin) 147 148LEAF(m5_anwait) 149 retl 150 PANIC 151END(m5_anwait) 152 153 154