Merge branch 'ppc-for-upstream' of git://github.com/agraf/qemu
* 'ppc-for-upstream' of git://github.com/agraf/qemu: PPC: Depend behavior of cmp instructions only on instruction encoding
This commit is contained in:
commit
d551d220c9
@ -675,11 +675,11 @@ static inline void gen_set_Rc0(DisasContext *ctx, TCGv reg)
|
||||
/* cmp */
|
||||
static void gen_cmp(DisasContext *ctx)
|
||||
{
|
||||
if (NARROW_MODE(ctx) || !(ctx->opcode & 0x00200000)) {
|
||||
gen_op_cmp32(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)],
|
||||
if ((ctx->opcode & 0x00200000) && (ctx->insns_flags & PPC_64B)) {
|
||||
gen_op_cmp(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)],
|
||||
1, crfD(ctx->opcode));
|
||||
} else {
|
||||
gen_op_cmp(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)],
|
||||
gen_op_cmp32(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)],
|
||||
1, crfD(ctx->opcode));
|
||||
}
|
||||
}
|
||||
@ -687,11 +687,11 @@ static void gen_cmp(DisasContext *ctx)
|
||||
/* cmpi */
|
||||
static void gen_cmpi(DisasContext *ctx)
|
||||
{
|
||||
if (NARROW_MODE(ctx) || !(ctx->opcode & 0x00200000)) {
|
||||
gen_op_cmpi32(cpu_gpr[rA(ctx->opcode)], SIMM(ctx->opcode),
|
||||
if ((ctx->opcode & 0x00200000) && (ctx->insns_flags & PPC_64B)) {
|
||||
gen_op_cmpi(cpu_gpr[rA(ctx->opcode)], SIMM(ctx->opcode),
|
||||
1, crfD(ctx->opcode));
|
||||
} else {
|
||||
gen_op_cmpi(cpu_gpr[rA(ctx->opcode)], SIMM(ctx->opcode),
|
||||
gen_op_cmpi32(cpu_gpr[rA(ctx->opcode)], SIMM(ctx->opcode),
|
||||
1, crfD(ctx->opcode));
|
||||
}
|
||||
}
|
||||
@ -699,11 +699,11 @@ static void gen_cmpi(DisasContext *ctx)
|
||||
/* cmpl */
|
||||
static void gen_cmpl(DisasContext *ctx)
|
||||
{
|
||||
if (NARROW_MODE(ctx) || !(ctx->opcode & 0x00200000)) {
|
||||
gen_op_cmp32(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)],
|
||||
if ((ctx->opcode & 0x00200000) && (ctx->insns_flags & PPC_64B)) {
|
||||
gen_op_cmp(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)],
|
||||
0, crfD(ctx->opcode));
|
||||
} else {
|
||||
gen_op_cmp(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)],
|
||||
gen_op_cmp32(cpu_gpr[rA(ctx->opcode)], cpu_gpr[rB(ctx->opcode)],
|
||||
0, crfD(ctx->opcode));
|
||||
}
|
||||
}
|
||||
@ -711,11 +711,11 @@ static void gen_cmpl(DisasContext *ctx)
|
||||
/* cmpli */
|
||||
static void gen_cmpli(DisasContext *ctx)
|
||||
{
|
||||
if (NARROW_MODE(ctx) || !(ctx->opcode & 0x00200000)) {
|
||||
gen_op_cmpi32(cpu_gpr[rA(ctx->opcode)], UIMM(ctx->opcode),
|
||||
if ((ctx->opcode & 0x00200000) && (ctx->insns_flags & PPC_64B)) {
|
||||
gen_op_cmpi(cpu_gpr[rA(ctx->opcode)], UIMM(ctx->opcode),
|
||||
0, crfD(ctx->opcode));
|
||||
} else {
|
||||
gen_op_cmpi(cpu_gpr[rA(ctx->opcode)], UIMM(ctx->opcode),
|
||||
gen_op_cmpi32(cpu_gpr[rA(ctx->opcode)], UIMM(ctx->opcode),
|
||||
0, crfD(ctx->opcode));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user