01:10 vendethiel joined 01:48 ilbot3 joined 06:35 brrt joined
brrt good moarning 07:29
dalek arVM/even-moar-jit: 751ce63 | brrt++ | src/jit/ (3 files):
Add ctxcode instruction template and some macros
08:11
arVM/even-moar-jit: f3e0e25 | brrt++ | src/ (6 files):
Replace explicit JIT function return frame check

This greatly simplifies the JIT compiler driver and jump-out logic. MVM_frame_try_return is now called within the JIT-compiled code.
09:11
arVM/even-moar-jit: a1301bf | brrt++ | src/jit/core.expr:
Implement return_o and return as expr templates
09:33
brrt hmm, dynasm, y u so ugly 10:05
hmm, ok, i think i have the optrexes at the right place 10:23
10:29 vendethiel joined 11:57 Peter_R joined 13:54 FROGGS_ joined 15:26 lizmat joined
dalek arVM/even-moar-jit: 4013032 | brrt++ | 3rdparty/dynasm:
Updated dynasm for full register addressing

Sub-qword instructions typically only emit a REX byte when using extended registers, so in case of variable registers, this adds a facility to detect the necessity of a REX byte and emits one if necessry; actual REX byte encoding is shared with the facility implemented earlier.
16:28
16:34 vendethiel joined 16:39 brrt joined
brrt for those few people that care, this means we can address all registers large and small, dynamically 16:39
which is awesome because small values prop up in rather more places than i had initially expected 16:40
timotimo very cool! 16:43
brrt there are two things next on the list
value size propagation
lizmat brrt++
timotimo but are we interested in adressing registers as smaller than they are?
brrt and store adding
no
timotimo would we use two halves of a register as two separate registers?
brrt yes and no, and the yes is mostly uninteresting 16:44
timotimo right, so ... why do you call that awesome? :)
brrt well, because operand sizes smaller than 8 bytes occur really often 16:45
easily half of all we do is fiddling with interpreter internals
interpreter internal structures are not all nicely 8-byte sized values
so, i guess, we are interested in addressing 'small' registers 16:46
not having this would've cost me a lot of complexity in the register allocator
i now no longer need to take the the size into account
of the register i wish to use 16:47
timotimo oh, OK
brrt and, at the same time, if i have to convert a condition code to a flag value (e.g .setnz, sete, setlt, etc), then i'm addressing a single byte, too
so, its not about addressing them as smaller than they are, just as large as they should be :-) 16:49
i'm afk for tonight 16:51
see you tomorrow!
timotimo mhm 16:57
see you then :)
have a good sunday
(not that you can read that right now) 16:58
18:56 rudi_s joined, dagurval joined 19:10 lizmat joined 19:11 ingy joined, tadzik joined 20:02 ggoebel joined 21:37 harrow joined 21:54 TEttinger joined 22:33 diakopter joined