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

tarantool / luajit / 19798590789
93%
tarantool/master: 93%

Build:
Build:
LAST BUILD BRANCH: skaplun/luajit-performance-tests
DEFAULT BRANCH: tarantool/master
Ran 30 Nov 2025 12:08PM 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

30 Nov 2025 11:44AM UTC coverage: 93.065% (-0.006%) from 93.071%
19798590789

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

Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org>
Signed-off-by: Sergey Kaplun <skaplun@tarantool.org>
(cherry picked from commit fd5e7cb52)

5712 of 6046 branches covered (94.48%)

Branch coverage included in aggregate %.

21797 of 23513 relevant lines covered (92.7%)

3873205.72 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
96.64
-0.1% src/lj_record.c
Jobs
ID Job ID Ran Files Coverage
1 19798590789.1 30 Nov 2025 12:08PM UTC 89
93.06
GitHub Action Run
Source Files on build 19798590789
  • Tree
  • List 89
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #19798590789
  • 8a0da464 on github
  • Prev Build on tarantool/release/3.2 (#19796510551)
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

© 2025 Coveralls, Inc