diff options
| author | Alan Wu <XrXr@users.noreply.github.com> | 2025-12-16 14:53:31 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-16 14:53:31 -0500 |
| commit | f3d1557d5c04d7bc0bfa931869fbb35d14592c53 (patch) | |
| tree | 4eb83f5b5112fbfdf644ef96e35ac63179ae36c0 /include/ruby | |
| parent | 4fb537b1ee28bb37dbe551ac65c279d436c756bc (diff) | |
Revert "ZJIT: Allow ccalls above 7 arguments"
This reverts commit 2f151e76b5dc578026706b31f054d5caf5374b05.
The SP decrement (push) before the call do not match up with
the pops after the call, so registers were restored incorrectly.
Code from:
./miniruby --zjit-call-threshold=1 --zjit-dump-disasm -e 'p Time.new(1992, 9, 23, 23, 0, 0, :std)'
str x11, [sp, #-0x10]!
str x12, [sp, #-0x10]!
stur x7, [sp] # last argument
mov x0, x20
mov x7, x6
mov x6, x5
mov x5, x4
mov x4, x3
mov x3, x2
mov x2, x1
ldur x1, [x29, #-0x20]
mov x16, #0xccfc
movk x16, #0x2e7, lsl #16
movk x16, #1, lsl #32
blr x16
ldr x12, [sp], #0x10 # supposed to match str x12, [sp, #-0x10]!, but got last argument
ldr x11, [sp], #0x10
Diffstat (limited to 'include/ruby')
0 files changed, 0 insertions, 0 deletions
