From 0dcae1fc1ef26c20978a9e841d3ac79a42a55ddd Mon Sep 17 00:00:00 2001 From: Andreas Abel Date: Thu, 28 Apr 2022 00:05:02 +0200 Subject: [PATCH] Zen3 fix --- tools/cpuBench/cpuBench.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/cpuBench/cpuBench.py b/tools/cpuBench/cpuBench.py index 8267b5a..91bb211 100755 --- a/tools/cpuBench/cpuBench.py +++ b/tools/cpuBench/cpuBench.py @@ -876,11 +876,11 @@ def getPreInstr(instrNode): if iform in ['CALL_NEAR_GPRv', 'JMP_GPRv']: preInstrCode = 'lea RAX, [RIP+2]' - preInstrNodes = [instrNodeDict['LEA_R_D8 (R64)']] + preInstrNodes = [instrNodeDict['LEA_R_D32 (R64)']] if iform in ['CALL_NEAR_MEMv', 'JMP_MEMv']: preInstrCode = 'lea RAX, [RIP+6]; mov [R14], RAX' - preInstrNodes = [instrNodeDict['LEA_R_D8 (R64)'], instrNodeDict['MOV (M64, R64)']] + preInstrNodes = [instrNodeDict['LEA_R_D32 (R64)'], instrNodeDict['MOV (M64, R64)']] if iform == 'LEAVE': preInstrCode = 'lea RBP, [R14]' @@ -896,11 +896,11 @@ def getPreInstr(instrNode): if iform == 'RET_NEAR': preInstrCode = 'lea RAX, [RIP+5]; mov [RSP], RAX' - preInstrNodes = [instrNodeDict['LEA_R_D8 (R64)'], instrNodeDict['MOV (M64, R64)']] + preInstrNodes = [instrNodeDict['LEA_R_D32 (R64)'], instrNodeDict['MOV (M64, R64)']] if iform == 'RET_NEAR_IMMw': preInstrCode = 'lea RAX, [RIP+7]; mov [RSP], RAX' - preInstrNodes = [instrNodeDict['LEA_R_D8 (R64)'], instrNodeDict['MOV (M64, R64)']] + preInstrNodes = [instrNodeDict['LEA_R_D32 (R64)'], instrNodeDict['MOV (M64, R64)']] return (preInstrCode, preInstrNodes) @@ -3236,6 +3236,7 @@ def main(): # we need one instruction with 1*FP45; # their throughput is limited to 1 per cycle; thus, they are disallowed by the TP_noDepBreaking_noLoop check above disallowedBlockingInstrs.remove(instrNodeDict['MOVD (R32, XMM)']) + disallowedBlockingInstrs.remove(instrNodeDict['VMOVD (R32, XMM)']) print('disallowedBlockingInstrs') for instrNode in disallowedBlockingInstrs: