CLR / Fastcall: ¿Cómo se pasan internamente los tipos de valores grandes a las funciones llamadas?
Solo por curiosidad: los tipos de valores generalmente se copian, y el compilador JIT parece usar la convención de llamadas Fastcall de Microsoft cuando se llama a un método. Esto pone los primeros pocos argumentos en los registros, para un acceso rápido. Pero, ¿cómo se pasan los tipos de valores grandes (es decir, más grandes que el tamaño de un registro o el ancho de la pila) a la función llamada?
Este extracto del libro Establece que
El código jitted de CLR utiliza la convención de llamadas de Windows de llamada rápida. Esto permite que la persona que llama proporcione los dos primeros argumentos (incluidoest en el caso de métodos de instancia) en los registros ECX y EDX de la máquina.