fromHudsonMacros.h revision 8013
18012Ssaidi@eecs.umich.edu/*
28013Sbinkertn@umich.edu * Copyright 1993, 1994 Hewlett-Packard Development Company, L.P.
38013Sbinkertn@umich.edu *
48013Sbinkertn@umich.edu * Permission is hereby granted, free of charge, to any person
58013Sbinkertn@umich.edu * obtaining a copy of this software and associated documentation
68013Sbinkertn@umich.edu * files (the "Software"), to deal in the Software without
78013Sbinkertn@umich.edu * restriction, including without limitation the rights to use, copy,
88013Sbinkertn@umich.edu * modify, merge, publish, distribute, sublicense, and/or sell copies
98013Sbinkertn@umich.edu * of the Software, and to permit persons to whom the Software is
108013Sbinkertn@umich.edu * furnished to do so, subject to the following conditions:
118013Sbinkertn@umich.edu *
128013Sbinkertn@umich.edu * The above copyright notice and this permission notice shall be
138013Sbinkertn@umich.edu * included in all copies or substantial portions of the Software.
148013Sbinkertn@umich.edu *
158013Sbinkertn@umich.edu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
168013Sbinkertn@umich.edu * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
178013Sbinkertn@umich.edu * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
188013Sbinkertn@umich.edu * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
198013Sbinkertn@umich.edu * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
208013Sbinkertn@umich.edu * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
218013Sbinkertn@umich.edu * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
228013Sbinkertn@umich.edu * SOFTWARE.
238013Sbinkertn@umich.edu */
248012Ssaidi@eecs.umich.edu
257997Ssaidi@eecs.umich.edu#ifndef HUDSON_MACROS_LOADED
267997Ssaidi@eecs.umich.edu#define	HUDSON_MACROS_LOADED	    1
277997Ssaidi@eecs.umich.edu
287997Ssaidi@eecs.umich.edu#define	STALL \
297997Ssaidi@eecs.umich.edu    mfpr    r31, pt0
307997Ssaidi@eecs.umich.edu
317997Ssaidi@eecs.umich.edu#define	NOP \
327997Ssaidi@eecs.umich.edu    bis	    $31, $31, $31
337997Ssaidi@eecs.umich.edu
347997Ssaidi@eecs.umich.edu/*
357997Ssaidi@eecs.umich.edu** Align code on an 8K byte page boundary.
367997Ssaidi@eecs.umich.edu*/
377997Ssaidi@eecs.umich.edu
387997Ssaidi@eecs.umich.edu#define	ALIGN_PAGE \
397997Ssaidi@eecs.umich.edu    .align  13
407997Ssaidi@eecs.umich.edu
417997Ssaidi@eecs.umich.edu/*
427997Ssaidi@eecs.umich.edu** Align code on a 32 byte block boundary.
437997Ssaidi@eecs.umich.edu*/
447997Ssaidi@eecs.umich.edu
457997Ssaidi@eecs.umich.edu#define	ALIGN_BLOCK \
467997Ssaidi@eecs.umich.edu    .align  5
477997Ssaidi@eecs.umich.edu
487997Ssaidi@eecs.umich.edu/*
497997Ssaidi@eecs.umich.edu** Align code on a quadword boundary.
507997Ssaidi@eecs.umich.edu*/
517997Ssaidi@eecs.umich.edu
527997Ssaidi@eecs.umich.edu#define ALIGN_BRANCH \
537997Ssaidi@eecs.umich.edu    .align  3
547997Ssaidi@eecs.umich.edu
557997Ssaidi@eecs.umich.edu/*
567997Ssaidi@eecs.umich.edu** Hardware vectors go in .text 0 sub-segment.
577997Ssaidi@eecs.umich.edu*/
587997Ssaidi@eecs.umich.edu
597997Ssaidi@eecs.umich.edu#define	HDW_VECTOR(offset) \
607997Ssaidi@eecs.umich.edu    . = offset
617997Ssaidi@eecs.umich.edu
627997Ssaidi@eecs.umich.edu/*
637997Ssaidi@eecs.umich.edu** Privileged CALL_PAL functions are in .text 1 sub-segment.
647997Ssaidi@eecs.umich.edu*/
657997Ssaidi@eecs.umich.edu
667997Ssaidi@eecs.umich.edu#define	CALL_PAL_PRIV(vector) \
677997Ssaidi@eecs.umich.edu    . = (PAL_CALL_PAL_PRIV_ENTRY+(vector<<6))
687997Ssaidi@eecs.umich.edu
697997Ssaidi@eecs.umich.edu/*
707997Ssaidi@eecs.umich.edu** Unprivileged CALL_PAL functions are in .text 1 sub-segment,
717997Ssaidi@eecs.umich.edu** the privileged bit is removed from these vectors.
727997Ssaidi@eecs.umich.edu*/
737997Ssaidi@eecs.umich.edu
747997Ssaidi@eecs.umich.edu#define CALL_PAL_UNPRIV(vector) \
757997Ssaidi@eecs.umich.edu    . = (PAL_CALL_PAL_UNPRIV_ENTRY+((vector&0x3F)<<6))
767997Ssaidi@eecs.umich.edu
777997Ssaidi@eecs.umich.edu/*
787997Ssaidi@eecs.umich.edu** Implements a load "immediate" longword function
797997Ssaidi@eecs.umich.edu*/
807997Ssaidi@eecs.umich.edu#define LDLI(reg,val) \
817997Ssaidi@eecs.umich.edu        ldah	reg, ((val+0x8000) >> 16)(zero); \
827997Ssaidi@eecs.umich.edu        lda	reg, (val&0xffff)(reg)
837997Ssaidi@eecs.umich.edu
847997Ssaidi@eecs.umich.edu#endif
85