cpu: o3: single cycle default div microop latency on x86
This patch sets the default latency of the division microop to a single cycle on x86. This is because the division instructions DIV and IDIV have been implemented as loops of div microops, where each microop computes a single bit of the quotient.
This commit is contained in:
parent
ee06fed656
commit
0dbd696aae
1 changed files with 10 additions and 0 deletions
|
@ -39,6 +39,7 @@
|
|||
# Authors: Kevin Lim
|
||||
|
||||
from m5.SimObject import SimObject
|
||||
from m5.defines import buildEnv
|
||||
from m5.params import *
|
||||
from FuncUnit import *
|
||||
|
||||
|
@ -49,6 +50,15 @@ class IntALU(FUDesc):
|
|||
class IntMultDiv(FUDesc):
|
||||
opList = [ OpDesc(opClass='IntMult', opLat=3),
|
||||
OpDesc(opClass='IntDiv', opLat=20, issueLat=19) ]
|
||||
|
||||
# DIV and IDIV instructions in x86 are implemented using a loop which
|
||||
# issues division microops. The latency of these microops should really be
|
||||
# one (or a small number) cycle each since each of these computes one bit
|
||||
# of the quotient.
|
||||
if buildEnv['TARGET_ISA'] in ('x86'):
|
||||
opList[1].opLat=1
|
||||
opList[1].issueLat=1
|
||||
|
||||
count=2
|
||||
|
||||
class FP_ALU(FUDesc):
|
||||
|
|
Loading…
Reference in a new issue