aboutsummaryrefslogtreecommitdiff
path: root/sim/cris
diff options
context:
space:
mode:
Diffstat (limited to 'sim/cris')
-rw-r--r--sim/cris/semcrisv32f-switch.c30
1 files changed, 13 insertions, 17 deletions
diff --git a/sim/cris/semcrisv32f-switch.c b/sim/cris/semcrisv32f-switch.c
index 6d5e18f..88c8581 100644
--- a/sim/cris/semcrisv32f-switch.c
+++ b/sim/cris/semcrisv32f-switch.c
@@ -3118,17 +3118,13 @@ cgen_rtx_error (current_cpu, "move-r-spr: trying to set a read-only special regi
tmp_prno = FLD (f_operand2);
tmp_newval = GET_H_SR (FLD (f_operand2));
if (EQSI (tmp_prno, 2)) {
-{
- SI tmp_oldregval;
- tmp_oldregval = GET_H_RAW_GR_ACR (FLD (f_operand1));
{
- SI opval = ORSI (ANDSI (tmp_newval, 255), ANDSI (tmp_oldregval, 0xffffff00));
+ SI opval = tmp_newval;
SET_H_GR (FLD (f_operand1), opval);
written |= (1 << 4);
TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
}
}
-}
else if (EQSI (tmp_prno, 3)) {
{
SI tmp_oldregval;
@@ -3301,16 +3297,16 @@ cgen_rtx_error (current_cpu, "move-spr-r from unimplemented register");
SI tmp_newval;
tmp_rno = FLD (f_operand2);
if (EQSI (tmp_rno, 2)) {
- tmp_newval = EXTQISI (({ SI tmp_addr;
- QI tmp_tmp_mem;
+ tmp_newval = ({ SI tmp_addr;
+ SI tmp_tmp_mem;
BI tmp_postinc;
tmp_postinc = FLD (f_memmode);
; tmp_addr = ((EQBI (GET_H_INSN_PREFIXED_P (), 0)) ? (GET_H_GR (FLD (f_operand1))) : (GET_H_PREFIXREG_V32 ()));
-; tmp_tmp_mem = GETMEMQI (current_cpu, pc, tmp_addr);
+; tmp_tmp_mem = GETMEMSI (current_cpu, pc, tmp_addr);
; if (NEBI (tmp_postinc, 0)) {
{
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
- tmp_addr = ADDSI (tmp_addr, 1);
+ tmp_addr = ADDSI (tmp_addr, 4);
}
{
SI opval = tmp_addr;
@@ -3320,7 +3316,7 @@ if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
}
}
}
-; tmp_tmp_mem; }));
+; tmp_tmp_mem; });
}
else if (EQSI (tmp_rno, 3)) {
tmp_newval = EXTQISI (({ SI tmp_addr;
@@ -4009,9 +4005,9 @@ if (ANDIF (GET_H_V32_V32 (), NEBI (CPU (h_xbit), 0))) {
if (EQBI (CPU (h_pbit), 0)) {
{
{
- QI opval = GET_H_SR (FLD (f_operand2));
- SETMEMQI (current_cpu, pc, tmp_addr, opval);
- written |= (1 << 12);
+ SI opval = GET_H_SR (FLD (f_operand2));
+ SETMEMSI (current_cpu, pc, tmp_addr, opval);
+ written |= (1 << 13);
TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
}
{
@@ -4031,16 +4027,16 @@ if (EQBI (CPU (h_pbit), 0)) {
}
} else {
{
- QI opval = GET_H_SR (FLD (f_operand2));
- SETMEMQI (current_cpu, pc, tmp_addr, opval);
- written |= (1 << 12);
+ SI opval = GET_H_SR (FLD (f_operand2));
+ SETMEMSI (current_cpu, pc, tmp_addr, opval);
+ written |= (1 << 13);
TRACE_RESULT (current_cpu, abuf, "memory", 'x', opval);
}
}
if (NEBI (tmp_postinc, 0)) {
{
if (EQBI (GET_H_INSN_PREFIXED_P (), 0)) {
- tmp_addr = ADDSI (tmp_addr, 1);
+ tmp_addr = ADDSI (tmp_addr, 4);
}
{
SI opval = tmp_addr;