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
|