Deleted Added
sdiff udiff text old ( 11429:cf5af0cc3be4 ) new ( 11434:b5aed9d2d54e )
full compact
1/*
2 * Copyright (c) 2004-2006 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;

--- 64 unchanged lines hidden (view full) ---

73LocalBP::reset()
74{
75 for (unsigned i = 0; i < localPredictorSets; ++i) {
76 localCtrs[i].reset();
77 }
78}
79
80void
81LocalBP::btbUpdate(ThreadID tid, Addr branch_addr, void * &bp_history)
82{
83// Place holder for a function that is called to update predictor history when
84// a BTB entry is invalid or not found.
85}
86
87
88bool
89LocalBP::lookup(ThreadID tid, Addr branch_addr, void * &bp_history)
90{
91 bool taken;
92 uint8_t counter_val;
93 unsigned local_predictor_idx = getLocalIndex(branch_addr);
94
95 DPRINTF(Fetch, "Looking up index %#x\n",
96 local_predictor_idx);
97

--- 14 unchanged lines hidden (view full) ---

112 localCtrs[local_predictor_idx].decrement();
113 }
114#endif
115
116 return taken;
117}
118
119void
120LocalBP::update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history,
121 bool squashed)
122{
123 assert(bp_history == NULL);
124 unsigned local_predictor_idx;
125
126 // Update the local predictor.
127 local_predictor_idx = getLocalIndex(branch_addr);
128
129 DPRINTF(Fetch, "Looking up index %#x\n", local_predictor_idx);

--- 18 unchanged lines hidden (view full) ---

148inline
149unsigned
150LocalBP::getLocalIndex(Addr &branch_addr)
151{
152 return (branch_addr >> instShiftAmt) & indexMask;
153}
154
155void
156LocalBP::uncondBranch(ThreadID tid, Addr pc, void *&bp_history)
157{
158}
159
160LocalBP*
161LocalBPParams::create()
162{
163 return new LocalBP(this);
164}