From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH-WIP 01/13] xen/arm: use r12 to pass the hypercall number to the hypervisor
Date: Thu, 1 Mar 2012 10:12:58 +0000 [thread overview]
Message-ID: <20120301101258.GC7363@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1330526664.4270.128.camel@zakaz.uk.xensource.com>
On Wed, Feb 29, 2012 at 02:44:24PM +0000, Ian Campbell wrote:
> > If you need a specific register, this means that you must set up that
> > register explicitly inside the asm if you want a guarantee that the
> > code will work:
> >
> > asm volatile (
> > "movw r12, %[hvc_num]\n\t"
>
> Is gcc (or gas?) smart enough to optimise this away if it turns out that
> %[hvc_num] == r12?
No, and it won't do, because %[hvc_num] is specified in these operands:
> > ...
> > "hvc #0"
> > :: [hvc_num] "i" (NUMBER) : "r12"
to be an integer, not a register.
> How are system calls implemented on the userspace side? I confess I
> don't know what the ARM syscall ABI looks like -- is it all registers or
> is some of it on the stack? It sounds like the solution ought to be
> pretty similar though.
All registers. We have a few which take a pointer to an in memory array,
but those are for some old multiplexed syscalls.
WARNING: multiple messages have this Message-ID (diff)
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Dave Martin <dave.martin@linaro.org>,
Peter Maydell <peter.maydell@linaro.org>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
"linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"arnd@arndb.de" <arnd@arndb.de>,
Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
David Vrabel <david.vrabel@citrix.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH-WIP 01/13] xen/arm: use r12 to pass the hypercall number to the hypervisor
Date: Thu, 1 Mar 2012 10:12:58 +0000 [thread overview]
Message-ID: <20120301101258.GC7363@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <1330526664.4270.128.camel@zakaz.uk.xensource.com>
On Wed, Feb 29, 2012 at 02:44:24PM +0000, Ian Campbell wrote:
> > If you need a specific register, this means that you must set up that
> > register explicitly inside the asm if you want a guarantee that the
> > code will work:
> >
> > asm volatile (
> > "movw r12, %[hvc_num]\n\t"
>
> Is gcc (or gas?) smart enough to optimise this away if it turns out that
> %[hvc_num] == r12?
No, and it won't do, because %[hvc_num] is specified in these operands:
> > ...
> > "hvc #0"
> > :: [hvc_num] "i" (NUMBER) : "r12"
to be an integer, not a register.
> How are system calls implemented on the userspace side? I confess I
> don't know what the ARM syscall ABI looks like -- is it all registers or
> is some of it on the stack? It sounds like the solution ought to be
> pretty similar though.
All registers. We have a few which take a pointer to an in memory array,
but those are for some old multiplexed syscalls.
next prev parent reply other threads:[~2012-03-01 10:12 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-23 17:47 [PATCH-WIP 00/13] xen/arm: receive Xen events and initialize xenbus Stefano Stabellini
2012-02-23 17:47 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 01/13] xen/arm: use r12 to pass the hypercall number to the hypervisor Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-27 16:27 ` Ian Campbell
2012-02-27 16:27 ` Ian Campbell
2012-02-27 18:03 ` Dave Martin
2012-02-27 18:03 ` Dave Martin
2012-02-27 18:03 ` Dave Martin
2012-02-27 19:33 ` Ian Campbell
2012-02-27 19:33 ` Ian Campbell
2012-02-28 10:20 ` Dave Martin
2012-02-28 10:20 ` Dave Martin
2012-02-28 10:20 ` Dave Martin
2012-02-28 10:48 ` Ian Campbell
2012-02-28 10:48 ` Ian Campbell
2012-02-28 12:28 ` Stefano Stabellini
2012-02-28 12:28 ` Stefano Stabellini
2012-02-28 12:28 ` Stefano Stabellini
2012-02-29 9:34 ` Dave Martin
2012-02-29 9:34 ` Dave Martin
2012-02-29 9:34 ` Dave Martin
2012-02-29 9:56 ` Ian Campbell
2012-02-29 9:56 ` Ian Campbell
2012-02-29 9:56 ` Ian Campbell
2012-02-29 11:47 ` Dave Martin
2012-02-29 11:47 ` Dave Martin
2012-02-29 12:58 ` Dave Martin
2012-02-29 12:58 ` Dave Martin
2012-02-29 12:58 ` Dave Martin
2012-02-29 14:44 ` Ian Campbell
2012-02-29 14:44 ` Ian Campbell
2012-03-01 9:35 ` Dave Martin
2012-03-01 9:35 ` Dave Martin
2012-03-01 9:35 ` Dave Martin
2012-03-01 10:12 ` Russell King - ARM Linux [this message]
2012-03-01 10:12 ` Russell King - ARM Linux
2012-03-02 21:19 ` Nicolas Pitre
2012-03-02 21:19 ` Nicolas Pitre
2012-02-29 14:52 ` Stefano Stabellini
2012-02-29 14:52 ` Stefano Stabellini
2012-03-01 9:51 ` Dave Martin
2012-03-01 9:51 ` Dave Martin
2012-03-01 9:51 ` Dave Martin
2012-03-01 10:10 ` Russell King - ARM Linux
2012-03-01 10:10 ` Russell King - ARM Linux
2012-03-01 10:27 ` Dave Martin
2012-03-01 10:27 ` Dave Martin
2012-03-01 10:27 ` Dave Martin
2012-03-01 10:35 ` Russell King - ARM Linux
2012-03-01 10:35 ` Russell King - ARM Linux
2012-03-01 12:12 ` Stefano Stabellini
2012-03-01 12:12 ` Stefano Stabellini
2012-03-01 12:12 ` Stefano Stabellini
2012-03-02 21:15 ` Nicolas Pitre
2012-03-02 21:15 ` Nicolas Pitre
2012-03-02 21:15 ` Nicolas Pitre
2012-03-08 9:58 ` Richard Earnshaw
2012-03-08 9:58 ` Richard Earnshaw
2012-03-08 12:17 ` Dave Martin
2012-03-08 12:17 ` Dave Martin
2012-03-08 17:21 ` Nicolas Pitre
2012-03-08 17:21 ` Nicolas Pitre
2012-03-08 18:47 ` Richard Earnshaw
2012-03-08 18:47 ` Richard Earnshaw
2012-03-08 18:47 ` Richard Earnshaw
2012-03-09 15:58 ` Dave Martin
2012-03-09 15:58 ` Dave Martin
2012-03-09 15:58 ` Dave Martin
2012-03-09 16:20 ` Nicolas Pitre
2012-03-09 16:20 ` Nicolas Pitre
2012-03-09 17:38 ` Richard Earnshaw
2012-03-09 17:38 ` Richard Earnshaw
2012-03-09 17:38 ` Richard Earnshaw
2012-02-27 21:05 ` Peter Maydell
2012-02-27 21:05 ` Peter Maydell
2012-02-27 21:05 ` Peter Maydell
2012-02-28 10:12 ` Ian Campbell
2012-02-28 10:12 ` Ian Campbell
2012-02-27 17:53 ` Dave Martin
2012-02-27 17:53 ` Dave Martin
2012-02-27 17:53 ` Dave Martin
2012-02-27 19:48 ` Ian Campbell
2012-02-27 19:48 ` Ian Campbell
2012-02-28 9:46 ` Dave Martin
2012-02-28 9:46 ` Dave Martin
2012-02-28 9:46 ` Dave Martin
2012-02-28 10:07 ` Ian Campbell
2012-02-28 10:07 ` Ian Campbell
2012-02-28 12:21 ` Stefano Stabellini
2012-02-28 12:21 ` Stefano Stabellini
2012-02-28 12:21 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 02/13] xen/arm: introduce privcmp, physdev_op and memory_op hypercalls Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 03/13] xen/arm: mmu.h and page.h related definitions Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 04/13] xen/arm: sync_bitops Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 05/13] xen/arm: empty implementation of grant_table arch specific functions Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 06/13] xen/arm: missing includes Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 07/13] xen/arm: receive xen events on arm Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-24 11:12 ` David Vrabel
2012-02-24 11:12 ` David Vrabel
2012-02-24 12:23 ` Stefano Stabellini
2012-02-24 12:23 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 08/13] xen/arm: fix arm xen guest handle definitions Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 09/13] xen/arm: shared_info and start_info Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 10/13] xen/arm: empty implementation of xen_remap_domain_mfn_range Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 11/13] xen/arm: Introduce xen_pfn_t for pfn and mfn types Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 12/13] xen/arm: compile and run xenbus Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
2012-02-23 17:48 ` [PATCH-WIP 13/13] xen/arm: compile grant-table features events and xenbus, do not compile pci Stefano Stabellini
2012-02-23 17:48 ` Stefano Stabellini
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=20120301101258.GC7363@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=linux-arm-kernel@lists.infradead.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.