summaryrefslogtreecommitdiff
path: root/newlib/libc/machine/w65/cmpsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/w65/cmpsi.c')
-rw-r--r--newlib/libc/machine/w65/cmpsi.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/newlib/libc/machine/w65/cmpsi.c b/newlib/libc/machine/w65/cmpsi.c
new file mode 100644
index 00000000000..3773c9d2e90
--- /dev/null
+++ b/newlib/libc/machine/w65/cmpsi.c
@@ -0,0 +1,28 @@
+
+union u {
+ struct {
+ short int msw;
+ unsigned short lsw;
+} w;
+long l;
+};
+
+int
+__cmpsi2(long arga,
+ short int msw_b, unsigned short int lsw_b)
+{
+ union u u;
+ u.l = arga;
+
+ if (u.w.msw != msw_b)
+ {
+ if (u.w.msw < msw_b) return 0;
+ return 2;
+ }
+ if (u.w.lsw != lsw_b)
+ {
+ if (u.w.lsw < lsw_b) return 0;
+ return 2;
+ }
+ return 1;
+}