summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc
diff options
context:
space:
mode:
authorMartin Peres <martin.peres@labri.fr>2014-08-17 17:33:11 +0200
committerBen Skeggs <bskeggs@redhat.com>2014-09-15 22:24:56 +1000
commit2befd17de2dff0238800ffa0b8364e2053f65e9f (patch)
tree295d8d51c43b9ed220c41f39d0609a12d02406e6 /drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc
parent9db66fceace9811c4602785364b7e30f308cb9c7 (diff)
drm/nouveau/pwr: add some arith functions (mul32_32_64, subu64 and addu64)
Signed-off-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc')
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc
index 5668e045bac..9707e3f4460 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc
+++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc
@@ -250,3 +250,13 @@
*/ st b32 D[$r0] reg /*
*/ clear b32 $r0
#endif
+
+// does a 64+64 -> 64 unsigned addition (C = A + B)
+#define addu64(reg_a_c_hi, reg_a_c_lo, b_hi, b_lo) /*
+*/ add b32 reg_a_c_lo b_lo /*
+*/ adc b32 reg_a_c_hi b_hi
+
+// does a 64+64 -> 64 substraction (C = A - B)
+#define subu64(reg_a_c_hi, reg_a_c_lo, b_hi, b_lo) /*
+*/ sub b32 reg_a_c_lo b_lo /*
+*/ sbb b32 reg_a_c_hi b_hi