On Thu, 2025-01-16 at 11:41 +0000, Maciej W. Rozycki wrote: > On Thu, 16 Jan 2025, Jie Mei wrote: > > > Make -mmips16e2 imply -mips16 as the ASE requires, so users won't > > be surprised even if they expect it to. Meanwhile, check if > > mips_isa_rev <= 5 when -mips16 is effective and >= 1 when -mmips16e2 > > is effective. > > MIPSr1 is incompatible with MIPS16e2, and the only implementation known > to me is MIPSr3.
The revision check adheres to the ASE manual (MIPS16e2 Application- Specific Extension Technical Reference Manual, MD01172-2B-MIPS16e2-AFP- 01.00): 1.1 Base Architecture Requirements The MIPS16e2 ASE requires the following base architecture support: The MIPS32 or MIPS64 Architecture: The MIPS16e2 ASE requires a compliant implementation of the MIPS32 or MIPS64 Architecture. That being said, after some brief investigation, I believe you're right. Some MIPS16e2 instructions do not have MIPS32/64 equivalent before MIPSr2, so implementing MIPS16e2 upon MIPSr1 is not viable. Thanks for pointing that out. Except for the fact that the first implementation of MIPS16e2 is based on MIPSr3, there seems no blocker for implementing MIPS16e2 upon MIPSr2. We'll seed a v2 patch raising the minimal revision to r2. > Maciej Thanks, Rong