亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? load_store.c

?? LINUX1.0源代碼,代碼條理清晰
?? C
字號:
/*---------------------------------------------------------------------------+
 |  load_store.c                                                             |
 |                                                                           |
 | This file contains most of the code to interpret the FPU instructions     |
 | which load and store from user memory.                                    |
 |                                                                           |
 | Copyright (C) 1992,1993,1994                                              |
 |                       W. Metzenthen, 22 Parker St, Ormond, Vic 3163,      |
 |                       Australia.  E-mail   billm@vaxc.cc.monash.edu.au    |
 |                                                                           |
 |                                                                           |
 +---------------------------------------------------------------------------*/

/*---------------------------------------------------------------------------+
 | Note:                                                                     |
 |    The file contains code which accesses user memory.                     |
 |    Emulator static data may change when user memory is accessed, due to   |
 |    other processes using the emulator while swapping is in progress.      |
 +---------------------------------------------------------------------------*/

#include <asm/segment.h>

#include "fpu_system.h"
#include "exception.h"
#include "fpu_emu.h"
#include "status_w.h"
#include "control_w.h"


#define _NONE_ 0   /* FPU_st0_ptr etc not needed */
#define _REG0_ 1   /* Will be storing st(0) */
#define _PUSH_ 3   /* Need to check for space to push onto stack */
#define _null_ 4   /* Function illegal or not implemented */

#define pop_0()	{ pop_ptr->tag = TW_Empty; top++; }


static unsigned char const type_table[32] = {
  _PUSH_, _PUSH_, _PUSH_, _PUSH_,
  _null_, _null_, _null_, _null_,
  _REG0_, _REG0_, _REG0_, _REG0_,
  _REG0_, _REG0_, _REG0_, _REG0_,
  _NONE_, _null_, _NONE_, _PUSH_,
  _NONE_, _PUSH_, _null_, _PUSH_,
  _NONE_, _null_, _NONE_, _REG0_,
  _NONE_, _REG0_, _NONE_, _REG0_
  };

void load_store_instr(char type, fpu_addr_modes addr_modes)
{
  FPU_REG *pop_ptr;  /* We need a version of FPU_st0_ptr which won't
			change if the emulator is re-entered. */

  pop_ptr = NULL;    /* Initialized just to stop compiler warnings. */
  switch ( type_table[(int) (unsigned) type] )
    {
    case _NONE_:
      break;
    case _REG0_:
      pop_ptr = &st(0);       /* Some of these instructions pop after
				 storing */

      FPU_st0_ptr = pop_ptr;      /* Set the global variables. */
      FPU_st0_tag = FPU_st0_ptr->tag;
      break;
    case _PUSH_:
      {
	pop_ptr = &st(-1);
	if ( pop_ptr->tag != TW_Empty )
	  { stack_overflow(); return; }
	top--;
      }
      break;
    case _null_:
      FPU_illegal();
      return;
#ifdef PARANOID
    default:
      EXCEPTION(EX_INTERNAL);
      return;
#endif PARANOID
    }

switch ( type )
  {
  case 000:       /* fld m32real */
    clear_C1();
    reg_load_single();
    if ( (FPU_loaded_data.tag == TW_NaN) &&
	real_2op_NaN(&FPU_loaded_data, &FPU_loaded_data, &FPU_loaded_data) )
      {
	top++;
	break;
      }
    reg_move(&FPU_loaded_data, pop_ptr);
    break;
  case 001:      /* fild m32int */
    clear_C1();
    reg_load_int32();
    reg_move(&FPU_loaded_data, pop_ptr);
    break;
  case 002:      /* fld m64real */
    clear_C1();
    reg_load_double();
    if ( (FPU_loaded_data.tag == TW_NaN) &&
	real_2op_NaN(&FPU_loaded_data, &FPU_loaded_data, &FPU_loaded_data) )
      {
	top++;
	break;
      }
    reg_move(&FPU_loaded_data, pop_ptr);
    break;
  case 003:      /* fild m16int */
    clear_C1();
    reg_load_int16();
    reg_move(&FPU_loaded_data, pop_ptr);
    break;
  case 010:      /* fst m32real */
    clear_C1();
    reg_store_single();
    break;
  case 011:      /* fist m32int */
    clear_C1();
    reg_store_int32();
    break;
  case 012:     /* fst m64real */
    clear_C1();
    reg_store_double();
    break;
  case 013:     /* fist m16int */
    clear_C1();
    reg_store_int16();
    break;
  case 014:     /* fstp m32real */
    clear_C1();
    if ( reg_store_single() )
      pop_0();  /* pop only if the number was actually stored
		 (see the 80486 manual p16-28) */
    break;
  case 015:     /* fistp m32int */
    clear_C1();
    if ( reg_store_int32() )
      pop_0();  /* pop only if the number was actually stored
		 (see the 80486 manual p16-28) */
    break;
  case 016:     /* fstp m64real */
    clear_C1();
    if ( reg_store_double() )
      pop_0();  /* pop only if the number was actually stored
		 (see the 80486 manual p16-28) */
    break;
  case 017:     /* fistp m16int */
    clear_C1();
    if ( reg_store_int16() )
      pop_0();  /* pop only if the number was actually stored
		 (see the 80486 manual p16-28) */
    break;
  case 020:     /* fldenv  m14/28byte */
    fldenv(addr_modes);
    break;
  case 022:     /* frstor m94/108byte */
    frstor(addr_modes);
    break;
  case 023:     /* fbld m80dec */
    clear_C1();
    reg_load_bcd();
    reg_move(&FPU_loaded_data, pop_ptr);
    break;
  case 024:     /* fldcw */
    RE_ENTRANT_CHECK_OFF;
    FPU_verify_area(VERIFY_READ, FPU_data_address, 2);
    control_word = get_fs_word((unsigned short *) FPU_data_address);
    RE_ENTRANT_CHECK_ON;
    if ( partial_status & ~control_word & CW_Exceptions )
      partial_status |= (SW_Summary | SW_Backward);
    else
      partial_status &= ~(SW_Summary | SW_Backward);
#ifdef PECULIAR_486
    control_word |= 0x40;  /* An 80486 appears to always set this bit */
#endif PECULIAR_486
    NO_NET_DATA_EFFECT;
    NO_NET_INSTR_EFFECT;
    break;
  case 025:      /* fld m80real */
    clear_C1();
    reg_load_extended();
    reg_move(&FPU_loaded_data, pop_ptr);
    break;
  case 027:      /* fild m64int */
    clear_C1();
    reg_load_int64();
    reg_move(&FPU_loaded_data, pop_ptr);
    break;
  case 030:     /* fstenv  m14/28byte */
    fstenv(addr_modes);
    NO_NET_DATA_EFFECT;
    break;
  case 032:      /* fsave */
    fsave(addr_modes);
    NO_NET_DATA_EFFECT;
    break;
  case 033:      /* fbstp m80dec */
    clear_C1();
    if ( reg_store_bcd() )
      pop_0();  /* pop only if the number was actually stored
		 (see the 80486 manual p16-28) */
    break;
  case 034:      /* fstcw m16int */
    RE_ENTRANT_CHECK_OFF;
    FPU_verify_area(VERIFY_WRITE,FPU_data_address,2);
    put_fs_word(control_word, (short *) FPU_data_address);
    RE_ENTRANT_CHECK_ON;
    NO_NET_DATA_EFFECT;
    NO_NET_INSTR_EFFECT;
    break;
  case 035:      /* fstp m80real */
    clear_C1();
    if ( reg_store_extended() )
      pop_0();  /* pop only if the number was actually stored
		 (see the 80486 manual p16-28) */
    break;
  case 036:      /* fstsw m2byte */
    RE_ENTRANT_CHECK_OFF;
    FPU_verify_area(VERIFY_WRITE,FPU_data_address,2);
    put_fs_word(status_word(),(short *) FPU_data_address);
    RE_ENTRANT_CHECK_ON;
    NO_NET_DATA_EFFECT;
    NO_NET_INSTR_EFFECT;
    break;
  case 037:      /* fistp m64int */
    clear_C1();
    if ( reg_store_int64() )
      pop_0();  /* pop only if the number was actually stored
		 (see the 80486 manual p16-28) */
    break;
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产·精品毛片| 一区二区高清免费观看影视大全 | 国产在线精品一区二区 | 一区二区三区四区中文字幕| 亚洲国产日韩一级| 国产精品一卡二| 精品污污网站免费看| 亚洲精品一区二区精华| 国产日本亚洲高清| 午夜精品久久久久久久久久久| 久久黄色级2电影| 一本色道久久综合亚洲aⅴ蜜桃| 日韩一区二区麻豆国产| 国产精品精品国产色婷婷| 日韩电影免费在线| 激情伊人五月天久久综合| 91首页免费视频| 国产婷婷色一区二区三区| 午夜不卡在线视频| 麻豆成人久久精品二区三区红 | 一区二区在线免费观看| 日本高清成人免费播放| 99久久精品一区| 福利一区福利二区| 日韩美女一区二区三区四区| 久久精品一区二区三区不卡牛牛 | 韩国一区二区三区| 欧美自拍偷拍一区| 国产精品入口麻豆原神| 精品一区二区综合| 久久久久国产精品麻豆ai换脸| 九九久久精品视频| 精品99999| 国产精品综合久久| 国产精品久久久久久久久免费樱桃 | 成人黄色在线视频| 国产丝袜欧美中文另类| 久久91精品国产91久久小草 | 色婷婷久久99综合精品jk白丝| 国产精品久久久久影院色老大| 成人国产视频在线观看| 中文字幕亚洲一区二区va在线| 91亚洲男人天堂| 亚洲一区在线播放| 日韩精品一区二区三区在线播放| 青青草伊人久久| 久久久国产综合精品女国产盗摄| 国产精品一线二线三线| 国产精品久久久久四虎| 91福利国产成人精品照片| 午夜精品一区二区三区三上悠亚| 日韩一区二区在线看| 国产高清久久久久| 亚洲精品高清在线| 日韩欧美国产午夜精品| 国产aⅴ精品一区二区三区色成熟| 欧美精品一区二区三区蜜臀| 玉足女爽爽91| 一区二区三区四区不卡在线| 亚洲特级片在线| 亚洲精品高清在线观看| 91麻豆国产在线观看| 日韩二区三区四区| 欧美激情中文字幕一区二区| 91国模大尺度私拍在线视频| 麻豆精品一区二区综合av| 欧美极品另类videosde| 欧美日韩视频专区在线播放| 国产一区美女在线| 亚洲亚洲人成综合网络| 国产午夜精品理论片a级大结局| 一本一道波多野结衣一区二区| 日本亚洲电影天堂| 亚洲三级电影全部在线观看高清| 欧美电影一区二区三区| 99久久婷婷国产综合精品| 日韩国产欧美三级| 国产精品乱码一区二三区小蝌蚪| 福利电影一区二区三区| 精品日产卡一卡二卡麻豆| 黄色日韩网站视频| 午夜激情综合网| 国产精品女同互慰在线看| 欧美放荡的少妇| 一本到不卡精品视频在线观看| 精品夜夜嗨av一区二区三区| 亚洲高清免费视频| 亚洲欧洲成人精品av97| 国产清纯白嫩初高生在线观看91| 制服丝袜在线91| 欧美色中文字幕| 91丨porny丨国产| 成人性生交大片免费看中文| 久久99国产精品久久99| 亚洲最大成人网4388xx| 国产精品久久夜| 欧美国产精品中文字幕| 久久这里都是精品| 精品国产在天天线2019| 在线成人免费视频| 91精品办公室少妇高潮对白| 成人高清视频在线| 成年人国产精品| 成人三级伦理片| 欧美视频在线一区| 色屁屁一区二区| 色综合久久久网| 色综合网色综合| 99久久99精品久久久久久 | 色偷偷成人一区二区三区91| 国产精品1区2区3区| 国产美女主播视频一区| 国产精品一二三区| 国产精品资源在线| 国产suv精品一区二区6| 不卡区在线中文字幕| a级精品国产片在线观看| 成人毛片老司机大片| 99国产精品久久| 91黄色免费观看| 欧美三级日韩三级| 日韩一区二区高清| 久久一日本道色综合| 国产女人水真多18毛片18精品视频| 日韩精品在线一区| 久久久亚洲精品一区二区三区| 久久久久久综合| 国产精品网站一区| 亚洲色图20p| 亚洲国产精品久久艾草纯爱| 日本aⅴ精品一区二区三区| 国产一区美女在线| 91蜜桃视频在线| 欧美一区二视频| 国产调教视频一区| 亚洲免费色视频| 麻豆精品国产传媒mv男同| 91精品国产福利在线观看 | 欧美三区免费完整视频在线观看| 一本久久a久久免费精品不卡| 色综合久久88色综合天天6 | 91麻豆免费看| 亚洲欧美日韩一区二区三区在线观看| 亚洲色图色小说| 日本aⅴ亚洲精品中文乱码| 国产精品正在播放| 欧美在线999| 久久久精品中文字幕麻豆发布| 亚洲免费在线观看| 久久国产尿小便嘘嘘| www.在线欧美| 日韩欧美在线123| 国产精品你懂的| 日韩高清不卡一区二区三区| 成人免费高清在线| 91精品久久久久久久久99蜜臂| 欧美激情综合在线| 青青草国产成人99久久| 99久久精品情趣| 精品sm在线观看| **性色生活片久久毛片| 欧美日韩精品久久久| 99r国产精品| 欧美日韩dvd在线观看| 国产欧美综合色| 日本不卡123| 色婷婷精品大视频在线蜜桃视频| 欧美日韩精品一区二区三区蜜桃| 国产三区在线成人av| 亚洲成人免费观看| 福利一区二区在线| 精品欧美一区二区在线观看| 亚洲一区中文日韩| 国产.欧美.日韩| 日韩亚洲欧美成人一区| 一区二区三区高清不卡| 国产成人av网站| 欧美videofree性高清杂交| 成人网在线免费视频| 久久蜜桃香蕉精品一区二区三区| 日本欧美肥老太交大片| 91福利社在线观看| 亚洲免费伊人电影| 91小宝寻花一区二区三区| 欧美国产一区二区在线观看| 国内成人免费视频| 欧美成人免费网站| 日韩精品成人一区二区在线| 欧美日韩综合在线免费观看| 欧美揉bbbbb揉bbbbb| 99re热视频这里只精品| 国产成人免费9x9x人网站视频| 91精品国产乱码| 人人狠狠综合久久亚洲| 日韩视频在线你懂得| 日本不卡一二三| 欧美mv和日韩mv国产网站| 久久99日本精品| 精品久久国产字幕高潮| 激情五月激情综合网|