aboutsummaryrefslogtreecommitdiff
path: root/qtmips_machine/machineconfig.h
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2017-11-19 21:23:04 +0100
committerKarel Kočí <cynerd@email.cz>2017-11-19 21:23:04 +0100
commitf0ad502e4651243d6a96194b3393bd460c0f7fc9 (patch)
tree4f912c24b5943bd93b5a3378df75f9611de6779b /qtmips_machine/machineconfig.h
parent2c6562fa78e884d66b8c2a306f020101e8803f2e (diff)
downloadqtmips-f0ad502e4651243d6a96194b3393bd460c0f7fc9.tar.gz
qtmips-f0ad502e4651243d6a96194b3393bd460c0f7fc9.tar.bz2
qtmips-f0ad502e4651243d6a96194b3393bd460c0f7fc9.zip
Another huge pile of work for about two months
Well I should commit every change instead of this madness. I am not documenting changes as all this is just improvements and implementation progression.
Diffstat (limited to 'qtmips_machine/machineconfig.h')
-rw-r--r--qtmips_machine/machineconfig.h35
1 files changed, 32 insertions, 3 deletions
diff --git a/qtmips_machine/machineconfig.h b/qtmips_machine/machineconfig.h
index 58c2fc2..352e62b 100644
--- a/qtmips_machine/machineconfig.h
+++ b/qtmips_machine/machineconfig.h
@@ -1,11 +1,40 @@
#ifndef MACHINECONFIG_H
#define MACHINECONFIG_H
+#include <QString>
-class MachineConfig
-{
+class MachineConfig {
public:
MachineConfig();
+ MachineConfig(MachineConfig *cc);
+
+ enum CacheType {
+ CCT_NONE,
+ CCT_ASSOCIATIVE,
+ // TODO
+ };
+
+ // Configure if CPU is pipelined
+ // In default disabled.
+ void set_pipelined(bool);
+ // Configure if we want to do jump prediction
+ // In default disabled. When enabled it also automatically enables pipelining
+ void set_jump_prediction(bool);
+ // Configure cache type
+ // In default CCT_NONE is used.
+ void set_cache(enum CacheType);
+ // Set path to source elf file. This has to be set before core is initialized.
+ void set_elf(QString path);
+
+ bool pipelined() const;
+ bool jump_prediction() const;
+ enum CacheType cache() const;
+ QString elf() const;
+
+private:
+ bool pipeline, jumppred;
+ enum CacheType cache_type;
+ QString elf_path;
};
-#endif // MACHINECONFIG_H \ No newline at end of file
+#endif // MACHINECONFIG_H