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

tarantool / luajit / 16223466479
93%
tarantool/master: 93%

Build:
Build:
LAST BUILD BRANCH: skaplun/gh-4808-jslots-trace-ir-cdata-ctype
DEFAULT BRANCH: tarantool/master
Ran 11 Jul 2025 03:17PM 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

11 Jul 2025 03:14PM UTC coverage: 93.061%. First build
16223466479

push

github

Buristan
ARM64: Prevent STP fusion for conditional code emitted by TBAR.

Thanks to Peter Cawley.

(cherry picked from commit 7cc53f0b8)

Assume we have a trace for the several `setmetatable()` calls to the
same table. This trace contains the following IR:
| 0011          p64 FREF   0003  tab.meta
| ...
| 0018 x0    >  tab TNEW   #0    #0
| 0019          tab TBAR   0003
| 0020          tab FSTORE 0011  0018

The expected mcode to be emitted for the last two IRs is the following:
| 55626cffb0  ldrb  w30, [x19, #8] ; tab->marked
| 55626cffb4  tst   w30, #0x4      ; Is black?
| 55626cffb8  beq   0x626cffd0     ; Skip marking.
| 55626cffbc  ldr   x27, [x20, #128]
| 55626cffc0  and   w30, w30, #0xfffffffb
| 55626cffc4  str   x19, [x20, #128]
| 55626cffcc  strb  w30, [x19, #8]  ; tab->marked
| 55626cffc8  str   x27, [x19, #24] ; tab->gclist
| 55626cffd0  str   x0,  [x19, #32] ; tab->metatable

But the last 2 instructions are fused into the following `stp`:
| 55581dffd0  stp   x27, x0, [x19, #48]
Hence, the GC propagation frontier back is done partially, since
`str x27, [x19, #24]` is not skipped despite TBAR semantics. This leads
to the incorrect value in the `gclist` and the segmentation fault during
its traversal on GC step.

This patch prevents this fusion via switching instruction for
`tab->gclist` and `tab->marked` storing.

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

Part of tarantool/tarantool#11278

5713 of 6047 branches covered (94.48%)

Branch coverage included in aggregate %.

21792 of 23509 relevant lines covered (92.7%)

3874321.57 hits per line

Jobs
ID Job ID Ran Files Coverage
1 16223466479.1 11 Jul 2025 03:17PM UTC 89
93.06
GitHub Action Run
Source Files on build 16223466479
  • Tree
  • List 89
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #16223466479
  • 9d6bf893 on github
  • Next Build on skaplun/lj-1057-arm64-stp-fusing-across-tbar (#16467146389)
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