Home | History | Annotate | Download | only in x86

Lines Matching refs:classes

49 /* All reference to register classes here is identical to the code in
53 These represent classes as documented by the PS ABI, with the exception
54 of SSESF, SSEDF classes, that are basically SSE class, just gcc will
88 /* Rule #1: If both classes are equal, this is the resulting class. */
92 /* Rule #2: If one of the classes is NO_CLASS, the resulting class is
99 /* Rule #3: If one of the classes is MEMORY, the result is MEMORY. */
103 /* Rule #4: If one of the classes is INTEGER, the result is INTEGER. */
111 /* Rule #5: If one of the classes is X87, X87UP, or COMPLEX_X87 class,
126 CLASSES will be filled by the register class used to pass each word
129 sized containers, classes[0] will be NO_CLASS and 1 is returned.
134 classify_argument (ffi_type *type, enum x86_64_reg_class classes[],
149 classes[0] = X86_64_INTEGERSI_CLASS;
151 classes[0] = X86_64_INTEGER_CLASS;
155 classes[0] = X86_64_SSESF_CLASS;
157 classes[0] = X86_64_SSE_CLASS;
160 classes[0] = X86_64_SSEDF_CLASS;
163 classes[0] = X86_64_X87_CLASS;
164 classes[1] = X86_64_X87UP_CLASS;
179 classes[i] = X86_64_NO_CLASS;
194 classes[i + pos] =
195 merge_classes (subclasses[i], classes[i + pos]);
206 if (classes[i] == X86_64_MEMORY_CLASS)
211 if (classes[i] == X86_64_SSEUP_CLASS
212 && (i == 0 || classes[i - 1] != X86_64_SSE_CLASS))
213 classes[i] = X86_64_SSE_CLASS;
216 if (classes[i] == X86_64_X87UP_CLASS
217 && (i == 0 || classes[i - 1] != X86_64_X87_CLASS))
218 classes[i] = X86_64_SSE_CLASS;
234 examine_argument (ffi_type *type, enum x86_64_reg_class classes[MAX_CLASSES],
239 n = classify_argument (type, classes, 0);
245 switch (classes[i])
279 enum x86_64_reg_class classes[MAX_CLASSES];
287 n = examine_argument (cif->rtype, classes, 1, &ngpr, &nsse);
299 _Bool sse0 = SSE_CLASS_P (classes[0]);
300 _Bool sse1 = n == 2 && SSE_CLASS_P (classes[1]);
317 if (examine_argument (cif->arg_types[i], classes, 0, &ngpr, &nsse) == 0
346 enum x86_64_reg_class classes[MAX_CLASSES];
384 n = examine_argument (arg_types[i], classes, 0, &ngpr, &nsse);
408 switch (classes[j])
484 enum x86_64_reg_class classes[MAX_CLASSES];
485 int n = examine_argument (cif->rtype, classes, 1, &ngpr, &nsse);
497 _Bool sse0 = SSE_CLASS_P (classes[0]);
498 _Bool sse1 = SSE_CLASS_P (classes[1]);
511 enum x86_64_reg_class classes[MAX_CLASSES];
514 n = examine_argument (arg_types[i], classes, 0, &ngpr, &nsse);
534 && SSE_CLASS_P (classes[0]) == SSE_CLASS_P (classes[1])))
537 if (SSE_CLASS_P (classes[0]))
557 if (SSE_CLASS_P (classes[j]))