|
Ran
|
Jobs
1
|
Files
89
|
Run time
1min
|
Badge
README BADGES
|
push
github
ARM64: Fix LDP/STP fusing for unaligned accesses. Thanks to Peter Cawley. (cherry picked from commit 0fa2f1cbc) The arm64 emitting of load/store operation works incorrectly in the case when at least one offset of load/store to be fused into ldp/stp is misaligned. In this case this misaligning is ignored, and instructions are fused, which leads to loading/storing from/to at least one incorrect address. For example, the following instructions: | stur w0, [x1, #17] | stur w0, [x1, #21] May be fused to the following: | stp w0, w0, [x1, #16] This patch prevents fusion in this case by testing the alignment with the help of bitwise ROR by the alignment value. In case of misaligned offset, the value overflows the 7-bit length mask in the check. The negative immediate (7-bit width including sign bit) is limited by the corresponding addition of `64 << sc` (it is harmless in the case of positive values). Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#11278 Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Signed-off-by: Sergey Kaplun <skaplun@tarantool.org> (cherry picked from commit 4fd46fab4)
5712 of 6046 branches covered (94.48%)
Branch coverage included in aggregate %.
21792 of 23508 relevant lines covered (92.7%)
3836149.2 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
87.89 |
0.0% | src/lj_crecord.c |
| 1 |
96.64 |
-0.05% | src/lj_record.c |
| 1 |
97.28 |
-0.18% | src/lj_trace.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 15994754186.1 | 89 |
93.06 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|