Hi,
This patch refactors the NaCl/PNaCl support in clang such that the
defines which belong to the NaCl OS (e.g. __native_client__) come from
an OSTargetInfo and only those which are for Portable NaCl ( __pnacl__
and __le32__) come from the PNaClTargetInfo.
It thus allows the compiler to support e.g. x86_64-nacl and arm-nacl
targets (as well as le32-nacl). It would be a very small change except
that the x86_64 nacl ABI is X32-like with 32-bit pointers, and does
not use 80-bit float types. So, some small changes to e.g.
X86_64ABIInfo.

This patch is split into 2 parts. The first is a change to
X86_64ABIInfo to support x86-64 targets with 32 bit pointers. The
approach is similar to the change proposed by the X32 team[1]
(although it is slightly more general in its naming scheme and does
not have X32-specific bits).

The second change actually makes the NaCl specific changes. There is
one small intrusion into X86_64ABIInfo::classify to disable the 80-bit
FP types (suggestions on that are welcome)

Patches are attached or may be viewed at
http://codereview.chromium.org/10982073 and
http://codereview.chromium.org/10986071

Please take a look, thanks.
-Derek

Attachment: 32bit-ptr.diff
Description: Binary data

Attachment: nacl-abi.diff
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to