x86: add encoding for bnot.b1.
Fixes #1743. Co-authored-by: iximeow <git@iximeow.net>
This commit is contained in:
@@ -1454,6 +1454,7 @@ fn define_alu(
|
|||||||
// x86 has a bitwise not instruction NOT.
|
// x86 has a bitwise not instruction NOT.
|
||||||
e.enc_i32_i64(bnot, rec_ur.opcodes(&NOT).rrr(2));
|
e.enc_i32_i64(bnot, rec_ur.opcodes(&NOT).rrr(2));
|
||||||
e.enc_b32_b64(bnot, rec_ur.opcodes(&NOT).rrr(2));
|
e.enc_b32_b64(bnot, rec_ur.opcodes(&NOT).rrr(2));
|
||||||
|
e.enc_both(bnot.bind(B1), rec_ur.opcodes(&NOT).rrr(2));
|
||||||
|
|
||||||
// Also add a `b1` encodings for the logic instructions.
|
// Also add a `b1` encodings for the logic instructions.
|
||||||
// TODO: Should this be done with 8-bit instructions? It would improve partial register
|
// TODO: Should this be done with 8-bit instructions? It would improve partial register
|
||||||
|
|||||||
14
cranelift/filetests/filetests/isa/x86/bnot-b1.clif
Normal file
14
cranelift/filetests/filetests/isa/x86/bnot-b1.clif
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
test binemit
|
||||||
|
test run
|
||||||
|
|
||||||
|
target x86_64
|
||||||
|
|
||||||
|
function u0:323() -> b1 {
|
||||||
|
block0:
|
||||||
|
[-,%rax] v221 = bconst.b1 false ; bin: 40 b8 00000000
|
||||||
|
[-,%rcx] v222 = bconst.b1 true ; bin: 40 b9 00000001
|
||||||
|
[-,%rax] v223 = bnot v221 ; bin: 40 f7 d0
|
||||||
|
[-,%rax] v224 = band v223, v222 ; bin: 40 21 c8
|
||||||
|
return v224
|
||||||
|
}
|
||||||
|
; run
|
||||||
Reference in New Issue
Block a user