base.cc (6670:81e6aa93bc6a) | base.cc (7781:a9f9eed35b18) |
---|---|
1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 19 unchanged lines hidden (view full) --- 28 * Authors: Steve Reinhardt 29 * Nathan Binkert 30 */ 31 32#include <iostream> 33#include <string> 34#include <sstream> 35 | 1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 19 unchanged lines hidden (view full) --- 28 * Authors: Steve Reinhardt 29 * Nathan Binkert 30 */ 31 32#include <iostream> 33#include <string> 34#include <sstream> 35 |
36#include "arch/tlb.hh" |
|
36#include "base/cprintf.hh" 37#include "base/loader/symtab.hh" 38#include "base/misc.hh" 39#include "base/output.hh" 40#include "base/trace.hh" 41#include "cpu/base.hh" 42#include "cpu/cpuevent.hh" 43#include "cpu/thread_context.hh" --- 310 unchanged lines hidden (view full) --- 354 system->replaceThreadContext(newTC, newTC->contextId()); 355 356 /* This code no longer works since the zero register (e.g., 357 * r31 on Alpha) doesn't necessarily contain zero at this 358 * point. 359 if (DTRACE(Context)) 360 ThreadContext::compare(oldTC, newTC); 361 */ | 37#include "base/cprintf.hh" 38#include "base/loader/symtab.hh" 39#include "base/misc.hh" 40#include "base/output.hh" 41#include "base/trace.hh" 42#include "cpu/base.hh" 43#include "cpu/cpuevent.hh" 44#include "cpu/thread_context.hh" --- 310 unchanged lines hidden (view full) --- 355 system->replaceThreadContext(newTC, newTC->contextId()); 356 357 /* This code no longer works since the zero register (e.g., 358 * r31 on Alpha) doesn't necessarily contain zero at this 359 * point. 360 if (DTRACE(Context)) 361 ThreadContext::compare(oldTC, newTC); 362 */ |
363 364 Port *old_itb_port, *old_dtb_port, *new_itb_port, *new_dtb_port; 365 old_itb_port = oldTC->getITBPtr()->getPort(); 366 old_dtb_port = oldTC->getDTBPtr()->getPort(); 367 new_itb_port = newTC->getITBPtr()->getPort(); 368 new_dtb_port = newTC->getDTBPtr()->getPort(); 369 370 // Move over any table walker ports if they exist 371 if (new_itb_port && !new_itb_port->isConnected()) { 372 assert(old_itb_port); 373 Port *peer = old_itb_port->getPeer();; 374 new_itb_port->setPeer(peer); 375 peer->setPeer(new_itb_port); 376 } 377 if (new_dtb_port && !new_dtb_port->isConnected()) { 378 assert(old_dtb_port); 379 Port *peer = old_dtb_port->getPeer();; 380 new_dtb_port->setPeer(peer); 381 peer->setPeer(new_dtb_port); 382 } |
|
362 } 363 364#if FULL_SYSTEM 365 interrupts = oldCPU->interrupts; 366 interrupts->setCPU(this); 367 368 for (ThreadID i = 0; i < size; ++i) 369 threadContexts[i]->profileClear(); --- 81 unchanged lines hidden --- | 383 } 384 385#if FULL_SYSTEM 386 interrupts = oldCPU->interrupts; 387 interrupts->setCPU(this); 388 389 for (ThreadID i = 0; i < size; ++i) 390 threadContexts[i]->profileClear(); --- 81 unchanged lines hidden --- |