All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aleksandar Markovic <aleksandar.markovic@rt-rk.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, amarkovic@wavecomp.com
Subject: [Qemu-devel] [PULL v2 43/44] tests/tcg: mips: Test R5900 three-operand MADDU
Date: Mon, 31 Dec 2018 15:56:39 +0100	[thread overview]
Message-ID: <1546268200-26966-44-git-send-email-aleksandar.markovic@rt-rk.com> (raw)
In-Reply-To: <1546268200-26966-1-git-send-email-aleksandar.markovic@rt-rk.com>

From: Fredrik Noring <noring@nocrew.org>

Test R5900 three-operand MADDU.

Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Signed-off-by: Fredrik Noring <noring@nocrew.org>
---
 tests/tcg/mips/mipsr5900/Makefile |  1 +
 tests/tcg/mips/mipsr5900/maddu.c  | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 tests/tcg/mips/mipsr5900/maddu.c

diff --git a/tests/tcg/mips/mipsr5900/Makefile b/tests/tcg/mips/mipsr5900/Makefile
index 97ca2a6..27ee5d5 100644
--- a/tests/tcg/mips/mipsr5900/Makefile
+++ b/tests/tcg/mips/mipsr5900/Makefile
@@ -11,6 +11,7 @@ CFLAGS  = -Wall -mabi=32 -march=r5900 -static
 TESTCASES = div1.tst
 TESTCASES += divu1.tst
 TESTCASES += madd.tst
+TESTCASES += maddu.tst
 TESTCASES += mflohi1.tst
 TESTCASES += mtlohi1.tst
 TESTCASES += mult.tst
diff --git a/tests/tcg/mips/mipsr5900/maddu.c b/tests/tcg/mips/mipsr5900/maddu.c
new file mode 100644
index 0000000..e4e5521
--- /dev/null
+++ b/tests/tcg/mips/mipsr5900/maddu.c
@@ -0,0 +1,37 @@
+/*
+ * Test R5900-specific three-operand MADDU.
+ */
+
+#include <stdio.h>
+#include <inttypes.h>
+#include <assert.h>
+
+uint64_t maddu(uint64_t a, uint32_t rs, uint32_t rt)
+{
+    uint32_t lo = a;
+    uint32_t hi = a >> 32;
+    uint32_t rd;
+    uint64_t r;
+
+    __asm__ __volatile__ (
+            "    mtlo  %5\n"
+            "    mthi  %6\n"
+            "    maddu %0, %3, %4\n"
+            "    mflo  %1\n"
+            "    mfhi  %2\n"
+            : "=r" (rd), "=r" (lo), "=r" (hi)
+            : "r" (rs), "r" (rt), "r" (lo), "r" (hi));
+    r = ((uint64_t)hi << 32) | (uint32_t)lo;
+
+    assert(a + (uint64_t)rs * rt == r);
+    assert(rd == lo);
+
+    return r;
+}
+
+int main()
+{
+    assert(maddu(13, 17, 19) == 336);
+
+    return 0;
+}
-- 
2.7.4

  parent reply	other threads:[~2018-12-31 14:58 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-31 14:55 [Qemu-devel] [PULL v2 00/44] MIPS pull request for December 2018 - v2 Aleksandar Markovic
2018-12-31 14:55 ` [Qemu-devel] [PULL v2 01/44] MAINTAINERS: target/mips: Add MIPS files under default-configs directory Aleksandar Markovic
2018-12-31 14:55 ` [Qemu-devel] [PULL v2 02/44] MAINTAINERS: target/mips: Add filter for mips in email subjects Aleksandar Markovic
2018-12-31 14:55 ` [Qemu-devel] [PULL v2 03/44] MAINTAINERS: target/mips: Reorder items alphabetically Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 04/44] MAINTAINERS: Add Aleksandar Rikalo as a reviewer for MIPS content Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 05/44] atomics: Set ATOMIC_REG_SIZE=8 for MIPS n32 Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 06/44] target/mips: MXU: Add missing opcodes/decoding for LX* instructions Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 07/44] target/mips: MXU: Add generic naming for optn2 constants Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 08/44] target/mips: MXU: Improve the comment containing MXU overview Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 09/44] target/mips: MXU: Add handlers for logic instructions Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 10/44] target/mips: MXU: Add handlers for max/min instructions Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 11/44] target/mips: MXU: Add handler for an align instruction Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 12/44] target/mips: Support R5900 three-operand MADD and MADDU instructions Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 13/44] target/mips: Support R5900 three-operand MADD1 and MADDU1 instructions Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 14/44] disas: nanoMIPS: Fix types and format strings Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 15/44] disas: nanoMIPS: Fix preamble text in nanomips.* files Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 16/44] disas: nanoMIPS: Remove functions that are not used Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 17/44] disas: nanoMIPS: Fix a function misnomer Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 18/44] disas: nanoMIPS: Fix order of some invocations Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 19/44] disas: nanoMIPS: Name some functions in a more descriptive way Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 20/44] disas: nanoMIPS: Fix an FP-related misnomer 1 Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 21/44] disas: nanoMIPS: Fix an FP-related misnomer 2 Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 22/44] disas: nanoMIPS: Fix an FP-related misnomer 3 Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 23/44] disas: nanoMIPS: Name more functions in a more descriptive way Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 24/44] disas: nanoMIPS: Fix order of more invocations Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 25/44] disas: nanoMIPS: Rename the decoder of 'gpr3' gpr encoding type Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 26/44] disas: nanoMIPS: Comment " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 27/44] disas: nanoMIPS: Rename the decoder of 'gpr3.src.store' " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 28/44] disas: nanoMIPS: Comment " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 29/44] disas: nanoMIPS: Rename the decoder of 'gpr4' " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 30/44] disas: nanoMIPS: Comment " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 31/44] disas: nanoMIPS: Rename the decoder of 'gpr4.zero' " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 32/44] disas: nanoMIPS: Comment " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 33/44] disas: nanoMIPS: Rename the decoder of 'gpr2.reg1' " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 34/44] disas: nanoMIPS: Comment " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 35/44] disas: nanoMIPS: Rename the decoder of 'gpr2.reg2' " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 36/44] disas: nanoMIPS: Comment " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 37/44] disas: nanoMIPS: Rename the decoder of 'gpr1' " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 38/44] disas: nanoMIPS: Comment " Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 39/44] disas: nanoMIPS: Reorder declarations and definitions of gpr decoders Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 40/44] disas: nanoMIPS: Add a note on documentation Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 41/44] tests/tcg: mips: Test R5900 three-operand MADD Aleksandar Markovic
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 42/44] tests/tcg: mips: Test R5900 three-operand MADD1 Aleksandar Markovic
2018-12-31 14:56 ` Aleksandar Markovic [this message]
2018-12-31 14:56 ` [Qemu-devel] [PULL v2 44/44] tests/tcg: mips: Test R5900 three-operand MADDU1 Aleksandar Markovic
2019-01-03 13:23 ` [Qemu-devel] [PULL v2 00/44] MIPS pull request for December 2018 - v2 Peter Maydell
2019-01-03 13:32   ` Philippe Mathieu-Daudé
2019-01-03 14:06     ` Thomas Huth
2019-01-03 22:29       ` Richard Henderson
2019-01-09 10:47       ` Daniel P. Berrangé
2019-01-03 13:54   ` Aleksandar Markovic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1546268200-26966-44-git-send-email-aleksandar.markovic@rt-rk.com \
    --to=aleksandar.markovic@rt-rk.com \
    --cc=amarkovic@wavecomp.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.