All of lore.kernel.org
 help / color / mirror / Atom feed
From: dave.martin@linaro.org (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] ARM: opcodes: Opcode definitions for the Virtualization Extensions
Date: Fri, 16 Mar 2012 11:04:23 +0000	[thread overview]
Message-ID: <20120316110423.GB2017@linaro.org> (raw)
In-Reply-To: <alpine.LFD.2.02.1203151355570.24151@xanadu.home>

On Thu, Mar 15, 2012 at 01:58:28PM -0400, Nicolas Pitre wrote:
> On Thu, 15 Mar 2012, Dave Martin wrote:
> 
> > For now, this patch just adds a definition for the HVC instruction.
> > More can be added here later, as needed.
> > 
> > Now that we have a real example of how to use the opcode injection
> > macros properly, this patch also adds a cross-reference from the
> > explanation in opcodes.h (since without an example, figuring out
> > how to use the macros is not that easy).
> > 
> > Signed-off-by: Dave Martin <dave.martin@linaro.org>
> 
> Acked-by: Nicolas Pitre <nico@linaro.org>
> 
> Maybe this would be a good idea to document in one of the patch logs why 
> you didn't go with the assembler macro route like it is done in 
> unified.h for the various it instructions.

Yes, that's a good idea.  I'll add a brief note somewhere -- probably on
the previous patch.

Cheers
---Dave

> 
> > ---
> >  arch/arm/include/asm/opcodes-virt.h |   29 +++++++++++++++++++++++++++++
> >  arch/arm/include/asm/opcodes.h      |    2 ++
> >  2 files changed, 31 insertions(+), 0 deletions(-)
> >  create mode 100644 arch/arm/include/asm/opcodes-virt.h
> > 
> > diff --git a/arch/arm/include/asm/opcodes-virt.h b/arch/arm/include/asm/opcodes-virt.h
> > new file mode 100644
> > index 0000000..b85665a
> > --- /dev/null
> > +++ b/arch/arm/include/asm/opcodes-virt.h
> > @@ -0,0 +1,29 @@
> > +/*
> > + * opcodes-virt.h: Opcode definitions for the ARM virtualization extensions
> > + * Copyright (C) 2012  Linaro Limited
> > + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + *
> > + * You should have received a copy of the GNU General Public License along
> > + * with this program; if not, write to the Free Software Foundation, Inc.,
> > + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> > + */
> > +#ifndef __ASM_ARM_OPCODES_VIRT_H
> > +#define __ASM_ARM_OPCODES_VIRT_H
> > +
> > +#include <asm/opcodes.h>
> > +
> > +#define __HVC(imm16) __inst_arm_thumb32(				\
> > +	0xE1400070 | (((imm16) & 0xFFF0) << 4) | ((imm16) & 0x000F),	\
> > +	0xF7E08000 | (((imm16) & 0xF000) << 4) | ((imm16) & 0x0FFF)	\
> > +)
> > +
> > +#endif /* ! __ASM_ARM_OPCODES_VIRT_H */
> > diff --git a/arch/arm/include/asm/opcodes.h b/arch/arm/include/asm/opcodes.h
> > index 50ef0be..89ff5b9 100644
> > --- a/arch/arm/include/asm/opcodes.h
> > +++ b/arch/arm/include/asm/opcodes.h
> > @@ -193,6 +193,8 @@ extern asmlinkage unsigned int arm_check_condition(u32 opcode, u32 psr);
> >   * specify the ARM and Thumb alternatives at the same time.  This ensures
> >   * that the correct opcode gets emitted depending on the instruction set
> >   * used for the kernel build.
> > + *
> > + * Look at opcodes-virt.h for an example of how to use these macros.
> >   */
> >  #include <linux/stringify.h>
> >  
> > -- 
> > 1.7.4.1
> > 
> > 
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> > 

      reply	other threads:[~2012-03-16 11:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-15 16:32 [PATCH 0/4] ARM: opcodes: Facilitate custom opcode injection Dave Martin
2012-03-15 16:32 ` [PATCH 1/4] ARM: opcodes: Don't define the thumb32 byteswapping macros for BE32 Dave Martin
2012-03-15 17:40   ` Nicolas Pitre
2012-03-15 16:32 ` [PATCH 2/4] ARM: opcodes: Make opcode byteswapping macros assembly-compatible Dave Martin
2012-03-15 17:53   ` Nicolas Pitre
2012-03-16 10:59     ` Dave Martin
2012-03-15 16:32 ` [PATCH 3/4] ARM: opcodes: Add helpers for emitting custom opcodes Dave Martin
2012-03-15 17:54   ` Nicolas Pitre
2012-03-15 16:32 ` [PATCH 4/4] ARM: opcodes: Opcode definitions for the Virtualization Extensions Dave Martin
2012-03-15 17:58   ` Nicolas Pitre
2012-03-16 11:04     ` Dave Martin [this message]

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=20120316110423.GB2017@linaro.org \
    --to=dave.martin@linaro.org \
    --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.