locked_mem.hh (12748:ae5ce8e42de7) | locked_mem.hh (12749:223c83ed9979) |
---|---|
1/* 2 * Copyright (c) 2012 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 61 unchanged lines hidden (view full) --- 70 71 if (locked_addr == snoop_addr) 72 xc->setMiscReg(MISCREG_LLFLAG, false); 73} 74 75 76template <class XC> 77inline void | 1/* 2 * Copyright (c) 2012 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 61 unchanged lines hidden (view full) --- 70 71 if (locked_addr == snoop_addr) 72 xc->setMiscReg(MISCREG_LLFLAG, false); 73} 74 75 76template <class XC> 77inline void |
78handleLockedRead(XC *xc, RequestPtr req) | 78handleLockedRead(XC *xc, const RequestPtr &req) |
79{ 80 xc->setMiscReg(MISCREG_LLADDR, req->getPaddr() & ~0xf); 81 xc->setMiscReg(MISCREG_LLFLAG, true); 82 DPRINTF(LLSC, "[cid:%i]: Load-Link Flag Set & Load-Link" 83 " Address set to %x.\n", 84 req->contextId(), req->getPaddr() & ~0xf); 85} 86 87template <class XC> 88inline void 89handleLockedSnoopHit(XC *xc) 90{ 91} 92 93template <class XC> 94inline bool | 79{ 80 xc->setMiscReg(MISCREG_LLADDR, req->getPaddr() & ~0xf); 81 xc->setMiscReg(MISCREG_LLFLAG, true); 82 DPRINTF(LLSC, "[cid:%i]: Load-Link Flag Set & Load-Link" 83 " Address set to %x.\n", 84 req->contextId(), req->getPaddr() & ~0xf); 85} 86 87template <class XC> 88inline void 89handleLockedSnoopHit(XC *xc) 90{ 91} 92 93template <class XC> 94inline bool |
95handleLockedWrite(XC *xc, RequestPtr req, Addr cacheBlockMask) | 95handleLockedWrite(XC *xc, const RequestPtr &req, Addr cacheBlockMask) |
96{ 97 if (req->isUncacheable()) { 98 // Funky Turbolaser mailbox access...don't update 99 // result register (see stq_c in decoder.isa) 100 req->setExtraData(2); 101 } else { 102 // standard store conditional 103 bool lock_flag = xc->readMiscReg(MISCREG_LLFLAG); --- 48 unchanged lines hidden --- | 96{ 97 if (req->isUncacheable()) { 98 // Funky Turbolaser mailbox access...don't update 99 // result register (see stq_c in decoder.isa) 100 req->setExtraData(2); 101 } else { 102 // standard store conditional 103 bool lock_flag = xc->readMiscReg(MISCREG_LLFLAG); --- 48 unchanged lines hidden --- |