]> www.ginac.de Git - cln.git/blobdiff - src/base/digitseq/cl_asm_mips_.cc
Replace unused macro with cl_unused.
[cln.git] / src / base / digitseq / cl_asm_mips_.cc
index 0f23dab1e0eb3985b8fdf29253c6d8b3875ebecb..068b27a63f921d3f7a8c530a96575d3334c5585d 100644 (file)
@@ -2,12 +2,12 @@
 // Prozessor: MIPS
 // Endianness: irrelevant
 // Compiler: GNU-C oder ...
-// Parameter-Übergabe:
+// Parameter-Übergabe:
 //   o32: in Registern $4,$5,$6,$7, und auf dem Stack 16($sp),...
 //   n32: in Registern $4,$5,$6,$7,$8,$9,$10,$11, und auf dem Stack 4($sp),...
-// Rückgabewert: in Register $2
+// Rückgabewert: in Register $2
 // Einstellungen: intCsize=32, intDsize=32.
-// Besonderheiten: Nach jedem Ladebefehl ein Wartetakt nötig, bevor der
+// Besonderheiten: Nach jedem Ladebefehl ein Wartetakt nötig, bevor der
 //   geholte Wert benutzt werden darf.
 
 // Strictly speaking, the MIPS ABI (-32 or -n32) is independent from the CPU
         DECLARE_FUNCTION(mulu32_)
         .ent mulu32_ // Input in $4,$5, Output in $2,mulu32_high
 mulu32_:
+#if __mips_isa_rev >= 6
+        mulu $2,$5,$4           // arg1 * arg2, lo
+        muhu $6,$5,$4           // arg1 * arg2, hi
+#else
         multu $5,$4             // arg1 * arg2
         mfhi $6                 // hi
         mflo $2                 // lo
+#endif
         sw $6,mulu32_high       // hi abspeichern // Adressierung?? Deklaration??
         j $31                   // return
         .end mulu32_