You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-10Lines changed: 5 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -121,20 +121,15 @@ This non-standard extension adds instructions to control the mlogv32 processor's
121
121
122
122
The MLOG instructions are encoded with an I-type instruction format using the _custom-0_ opcode. The zero-extended immediate is used as a minor opcode (funct12) for implementation reasons.
123
123
124
-
The MLOGSYS instruction is used for simple system controls, including `printchar`, `printflush`, `drawflush`, and icache initialization.
124
+
The MLOGSYS instruction is used for simple system controls, currently only including icache initialization.
125
125
126
126
The `mlogsys.icache` instruction uses register _rs1_ as the number of bytes to decode. This can be generated by using a linker script to find the end address of the `.text` section and load it using `li`. The actual number of bytes decoded will be the smallest of _rs1_, the size of the icache, and the size of ROM.
127
127
128
-
FIXME: `printflush` and `drawflush` are broken with subframe :(
128
+
| funct12 | rs1 | name |
129
+
| ------- | ------ | --------------------- |
130
+
| 0 | length | Initialize ROM icache |
129
131
130
-
| funct12 | rs1 | name |
131
-
| ------- | ------- | --------------------- |
132
-
| 0 | length | Initialize ROM icache |
133
-
| 1 | char |`printchar`|
134
-
| 2 |`00000`|`printflush`|
135
-
| 3 |`00000`|`drawflush`|
136
-
137
-
The MLOGDRAW instruction is used for drawing graphics using the Mlog `draw` instruction. Arguments are passed to this instruction using registers _rs1_, a1, a2, a3, a4, and a5 as necessary.
132
+
The MLOGDRAW instruction is used for drawing graphics using the Mlog `draw` instruction. Arguments are passed to this instruction using registers _rs1_, a1, a2, a3, a4, and a5 as necessary. Due to subframe constraints, `drawflush` is executed after every `draw` call.
0 commit comments