Actually you need to clarify what the semantics of an 'out' parameter are for S and P registers. 'out' should indicate whether the value of the register (ie. the value of the pointer) may change.
For example, in : inline op set(PMC, NUM) { $1->vtable->set_number_native(interpreter, $1, $2); goto NEXT(); } the PMC pointer passed in $1 will not be changed by the call to set, so depending on the language being compiled the PMC pointer may be cached across this op. -- Jason