18012Ssaidi@eecs.umich.edu/* 28029Snate@binkert.org * Copyright (c) 1993-1994 The Hewlett-Packard Development Company 38029Snate@binkert.org * All rights reserved. 48013Sbinkertn@umich.edu * 58029Snate@binkert.org * Redistribution and use in source and binary forms, with or without 68029Snate@binkert.org * modification, are permitted provided that the following conditions are 78029Snate@binkert.org * met: redistributions of source code must retain the above copyright 88029Snate@binkert.org * notice, this list of conditions and the following disclaimer; 98029Snate@binkert.org * redistributions in binary form must reproduce the above copyright 108029Snate@binkert.org * notice, this list of conditions and the following disclaimer in the 118029Snate@binkert.org * documentation and/or other materials provided with the distribution; 128029Snate@binkert.org * neither the name of the copyright holders nor the names of its 138029Snate@binkert.org * contributors may be used to endorse or promote products derived from 148029Snate@binkert.org * this software without specific prior written permission. 158013Sbinkertn@umich.edu * 168029Snate@binkert.org * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 178029Snate@binkert.org * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 188029Snate@binkert.org * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 198029Snate@binkert.org * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 208029Snate@binkert.org * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 218029Snate@binkert.org * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 228029Snate@binkert.org * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 238029Snate@binkert.org * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 248029Snate@binkert.org * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 258029Snate@binkert.org * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 268029Snate@binkert.org * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 278013Sbinkertn@umich.edu */ 288012Ssaidi@eecs.umich.edu 297997Ssaidi@eecs.umich.edu#ifndef HUDSON_MACROS_LOADED 307997Ssaidi@eecs.umich.edu#define HUDSON_MACROS_LOADED 1 317997Ssaidi@eecs.umich.edu 327997Ssaidi@eecs.umich.edu#define STALL \ 337997Ssaidi@eecs.umich.edu mfpr r31, pt0 347997Ssaidi@eecs.umich.edu 357997Ssaidi@eecs.umich.edu#define NOP \ 367997Ssaidi@eecs.umich.edu bis $31, $31, $31 377997Ssaidi@eecs.umich.edu 387997Ssaidi@eecs.umich.edu/* 397997Ssaidi@eecs.umich.edu** Align code on an 8K byte page boundary. 407997Ssaidi@eecs.umich.edu*/ 417997Ssaidi@eecs.umich.edu 427997Ssaidi@eecs.umich.edu#define ALIGN_PAGE \ 437997Ssaidi@eecs.umich.edu .align 13 447997Ssaidi@eecs.umich.edu 457997Ssaidi@eecs.umich.edu/* 467997Ssaidi@eecs.umich.edu** Align code on a 32 byte block boundary. 477997Ssaidi@eecs.umich.edu*/ 487997Ssaidi@eecs.umich.edu 497997Ssaidi@eecs.umich.edu#define ALIGN_BLOCK \ 507997Ssaidi@eecs.umich.edu .align 5 517997Ssaidi@eecs.umich.edu 527997Ssaidi@eecs.umich.edu/* 537997Ssaidi@eecs.umich.edu** Align code on a quadword boundary. 547997Ssaidi@eecs.umich.edu*/ 557997Ssaidi@eecs.umich.edu 567997Ssaidi@eecs.umich.edu#define ALIGN_BRANCH \ 577997Ssaidi@eecs.umich.edu .align 3 587997Ssaidi@eecs.umich.edu 597997Ssaidi@eecs.umich.edu/* 607997Ssaidi@eecs.umich.edu** Hardware vectors go in .text 0 sub-segment. 617997Ssaidi@eecs.umich.edu*/ 627997Ssaidi@eecs.umich.edu 637997Ssaidi@eecs.umich.edu#define HDW_VECTOR(offset) \ 647997Ssaidi@eecs.umich.edu . = offset 657997Ssaidi@eecs.umich.edu 667997Ssaidi@eecs.umich.edu/* 677997Ssaidi@eecs.umich.edu** Privileged CALL_PAL functions are in .text 1 sub-segment. 687997Ssaidi@eecs.umich.edu*/ 697997Ssaidi@eecs.umich.edu 707997Ssaidi@eecs.umich.edu#define CALL_PAL_PRIV(vector) \ 717997Ssaidi@eecs.umich.edu . = (PAL_CALL_PAL_PRIV_ENTRY+(vector<<6)) 727997Ssaidi@eecs.umich.edu 737997Ssaidi@eecs.umich.edu/* 747997Ssaidi@eecs.umich.edu** Unprivileged CALL_PAL functions are in .text 1 sub-segment, 757997Ssaidi@eecs.umich.edu** the privileged bit is removed from these vectors. 767997Ssaidi@eecs.umich.edu*/ 777997Ssaidi@eecs.umich.edu 787997Ssaidi@eecs.umich.edu#define CALL_PAL_UNPRIV(vector) \ 797997Ssaidi@eecs.umich.edu . = (PAL_CALL_PAL_UNPRIV_ENTRY+((vector&0x3F)<<6)) 807997Ssaidi@eecs.umich.edu 817997Ssaidi@eecs.umich.edu/* 827997Ssaidi@eecs.umich.edu** Implements a load "immediate" longword function 837997Ssaidi@eecs.umich.edu*/ 847997Ssaidi@eecs.umich.edu#define LDLI(reg,val) \ 857997Ssaidi@eecs.umich.edu ldah reg, ((val+0x8000) >> 16)(zero); \ 867997Ssaidi@eecs.umich.edu lda reg, (val&0xffff)(reg) 877997Ssaidi@eecs.umich.edu 887997Ssaidi@eecs.umich.edu#endif 89