• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / luajit / 15137763697
93%
tarantool/master: 93%

Build:
Build:
LAST BUILD BRANCH: skaplun/unified-debugger
DEFAULT BRANCH: tarantool/master
Ran 20 May 2025 12:43PM UTC
Jobs 1
Files 89
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 May 2025 11:25AM UTC coverage: 93.004% (-0.06%) from 93.062%
15137763697

push

github

Buristan
ARM64: Fix IR_SLOAD assembly.

Reported by Gate88.

(cherry picked from commit 6c4826f12)

The issue is in the case when IR SLOAD is unused on a trace, it persists
only for typecheck, and has the `num` type. In this case, the `dest`
register is `RID_NONE`. Hence, the `fmov` instruction is emitted
unconditionally, where the destination register is `d0` (`RID_NONE &
31`). So, the value of this register is spoiled. If it holds any value
evaluated before and used after this SLOAD, it leads to incorrect
behaviour.

So the emitted assembly for the aforementioned SLOAD looks like the
following:
| ldr   x27, [x7, #24]
| cmp   x0, x27, lsr #32
| bls   0x67d7f4f0    ->0
| fmov  d0, x27           ; this spoils d0

Instead of the following:
| ldr   x27, [x7, #24]
| cmp   x0, x27, lsr #32
| bls   0x6a91f4e8    ->0

This patch adds the check that the register is in use before emitting
the instruction.

Sergey Kaplun:
* added the description and the test for the problem

Part of tarantool/tarantool#11278

5706 of 6042 branches covered (94.44%)

Branch coverage included in aggregate %.

21761 of 23491 relevant lines covered (92.64%)

3833031.42 hits per line

Coverage Regressions

Lines Coverage ∆ File
10
77.8
-1.01% src/lj_api.c
2
93.09
-0.99% src/lj_ir.c
2
92.0
-0.44% src/luajit.c
1
87.73
-0.08% src/lj_crecord.c
1
78.52
-0.08% src/lj_opt_fold.c
1
96.48
-0.05% src/lj_record.c
Jobs
ID Job ID Ran Files Coverage
1 15137763697.1 20 May 2025 12:43PM UTC 89
93.0
GitHub Action Run
Source Files on build 15137763697
  • Tree
  • List 89
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #15137763697
  • 174d5908 on github
  • Prev Build on tarantool/master (#14994614192)
  • Next Build on skaplun/lj-903-arm64-unused-number-sload-typecheck (#15415504255)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc