> Hi Jan, Uros, Hi, I guess I was just lazy to figure out the size at a time of writting the pattern. Length is not used for anything useful at the moment, but fixing it definitly won't hurt.
Honza > > i386.md has > > (define_insn "*sse_prologue_save_insn" > [(set (mem:BLK (plus:DI (match_operand:DI 0 "register_operand" "R") > (match_operand:DI 4 "const_int_operand" "n"))) > (unspec:BLK [(reg:DI 21) > (reg:DI 22) > (reg:DI 23) > (reg:DI 24) > (reg:DI 25) > (reg:DI 26) > (reg:DI 27) > (reg:DI 28)] UNSPEC_SSE_PROLOGUE_SAVE)) > (use (match_operand:DI 1 "register_operand" "r")) > (use (match_operand:DI 2 "const_int_operand" "i")) > (use (label_ref:DI (match_operand 3 "" "X")))] > "TARGET_64BIT > && INTVAL (operands[4]) + SSE_REGPARM_MAX * 16 - 16 < 128 > && INTVAL (operands[4]) + INTVAL (operands[2]) * 16 >= -128" > { > ... > } > [(set_attr "type" "other") > (set_attr "length_immediate" "0") > (set_attr "length_address" "0") > (set_attr "length" "135") > (set_attr "memory" "store") > (set_attr "modrm" "0") > (set_attr "mode" "DI")]) > > Why is the length 135? I saw > > jmp *%rdx # 12 *sse_prologue_save_insn [length = 135] > movaps %xmm7, -15(%rax) > movaps %xmm6, -31(%rax) > movaps %xmm5, -47(%rax) > movaps %xmm4, -63(%rax) > movaps %xmm3, -79(%rax) > movaps %xmm2, -95(%rax) > movaps %xmm1, -111(%rax) > movaps %xmm0, -127(%rax) > > which is 34 bytes. > > > H.J.