Stream: git-wasmtime

Topic: wasmtime / PR #1499 Use F64X2 as type when saving and res...


view this post on Zulip Wasmtime GitHub notifications bot (Apr 11 2020 at 17:53):

samrat opened PR #1499 from fix-xmm-type to master:

When adding floating-point registers as callee-saved register to block- and function parameter lists add them as F64X2 arguments.

Fixes #1497

view this post on Zulip Wasmtime GitHub notifications bot (Apr 11 2020 at 18:08):

bjorn3 submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 11 2020 at 18:08):

bjorn3 created PR Review Comment:

This line should be removed.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 11 2020 at 18:48):

samrat updated PR #1499 from fix-xmm-type to master:

When adding floating-point registers as callee-saved register to block- and function parameter lists add them as F64X2 arguments.

Fixes #1497

view this post on Zulip Wasmtime GitHub notifications bot (Apr 12 2020 at 04:52):

samrat updated PR #1499 from fix-xmm-type to master:

When adding floating-point registers as callee-saved register to block- and function parameter lists add them as F64X2 arguments.

Fixes #1497

view this post on Zulip Wasmtime GitHub notifications bot (Apr 12 2020 at 06:40):

samrat updated PR #1499 from fix-xmm-type to master:

When adding floating-point registers as callee-saved register to block- and function parameter lists add them as F64X2 arguments.

Fixes #1497

view this post on Zulip Wasmtime GitHub notifications bot (Apr 13 2020 at 16:47):

iximeow submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 13 2020 at 16:47):

iximeow submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 13 2020 at 16:47):

iximeow created PR Review Comment:

The astute reader may ask, "why did prologue sizes change if this was supposed to be a no-op cleanup-style change?"

It turns out my F64 causes a whole XMM register to be preserved anyway. comment became a lie between when I wrote it and when #1216 landed. Or maybe I was wrong the whole time? It was generating movsd (for example, f2 41 0f 11 33), where with this change Cranelift generates movups (-> 41 0f 11 33, one byte shorter).

This is why prologues are shorter, but more importantly, movsd only works with the low 64 bits of its xmm argument! movups is the correct instruction (movaps would also be acceptable), which moves the entire 128 bits.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 13 2020 at 16:48):

iximeow merged PR #1499.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 13 2020 at 16:55):

abrown submitted PR Review.

view this post on Zulip Wasmtime GitHub notifications bot (Apr 13 2020 at 16:55):

abrown created PR Review Comment:

Aha! I was about to ask that very question. (Don't know how astute of a reader I am, though.) Thanks for the explanation.


Last updated: Oct 23 2024 at 20:03 UTC