x64: Mask shift amounts for small types (#4752)

* x64: Mask shift amounts for small types

* cranelift: Disable i128 shifts in fuzzer again

They are fixed. But we had a bunch of fuzzgen issues come in, and we don't want to accidentaly mark them as fixed

* cranelift: Avoid masking shifts for 32 and 64 bit cases

* cranelift: Add const shift tests and fix them

* cranelift: Remove const `rotl` cases

Now that `put_masked_in_imm8_gpr` works properly we can simplify rotl/rotr
This commit is contained in:
Afonso Bordado
2022-08-24 18:31:38 +01:00
committed by GitHub
parent 9cb987c678
commit d394edcefe
10 changed files with 1920 additions and 117 deletions

View File

@@ -867,8 +867,8 @@ block0(v0: i8, v1: i128):
; pushq %rbp
; movq %rsp, %rbp
; block0:
; movq %rsi, %r9
; movq %r9, %rcx
; movq %rsi, %rcx
; andq %rcx, $7, %rcx
; shlb %cl, %dil, %dil
; movq %rdi, %rax
; movq %rbp, %rsp