<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Nov 12, 2013, at 6:50 PM, Filip Pizlo <<a href="mailto:fpizlo@apple.com">fpizlo@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="gmail_extra"><div class="gmail_quote">, and it's not difficult to imagine a scenario where this number gets goofed via a typo, or across architectures, etc.; If it doesn't have one already, I would recommend making sure that JSC has a test that pushes up against the limit of this number)</div></div></div></blockquote><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">JSC won't have any tests for this.  In JSC there is no such thing as an inline cache (i.e. patchpoint) that uses AnyRegCC and has a variable number of arguments.  I suspect that this can be generalized to other clients of patchpoints.  To me, the only reason why it's vararg on the LLVM side is to ensure that LLVM doesn't have to know anything about the source language construct that caused it.</div></div><br class="Apple-interchange-newline"></blockquote></div><br><div>This is just a matter of generalizing the LLVM intrinsics so they aren’t WebKit specific. The frontend has to explicitly request a fixed number of arguments that must be in registers. Any remaining arguments do not need to be in registers. If the frontend requests more then a few register arguments, it’s doing something wrong.</div><div><br></div><div>-Andy </div></body></html>