https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117589

            Bug ID: 117589
           Summary: hppa support for BitInt
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: ABI
          Severity: enhancement
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pinskia at gcc dot gnu.org
                CC: danglin at gcc dot gnu.org, law at gcc dot gnu.org
            Blocks: 117580
  Target Milestone: ---
            Target: hppa

hppa does not define a BitInt ABI nor have an implementation.

Once the psABI change is figured out, little-endian support will be easiest.

The current _BitInt middle-end support likes ABIs similar to what x86-64, ia32
and aarch64 have, can accomodate different limb sizes between what the psABI
says and what libgcc uses (on aarch64 psABI says 128-bit limbs, but libgcc uses
64-bit limbs and that works well as long as the endianity of the limbs matches
ordering of limbs inside of the arrays).  Similarly, more generic work would be
needed if psABI says that the in-memory or passed _BitInt always need to be
sign/zero extended to the limb size (that is what currently blocks arm support
which chose that, x86-64, ia32 and aarch64 have the padding bits undefined).

As for big-endian support, the libgcc side and non-gimple-lower-bitint.cc
middle-end code has theoretical big-endian support of _BitInts, but
gimple-lower-bitint.cc doesn't (as I didn't want to write it without being able
to test somewhere).

If psABI chooses PDP-ish endianity for _BitInt (big endian limbs ordered from
lowest to highest in the array), it might be a nightmare to support it.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117580
[Bug 117580] [meta-bug] Tagets should have a defined _BitInt ABI and implement
that ABI

Reply via email to