|
|
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: // ************************************************************************* ! 26: // ! 27: // fp_emul.h ! 28: // ================================================================ ! 29: // intel corporation proprietary information ! 30: // this software is supplied under the terms of a license ! 31: // agreement or non-disclosure agreement with intel corporation ! 32: // and may not be copied nor disclosed except in accordance with ! 33: // the terms of that agreement. ! 34: // ================================================================ ! 35: // ! 36: // **************************************************************************** ! 37: ! 38: /* ! 39: * to turn off counters that track number of traps and number of instructions. ! 40: */ ! 41: /* #define FP_COUNTERS */ ! 42: ! 43: /* ! 44: * Structure to represent state of stack to the floating point emulation code. ! 45: */ ! 46: ! 47: typedef struct fp_emul_work { ! 48: u_char mem_operand_pointer[6]; ! 49: short filler0; ! 50: u_char instruction_pointer[6]; ! 51: u_char operation_type; ! 52: u_char reg_num; ! 53: u_char op1_format; ! 54: u_char op1_location; ! 55: u_char op1_use_up; ! 56: ! 57: u_char op2_format; ! 58: u_char op2_location; ! 59: u_char op2_use_up; ! 60: ! 61: u_char result_format; ! 62: u_char result_location; ! 63: ! 64: u_char result2_format; ! 65: u_char result2_location; ! 66: ! 67: u_long dword_frac1[3]; ! 68: u_char sign1; ! 69: u_char sign1_ext; ! 70: u_char tag1; ! 71: u_char tag1_ext; ! 72: u_short expon1; ! 73: u_short expon1_ext; ! 74: ! 75: u_long dword_frac2[3]; ! 76: u_char sign2; ! 77: u_char sign2_ext; ! 78: u_char tag2; ! 79: u_char tag2_ext; ! 80: u_char expon2; ! 81: u_char expon2_ext; ! 82: ! 83: u_long before_error_signals; ! 84: u_long extra_dword_reg[3]; ! 85: u_long result_dword_frac[3]; ! 86: u_char result_sign; ! 87: u_char result_sign_ext; ! 88: u_char result_tag; ! 89: u_char result_tag_ext; ! 90: u_short result_expon; ! 91: u_short result_expon_ext; ! 92: ! 93: u_long result2_dword_frac[3]; ! 94: u_char result2_sign; ! 95: u_char result2_sign_ext; ! 96: u_char result2_tag; ! 97: u_char result2_tag_ext; ! 98: u_short result2_expon; ! 99: u_short result2_expon_ext; ! 100: ! 101: u_long dword_cop[3]; ! 102: u_long dword_dop[3]; ! 103: ! 104: u_char oprnd_siz32; ! 105: u_char addrs_siz32; ! 106: ! 107: u_long fpstate_ptr; /* pointer to fp state in pcb */ ! 108: u_char is16bit; ! 109: u_long inst_counter; /* counter of loops thru emulator*/ ! 110: } fp_emul_work_t; ! 111: ! 112: typedef struct fp_emul_state { ! 113: ! 114: fp_emul_work_t emul_work_area; ! 115: ! 116: regs_t emul_regs; ! 117: ! 118: u_long trapno; ! 119: except_frame_t emul_frame; ! 120: ! 121: } fp_emul_state_t ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.