All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Brian Gerst <brgerst@gmail.com>, Ingo Molnar <mingo@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@amacapital.net>,
	Oleg Nesterov <oleg@redhat.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Alexei Starovoitov <ast@plumgrid.com>,
	Will Drewry <wad@chromium.org>, Kees Cook <keescook@chromium.org>,
	"the arch/x86 maintainers" <x86@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 7/9] x86/asm/entry/32: tidy up some instructions
Date: Wed, 1 Apr 2015 15:14:17 -0700	[thread overview]
Message-ID: <CA+55aFweqq2bM7KKJkt1zOWMrDxfu-WVXmCD0Seut3y-o0Bf=w@mail.gmail.com> (raw)
In-Reply-To: <551C5A73.3050109@redhat.com>

On Wed, Apr 1, 2015 at 1:52 PM, Denys Vlasenko <dvlasenk@redhat.com> wrote:
>
> BTW, AMD64 docs do explicitly say that MOVs from segment registers
> to gpregs are zero-extending.

Yeah, I think anything even *remotely* recent enough to do 64-bit does
zero-extending.

Even on the 32-bit side, anything that does register renaming is much
better off with zero-extension than with partial register writes.

And I found the "push" thing. It's actually documented:

  "When pushing a segment selector onto the stack, the Pentium 4,
Intel Xeon, P6 family, and Intel486 processors
decrement the ESP register by the operand size and then write 2 bytes.
If the operand size is 32-bits, the upper
two bytes of the write are not modified"

but I can't find any similar documentation for the "mov
Sreg->register" thing. So now I'm starting to doubt my own memory.

                          Linus

  parent reply	other threads:[~2015-04-01 22:14 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-31 17:00 [PATCH 1/9] x86/asm/entry/64: do not TRACE_IRQS fast SYSRET64 path Denys Vlasenko
2015-03-31 17:00 ` [PATCH 2/9] x86/asm/entry/32: Use PUSH instructions to build pt_regs on stack Denys Vlasenko
2015-04-01  8:51   ` Ingo Molnar
2015-04-01 13:12     ` Denys Vlasenko
2015-04-01 13:21       ` Ingo Molnar
2015-04-01 13:53       ` Borislav Petkov
2015-04-02 12:25   ` [tip:x86/asm] x86/asm/entry/32: Use smaller PUSH instructions instead of MOV, to build 'pt_regs' " tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 3/9] x86/asm/entry/64: simplify retint_kernel label usage, make retint_restore_args label local Denys Vlasenko
2015-04-02 12:25   ` [tip:x86/asm] x86/asm/entry/64: Simplify " tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 4/9] x86/asm/entry/64: remove redundant DISABLE_INTERRUPTS Denys Vlasenko
2015-04-02 12:25   ` [tip:x86/asm] x86/asm/entry/64: Remove redundant DISABLE_INTERRUPTS() tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 5/9] x86/asm/entry/64: simplify looping around preempt_schedule_irq Denys Vlasenko
2015-04-02 12:26   ` [tip:x86/asm] x86/asm/entry/64: Simplify looping around preempt_schedule_irq() tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 6/9] x86/asm/entry/64: tidy up some instructions Denys Vlasenko
2015-03-31 17:00 ` [PATCH 7/9] x86/asm/entry/32: " Denys Vlasenko
2015-03-31 22:21   ` Brian Gerst
2015-03-31 23:09     ` Linus Torvalds
2015-04-01 11:10     ` Denys Vlasenko
2015-04-01 15:50       ` Linus Torvalds
2015-04-01 20:52         ` Denys Vlasenko
2015-04-01 20:57           ` H. Peter Anvin
2015-04-01 22:14           ` Linus Torvalds [this message]
2015-04-02  0:32             ` Brian Gerst
2015-04-01  8:29   ` Ingo Molnar
2015-03-31 17:00 ` [PATCH 8/9] x86/asm: replace MOVQ $imm,%reg with MOVL Denys Vlasenko
2015-04-02 12:26   ` [tip:x86/asm] x86/asm: Replace "MOVQ $imm, %reg" " tip-bot for Denys Vlasenko
2015-03-31 17:00 ` [PATCH 9/9] x86/asm/entry/64: use local label to skip around sycall dispatch Denys Vlasenko
2015-04-02 12:26   ` [tip:x86/asm] x86/asm/entry/64: Use " tip-bot for Denys Vlasenko
2015-04-02 12:25 ` [tip:x86/asm] x86/asm/entry/64: Do not TRACE_IRQS fast SYSRET64 path tip-bot for Denys Vlasenko

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='CA+55aFweqq2bM7KKJkt1zOWMrDxfu-WVXmCD0Seut3y-o0Bf=w@mail.gmail.com' \
    --to=torvalds@linux-foundation.org \
    --cc=ast@plumgrid.com \
    --cc=bp@alien8.de \
    --cc=brgerst@gmail.com \
    --cc=dvlasenk@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=wad@chromium.org \
    --cc=x86@kernel.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.