* src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
[fw/sdcc] / device / lib / pic16 / libsdcc / fixed16x16 / fps16x16_sub.c
diff --git a/device/lib/pic16/libsdcc/fixed16x16/fps16x16_sub.c b/device/lib/pic16/libsdcc/fixed16x16/fps16x16_sub.c
new file mode 100644 (file)
index 0000000..a542d47
--- /dev/null
@@ -0,0 +1,17 @@
+
+union u_t {
+  long value;
+  __fixed16x16 fix;
+};
+
+__fixed16x16 __fps16x16_sub(__fixed16x16 a, __fixed16x16 b)
+{
+  volatile union u_t u1, u2;
+
+  u1.fix = a;
+  u2.fix = b;
+  
+  u1.value -= u2.value;
+
+  return (u1.fix);
+}