On Sunday, 12 November 2017 at 15:25:43 UTC, Dibyendu Majumdar
wrote:
On Sunday, 12 November 2017 at 12:32:09 UTC, Basile B. wrote:
On Sunday, 12 November 2017 at 12:17:51 UTC, Dibyendu Majumdar
wrote:
On Sunday, 12 November 2017 at 11:55:23 UTC, Eugene Wissner
wrote:
[...]
Thank you - I probably could use something like this. It is
uglier than the simpler approach in dynasm of course.
How about when I need to combine this with some struct/union
access? In dynasm I can write:
| mov BASE, CI->u.l.base // BASE =
ci->u.l.base (volatile)
| mov PC, CI->u.l.savedpc // PC =
CI->u.l.savedpc
How can I mix the mixin above and combine with struct offsets?
https://dlang.org/spec/iasm.html#agregate_member_offsets
aggregate.member.offsetof[someregister]
Sorry I didn't phrase my question accurately. Presumably to use
above with the mnemonics I would need additional mixin
templates where the aggregate type and member etc would need to
be parameters?
You can use just string parameters instead of enums, then you can
pass arbitrary arguments to the instructions. The compiler will
tell you if something is wrong with the syntax of the generated
assembly.