Lines Matching full:classes
70 /* All reference to register classes here is identical to the code in
74 These represent classes as documented by the PS ABI, with the
75 exception of SSESF, SSEDF classes, that are basically SSE class,
110 /* Rule #1: If both classes are equal, this is the resulting class. */ in merge_classes()
114 /* Rule #2: If one of the classes is NO_CLASS, the resulting class is in merge_classes()
121 /* Rule #3: If one of the classes is MEMORY, the result is MEMORY. */ in merge_classes()
125 /* Rule #4: If one of the classes is INTEGER, the result is INTEGER. */ in merge_classes()
133 /* Rule #5: If one of the classes is X87, X87UP, or COMPLEX_X87 class, in merge_classes()
148 CLASSES will be filled by the register class used to pass each word
151 sized containers, classes[0] will be NO_CLASS and 1 is returned.
156 classify_argument (ffi_type *type, enum x86_64_reg_class classes[], in classify_argument() argument
175 classes[0] = X86_64_INTEGERSI_CLASS; in classify_argument()
180 classes[0] = X86_64_INTEGER_CLASS; in classify_argument()
185 classes[0] = X86_64_INTEGER_CLASS; in classify_argument()
186 classes[1] = X86_64_INTEGERSI_CLASS; in classify_argument()
191 classes[0] = classes[1] = X86_64_INTEGERSI_CLASS; in classify_argument()
199 classes[0] = X86_64_SSESF_CLASS; in classify_argument()
201 classes[0] = X86_64_SSE_CLASS; in classify_argument()
204 classes[0] = X86_64_SSEDF_CLASS; in classify_argument()
208 classes[0] = X86_64_X87_CLASS; in classify_argument()
209 classes[1] = X86_64_X87UP_CLASS; in classify_argument()
225 classes[i] = X86_64_NO_CLASS; in classify_argument()
231 classes[0] = X86_64_NO_CLASS; in classify_argument()
248 classes[i + pos] = in classify_argument()
249 merge_classes (subclasses[i], classes[i + pos]); in classify_argument()
261 if (classes[0] != X86_64_SSE_CLASS) in classify_argument()
265 if (classes[i] != X86_64_SSEUP_CLASS) in classify_argument()
274 if (classes[i] == X86_64_MEMORY_CLASS) in classify_argument()
279 if (classes[i] == X86_64_SSEUP_CLASS in classify_argument()
280 && classes[i - 1] != X86_64_SSE_CLASS in classify_argument()
281 && classes[i - 1] != X86_64_SSEUP_CLASS) in classify_argument()
285 classes[i] = X86_64_SSE_CLASS; in classify_argument()
290 if (classes[i] == X86_64_X87UP_CLASS in classify_argument()
291 && (classes[i - 1] != X86_64_X87_CLASS)) in classify_argument()
312 examine_argument (ffi_type *type, enum x86_64_reg_class classes[MAX_CLASSES], in examine_argument()
318 n = classify_argument (type, classes, 0); in examine_argument()
324 switch (classes[i]) in examine_argument()
358 enum x86_64_reg_class classes[MAX_CLASSES]; in ffi_prep_cif_machdep() local
366 n = examine_argument (cif->rtype, classes, 1, &ngpr, &nsse); in ffi_prep_cif_machdep()
378 _Bool sse0 = SSE_CLASS_P (classes[0]); in ffi_prep_cif_machdep()
379 _Bool sse1 = n == 2 && SSE_CLASS_P (classes[1]); in ffi_prep_cif_machdep()
396 if (examine_argument (cif->arg_types[i], classes, 0, &ngpr, &nsse) == 0 in ffi_prep_cif_machdep()
425 enum x86_64_reg_class classes[MAX_CLASSES]; in ffi_call() local
462 n = examine_argument (arg_types[i], classes, 0, &ngpr, &nsse); in ffi_call()
486 switch (classes[j]) in ffi_call()
588 enum x86_64_reg_class classes[MAX_CLASSES]; in ffi_closure_unix64_inner() local
589 size_t n = examine_argument (cif->rtype, classes, 1, &ngpr, &nsse); in ffi_closure_unix64_inner()
601 _Bool sse0 = SSE_CLASS_P (classes[0]); in ffi_closure_unix64_inner()
602 _Bool sse1 = SSE_CLASS_P (classes[1]); in ffi_closure_unix64_inner()
615 enum x86_64_reg_class classes[MAX_CLASSES]; in ffi_closure_unix64_inner() local
618 n = examine_argument (arg_types[i], classes, 0, &ngpr, &nsse); in ffi_closure_unix64_inner()
637 || (n == 2 && !(SSE_CLASS_P (classes[0]) in ffi_closure_unix64_inner()
638 || SSE_CLASS_P (classes[1])))) in ffi_closure_unix64_inner()
641 if (SSE_CLASS_P (classes[0])) in ffi_closure_unix64_inner()
661 if (SSE_CLASS_P (classes[j])) in ffi_closure_unix64_inner()