Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jim Wilson <jim.wilson@linaro.org>
To: Jim Wilson <jim.wilson@linaro.org>,
		"gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
	Nick Clifton <nickc@redhat.com>
Subject: Re: [PATCH] fix for aarch64 sim tbnz bug
Date: Tue, 13 Dec 2016 00:33:00 -0000	[thread overview]
Message-ID: <CABXYE2Xfx6t85ThCugaKEKBO=LOPB21YFrEVUp+A=zyh9CvUhA@mail.gmail.com> (raw)
In-Reply-To: <20161212184245.GU10558@vapier.lan>

[-- Attachment #1: Type: text/plain, Size: 362 bytes --]

On Mon, Dec 12, 2016 at 10:42 AM, Mike Frysinger <vapier@gentoo.org> wrote:
> i think you want to stuff those pass/fail strings into the
> start macro instead of just having it get inserted where the
> include happened to show up.

That makes sense.  Here is a new version of the patch with that
change.  Retested with a sim make check, and all tests pass.

Jim

[-- Attachment #2: aarch64-sim-tests.patch --]
[-- Type: text/x-patch, Size: 4387 bytes --]

2016-12-12  Jim Wilson  <jim.wilson@linaro.org>

	sim/testsuite/sim/aarch64
	* testutils.inc (pass): Move .Lpass to start.
	(fail): Move .Lfail to start.  Return 1 instead of 0.
	(start): Moved .Lpass and .Lfail to here.
	* fstur.s: New.
	* tbnz.s: New.

diff --git a/sim/testsuite/sim/aarch64/fstur.s b/sim/testsuite/sim/aarch64/fstur.s
new file mode 100644
index 0000000..2206ae5
--- /dev/null
+++ b/sim/testsuite/sim/aarch64/fstur.s
@@ -0,0 +1,136 @@
+# mach: aarch64
+
+# Check the FP store unscaled offset instructions: fsturs, fsturd, fsturq.
+# Check the values -1, and XXX_MAX, which tests all bits.
+# Check with offsets -256 and 255, which tests all bits.
+# Also tests the FP load unscaled offset instructions: fldurs, fldurd, fldurq.
+
+.include "testutils.inc"
+
+	.data
+fm1:
+	.word 3212836864
+fmax:
+	.word 2139095039
+ftmp:
+	.word 0
+
+dm1:
+	.word 0
+	.word -1074790400
+dmax:
+	.word 4294967295
+	.word 2146435071
+dtmp:
+	.word 0
+	.word 0
+
+ldm1:
+	.word	0
+	.word	0
+	.word	0
+	.word	-1073807360
+ldmax:
+	.word	4294967295
+	.word	4294967295
+	.word	4294967295
+	.word	2147418111
+ldtmp:
+	.word 0
+	.word 0
+	.word 0
+	.word 0
+
+	start
+	adrp x1, ftmp
+	add x1, x1, :lo12:ftmp
+
+	adrp x0, fm1
+	add x0, x0, :lo12:fm1
+	sub x5, x0, #255
+	sub x6, x1, #255
+	movi d2, #0
+	ldur s2, [x5, #255]
+	stur s2, [x6, #255]
+	ldr w3, [x0]
+	ldr w4, [x1]
+	cmp w3, w4
+	bne .Lfailure
+
+	adrp x0, fmax
+	add x0, x0, :lo12:fmax
+	add x5, x0, #256
+	add x6, x1, #256
+	movi d2, #0
+	ldur s2, [x5, #-256]
+	stur s2, [x6, #-256]
+	ldr w3, [x0]
+	ldr w4, [x1]
+	cmp w3, w4
+	bne .Lfailure
+
+	adrp x1, dtmp
+	add x1, x1, :lo12:dtmp
+
+	adrp x0, dm1
+	add x0, x0, :lo12:dm1
+	sub x5, x0, #255
+	sub x6, x1, #255
+	movi d2, #0
+	ldur d2, [x5, #255]
+	stur d2, [x6, #255]
+	ldr x3, [x0]
+	ldr x4, [x1]
+	cmp x3, x4
+	bne .Lfailure
+
+	adrp x0, dmax
+	add x0, x0, :lo12:dmax
+	add x5, x0, #256
+	add x6, x1, #256
+	movi d2, #0
+	ldur d2, [x5, #-256]
+	stur d2, [x6, #-256]
+	ldr x3, [x0]
+	ldr x4, [x1]
+	cmp x3, x4
+	bne .Lfailure
+
+	adrp x1, ldtmp
+	add x1, x1, :lo12:ldtmp
+
+	adrp x0, ldm1
+	add x0, x0, :lo12:ldm1
+	sub x5, x0, #255
+	sub x6, x1, #255
+	movi v2.2d, #0
+	ldur q2, [x5, #255]
+	stur q2, [x6, #255]
+	ldr x3, [x0]
+	ldr x4, [x1]
+	cmp x3, x4
+	bne .Lfailure
+	ldr x3, [x0, 8]
+	ldr x4, [x1, 8]
+	cmp x3, x4
+	bne .Lfailure
+
+	adrp x0, ldmax
+	add x0, x0, :lo12:ldmax
+	add x5, x0, #256
+	add x6, x1, #256
+	movi v2.2d, #0
+	ldur q2, [x5, #-256]
+	stur q2, [x6, #-256]
+	ldr x3, [x0]
+	ldr x4, [x1]
+	cmp x3, x4
+	bne .Lfailure
+	ldr x3, [x0, 8]
+	ldr x4, [x1, 8]
+	cmp x3, x4
+	bne .Lfailure
+
+	pass
+.Lfailure:
+	fail
diff --git a/sim/testsuite/sim/aarch64/tbnz.s b/sim/testsuite/sim/aarch64/tbnz.s
new file mode 100644
index 0000000..2416101
--- /dev/null
+++ b/sim/testsuite/sim/aarch64/tbnz.s
@@ -0,0 +1,55 @@
+# mach: aarch64
+
+# Check the test-bit-and-branch instructions: tbnz, and tbz.
+# We check the edge condition bit positions: 0, 1<<31, 1<<32, 1<<63.
+
+.include "testutils.inc"
+
+	start
+	mov x0, #1
+	tbnz x0, #0, .L1
+	fail
+.L1:
+	tbz x0, #0, .Lfailure
+	mov x0, #0xFFFFFFFFFFFFFFFE
+	tbnz x0, #0, .Lfailure
+	tbz x0, #0, .L2
+	fail
+.L2:
+
+	mov x0, #0x80000000
+	tbnz x0, #31, .L3
+	fail
+.L3:
+	tbz x0, #31, .Lfailure
+	mov x0, #0xFFFFFFFF7FFFFFFF
+	tbnz x0, #31, .Lfailure
+	tbz x0, #31, .L4
+	fail
+.L4:
+
+	mov x0, #0x100000000
+	tbnz x0, #32, .L5
+	fail
+.L5:
+	tbz x0, #32, .Lfailure
+	mov x0, #0xFFFFFFFEFFFFFFFF
+	tbnz x0, #32, .Lfailure
+	tbz x0, #32, .L6
+	fail
+.L6:
+
+	mov x0, #0x8000000000000000
+	tbnz x0, #63, .L7
+	fail
+.L7:
+	tbz x0, #63, .Lfailure
+	mov x0, #0x7FFFFFFFFFFFFFFF
+	tbnz x0, #63, .Lfailure
+	tbz x0, #63, .L8
+	fail
+.L8:
+
+	pass
+.Lfailure:
+	fail
diff --git a/sim/testsuite/sim/aarch64/testutils.inc b/sim/testsuite/sim/aarch64/testutils.inc
index c8897aa..1fc9bc8 100644
--- a/sim/testsuite/sim/aarch64/testutils.inc
+++ b/sim/testsuite/sim/aarch64/testutils.inc
@@ -43,10 +43,6 @@
 	
 	swiwrite 5
 	exit 0
-
-	.data
-.Lpass:
-	.asciz "pass\n"
 	.endm
 
 # MACRO: fail
@@ -56,16 +52,18 @@
 	adrp	x1, .Lfail
 	add	x1, x1, :lo12:.Lfail
 	swiwrite 5
-	exit 0
-
-	.data
-.Lfail:
-	.asciz "fail\n"
+	exit 1
 	.endm
 
 # MACRO: start
 # All assembler tests should start with a call to "start"
 	.macro start
+	.data
+.Lpass:
+	.asciz "pass\n"
+.Lfail:
+	.asciz "fail\n"
+
 	.text
 .global _start
 _start:

  reply	other threads:[~2016-12-13  0:33 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-02  4:49 Jim Wilson
2016-12-02  9:32 ` Mike Frysinger
2016-12-05  3:45   ` Jim Wilson
2016-12-12 18:38     ` Jim Wilson
2016-12-12 18:42     ` Mike Frysinger
2016-12-13  0:33       ` Jim Wilson [this message]
2016-12-13  6:38         ` Mike Frysinger
2016-12-13 10:45         ` Nick Clifton
2016-12-02 12:03 ` Nick Clifton
2016-12-02 15:59   ` Jim Wilson

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='CABXYE2Xfx6t85ThCugaKEKBO=LOPB21YFrEVUp+A=zyh9CvUhA@mail.gmail.com' \
    --to=jim.wilson@linaro.org \
    --cc=gdb-patches@sourceware.org \
    --cc=nickc@redhat.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox