blob: 1cfc5254b1ffda95b71c440ea56606f02b45bbff (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#pragma once
#include <memory>
#include "aisa/aisa.h"
#include "aisa/simple-models.h"
#include "sim/sim.h"
#include "sim/queue.h"
#include "uarch/types.h"
namespace uarch {
struct ExecStage : public sim::Schedulable, aisa::TaskStack, aisa::VectorRF {
sim::Queue<Uop> &execq;
sim::Queue<FillReq> &fillreqq;
sim::Queue<Fill> &fillq;
sim::Queue<Store> &storeq;
std::unique_ptr<const aisa::Step> step;
aisa::Wires wires;
bool outstanding_fill = false;
bool fill_complete = false;
ExecStage(sim::Scheduler &scheduler, sim::Queue<Uop> &execq, sim::Queue<FillReq> &fillreqq, sim::Queue<Fill> &fillq, sim::Queue<Store> &storeq);
void clock() override;
};
}
|