diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-05-09 22:04:58 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-05-09 22:04:58 -0700 |
commit | 6d199f0b25e2e8c46f626187bb6f5f06d7bcc55c (patch) | |
tree | 3ba190ad2fdd26122e4b9047a88e1e18957fe44c /src/arch/sparc/isa/formats/mem/swap.isa | |
parent | e08a5c60524d9e8d9a84d661c9464e3fe1289e2f (diff) | |
parent | 4ad1b58fdd7cc9ba9704ae966a41c99fd0f1dbc9 (diff) | |
download | gem5-6d199f0b25e2e8c46f626187bb6f5f06d7bcc55c.tar.xz |
Merge zizzer.eecs.umich.edu:/bk/newmem
into doughnut.mwconnections.com:/home/gblack/newmem-o3-micro
--HG--
extra : convert_revision : 56c2205cdbb9af64c30b381a80b4d14c97841da7
Diffstat (limited to 'src/arch/sparc/isa/formats/mem/swap.isa')
-rw-r--r-- | src/arch/sparc/isa/formats/mem/swap.isa | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/arch/sparc/isa/formats/mem/swap.isa b/src/arch/sparc/isa/formats/mem/swap.isa index f3d15670f..dde327f5c 100644 --- a/src/arch/sparc/isa/formats/mem/swap.isa +++ b/src/arch/sparc/isa/formats/mem/swap.isa @@ -51,6 +51,7 @@ def template SwapExecute {{ } if(storeCond && fault == NoFault) { + %(EA_trunc)s fault = xc->write((uint%(mem_acc_size)s_t)Mem, EA, %(asi_val)s, &mem_data); } @@ -91,6 +92,7 @@ def template SwapInitiateAcc {{ } if(fault == NoFault) { + %(EA_trunc)s fault = xc->write((uint%(mem_acc_size)s_t)Mem, EA, %(asi_val)s, &mem_data); } @@ -157,12 +159,14 @@ let {{ addrCalcReg = 'EA = Rs1;' iop = InstObjParams(name, Name, 'Mem', {"code": code, "postacc_code" : postacc_code, - "fault_check": faultCode, "ea_code": addrCalcReg}, opt_flags) + "fault_check": faultCode, "ea_code": addrCalcReg, + "EA_trunc" : TruncateEA}, opt_flags) header_output = MemDeclare.subst(iop) decoder_output = BasicConstructor.subst(iop) decode_block = BasicDecode.subst(iop) microParams = {"code": code, "postacc_code" : postacc_code, - "ea_code" : addrCalcReg, "fault_check" : faultCode} + "ea_code" : addrCalcReg, "fault_check" : faultCode, + "EA_trunc" : TruncateEA} exec_output = doSplitExecute(execute, name, Name, asi, ["IsStoreConditional"], microParams); return (header_output, decoder_output, exec_output, decode_block) |