| Value | Meaning |
|---|---|
| no_class | This class is used as initializer in the algorithms. It will be used for padding and empty structures and unions. |
| integer | This class consists of integral types that fit into one of the general purpose registers. |
| sse | The class consists of types that fit into a vector register. |
| sse_up | The class consists of types that fit into a vector register and can be passed and returned in the upper bytes of it. |
| x87 | These classes consists of types that will be returned via the x87 FPU. |
| x87_up | ditto |
| complex_x87 | This class consists of types that will be returned via the x87 FPU. |
| memory | This class consists of types that will be passed and returned in memory via the stack. |
2 AbiClass slots is enough to classify structs containing m128/m256/m512 types. They can be the only value in the struct. The only rules needed to find types that are passed in registers, are: - m128/m256/m512 must have offset of 0 - basic types must have offset < 16