Skip to content

ZJIT: Split CSel* input operands on x86_64 #876

@tekknolagi

Description

@tekknolagi

We do split_memory_read on arm64 but not on x86_64.

Failed to compile LIR at insn_idx=437:
      Store [rbp - 0x50], r11
      [rbp - 0x50] = And [rbp - 0x50], Imm(0x3f8000)
      [rbp - 0x50] = RShift [rbp - 0x50], 0xf
      LoadInto r10, [rbp - 0x48]
      Test [r10], Imm(0x2000)
  =>  r11 = CSelNZ [rbp - 0x50], [Stack[0] + 0x10]
      Store [rbp - 0x48], r11
      Cmp [rbp - 0x48], Imm(2)
      Jnz side_exit_23
      r11 = Load 3
      Store [rbp - 0x48], r11
  ruby: ZJIT has panicked. More info to follow...
  
  thread '<unnamed>' (16377) panicked at zjit/src/backend/x86_64/mod.rs:79:18:
  unsupported x86 operand type: Mem64[Stack { stack_idx: 0, num_bits: 64 } + 16]

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions