811,812c811
< GpuTlbEntry newEntry;
< bool success = p->pTable->lookup(vaddr, newEntry);
---
> TlbEntry *newEntry = p->pTable->lookup(vaddr);
814c813
< if (!success && mode != BaseTLB::Execute) {
---
> if (!newEntry && mode != BaseTLB::Execute) {
816c815
< if (timing) {
---
> if (timing)
818d816
< }
821c819
< success = p->pTable->lookup(vaddr, newEntry);
---
> newEntry = p->pTable->lookup(vaddr);
824c822
< if (!success) {
---
> if (!newEntry) {
829d826
< newEntry.valid = success;
833c830
< alignedVaddr, newEntry.pageStart());
---
> alignedVaddr, newEntry->pageStart());
835c832,835
< entry = insert(alignedVaddr, newEntry);
---
> GpuTlbEntry gpuEntry;
> *(TlbEntry *)&gpuEntry = *newEntry;
> gpuEntry.valid = true;
> entry = insert(alignedVaddr, gpuEntry);
1333d1332
< TlbEntry newEntry;
1339,1344c1338,1341
< bool success;
< success = p->pTable->lookup(vaddr, newEntry);
< if (!success && sender_state->tlbMode != BaseTLB::Execute) {
< if (p->fixupStackFault(vaddr)) {
< success = p->pTable->lookup(vaddr, newEntry);
< }
---
> TlbEntry *newEntry = p->pTable->lookup(vaddr);
> if (!newEntry && sender_state->tlbMode != BaseTLB::Execute &&
> p->fixupStackFault(vaddr)) {
> newEntry = p->pTable->lookup(vaddr);
1347,1348c1344,1346
< DPRINTF(GPUTLB, "Mapping %#x to %#x\n", alignedVaddr,
< newEntry.pageStart());
---
> if (newEntry) {
> DPRINTF(GPUTLB, "Mapping %#x to %#x\n", alignedVaddr,
> newEntry->pageStart());
1350,1351c1348,1353
< sender_state->tlbEntry =
< new GpuTlbEntry(0, newEntry.vaddr, newEntry.paddr, success);
---
> sender_state->tlbEntry =
> new GpuTlbEntry(0, newEntry->vaddr, newEntry->paddr, true);
> } else {
> sender_state->tlbEntry =
> new GpuTlbEntry(0, 0, 0, false);
> }
1527d1528
< TlbEntry newEntry;
1535,1538c1536,1539
< bool success = p->pTable->lookup(vaddr, newEntry);
< if (!success && sender_state->tlbMode != BaseTLB::Execute) {
< if (p->fixupStackFault(vaddr))
< success = p->pTable->lookup(vaddr, newEntry);
---
> TlbEntry *newEntry = p->pTable->lookup(vaddr);
> if (!newEntry && sender_state->tlbMode != BaseTLB::Execute &&
> p->fixupStackFault(vaddr)) {
> newEntry = p->pTable->lookup(vaddr);
1547c1548
< newEntry.pageStart());
---
> newEntry->pageStart());
1549,1551c1550,1552
< sender_state->tlbEntry = new GpuTlbEntry(0, newEntry.vaddr,
< newEntry.paddr,
< success);
---
> sender_state->tlbEntry =
> new GpuTlbEntry(0, newEntry->vaddr,
> newEntry->paddr, success);
1557c1558
< if (success) {
---
> if (newEntry) {
1559c1560
< newEntry.pageStart());
---
> newEntry->pageStart());
1561,1564c1562,1564
< sender_state->tlbEntry = new GpuTlbEntry(0,
< newEntry.vaddr,
< newEntry.paddr,
< success);
---
> sender_state->tlbEntry =
> new GpuTlbEntry(0, newEntry->vaddr,
> newEntry->paddr, success);