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 |