From 0813758e6eb640f8a0f8a3a1d90807e0d9628425 Mon Sep 17 00:00:00 2001 From: Denis Drakhnya Date: Fri, 29 Jan 2021 17:45:56 +0200 Subject: [PATCH] Add getf{s,d} sign bit tests. --- src/getfd_sign.gdb | 3 ++ src/getfd_sign.log | 103 +++++++++++++++++++++++++++++++++++++++++++++ src/getfd_sign.s | 47 +++++++++++++++++++++ 3 files changed, 153 insertions(+) create mode 100644 src/getfd_sign.gdb create mode 100644 src/getfd_sign.log create mode 100644 src/getfd_sign.s diff --git a/src/getfd_sign.gdb b/src/getfd_sign.gdb new file mode 100644 index 0000000..6959914 --- /dev/null +++ b/src/getfd_sign.gdb @@ -0,0 +1,3 @@ +c +c +info registers b diff --git a/src/getfd_sign.log b/src/getfd_sign.log new file mode 100644 index 0000000..d4377ce --- /dev/null +++ b/src/getfd_sign.log @@ -0,0 +1,103 @@ +Breakpoint 1 at 0x10088 +Breakpoint 2 at 0x10160 +0x0000000000010078 in _start () + +Breakpoint 1, 0x0000000000010088 in _start () + +Breakpoint 2, 0x0000000000010160 in _stop () +b0 <00> 0xf218 61976 +b1 <00> 0xf238 62008 +b2 <00> 0x7f 127 +b3 <00> 0x8f 143 +b4 <00> 0x7f 127 +b5 <00> 0x8f 143 +b6 <00> 0xf 15 +b7 <00> 0xf 15 +b8 <00> 0x7f 127 +b9 <00> 0xffffff8f 4294967183 +b10 <00> 0x7f 127 +b11 <00> 0xffffffffffffff8f 18446744073709551503 +b12 <00> 0xe 14 +b13 <00> 0xe 14 +b14 <00> 0x7f 127 +b15 <00> 0x8f 143 +b16 <00> 0x7f 127 +b17 <00> 0x8f 143 +b18 <00> 0xd 13 +b19 <00> 0xd 13 +b20 <00> 0xffffff7f 4294967167 +b21 <00> 0xffffff8f 4294967183 +b22 <00> 0xffffffffffffff7f 18446744073709551487 +b23 <00> 0xffffffffffffff8f 18446744073709551503 +b24 <00> 0xc 12 +b25 <00> 0xc 12 +b26 <00> 0x7f 127 +b27 <00> 0x8f 143 +b28 <00> 0x7f 127 +b29 <00> 0x8f 143 +b30 <00> 0xb 11 +b31 <00> 0xb 11 +b32 <00> 0xffffff7f 4294967167 +b33 <00> 0xffffff8f 4294967183 +b34 <00> 0xffffffffffffff7f 18446744073709551487 +b35 <00> 0xffffffffffffff8f 18446744073709551503 +b36 <00> 0xa 10 +b37 <00> 0xa 10 +b38 <00> 0x7f 127 +b39 <00> 0x8f 143 +b40 <00> 0x7f 127 +b41 <00> 0x8f 143 +b42 <00> 0x9 9 +b43 <00> 0x9 9 +b44 <00> 0xffffff7f 4294967167 +b45 <00> 0xffffff8f 4294967183 +b46 <00> 0xffffffffffffff7f 18446744073709551487 +b47 <00> 0xffffffffffffff8f 18446744073709551503 +b48 <00> 0x8 8 +b49 <00> 0x8 8 +b50 <00> 0x7f 127 +b51 <00> 0x8f 143 +b52 <00> 0x7f 127 +b53 <00> 0x8f 143 +b54 <00> 0x7 7 +b55 <00> 0x7 7 +b56 <00> 0x7f 127 +b57 <00> 0xffffff8f 4294967183 +b58 <00> 0xffffffffffffff7f 18446744073709551487 +b59 <00> 0xffffffffffffff8f 18446744073709551503 +b60 <00> 0x6 6 +b61 <00> 0x6 6 +b62 <00> 0x7f 127 +b63 <00> 0x8f 143 +b64 <00> 0x7f 127 +b65 <00> 0x8f 143 +b66 <00> 0x5 5 +b67 <00> 0x5 5 +b68 <00> 0xffffff7f 4294967167 +b69 <00> 0xffffff8f 4294967183 +b70 <00> 0xffffffffffffff7f 18446744073709551487 +b71 <00> 0xffffffffffffff8f 18446744073709551503 +b72 <00> 0x4 4 +b73 <00> 0x4 4 +b74 <00> 0x7f 127 +b75 <00> 0x8f 143 +b76 <00> 0x7f 127 +b77 <00> 0x8f 143 +b78 <00> 0x3 3 +b79 <00> 0x3 3 +b80 <00> 0xffffff7f 4294967167 +b81 <00> 0xffffff8f 4294967183 +b82 <00> 0xffffffffffffff7f 18446744073709551487 +b83 <00> 0xffffffffffffff8f 18446744073709551503 +b84 <00> 0x2 2 +b85 <00> 0x2 2 +b86 <00> 0x7f 127 +b87 <00> 0x8f 143 +b88 <00> 0x7f 127 +b89 <00> 0x8f 143 +b90 <00> 0x1 1 +b91 <00> 0x1 1 +b92 <00> 0xffffff7f 4294967167 +b93 <00> 0xffffff8f 4294967183 +b94 <00> 0xffffffffffffff7f 18446744073709551487 +b95 <00> 0xffffffffffffff8f 18446744073709551503 diff --git a/src/getfd_sign.s b/src/getfd_sign.s new file mode 100644 index 0000000..08b98e4 --- /dev/null +++ b/src/getfd_sign.s @@ -0,0 +1,47 @@ +.global _start +.global _stop +_start: +{ + setwd wsz=52, nfx=1, dbl=1 + setbn rsz=47, rbs=4, rcur=0 +} + addd 0, 0x7fffffff, %r0 + addd 0, 0x8fffffff, %r1 + addd 0, 0x7fffffffffffffff, %r2 + addd 0, 0x8fffffffffffffff, %r3 + addd 0, 0x218, %r4 + addd 0, 0x238, %r5 + addd 0, 0, %r6 +{ + nop 3 + disp %ctpr1, 0f + rwd 0x2000000010, %lsr +} + +0: +{ + addd %r6, 1, %r6 + shld %r6, 12, %r7 + addd %r6, 0, %b[0] + addd %r6, 0, %b[1] +} +{ + ord %r4, %r7, %r8 + ord %r5, %r7, %r9 +} +{ + getfs %r0, %r8, %b[2] + getfs %r1, %r8, %b[3] + getfd %r2, %r9, %b[4] + getfd %r3, %r9, %b[5] +} + abn abnf=1, abnt=1 + abn abnf=1, abnt=1 +{ + alc alcf=1, alct=1 + abn abnf=1, abnt=1 + ct %ctpr1 ? #NOT_LOOP_END +} + +_stop: + udivs 0, 0, %r0