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