ANNOUNCEMENT: Intel386 psABI version 1.0

309 views
Skip to first unread message

H.J. Lu

unread,
Feb 5, 2015, 1:35:01 PM2/5/15
to IA32 System V Application Binary Interface
After almost 18 years, I am very pleased to announce "System V
Application Binary
Interface Intel386 Architecture Processor Supplement Version 1.0",
which is an update
over the previous Intel386 psABI. This document is derived from
x86-64 psABI. The
goals of this update are to support modern x86 architectures and
document the current
toolchain practices. The main changes over the previous Intel386 psABI are:

1. Specify 16-byte stack alignment.
2. New symbol type:
a. STT_GNU_IFUNC, which is used to implement library optimization driven by
CPUID at run-time.
3. New relocations:
a. Support thread local storage (TLS)
b. Support STT_GNU_IFUNC.
4. Stack unwind specification:
a. Support C++ exception.
5. Support 64-bit integer.
6. Support 128-bit floating point type: __float128.
7. Support Decimal floating point types: _Decimal32, _Decimal64 and _Decimal128.
8. Support MMX, SSE and AVX registers.
9. Support Android: Long double is the same as double.

The source of Intel386 psABI version 1.0 is available as tag hjl/x86/1.0 at

https://github.com/hjl-tools/x86-psABI/releases/tag/hjl%2Fx86%2F1.0

The PDF copy is available at

https://01.org/sites/default/files/file_attach/intel386-psabi-1.0.pdf

Thanks for supports and feedbacks from everyone.

--
H.J.

Michael Eager

unread,
Feb 16, 2015, 12:45:43 PM2/16/15
to ia32...@googlegroups.com
Thanks H.J. This is an important update.

Section 2.4 references DWARF Version 3, which is obsolete. The
current version of the DWARF Standard is Version 4 (released in
2010). Version 5 will be released later this year. This create
a potential for confusion, where a reader may incorrectly assume
that conforming to the i386 psABI requires them to use a decade-
old version of DWARF.

My recommendation for ABI documents is to provide a reference to
the DWARF Standard and the website, as you have done, without
referencing a specific version of the standard.
Michael Eager ea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077

H.J. Lu

unread,
Feb 16, 2015, 12:54:24 PM2/16/15
to IA32 System V Application Binary Interface
On Fri, Feb 6, 2015 at 6:50 AM, Michael Eager <ea...@eagercon.com> wrote:
> Thanks H.J. This is an important update.
>
> Section 2.4 references DWARF Version 3, which is obsolete. The
> current version of the DWARF Standard is Version 4 (released in
> 2010). Version 5 will be released later this year. This create
> a potential for confusion, where a reader may incorrectly assume
> that conforming to the i386 psABI requires them to use a decade-
> old version of DWARF.
>
> My recommendation for ABI documents is to provide a reference to
> the DWARF Standard and the website, as you have done, without
> referencing a specific version of the standard.
>
>

Sorry for the delay. Intel386 psABI is derived from x86-64 psABI.
Changes like this should be made to x86-64 psABI first, which
will be cherry-picked into Intel386 psABI. Please start the discussion
in x86-64 psABI group at

https://groups.google.com/forum/#!forum/x86-64-abi

Thanks.

--
H.J.

H.J. Lu

unread,
Feb 19, 2015, 11:49:39 AM2/19/15
to IA32 System V Application Binary Interface
I updated hjl/x86/master branch at

https://github.com/hjl-tools/x86-psABI/tree/hjl/x86/master

Please take a look.

Thanks.

--
H.J.
Reply all
Reply to author
Forward
0 new messages