static noinline apparently results in argument slots being optimized out
but that means that the arguments between the two won't align, resulting in unnecessary 'mov's
This commit is contained in:
parent
2697e749e1
commit
f9a8eb0ce3
@ -149,12 +149,12 @@
|
||||
}
|
||||
|
||||
#define GC2i(SYMB, NAME, EXPR, EXTRA1, EXTRA2, BIT, SI_AA, DO_AS, DO_SA) \
|
||||
static NOINLINE B NAME##_c2_arr(B t, B w, B x); \
|
||||
NOINLINE B NAME##_c2_arr(B t, B w, B x); \
|
||||
B NAME##_c2(B t, B w, B x) { \
|
||||
if (isF64(w) & isF64(x)) {f64 wv=w.f,xv=x.f;return m_f64(EXPR);} \
|
||||
EXTRA1 return NAME##_c2_arr(t,w,x); \
|
||||
} \
|
||||
static B NAME##_c2_arr(B t, B w, B x) { \
|
||||
NOINLINE B NAME##_c2_arr(B t, B w, B x) { \
|
||||
EXTRA2 \
|
||||
if (isArr(w)|isArr(x)) { \
|
||||
if (isArr(w)&isArr(x) && rnk(w)==rnk(x)) { \
|
||||
|
||||
Loading…
Reference in New Issue
Block a user