All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] tareget-arm: Handle tagged addresses when loading PC
@ 2016-09-16 17:34 Thomas Hanson
  2016-09-16 17:34 ` [Qemu-devel] [PATCH 1/3] target-arm: Infrastucture changes to enable handling of tagged address loading into PC Thomas Hanson
                   ` (3 more replies)
  0 siblings, 4 replies; 20+ messages in thread
From: Thomas Hanson @ 2016-09-16 17:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, grant.likely, thomas.hanson

    If tagged addresses are enabled, then addresses being loaded into the 
    PC must be cleaned up by overwriting the tag bits with either all 0's 
    or all 1's as specified in the ARM ARM spec.  The decision process is 
    dependent on whether the code will be running in EL0/1 or in EL2/3 and 
    is controlled by a combination of Top Byte Ignored (TBI) bits in the 
    TCR and the value of bit 55 in the address being loaded. 
    
    TBI values are extracted from the appropriate TCR and made available 
    to TCG code generation routines by inserting them into the TB flags 
    field and then transferring them to DisasContext structure in 
    gen_intermediate_code_a64().

    New function gen_a64_set_pc_reg() encapsulates the logic required to 
    determine whether clean up of the tag byte is required and then 
    generating the code to correctly load the PC.
  
    In addition to those instruction which can directly load a tagged 
    address into the PC, there are others which increment or add a value to
    the PC.  If 56 bit addressing is used, these instructions can cause an 
    arithmetic roll-over into the tag bits.  The ARM ARM specification for 
    handling tagged addresses requires that these cases also be addressed
    by cleaning up the tag field.  This work has been deferred because 
    there is currently no CPU model available for testing with 56 bit 
    addresses.


Thomas Hanson (3):
  target-arm: Infrastucture changes to enable handling of tagged address
    loading into PC
  target-arm: Code changes to implement overwrite of tag field on PC
    load
  target-arm: Comments to mark location of pending work for 56 bit
    addresses

 target-arm/cpu.h           | 20 +++++++++--
 target-arm/helper.c        | 42 +++++++++++++++++++++++
 target-arm/translate-a64.c | 85 +++++++++++++++++++++++++++++++++++++++++-----
 target-arm/translate.h     |  3 ++
 4 files changed, 140 insertions(+), 10 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2016-10-12 19:54 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-16 17:34 [Qemu-devel] [PATCH 0/3] tareget-arm: Handle tagged addresses when loading PC Thomas Hanson
2016-09-16 17:34 ` [Qemu-devel] [PATCH 1/3] target-arm: Infrastucture changes to enable handling of tagged address loading into PC Thomas Hanson
2016-09-30  0:58   ` Peter Maydell
2016-09-16 17:34 ` [Qemu-devel] [PATCH 2/3] target-arm: Code changes to implement overwrite of tag field on PC load Thomas Hanson
2016-09-30  1:24   ` Peter Maydell
2016-10-05 21:53     ` Tom Hanson
2016-10-05 22:01       ` Peter Maydell
2016-10-11 15:51         ` Thomas Hanson
2016-10-11 16:02           ` Richard Henderson
2016-10-11 16:12           ` Peter Maydell
2016-10-12 19:52             ` Tom Hanson
2016-09-16 17:34 ` [Qemu-devel] [PATCH 3/3] target-arm: Comments to mark location of pending work for 56 bit addresses Thomas Hanson
2016-09-30  1:27   ` Peter Maydell
2016-09-30 22:46     ` Tom Hanson
2016-09-30 23:24       ` Peter Maydell
2016-10-03 17:01         ` Tom Hanson
2016-10-03 18:26         ` Tom Hanson
2016-09-30  1:37 ` [Qemu-devel] [PATCH 0/3] tareget-arm: Handle tagged addresses when loading PC Peter Maydell
2016-09-30 21:48   ` Tom Hanson
2016-09-30 22:06     ` Peter Maydell

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.