Adds the ability to insert inline assembly using config file field asm-code instead of field patch-code.
Via using inline directives of assembly such as .word this also enables inserting arbitrary bytes at arbitrary locations.
Design decisions:
Tried to be as noninvasive as possible. It ended up extending further than i hoped. The new functionality is basically that Data.Patch maybe have its assembly field filled from Config.t. If so, short circuits most other compilation behavior. Minizinc will never see this code. This also means that the expectations of what fields must be filled out in what order in Data.Patch have changed. For example, the Seeder no longer should error if no Ir.t field is found, since user defined assembly patches have no such thing.
Could possibly have used the inline assembly field of FrontC, but this was difficult. We'd still have to somehow thread this correctly through minizinc. Bypassing is ultimately simpler.
Adds the ability to insert inline assembly using config file field
asm-code
instead of fieldpatch-code
.Via using inline directives of assembly such as
.word
this also enables inserting arbitrary bytes at arbitrary locations.Design decisions: