1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-29 15:29:36 +00:00

Adds a note of admission here.

This commit is contained in:
Thomas Harte 2019-07-23 23:03:15 -04:00
parent d69aee4972
commit 4aca6c5ef8

View File

@ -334,6 +334,14 @@ class ProcessorStorage {
A program represents the implementation of a particular opcode, as a sequence
of micro-ops and, separately, the operation to perform plus whatever other
fields the operation requires.
TODO: this struct, as currently formed, is 48 bytes large on my 64-bit Intel
machine 8 bytes for each of the pointers, plus 8 bytes for the non-pointer fields.
That means that the Program[65536] table is 3mb large. Far too huge for a cache.
So slim this, even if it makes things much more painful to dereference.
(Aside: the compiler seems to prefer 8-byte alignment so eliminating or slimming the
non-pointer fields doesn't seem to be helpful immediately.)
*/
struct Program {
MicroOp *micro_operations = nullptr;