URL
https://opencores.org/ocsvn/or1k/or1k/trunk
[/] [or1k/] [trunk/] [or1ksim/] [cpu/] [or32/] [dyn-rec.c] - Diff between revs 1748 and 1751
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 1748 |
Rev 1751 |
Line 40... |
Line 40... |
#include "execute.h"
|
#include "execute.h"
|
#include "except.h"
|
#include "except.h"
|
#include "spr-defs.h"
|
#include "spr-defs.h"
|
#include "sim-config.h"
|
#include "sim-config.h"
|
#include "sched.h"
|
#include "sched.h"
|
|
|
#include "i386-regs.h"
|
#include "i386-regs.h"
|
|
|
#include "def-op-t.h"
|
#include "def-op-t.h"
|
#include "dyn-rec.h"
|
#include "dyn-rec.h"
|
#include "gen-ops.h"
|
#include "gen-ops.h"
|
|
|
#include "op-support.h"
|
#include "op-support.h"
|
|
#include "toplevel-support.h"
|
|
|
|
|
/* NOTE: All openrisc (or) addresses in this file are *PHYSICAL* addresses */
|
/* NOTE: All openrisc (or) addresses in this file are *PHYSICAL* addresses */
|
|
|
/* FIXME: Optimise sorted list adding */
|
/* FIXME: Optimise sorted list adding */
|
|
|
Line 1071... |
Line 1070... |
/* Just clear param_t[0] */
|
/* Just clear param_t[0] */
|
clear_t[param_t[0]](opq, 1);
|
clear_t[param_t[0]](opq, 1);
|
return;
|
return;
|
}
|
}
|
|
|
if((opq->param[0] == opq->param[1] == opq->param[2]) && (param_t[2] != T_NONE))
|
if((opq->param[0] == opq->param[1]) &&
|
|
(opq->param[0] == opq->param[2]) &&
|
|
(param_t[2] != T_NONE))
|
return;
|
return;
|
|
|
if(param_t[2] == T_NONE)
|
if(param_t[2] == T_NONE)
|
l_and_imm_t_table[param_t[0]][param_t[1]](opq, 1, opq->param[2]);
|
l_and_imm_t_table[param_t[0]][param_t[1]](opq, 1, opq->param[2]);
|
else
|
else
|
Line 1726... |
Line 1727... |
void gen_l_or(struct op_queue *opq, int param_t[3], int delay_slot)
|
void gen_l_or(struct op_queue *opq, int param_t[3], int delay_slot)
|
{
|
{
|
if(!opq->param[0])
|
if(!opq->param[0])
|
return;
|
return;
|
|
|
if((opq->param[0] == opq->param[1] == opq->param[2]) && (param_t[2] != T_NONE))
|
if((opq->param[0] == opq->param[1]) &&
|
|
(opq->param[0] == opq->param[2]) &&
|
|
(param_t[2] != T_NONE))
|
return;
|
return;
|
|
|
if(!opq->param[1] && !opq->param[2]) {
|
if(!opq->param[1] && !opq->param[2]) {
|
clear_t[param_t[0]](opq, 1);
|
clear_t[param_t[0]](opq, 1);
|
return;
|
return;
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.