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

tarantool / luajit / 17823962154
93%
tarantool/master: 93%

Build:
Build:
LAST BUILD BRANCH: ligurio/lj-1459-ub-carith_ptr
DEFAULT BRANCH: tarantool/master
Ran 18 Sep 2025 09:19AM 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

18 Sep 2025 09:14AM UTC coverage: 93.058% (-0.007%) from 93.065%
17823962154

push

github

Buristan
ARM64: Fix assembly of HREFK (again).

Thanks to Peter Cawley.

(cherry picked from commit 93ce12ee1)

When assembling the HREFK IR with the huge offset of the target node
from the table, this offset calculation and the key loading from the
node are emitted like the following:
|  ldr   x16, [x2, 40]
|  add   x16, x16, x21
|  ldr   x27, [x16, 8]
|  cmp   x27, x17

Here, `x16` is the node register, `x27` is the key register, and `x21`
is the register containing the offset.

It is possible that the register for holding the constant operand in the
addition may be chosen as the same register containing the node address,
since the full `RSET_GPR` is given to the `emit_opk()`. It will result
in the following invalid mcode:
|  ldr   x27, [x2, 40]
|  str   x27, [sp, 8]
|  add   x16, x16, x16
|  ldr   x16, [sp, 8]
|  ldr   x27, [x16, 8]
|  cmp   x27, x17

It seems that in the current implementation the LuaJIT's register
allocator always prefers the register holding the key instead, so this
does not lead to the invalid emitting. Hence, it is impossible to come
up with any valid reproducer. However, to avoid possible regressions in
the future, this patch fixes the invalid register set by excluding the
node register from it.

Sergey Kaplun:
* added the description for the problem

Part of tarantool/tarantool#11691

5709 of 6046 branches covered (94.43%)

Branch coverage included in aggregate %.

21798 of 23513 relevant lines covered (92.71%)

3873426.52 hits per line

Coverage Regressions

Lines Coverage ∆ File
6
94.74
-4.31% src/lj_str.c
2
91.11
-0.32% src/lj_alloc.c
1
78.83
0.23% src/lj_opt_fold.c
Jobs
ID Job ID Ran Files Coverage
1 17823962154.1 18 Sep 2025 09:19AM UTC 89
93.06
GitHub Action Run
Source Files on build 17823962154
  • Tree
  • List 89
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #17823962154
  • 889e306c on github
  • Prev Build on tarantool/master (#17649971361)
  • Next Build on skaplun/lj-1026-fix-ra-hrefk (#19797989786)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc