Lines Matching full:we
30 making interpretation slower than _native code execution_. In return, we get the ability to
76 At the same time, to execute a stack-based addition we need to run 3 instructions compared to
110 With this approach, we are no longer required to encode destination register, it is "hardcoded" to
148 It easy to see that to address virtual registers 4 and 5 we need just 3 bits which allows to encode
158 into 4 bits, we have to use a wider encoding:
165 How to make sure that we benefit from the shorter encoding most of the time? An observation shows
171 Please note also that we don't need "full-range" versions for all instructions. In case some
172 instruction lacks a wide-range form, we can prepare operands for it with moves that have all
173 needed forms. Thus we save on opcode space without losing in encoding size (on average).
175 With such approach, we can carefully introduce various "overloads" for instruction when it could
176 be beneficial. For example, we have three types of instructions for integer-sized arithmetic
180 applications (thus we again save encoding space).
188 with say 64-bit integers. In this case, if we want to add two double-precision floating point
189 numbers and store the result into accumulator, we will need a dedicated `adda_d ...`, etc.
203 a number without an explicit type cast. This means that if we would like to run these two languages
204 on the same platform with the same bytecode, we would have to handle both JavaScript-style addition
208 Thus, as we are required to support multiple languages (both statically and dynamically typed),