OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 1660 to Rev 1661
    Reverse comparison

Rev 1660 → Rev 1661

/trunk/or1ksim/cpu/or32/op_arith_op.h
17,185 → 17,17
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
 
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t0_t0)(void)
#ifdef OP_3T
__or_dynop void glue(glue(op_, OP_NAME), T)(void)
{
OP_CAST(t0) = OP_CAST(t0) OP OP_CAST(t0) OP_EXTRA;
OP_CAST(T0) = OP_CAST(T1) OP OP_CAST(T2) OP_EXTRA;
}
#endif
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t0_t1)(void)
#ifdef OP_2T
__or_dynop void glue(glue(glue(op_, OP_NAME), _imm), T)(void)
{
OP_CAST(t0) = OP_CAST(t0) OP OP_CAST(t1) OP_EXTRA;
OP_CAST(T0) = OP_CAST(T1) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
#endif
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t0_t2)(void)
{
OP_CAST(t0) = OP_CAST(t0) OP OP_CAST(t2) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t1_t0)(void)
{
OP_CAST(t0) = OP_CAST(t1) OP OP_CAST(t0) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t1_t1)(void)
{
OP_CAST(t0) = OP_CAST(t1) OP OP_CAST(t1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t1_t2)(void)
{
OP_CAST(t0) = OP_CAST(t1) OP OP_CAST(t2) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t2_t0)(void)
{
OP_CAST(t0) = OP_CAST(t2) OP OP_CAST(t0) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t2_t1)(void)
{
OP_CAST(t0) = OP_CAST(t2) OP OP_CAST(t1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t0_t2_t2)(void)
{
OP_CAST(t0) = OP_CAST(t2) OP OP_CAST(t2) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t0_t0)(void)
{
OP_CAST(t1) = OP_CAST(t0) OP OP_CAST(t0) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t0_t1)(void)
{
OP_CAST(t1) = OP_CAST(t0) OP OP_CAST(t1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t0_t2)(void)
{
OP_CAST(t1) = OP_CAST(t0) OP OP_CAST(t2) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t1_t0)(void)
{
OP_CAST(t1) = OP_CAST(t1) OP OP_CAST(t0) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t1_t1)(void)
{
OP_CAST(t1) = OP_CAST(t1) OP OP_CAST(t1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t1_t2)(void)
{
OP_CAST(t1) = OP_CAST(t1) OP OP_CAST(t2) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t2_t0)(void)
{
OP_CAST(t1) = OP_CAST(t2) OP OP_CAST(t0) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t2_t1)(void)
{
OP_CAST(t1) = OP_CAST(t2) OP OP_CAST(t1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t1_t2_t2)(void)
{
OP_CAST(t1) = OP_CAST(t2) OP OP_CAST(t2) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t0_t0)(void)
{
OP_CAST(t2) = OP_CAST(t0) OP OP_CAST(t0) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t0_t1)(void)
{
OP_CAST(t2) = OP_CAST(t0) OP OP_CAST(t1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t0_t2)(void)
{
OP_CAST(t2) = OP_CAST(t0) OP OP_CAST(t2) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t1_t0)(void)
{
OP_CAST(t2) = OP_CAST(t1) OP OP_CAST(t0) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t1_t1)(void)
{
OP_CAST(t2) = OP_CAST(t1) OP OP_CAST(t1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t1_t2)(void)
{
OP_CAST(t2) = OP_CAST(t1) OP OP_CAST(t2) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t2_t0)(void)
{
OP_CAST(t2) = OP_CAST(t2) OP OP_CAST(t0) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t2_t1)(void)
{
OP_CAST(t2) = OP_CAST(t2) OP OP_CAST(t1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _t2_t2_t2)(void)
{
OP_CAST(t2) = OP_CAST(t2) OP OP_CAST(t2) OP_EXTRA;
}
 
#ifdef OP_HAS_IMM
__or_dynop void glue(glue(op_, OP_NAME), _imm_t0_t0)(void)
{
OP_CAST(t0) = OP_CAST(t0) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _imm_t0_t1)(void)
{
OP_CAST(t0) = OP_CAST(t1) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _imm_t0_t2)(void)
{
OP_CAST(t0) = OP_CAST(t2) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _imm_t1_t0)(void)
{
OP_CAST(t1) = OP_CAST(t0) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _imm_t1_t1)(void)
{
OP_CAST(t1) = OP_CAST(t1) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _imm_t1_t2)(void)
{
OP_CAST(t1) = OP_CAST(t2) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _imm_t2_t0)(void)
{
OP_CAST(t2) = OP_CAST(t0) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _imm_t2_t1)(void)
{
OP_CAST(t2) = OP_CAST(t1) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
 
__or_dynop void glue(glue(op_, OP_NAME), _imm_t2_t2)(void)
{
OP_CAST(t2) = OP_CAST(t2) OP OP_CAST(OP_PARAM1) OP_EXTRA;
}
#endif /* OP_HAS_IMM */
/trunk/or1ksim/cpu/or32/op.c
508,36 → 508,37
#include "op_3t.h"
#undef OP_FILE
 
#define OP_FILE "op_arith_op.h"
#define OP_EXTRA
 
#define OP /
#define OP_CAST(T) (orreg_t)T
#define OP_CAST(x) (orreg_t)(x)
#define OP_NAME div
#include "op_arith_op.h"
#include "op_3t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP /
#define OP_CAST(T) T
#define OP_CAST(x) (x)
#define OP_NAME divu
#include "op_arith_op.h"
#include "op_3t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP *
#define OP_CAST(T) T
#define OP_CAST(x) (x)
#define OP_NAME mulu
#include "op_arith_op.h"
#include "op_3t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP -
#define OP_CAST(T) (orreg_t)T
#define OP_CAST(x) (orreg_t)(x)
#define OP_NAME sub
#include "op_arith_op.h"
#include "op_3t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
544,13 → 545,12
 
#undef OP_EXTRA
 
#define OP_HAS_IMM
 
#define OP_EXTRA + ((env->sprs[SPR_SR] & SPR_SR_CY) >> 10)
#define OP +
#define OP_CAST(T) (orreg_t)T
#define OP_CAST(x) (orreg_t)(x)
#define OP_NAME addc
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
559,71 → 559,79
#define OP_EXTRA
 
#define OP +
#define OP_CAST(T) (orreg_t)T
#define OP_CAST(x) (orreg_t)(x)
#define OP_NAME add
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP &
#define OP_CAST(T) T
#define OP_CAST(x) (x)
#define OP_NAME and
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP *
#define OP_CAST(T) (orreg_t)T
#define OP_CAST(x) (orreg_t)(x)
#define OP_NAME mul
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP |
#define OP_CAST(T) T
#define OP_CAST(x) (x)
#define OP_NAME or
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP <<
#define OP_CAST(T) T
#define OP_CAST(x) (x)
#define OP_NAME sll
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP >>
#define OP_CAST(T) (orreg_t)T
#define OP_CAST(x) (orreg_t)(x)
#define OP_NAME sra
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP >>
#define OP_CAST(T) T
#define OP_CAST(x) (x)
#define OP_NAME srl
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#define OP ^
#define OP_CAST(T) T
#define OP_CAST(x) (x)
#define OP_NAME xor
#include "op_arith_op.h"
#include "op_3t.h"
#include "op_2t.h"
#undef OP_NAME
#undef OP_CAST
#undef OP
 
#undef OP_EXTRA
#undef OP_HAS_IMM
#undef OP_FILE
 
#define EXT_NAME extbs
#define EXT_TYPE int8_t

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.