Ensure all integral/enumeration types are appropriately annotated with
signext/zeroext. In particular, i32 now has these attributes when using the
N32/N64 ABI. This paves the way for accurately representing the way the
N32/N64 ABI's promotes integer arguments to i64.
Details
Details
- Reviewers
atanasyan - Commits
- rG2a46c56ee9a1: Merged from r220563:
rG5b445b384478: [mips] Promote all integral/enumeration types to the GPR width
rC220563: [mips] Promote all integral/enumeration types to the GPR width
rL223003: Merged from r220563:
rL220563: [mips] Promote all integral/enumeration types to the GPR width
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Just curious, does it have a sense to zero- or sign- extend 32-bit types in case of O32 ABI? For example, PowerPC does the similar things in case of 64-bit ABI only PPC64_SVR4_ABIInfo::isPromotableTypeForABI.
Comment Actions
I couldn't find a functional difference between 'i32' and 'i32 signext' on O32 (and similarly between 'i32' and 'i32 zeroext'). This makes sense because sign-extending i32 to i32 is a noop. I couldn't think of any benefits to using 'i32' for O32 and 'i32 signext' for N32/N64 so I decided to simplify the code.