gamma_init.c 1.23 KB
/*
 * Copyright (C) 1998 by the Board of Trustees
 *    of Leland Stanford Junior University.
 * Copyright (C) 1998 Digital Equipment Corporation
 *
 * This file is part of the SimOS distribution.
 * See LICENSE file for terms of the license.
 *
 */



#include "sim_error.h"
#include "gamma.h"

#define GAMMA_ASM_EXTERNS
#include "gamma_asm.c"

#undef GAMMA_ASM_EXTERNS
#define GAMMA_ASM_TABLE


void GammaInitTables(void)
{ 
 
#include "gamma_asm.c"
   gammaMemoryTable[op_ldl_l] = (MemoryFunction)ldl_l_ff;
   gammaMemoryTable[op_stl_c] = (MemoryFunction)stl_c_ff;
   gammaMemoryTable[op_ldq_l] = (MemoryFunction)ldq_l_ff;
   gammaMemoryTable[op_stq_c] = (MemoryFunction)stq_c_ff;

#if 0
   /*
    * define the integer opcodes than can potentiall trap 
    * on overflow,....
    * moved to gamma_asm.c
    */

#define GAMMA_INT_CANTRAP(_opcode,_func) \
   gammaOperateFlags[(_opcode <<7) + _func] |= AXPTYPE_CANTRAP;
   
   GAMMA_INT_CANTRAP(op_inta,inta_addlv);
   GAMMA_INT_CANTRAP(op_inta,inta_addqv);
   GAMMA_INT_CANTRAP(op_inta,inta_subqv);
   GAMMA_INT_CANTRAP(op_intl,intl_eqv);
   GAMMA_INT_CANTRAP(op_intm,intm_mullv);
   GAMMA_INT_CANTRAP(op_intm,intm_mulqv);
#endif
 
}