This is really just a typo. When setting up the arguments for a call out to a C operation, we'll fail to swap arguments where this is necessary. For example, in the case of 2 arg calls, where the first argument is in %rdx & the second is in %rsi we should swap (exec will be passed in %rdi), but we don't. This can also affect function calls passing three arguments.
Fixed in r88092