| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
v30 = BoxInt(v24) # RA: R1 <- (R1) temps: [R0, R2, R3]This is suspect because `BoxInt` uses:
```
_asm.adds(resultReg, operandReg, operandReg);
```
so it is destroying the original value in R1.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
v30 = BoxInt(v24) # RA: R1 <- (R1) temps: [R0, R2, R3]This is suspect because `BoxInt` uses:
```
_asm.adds(resultReg, operandReg, operandReg);
```so it is destroying the original value in R1.
Nice catch! We currently have no interference between inputs and output of the instruction, so they are allowed to be allocated to the same register (if input is not live after this instruction). I'll check and fix codegen in the follow-up.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[modular_aot] Fix live ranges of non-fixed temps, fix serialization of two-byte strings
* Live ranges of non-fixed register temporaries should interfere both
with live ranges of inputs and outputs.
* When serializing a two-byte (non-Latin1) strings, ensure that
characters in the data section are aligned by 2.
However, already written data in the serialization buffer
may be misaligned (as we're writing to a series of buffers), so
write each code unit as separate bytes instead of writing them as
Uint16List.
TEST=ci
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |