Lines Matching full:classes
74 /* All reference to register classes here is identical to the code in
78 These represent classes as documented by the PS ABI, with the
79 exception of SSESF, SSEDF classes, that are basically SSE class,
114 /* Rule #1: If both classes are equal, this is the resulting class. */ in merge_classes()
118 /* Rule #2: If one of the classes is NO_CLASS, the resulting class is in merge_classes()
125 /* Rule #3: If one of the classes is MEMORY, the result is MEMORY. */ in merge_classes()
129 /* Rule #4: If one of the classes is INTEGER, the result is INTEGER. */ in merge_classes()
137 /* Rule #5: If one of the classes is X87, X87UP, or COMPLEX_X87 class, in merge_classes()
152 CLASSES will be filled by the register class used to pass each word
155 sized containers, classes[0] will be NO_CLASS and 1 is returned.
160 classify_argument (ffi_type *type, enum x86_64_reg_class classes[], in classify_argument() argument
180 classes[0] = X86_64_INTEGERSI_CLASS; in classify_argument()
185 classes[0] = X86_64_INTEGER_CLASS; in classify_argument()
190 classes[0] = X86_64_INTEGER_CLASS; in classify_argument()
191 classes[1] = X86_64_INTEGERSI_CLASS; in classify_argument()
196 classes[0] = classes[1] = X86_64_INTEGER_CLASS; in classify_argument()
204 classes[0] = X86_64_SSESF_CLASS; in classify_argument()
206 classes[0] = X86_64_SSE_CLASS; in classify_argument()
209 classes[0] = X86_64_SSEDF_CLASS; in classify_argument()
213 classes[0] = X86_64_X87_CLASS; in classify_argument()
214 classes[1] = X86_64_X87UP_CLASS; in classify_argument()
230 classes[i] = X86_64_NO_CLASS; in classify_argument()
237 classes[0] = X86_64_NO_CLASS; in classify_argument()
254 classes[i + pos] = in classify_argument()
255 merge_classes (subclasses[i], classes[i + pos]); in classify_argument()
267 if (classes[0] != X86_64_SSE_CLASS) in classify_argument()
271 if (classes[i] != X86_64_SSEUP_CLASS) in classify_argument()
280 if (classes[i] == X86_64_MEMORY_CLASS) in classify_argument()
285 if (i > 1 && classes[i] == X86_64_SSEUP_CLASS in classify_argument()
286 && classes[i - 1] != X86_64_SSE_CLASS in classify_argument()
287 && classes[i - 1] != X86_64_SSEUP_CLASS) in classify_argument()
291 classes[i] = X86_64_SSE_CLASS; in classify_argument()
296 if (i > 1 && classes[i] == X86_64_X87UP_CLASS in classify_argument()
297 && (classes[i - 1] != X86_64_X87_CLASS)) in classify_argument()
323 classes[0] = X86_64_SSE_CLASS; in classify_argument()
326 classes[1] = X86_64_SSESF_CLASS; in classify_argument()
331 classes[0] = classes[1] = X86_64_SSEDF_CLASS; in classify_argument()
335 classes[0] = X86_64_COMPLEX_X87_CLASS; in classify_argument()
349 examine_argument (ffi_type *type, enum x86_64_reg_class classes[MAX_CLASSES], in examine_argument()
356 n = classify_argument (type, classes, 0); in examine_argument()
362 switch (classes[i]) in examine_argument()
402 enum x86_64_reg_class classes[MAX_CLASSES]; in ffi_prep_cif_machdep() local
460 n = examine_argument (cif->rtype, classes, 1, &ngpr, &nsse); in ffi_prep_cif_machdep()
471 _Bool sse0 = SSE_CLASS_P (classes[0]); in ffi_prep_cif_machdep()
479 _Bool sse1 = n == 2 && SSE_CLASS_P (classes[1]); in ffi_prep_cif_machdep()
530 if (examine_argument (cif->arg_types[i], classes, 0, &ngpr, &nsse) == 0 in ffi_prep_cif_machdep()
561 enum x86_64_reg_class classes[MAX_CLASSES]; in ffi_call_int() local
602 n = examine_argument (arg_types[i], classes, 0, &ngpr, &nsse); in ffi_call_int()
626 switch (classes[j]) in ffi_call_int()
796 enum x86_64_reg_class classes[MAX_CLASSES]; in ffi_closure_unix64_inner() local
799 n = examine_argument (arg_types[i], classes, 0, &ngpr, &nsse); in ffi_closure_unix64_inner()
818 || (n == 2 && !(SSE_CLASS_P (classes[0]) in ffi_closure_unix64_inner()
819 || SSE_CLASS_P (classes[1])))) in ffi_closure_unix64_inner()
822 if (SSE_CLASS_P (classes[0])) in ffi_closure_unix64_inner()
842 if (SSE_CLASS_P (classes[j])) in ffi_closure_unix64_inner()