diff for duplicates of <y2afu71pwob.fsf@offog.org> diff --git a/a/1.txt b/N1/1.txt index 1b88716..0868a3f 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -20,7 +20,7 @@ That's only true when sz < LONG_MAX, which is documented below but not here; it's also different from the asm version, which doesn't do the idx <= LONG_MAX check. So making the constraint explicit would be a good idea. ->From a bit of experimentation, when the top bit of sz is set, this +From a bit of experimentation, when the top bit of sz is set, this expression, the C version and the assembler version all have different behaviour. For example, with 32-bit unsigned long: diff --git a/a/content_digest b/N1/content_digest index 4c596d2..4fe5ab8 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -44,7 +44,7 @@ "here; it's also different from the asm version, which doesn't do the idx\n" "<= LONG_MAX check. So making the constraint explicit would be a good idea.\n" "\n" - ">From a bit of experimentation, when the top bit of sz is set, this\n" + "From a bit of experimentation, when the top bit of sz is set, this\n" "expression, the C version and the assembler version all have different\n" "behaviour. For example, with 32-bit unsigned long:\n" "\n" @@ -67,4 +67,4 @@ "-- \n" Adam Sampson <ats@offog.org> <http://offog.org/> -c52b0c8af5dde8b509c36b06caa0f99f216eb9d57c4be4f5b17279e72dc3e9dc +40abb989956fa1fdea130c51192e54ff365fb77e804d837cd9b2a98481b9bf62
diff --git a/a/1.txt b/N2/1.txt index 1b88716..d33b63d 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -19,26 +19,3 @@ Jann Horn <jannh@google.com> writes: That's only true when sz < LONG_MAX, which is documented below but not here; it's also different from the asm version, which doesn't do the idx <= LONG_MAX check. So making the constraint explicit would be a good idea. - ->From a bit of experimentation, when the top bit of sz is set, this -expression, the C version and the assembler version all have different -behaviour. For example, with 32-bit unsigned long: - -index=00000000 size=80000001: expr=ffffffff c=00000000 asm=ffffffff -index=80000000 size=80000001: expr=00000000 c=00000000 asm=ffffffff -index=00000000 size=a0000000: expr=ffffffff c=00000000 asm=ffffffff -index=00000001 size=a0000000: expr=ffffffff c=00000000 asm=ffffffff -index=fffffffe size=ffffffff: expr=00000000 c=00000000 asm=ffffffff - -It may be worth noting that: - - return 0 - ((long) (idx < sz)); - -causes GCC, on ia32 and amd64, to generate exactly the same cmp/sbb -sequence as in Linus's asm. Are there architectures where this form -would allow speculation? - -Thanks, - --- -Adam Sampson <ats@offog.org> <http://offog.org/> diff --git a/a/content_digest b/N2/content_digest index 4c596d2..1fc6445 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -42,29 +42,6 @@ "\n" "That's only true when sz < LONG_MAX, which is documented below but not\n" "here; it's also different from the asm version, which doesn't do the idx\n" - "<= LONG_MAX check. So making the constraint explicit would be a good idea.\n" - "\n" - ">From a bit of experimentation, when the top bit of sz is set, this\n" - "expression, the C version and the assembler version all have different\n" - "behaviour. For example, with 32-bit unsigned long:\n" - "\n" - "index=00000000 size=80000001: expr=ffffffff c=00000000 asm=ffffffff\n" - "index=80000000 size=80000001: expr=00000000 c=00000000 asm=ffffffff\n" - "index=00000000 size=a0000000: expr=ffffffff c=00000000 asm=ffffffff\n" - "index=00000001 size=a0000000: expr=ffffffff c=00000000 asm=ffffffff\n" - "index=fffffffe size=ffffffff: expr=00000000 c=00000000 asm=ffffffff\n" - "\n" - "It may be worth noting that:\n" - "\n" - " return 0 - ((long) (idx < sz));\n" - "\n" - "causes GCC, on ia32 and amd64, to generate exactly the same cmp/sbb\n" - "sequence as in Linus's asm. Are there architectures where this form\n" - "would allow speculation?\n" - "\n" - "Thanks,\n" - "\n" - "-- \n" - Adam Sampson <ats@offog.org> <http://offog.org/> + <= LONG_MAX check. So making the constraint explicit would be a good idea. -c52b0c8af5dde8b509c36b06caa0f99f216eb9d57c4be4f5b17279e72dc3e9dc +b22992fd8dd71717ae133d3c663738835ec339664d8484fa60196386fa9b1848
diff --git a/a/content_digest b/N3/content_digest index 4c596d2..016379d 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -10,7 +10,7 @@ linux-arch <linux-arch@vger.kernel.org> Kernel Hardening <kernel-hardening@lists.openwall.com> Catalin Marinas <catalin.marinas@arm.com> - the arch/x86 maintainers <x86@kernel.org> + " the arch\\/x86 maintainers <x86@kernel.org>" Will Deacon <will.deacon@arm.com> Russell King <linux@armlinux.org.uk> Ingo Molnar <mingo@redhat.com> @@ -67,4 +67,4 @@ "-- \n" Adam Sampson <ats@offog.org> <http://offog.org/> -c52b0c8af5dde8b509c36b06caa0f99f216eb9d57c4be4f5b17279e72dc3e9dc +e65dfa45e30bc86c3ea9086528bfb5be72b9b63781eb57434d1402eda13414a9
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.