summaryrefslogtreecommitdiff
path: root/src/core/ao_int64.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ao_int64.c')
-rw-r--r--src/core/ao_int64.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/ao_int64.c b/src/core/ao_int64.c
index 5307342d..07cdb357 100644
--- a/src/core/ao_int64.c
+++ b/src/core/ao_int64.c
@@ -27,6 +27,17 @@ void ao_plus64(ao_int64_t *r, ao_int64_t *a, ao_int64_t *b) {
r->low = t;
}
+void ao_minus64(ao_int64_t *r, ao_int64_t *a, ao_int64_t *b) {
+ uint32_t t;
+
+
+ r->high = a->high - b->high;
+ t = a->low - b->low;
+ if (t > a->low)
+ r->high--;
+ r->low = t;
+}
+
void ao_rshift64(ao_int64_t *r, ao_int64_t *a, uint8_t d) {
if (d < 32) {
r->low = a->low >> d;