[RFA] h8-sim: shift variable
Michael Snyder
msnyder@redhat.com
Fri Jul 18 00:11:00 GMT 2003
Michael Snyder wrote:
> This allows shifts with the amount-to-shift in a register operand.
committed.
> ------------------------------------------------------------------------
>
> 2003-06-18 Michael Snyder <msnyder@redhat.com>
>
> * compile.c (sim_resume): Handle shll reg, reg and shlr reg, reg.
>
> Index: compile.c
> ===================================================================
> RCS file: /cvs/cvsfiles/devo/sim/h8sx/compile.c,v
> retrieving revision 1.83
> retrieving revision 1.85
> diff -p -r1.83 -r1.85
> *** compile.c 2003/06/19 01:40:53 1.83
> --- compile.c 2003/07/02 19:09:27 1.85
> *************** sim_resume (SIM_DESC sd, int step, int s
> *** 3151,3160 ****
> if (fetch2 (sd, &code->dst, &rd))
> goto end;
>
> ! if (code->src.type == X (OP_IMM, SB))
> fetch (sd, &code->src, &ea);
> - else
> - ea = 1;
>
> if (code->opcode == O (O_SHLL, SB))
> {
> --- 3153,3162 ----
> if (fetch2 (sd, &code->dst, &rd))
> goto end;
>
> ! if (memcmp (&code->src, &code->dst, sizeof (code->src)) == 0)
> ! ea = 1; /* unary op */
> ! else /* binary op */
> fetch (sd, &code->src, &ea);
>
> if (code->opcode == O (O_SHLL, SB))
> {
> *************** sim_resume (SIM_DESC sd, int step, int s
> *** 3175,3184 ****
> if (fetch2 (sd, &code->dst, &rd))
> goto end;
>
> ! if (code->src.type == X (OP_IMM, SW))
> ! fetch (sd, &code->src, &ea);
> else
> ! ea = 1;
>
> if (code->opcode == O (O_SHLL, SW))
> {
> --- 3177,3186 ----
> if (fetch2 (sd, &code->dst, &rd))
> goto end;
>
> ! if (memcmp (&code->src, &code->dst, sizeof (code->src)) == 0)
> ! ea = 1; /* unary op */
> else
> ! fetch (sd, &code->src, &ea);
>
> if (code->opcode == O (O_SHLL, SW))
> {
> *************** sim_resume (SIM_DESC sd, int step, int s
> *** 3199,3208 ****
> if (fetch2 (sd, &code->dst, &rd))
> goto end;
>
> ! if (code->src.type == X (OP_IMM, SL))
> ! fetch (sd, &code->src, &ea);
> else
> ! ea = 1;
>
> if (code->opcode == O (O_SHLL, SL))
> {
> --- 3201,3210 ----
> if (fetch2 (sd, &code->dst, &rd))
> goto end;
>
> ! if (memcmp (&code->src, &code->dst, sizeof (code->src)) == 0)
> ! ea = 1; /* unary op */
> else
> ! fetch (sd, &code->src, &ea);
>
> if (code->opcode == O (O_SHLL, SL))
> {
More information about the Gdb-patches
mailing list