Intel encodings for floating point copies.

This commit is contained in:
Jakob Stoklund Olesen
2017-09-26 13:54:19 -07:00
parent 7fb6159a85
commit ce767be703
3 changed files with 24 additions and 0 deletions

View File

@@ -37,6 +37,11 @@ ebb0:
; asm: movd %xmm2, %esi
[-,%rsi] v17 = bitcast.i32 v11 ; bin: 66 0f 7e d6
; asm: movaps %xmm2, %xmm5
[-,%xmm5] v18 = copy v11 ; bin: 0f 28 ea
; asm: movaps %xmm5, %xmm2
[-,%xmm2] v19 = copy v10 ; bin: 0f 28 d5
; Binary arithmetic.
; asm: addss %xmm2, %xmm5
@@ -212,6 +217,11 @@ ebb0:
; No i64 <-> f64 bitcasts in 32-bit mode.
; asm: movaps %xmm2, %xmm5
[-,%xmm5] v18 = copy v11 ; bin: 0f 28 ea
; asm: movaps %xmm5, %xmm2
[-,%xmm2] v19 = copy v10 ; bin: 0f 28 d5
; Binary arithmetic.
; asm: addsd %xmm2, %xmm5

View File

@@ -91,6 +91,11 @@ ebb0:
; asm: xorps %xmm5, %xmm10
[-,%xmm10] v37 = bxor v11, v10 ; bin: 44 0f 57 d5
; asm: movaps %xmm10, %xmm5
[-,%xmm5] v38 = copy v11 ; bin: 41 0f 28 ea
; asm: movaps %xmm5, %xmm10
[-,%xmm10] v39 = copy v10 ; bin: 44 0f 28 d5
; Unary arithmetic.
; asm: sqrtss %xmm5, %xmm10
@@ -281,6 +286,11 @@ ebb0:
; asm: xorps %xmm5, %xmm10
[-,%xmm10] v37 = bxor v11, v10 ; bin: 44 0f 57 d5
; asm: movaps %xmm10, %xmm5
[-,%xmm5] v38 = copy v11 ; bin: 41 0f 28 ea
; asm: movaps %xmm5, %xmm10
[-,%xmm10] v39 = copy v10 ; bin: 44 0f 28 d5
; Unary arithmetic.
; asm: sqrtsd %xmm5, %xmm10

View File

@@ -355,6 +355,10 @@ enc_flt(base.bitcast.i32.f32, r.rfumr, 0x66, 0x0f, 0x7e)
I64.enc(base.bitcast.f64.i64, *r.frurm.rex(0x66, 0x0f, 0x6e, w=1))
I64.enc(base.bitcast.i64.f64, *r.rfumr.rex(0x66, 0x0f, 0x7e, w=1))
# movaps
enc_flt(base.copy.f32, r.furm, 0x0f, 0x28)
enc_flt(base.copy.f64, r.furm, 0x0f, 0x28)
# cvtsi2ss
enc_i32_i64(base.fcvt_from_sint.f32, r.frurm, 0xf3, 0x0f, 0x2a)