-
Notifications
You must be signed in to change notification settings - Fork 201
Infer REX prefix for SIMD store
and vconst
instructions
#1388
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have the above question, but I'm not sure if I'm misreading, or there's actually a bug, so I'm not explicitly requesting changes.. this looks good overall, but I'm particularly curious if this gets something like mov xmm1, [r11]
right. That's the only case (base reg is the only one requiring REX prefix) that I think warrants a closer look.
filetests/isa/x86/binary64.clif
Outdated
function %V128() { | ||
block0: | ||
[-,%r10] v3 = iconst.i64 0x2102_0304_f1f2_f3f4 ; bin: 49 ba 21020304f1f2f3f4 | ||
[-, %xmm9] v4 = vconst.i32x4 [0 1 2 3] ; bin: 44 0f 10 0d 00000005 PCRelRodata4(23) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
ae77d49
to
9513fe6
Compare
9513fe6
to
e98fe1f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! I'll approve but want an explicitly acknowledgement you're g2g before hitting merge :)
I think we're good-to-go. I'm not really looking forward to doing this same thing for 20+ other recipes so any suggestions are appreciated. The |
...and by "good-to-go" I mean I ran this change with the wasmtime tests (latest on master) and everything passed except some wasm_c_examples for unrelated reasons like |
store
andvconst
instructions; if we think this is the right direction, we have some additional to do to infer REX prefixes for the following recipes:enc_32_64: fstDisp8, fstDisp32, fld, fldDisp8, fldDisp32, fspillSib32, fregspill32, ffillSib32, fregfill32, frmov, furm, fa, fax, f_ib
enc_32_64_maybe_isap: r_ib_unsigned_r, fa_ib, fa, r_ib_unsigned_gpr, fcmp, icscc_fpr
enc_both: frurm, pfcmp, fa, furm