target-ppc: emulate fcpsgn instruction
Needed for Power ISA version 2.05 compliance. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
		
							parent
							
								
									725bcec288
								
							
						
					
					
						commit
						f03328882f
					
				| 
						 | 
				
			
			@ -2258,6 +2258,19 @@ static void gen_fneg(DisasContext *ctx)
 | 
			
		|||
    gen_compute_fprf(cpu_fpr[rD(ctx->opcode)], 0, Rc(ctx->opcode) != 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* fcpsgn: PowerPC 2.05 specification */
 | 
			
		||||
/* XXX: beware that fcpsgn never checks for NaNs nor update FPSCR */
 | 
			
		||||
static void gen_fcpsgn(DisasContext *ctx)
 | 
			
		||||
{
 | 
			
		||||
    if (unlikely(!ctx->fpu_enabled)) {
 | 
			
		||||
        gen_exception(ctx, POWERPC_EXCP_FPU);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    tcg_gen_deposit_i64(cpu_fpr[rD(ctx->opcode)], cpu_fpr[rA(ctx->opcode)],
 | 
			
		||||
                        cpu_fpr[rB(ctx->opcode)], 0, 63);
 | 
			
		||||
    gen_compute_fprf(cpu_fpr[rD(ctx->opcode)], 0, Rc(ctx->opcode) != 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/***                  Floating-Point status & ctrl register                ***/
 | 
			
		||||
 | 
			
		||||
/* mcrfs */
 | 
			
		||||
| 
						 | 
				
			
			@ -8559,6 +8572,7 @@ GEN_HANDLER(fabs, 0x3F, 0x08, 0x08, 0x001F0000, PPC_FLOAT),
 | 
			
		|||
GEN_HANDLER(fmr, 0x3F, 0x08, 0x02, 0x001F0000, PPC_FLOAT),
 | 
			
		||||
GEN_HANDLER(fnabs, 0x3F, 0x08, 0x04, 0x001F0000, PPC_FLOAT),
 | 
			
		||||
GEN_HANDLER(fneg, 0x3F, 0x08, 0x01, 0x001F0000, PPC_FLOAT),
 | 
			
		||||
GEN_HANDLER_E(fcpsgn, 0x3F, 0x08, 0x00, 0x00000000, PPC_NONE, PPC2_ISA205),
 | 
			
		||||
GEN_HANDLER(mcrfs, 0x3F, 0x00, 0x02, 0x0063F801, PPC_FLOAT),
 | 
			
		||||
GEN_HANDLER(mffs, 0x3F, 0x07, 0x12, 0x001FF800, PPC_FLOAT),
 | 
			
		||||
GEN_HANDLER(mtfsb0, 0x3F, 0x06, 0x02, 0x001FF800, PPC_FLOAT),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue