public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Pete Batard <pete@akeo.ie>
To: edk2-devel@lists.01.org
Subject: [PATCH 0/1] MdeModulePkg/EbcDxe: add ARM support
Date: Thu, 22 Sep 2016 10:43:04 +0100	[thread overview]
Message-ID: <88690c52-2185-13cb-2f61-eabedeb59b03@akeo.ie> (raw)

Hi,

The following is an updated/fixed version of the patch(es), put forward 
by Ard Biesheuvel on August 9 ([1], [2]), and re-submitted for formal 
inclusion, so that the EDK2 can provide EBC functionality for all of 
IA32, IA64, X64, AARCH64 and ARM at last.

This updated patch now includes the necessary corollary dsc/fdf updates 
as well as fixes to the assembly's EbcLLCALLEXNative, as I found the 
following issues there:
- At least gcc5 didn't seem to like the manually optimized branching for 
all register args ("sub r1, r1, r3, lsr #1"), and one can never be sure 
of the actual size instructions will be assembled into, in case of 
assembler internal alignment/optimization, so I broke it down into 
actual labelled branches. There are only 4 of those anyway.
- For register + stack calls, while 8 x 64 bit registers on AARCH64 do 
equate to #64 bytes that need to be taken off the stack, on ARM the 4 x 
32 bit registers equate to #16 bytes, not #32
- Even after fixing the above, I found some issues with the manual stack 
duplication assembly code, so I switched to using a call to CopyMem(), 
like IA32 does.

With these changes, I believe that the ARM/EBC feature should be fully 
functional, especially as I have heavily tested multiparameter calls 
from EBC into native, using an fasmg-based EBC assembler [3], to confirm 
that they performed just as well with ARM as with AARCH64, IA32 or X64.

Regards,

/Pete

[1] https://patches.linaro.org/patch/73554/
[2] https://patches.linaro.org/patch/73559/
[3] https://github.com/pbatard/fasmg-ebc


             reply	other threads:[~2016-09-22  9:43 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-22  9:43 Pete Batard [this message]
2016-09-22 10:06 ` [PATCH 0/1] MdeModulePkg/EbcDxe: add ARM support Ard Biesheuvel
2016-09-22 10:13   ` Ard Biesheuvel
2016-09-22 11:05   ` Pete Batard
2016-09-22 11:14     ` Ard Biesheuvel
2016-09-22 11:26       ` Pete Batard
2016-09-22 11:40         ` Ard Biesheuvel
2016-09-22 20:27     ` Andrew Fish
2016-09-22 21:21       ` Ard Biesheuvel
2016-09-22 21:40       ` Pete Batard
2016-09-22 21:24     ` Andrew Fish
2016-09-22 21:29       ` Ard Biesheuvel

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-list 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=88690c52-2185-13cb-2f61-eabedeb59b03@akeo.ie \
    --to=devel@edk2.groups.io \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox