<stikonas>argh, I need to add some dots to define file... <stikonas>hmm, probably best to add dots to all commands and then have NULL without dot. So ld a0, 0(sp) turns into LD RD_A0 RS1_SP ZERO NULL, with DEFINE LD .00003003, DEFINE RD_A1 .00000580 DEFINE RS1_SP .00010000, DEFINE ZERO .00000000 and DEFINE NULL 00000000 ***rt is now known as robin
<oriansj>well technically multiplication, division and modulus but they can just be a function made up of more primitive instructions like we did for ARMv7l <oriansj>as one can do hex2, M0 and cc_* without them (it just makes a couple functions a little more complicated. <oriansj>stikonas: one thing you need to notice is .hex needs to be combined with something other than another .hex block to produce output. So you probably don't want the . leading the instruction as the immediates produced by M1 will likely be of the .hex form and hex2 @$~ also need something to combine with. so that it will probably look like: ~label RD_A0 AUIPC -> ~label .00000500 00000067 -> produce the correct output. <oriansj>that way you don't need to have NULL in every M1 statement <oriansj>as the .@#~ will all combine with the base provided by the instruction. <stikonas>oriansj: hmm, yes I can swap opcode to be the last <stikonas>because having NULL for every instruction is a bit annoying... <stikonas>I haven't looked at labels and intermediates yet... <stikonas>will look at them after I convert other instuctions into M1 format... <stikonas>I also found that M1 can nicely deal with some pseudoinstructions <stikonas>so might be worth defining them in advance <stikonas>e.g. DEFINE NOT FFF04013 # XORI, RD, RS, -1 <stikonas>not strictly necessary, but makes .M1 more readable <GeDaMo>Just some links that came to mind while I was watching NieDzejkob_'s video :P