From d67a7797d2e171533e6e0a662032e2d5c354902b Mon Sep 17 00:00:00 2001 From: Lukas Zenick Date: Sun, 14 Apr 2024 15:59:24 -0500 Subject: [PATCH 1/2] arch-x86: Movfp account for dataSize=4 Change-Id: I97e7a6f2738a57cad9907ddfe5c8030a26c147e8 --- src/arch/x86/isa/microops/fpop.isa | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/arch/x86/isa/microops/fpop.isa b/src/arch/x86/isa/microops/fpop.isa index b0b925f679..4d85cf3e18 100644 --- a/src/arch/x86/isa/microops/fpop.isa +++ b/src/arch/x86/isa/microops/fpop.isa @@ -257,7 +257,14 @@ let {{ super().__init__(reg1, reg2, reg3, **kwargs) class Movfp(Fp2Op): - code = 'FpDestReg_uqw = FpSrcReg1_uqw;' + code = ''' + if(dataSize == 4) { + FpDestReg_uqw = (0xFFFFFFFF00000000 & FpDestReg_uqw) | + (0x00000000FFFFFFFF & FpSrcReg1_uqw); + } else { + FpDestReg_uqw = FpSrcReg1_uqw; + } + ''' else_code = 'FpDestReg_uqw = FpDestReg_uqw;' cond_check = "checkCondition(ccFlagBits | cfofBits | dfBit | \ ecfBit | ezfBit, src1)" From 01a5edc86e7a079408f20577e615ecda649f7601 Mon Sep 17 00:00:00 2001 From: Lukas Zenick Date: Mon, 15 Apr 2024 22:49:41 -0500 Subject: [PATCH 2/2] arch-x86: Use mbits function for clarity Change-Id: I577ee55752f917e561e4c741ba7a19f0229318b5 --- src/arch/x86/isa/microops/fpop.isa | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/arch/x86/isa/microops/fpop.isa b/src/arch/x86/isa/microops/fpop.isa index 4d85cf3e18..aa89ca9347 100644 --- a/src/arch/x86/isa/microops/fpop.isa +++ b/src/arch/x86/isa/microops/fpop.isa @@ -258,9 +258,9 @@ let {{ class Movfp(Fp2Op): code = ''' - if(dataSize == 4) { - FpDestReg_uqw = (0xFFFFFFFF00000000 & FpDestReg_uqw) | - (0x00000000FFFFFFFF & FpSrcReg1_uqw); + if (dataSize == 4) { + FpDestReg_uqw = mbits(FpDestReg_uqw, 63, 32) | + mbits(FpSrcReg1_uqw, 31, 0); } else { FpDestReg_uqw = FpSrcReg1_uqw; }