xref: /kernel/linux/linux-5.10/lib/cmpdi2.c
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-5.10/lib/
18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci */
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <linux/export.h>
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#include <linux/libgcc.h>
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciword_type notrace __cmpdi2(long long a, long long b)
108c2ecf20Sopenharmony_ci{
118c2ecf20Sopenharmony_ci	const DWunion au = {
128c2ecf20Sopenharmony_ci		.ll = a
138c2ecf20Sopenharmony_ci	};
148c2ecf20Sopenharmony_ci	const DWunion bu = {
158c2ecf20Sopenharmony_ci		.ll = b
168c2ecf20Sopenharmony_ci	};
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci	if (au.s.high < bu.s.high)
198c2ecf20Sopenharmony_ci		return 0;
208c2ecf20Sopenharmony_ci	else if (au.s.high > bu.s.high)
218c2ecf20Sopenharmony_ci		return 2;
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	if ((unsigned int) au.s.low < (unsigned int) bu.s.low)
248c2ecf20Sopenharmony_ci		return 0;
258c2ecf20Sopenharmony_ci	else if ((unsigned int) au.s.low > (unsigned int) bu.s.low)
268c2ecf20Sopenharmony_ci		return 2;
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci	return 1;
298c2ecf20Sopenharmony_ci}
308c2ecf20Sopenharmony_ciEXPORT_SYMBOL(__cmpdi2);
31

Indexes created Thu Nov 07 10:32:03 CST 2024