|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: #if TRUE ! 26: /* Additional SPR's */ ! 27: #define sprMQ 0 /* mulx/divx extension */ ! 28: #define sprXER 1 /* */ ! 29: #define fromRTCU 4 /* read realtime clock */ ! 30: #define fromRTCL 5 /* ditto */ ! 31: #define sprLR 8 /* link register */ ! 32: #define sprCTR 9 /* counter register */ ! 33: #define toRTCU 20 /* write realtime clock (supervisor mode only)*/ ! 34: #define toRTCL 21 /* ditto */ ! 35: #define fromDEC 22 /* decrementer register */ ! 36: #define sprPVR 287 /* processor version register */ ! 37: #define sprMMCR0 952 /* performance monitor (604) */ ! 38: #define sprPMC1 953 /* performance monitor (604) */ ! 39: #define sprPMC2 954 /* performance monitor (604) */ ! 40: #define sprSIA 955 /* performance monitor (604) */ ! 41: #define sprMMCR1 956 /* performance monitor (Sirocco) */ ! 42: #define sprPMC3 957 /* performance monitor (Sirocco) */ ! 43: #define sprPMC4 958 /* performance monitor (Sirocco) */ ! 44: #define sprSDA 959 /* performance monitor (604) */ ! 45: ! 46: #define rcr0 0 ! 47: #define rcr1 1 ! 48: #define rcr2 2 ! 49: #define rcr3 3 ! 50: #define rcr4 4 ! 51: #define rcr5 5 ! 52: #define rcr6 6 ! 53: #define rcr7 7 ! 54: ! 55: #define lt_b 0 ! 56: #define gt_b 1 ! 57: #define eq_b 2 ! 58: #define so_b 3 ! 59: ! 60: /* ! 61: ** Register defines for EmulateUnimplimentedInstructions ! 62: */ ! 63: #define dKernelDataPtr 1 ! 64: ! 65: #define dInitEmulatorDataPtr 8 ! 66: #define dInitZero 0 ! 67: ! 68: #define dContextPtr 6 ! 69: #define dContextStatFlags 7 ! 70: #define dTmp1 8 ! 71: #define dTmp2 9 ! 72: ! 73: #define dSavedSRR0 10 ! 74: #define dSavedSRR1 11 ! 75: #define dSavedLR 12 ! 76: #define dSavedCR 13 ! 77: ! 78: #define dMSR_Disabled 14 ! 79: #define dMSR_Enabled 15 ! 80: #define dMemCtxFlags 16 ! 81: #define dMemCmdInfo 17 ! 82: #define dMemUpdateEA 18 ! 83: #define dMemAddress 19 ! 84: #define dMemDataH 20 ! 85: #define dMemDataL 21 ! 86: #define dMemByteCount 22 ! 87: ! 88: #define dDataTemp 23 ! 89: #define dSavedVBR 24 ! 90: #define dMemProcPtr 25 ! 91: #define dMemDisp dDataTemp ! 92: ! 93: #define dMemSetupInfo 26 ! 94: #define dMemInstr 27 ! 95: #define dRegIndex 28 ! 96: ! 97: /* ! 98: ** Register defines for EmulateUnimplimentedInstructions ! 99: */ ! 100: #define KernelDataPtr r1 ! 101: ! 102: #define InitEmulatorDataPtr r8 ! 103: #define InitZero r0 ! 104: ! 105: #define ContextPtr r6 ! 106: #define ContextStatFlags r7 ! 107: #define Tmp1 r8 ! 108: #define Tmp2 r9 ! 109: ! 110: #define SavedSRR0 r10 ! 111: #define SavedSRR1 r11 ! 112: #define SavedLR r12 ! 113: #define SavedCR r13 ! 114: ! 115: #define MSR_Disabled r14 ! 116: #define MSR_Enabled r15 ! 117: #define MemCtxFlags r16 ! 118: #define MemCmdInfo r17 ! 119: #define MemUpdateEA r18 ! 120: #define MemAddress r19 ! 121: #define MemDataH r20 ! 122: #define MemDataL r21 ! 123: #define MemByteCount r22 ! 124: ! 125: #define DataTemp r23 ! 126: #define SavedVBR r24 ! 127: #define MemProcPtr r25 ! 128: #define MemDisp DataTemp ! 129: ! 130: #define MemSetupInfo r26 ! 131: #define MemInstr r27 ! 132: #define RegIndex r28 ! 133: ! 134: /* ! 135: ** Flag Bit Definitions ! 136: */ ! 137: #define b_EmulatePowerMQ 8 ! 138: #define b_EmulatePowerRTC 9 ! 139: #define b_EmulatePowerDEC 10 ! 140: #define b_EmulatePowerComplex 11 ! 141: #define b_EmulatePowerCLCS 12 ! 142: #define b_EmulatePowerMemory 13 ! 143: #define b_EmulateInvalidSPR 14 ! 144: #define b_EmulatePOWERmaskLSB b_EmulateInvalidSPR ! 145: #define b_EmulateOptional 16 ! 146: #define b_EmulatePrivMFPVR 17 ! 147: #define b_EmulatePrivSPRperf 18 ! 148: #define b_EmulatePrivSPRperf2 19 ! 149: #define b_EmulatePrivSPRperf0 20 ! 150: ! 151: /* ! 152: ** CtxFlags bit numbers ! 153: */ ! 154: #define b_CtxFlagSystemContext 8 ! 155: #define b_CtxFlagHWPowerCompatible 13 ! 156: #define b_CtxFlagHWOptionsalInstr 14 ! 157: #define b_CtxFlagHW64Bit 15 ! 158: #define b_CtxFlagUnused16 16 ! 159: #define b_CtxFlagUnused17 17 ! 160: #define b_CtxFlagUnused18 18 ! 161: #define b_CtxFlagUnused19 19 ! 162: #define b_CtxFlagFPExceptionMode0 20 ! 163: #define b_CtxFlagStepTraceEnabled 21 ! 164: #define b_CtxFlagBranchTraceEnabled 22 ! 165: #define b_CtxFlagFpExceptionMode1 23 ! 166: #define b_CtxFlagUnused24 24 ! 167: #define b_CtxFlagUnused25 24 ! 168: #define b_CtxFlagTracePending 26 ! 169: #define b_CtxFlagMemInfoValid 27 ! 170: #define b_CtxFlag64BitMode 28 ! 171: #define b_CtxFlagEmulatePowerCompatible 29 ! 172: #define b_CtxFlagEmulateOptionalInstr 30 ! 173: #define b_CtxFlagInstructionContinuation 31 ! 174: ! 175: /* Exception Causes stored in bits 0..7 fo CtxFlags */ ! 176: #define ecNoException ((0<<3)+0) ! 177: #define ecSystemCall ((0<<3)+1) ! 178: #define ecTrapInstr ((0<<3)+2) ! 179: #define ecFloatException ((0<<3)+3) ! 180: #define ecInvalidInstr ((0<<3)+4) ! 181: #define ecPrivilegedInstr ((0<<3)+5) ! 182: #define ecMachineCheck ((0<<3)+7) ! 183: ! 184: #define ecInstTrace ((1<<3)+0) ! 185: #define ecInstInvalidAddress ((1<<3)+2) ! 186: #define ecInstHardwareFault ((1<<3)+3) ! 187: #define ecPageFalut ((1<<3)+4) ! 188: #define ecInstSupAccessViolation ((1<<3)+6) ! 189: ! 190: #define ecDataInvalidAddress ((2<<3)+2) ! 191: #define ecDataHardwareFault ((2<<3)+3) ! 192: #define ecDataPageFault ((2<<3)+4) ! 193: #define ecDataWriteViolation ((2<<3)+5) ! 194: #define ecDataSupAccessViolation ((2<<3)+6) ! 195: #define ecDataSupWriteViolation ((2<<3)+7) ! 196: ! 197: /* ! 198: ** Registers used for decoding fields of unimplemented instructions ! 199: */ ! 200: #define UnimpRSRT MemCmdInfo ! 201: #define UnimpRS UnimpRSRT ! 202: #define UnimpRT UnimpRSRT ! 203: #define UnimpRA MemUpdateEA ! 204: #define UnimpRB MemAddress ! 205: #define UnimpMQptr MemByteCount ! 206: #define UnimpMQtmp SavedVBR ! 207: #define UnimpXERtmp MemSetupInfo ! 208: ! 209: #define dUnimpRSRT dMemCmdInfo ! 210: #define dUnimpRS dUnimpRSRT ! 211: #define dUnimpRT dUnimpRSRT ! 212: #define dUnimpRA dMemUpdateEA ! 213: #define dUnimpRB dMemAddress ! 214: #define dUnimpMQptr dMemByteCount ! 215: #define dUnimpMQtmp dSavedVBR ! 216: #define dUnimpXERtmp dMemSetupInfo ! 217: ! 218: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.