1f9bac91bSBenno Rice /* 2f9bac91bSBenno Rice * Copyright (C) 1995, 1996 Wolfgang Solfrank. 3f9bac91bSBenno Rice * Copyright (C) 1995, 1996 TooLs GmbH. 4f9bac91bSBenno Rice * All rights reserved. 5f9bac91bSBenno Rice * 6f9bac91bSBenno Rice * Redistribution and use in source and binary forms, with or without 7f9bac91bSBenno Rice * modification, are permitted provided that the following conditions 8f9bac91bSBenno Rice * are met: 9f9bac91bSBenno Rice * 1. Redistributions of source code must retain the above copyright 10f9bac91bSBenno Rice * notice, this list of conditions and the following disclaimer. 11f9bac91bSBenno Rice * 2. Redistributions in binary form must reproduce the above copyright 12f9bac91bSBenno Rice * notice, this list of conditions and the following disclaimer in the 13f9bac91bSBenno Rice * documentation and/or other materials provided with the distribution. 14f9bac91bSBenno Rice * 3. All advertising materials mentioning features or use of this software 15f9bac91bSBenno Rice * must display the following acknowledgement: 16f9bac91bSBenno Rice * This product includes software developed by TooLs GmbH. 17f9bac91bSBenno Rice * 4. The name of TooLs GmbH may not be used to endorse or promote products 18f9bac91bSBenno Rice * derived from this software without specific prior written permission. 19f9bac91bSBenno Rice * 20f9bac91bSBenno Rice * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR 21f9bac91bSBenno Rice * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 22f9bac91bSBenno Rice * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 23f9bac91bSBenno Rice * IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24f9bac91bSBenno Rice * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 25f9bac91bSBenno Rice * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 26f9bac91bSBenno Rice * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 27f9bac91bSBenno Rice * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 28f9bac91bSBenno Rice * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 29f9bac91bSBenno Rice * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30f9bac91bSBenno Rice * 314ca98df6SBenno Rice * $NetBSD: psl.h,v 1.5 2000/11/19 19:52:37 matt Exp $ 32f9bac91bSBenno Rice * $FreeBSD$ 33f9bac91bSBenno Rice */ 34f9bac91bSBenno Rice 35f9bac91bSBenno Rice #ifndef _MACHINE_PSL_H_ 36f9bac91bSBenno Rice #define _MACHINE_PSL_H_ 37f9bac91bSBenno Rice 38f9bac91bSBenno Rice /* 39f9bac91bSBenno Rice * Machine State Register (MSR) 40f9bac91bSBenno Rice * 41f9bac91bSBenno Rice * The PowerPC 601 does not implement the following bits: 42f9bac91bSBenno Rice * 434ca98df6SBenno Rice * VEC, POW, ILE, BE, RI, LE[*] 44f9bac91bSBenno Rice * 45f9bac91bSBenno Rice * [*] Little-endian mode on the 601 is implemented in the HID0 register. 46f9bac91bSBenno Rice */ 474ca98df6SBenno Rice #define PSL_VEC 0x02000000 /* AltiVec vector unit available */ 48f9bac91bSBenno Rice #define PSL_POW 0x00040000 /* power management */ 49f9bac91bSBenno Rice #define PSL_ILE 0x00010000 /* interrupt endian mode (1 == le) */ 50f9bac91bSBenno Rice #define PSL_EE 0x00008000 /* external interrupt enable */ 51f9bac91bSBenno Rice #define PSL_PR 0x00004000 /* privilege mode (1 == user) */ 52f9bac91bSBenno Rice #define PSL_FP 0x00002000 /* floating point enable */ 53f9bac91bSBenno Rice #define PSL_ME 0x00001000 /* machine check enable */ 54f9bac91bSBenno Rice #define PSL_FE0 0x00000800 /* floating point interrupt mode 0 */ 55f9bac91bSBenno Rice #define PSL_SE 0x00000400 /* single-step trace enable */ 56f9bac91bSBenno Rice #define PSL_BE 0x00000200 /* branch trace enable */ 57f9bac91bSBenno Rice #define PSL_FE1 0x00000100 /* floating point interrupt mode 1 */ 58f9bac91bSBenno Rice #define PSL_IP 0x00000040 /* interrupt prefix */ 59f9bac91bSBenno Rice #define PSL_IR 0x00000020 /* instruction address relocation */ 60f9bac91bSBenno Rice #define PSL_DR 0x00000010 /* data address relocation */ 61f9bac91bSBenno Rice #define PSL_RI 0x00000002 /* recoverable interrupt */ 62f9bac91bSBenno Rice #define PSL_LE 0x00000001 /* endian mode (1 == le) */ 63f9bac91bSBenno Rice 64f9bac91bSBenno Rice #define PSL_601_MASK ~(PSL_POW|PSL_ILE|PSL_BE|PSL_RI|PSL_LE) 65f9bac91bSBenno Rice 66f9bac91bSBenno Rice /* 67f9bac91bSBenno Rice * Floating-point exception modes: 68f9bac91bSBenno Rice */ 69f9bac91bSBenno Rice #define PSL_FE_DIS 0 /* none */ 70f9bac91bSBenno Rice #define PSL_FE_NONREC PSL_FE1 /* imprecise non-recoverable */ 71f9bac91bSBenno Rice #define PSL_FE_REC PSL_FE0 /* imprecise recoverable */ 72f9bac91bSBenno Rice #define PSL_FE_PREC (PSL_FE0 | PSL_FE1) /* precise */ 73f9bac91bSBenno Rice #define PSL_FE_DFLT PSL_FE_DIS /* default == none */ 74f9bac91bSBenno Rice 75f9bac91bSBenno Rice /* 76f9bac91bSBenno Rice * Note that PSL_POW and PSL_ILE are not in the saved copy of the MSR 77f9bac91bSBenno Rice */ 78f9bac91bSBenno Rice #define PSL_MBO 0 79f9bac91bSBenno Rice #define PSL_MBZ 0 80f9bac91bSBenno Rice 81f9bac91bSBenno Rice #define PSL_USERSET (PSL_EE | PSL_PR | PSL_ME | PSL_IR | PSL_DR | PSL_RI) 82f9bac91bSBenno Rice 83f9bac91bSBenno Rice #define PSL_USERSTATIC (PSL_USERSET | PSL_IP | 0x87c0008c) 84f9bac91bSBenno Rice 85f9bac91bSBenno Rice #endif /* _MACHINE_PSL_H_ */ 86