@@ -3263,16 +3263,18 @@ extern "C"
32633263 {
32643264 InitMipsSettings ();
32653265
3266- Architecture* mipsel = new MipsArchitecture (" mipsel32" , LittleEndian, 32 , MIPS_32);
32673266 Architecture* mipseb = new MipsArchitecture (" mips32" , BigEndian, 32 , MIPS_32);
3267+ Architecture* mipsel = new MipsArchitecture (" mipsel32" , LittleEndian, 32 , MIPS_32);
32683268 Architecture* mips3 = new MipsArchitecture (" mips3" , BigEndian, 32 , MIPS_3);
3269+ Architecture* mips3el = new MipsArchitecture (" mipsel3" , LittleEndian, 32 , MIPS_3);
32693270 Architecture* mips64el = new MipsArchitecture (" mipsel64" , LittleEndian, 64 , MIPS_64);
32703271 Architecture* mips64eb = new MipsArchitecture (" mips64" , BigEndian, 64 , MIPS_64);
32713272 Architecture* cnmips64eb = new MipsArchitecture (" cavium-mips64" , BigEndian, 64 , MIPS_64, DECOMPOSE_FLAGS_CAVIUM);
32723273
3273- Architecture::Register (mipsel);
32743274 Architecture::Register (mipseb);
3275+ Architecture::Register (mipsel);
32753276 Architecture::Register (mips3);
3277+ Architecture::Register (mips3el);
32763278 Architecture::Register (mips64el);
32773279 Architecture::Register (mips64eb);
32783280 Architecture::Register (cnmips64eb);
@@ -3284,12 +3286,14 @@ extern "C"
32843286 MipsN64CallingConvention* n64BE = new MipsN64CallingConvention (mips64eb);
32853287 MipsN64CallingConvention* n64BEc = new MipsN64CallingConvention (cnmips64eb);
32863288
3287- mipsel->RegisterCallingConvention (o32LE);
3288- mipsel->SetDefaultCallingConvention (o32LE);
32893289 mipseb->RegisterCallingConvention (o32BE);
32903290 mipseb->SetDefaultCallingConvention (o32BE);
3291+ mipsel->RegisterCallingConvention (o32LE);
3292+ mipsel->SetDefaultCallingConvention (o32LE);
32913293 mips3->RegisterCallingConvention (o32BE);
32923294 mips3->SetDefaultCallingConvention (o32BE);
3295+ mips3->RegisterCallingConvention (o32LE);
3296+ mips3->SetDefaultCallingConvention (o32LE);
32933297 mips64el->RegisterCallingConvention (n64LE);
32943298 mips64el->SetDefaultCallingConvention (n64LE);
32953299 mips64eb->RegisterCallingConvention (n64BE);
@@ -3299,25 +3303,29 @@ extern "C"
32993303
33003304 MipsLinuxSyscallCallingConvention* linuxSyscallLE = new MipsLinuxSyscallCallingConvention (mipsel);
33013305 MipsLinuxSyscallCallingConvention* linuxSyscallBE = new MipsLinuxSyscallCallingConvention (mipseb);
3302- mipsel->RegisterCallingConvention (linuxSyscallLE);
33033306 mipseb->RegisterCallingConvention (linuxSyscallBE);
3307+ mipsel->RegisterCallingConvention (linuxSyscallLE);
33043308 mips3->RegisterCallingConvention (linuxSyscallBE);
3309+ mips3el->RegisterCallingConvention (linuxSyscallLE);
33053310
3306- mipsel->RegisterCallingConvention (new MipsLinuxRtlResolveCallingConvention (mipsel));
33073311 mipseb->RegisterCallingConvention (new MipsLinuxRtlResolveCallingConvention (mipseb));
3312+ mipsel->RegisterCallingConvention (new MipsLinuxRtlResolveCallingConvention (mipsel));
33083313 mips3->RegisterCallingConvention (new MipsLinuxRtlResolveCallingConvention (mips3));
3314+ mips3el->RegisterCallingConvention (new MipsLinuxRtlResolveCallingConvention (mips3el));
33093315 mips64el->RegisterCallingConvention (new MipsLinuxRtlResolveCallingConvention (mips64el));
33103316 mips64eb->RegisterCallingConvention (new MipsLinuxRtlResolveCallingConvention (mips64eb));
33113317 cnmips64eb->RegisterCallingConvention (new MipsLinuxRtlResolveCallingConvention (cnmips64eb));
33123318
33133319 /* function recognizers */
3314- mipsel->RegisterFunctionRecognizer (new MipsImportedFunctionRecognizer ());
33153320 mipseb->RegisterFunctionRecognizer (new MipsImportedFunctionRecognizer ());
3321+ mipsel->RegisterFunctionRecognizer (new MipsImportedFunctionRecognizer ());
33163322 mips3->RegisterFunctionRecognizer (new MipsImportedFunctionRecognizer ());
3323+ mips3el->RegisterFunctionRecognizer (new MipsImportedFunctionRecognizer ());
33173324
3318- mipsel->RegisterRelocationHandler (" ELF" , new MipsElfRelocationHandler ());
33193325 mipseb->RegisterRelocationHandler (" ELF" , new MipsElfRelocationHandler ());
3326+ mipsel->RegisterRelocationHandler (" ELF" , new MipsElfRelocationHandler ());
33203327 mips3->RegisterRelocationHandler (" ELF" , new MipsElfRelocationHandler ());
3328+ mips3el->RegisterRelocationHandler (" ELF" , new MipsElfRelocationHandler ());
33213329 mips64el->RegisterRelocationHandler (" ELF" , new MipsElfRelocationHandler ());
33223330 mips64eb->RegisterRelocationHandler (" ELF" , new MipsElfRelocationHandler ());
33233331 cnmips64eb->RegisterRelocationHandler (" ELF" , new MipsElfRelocationHandler ());
@@ -3336,7 +3344,6 @@ extern "C"
33363344 BinaryViewType::RegisterArchitecture (" ELF" , ARCH_ID_MIPS64, BigEndian, mips64eb);
33373345 BinaryViewType::RegisterArchitecture (" ELF" , ARCH_ID_MIPS32, LittleEndian, mipsel);
33383346 BinaryViewType::RegisterArchitecture (" ELF" , ARCH_ID_MIPS32, BigEndian, mipseb);
3339- BinaryViewType::RegisterArchitecture (" ELF" , ARCH_ID_MIPS32, BigEndian, mips3);
33403347
33413348 Ref<BinaryViewType> elf = BinaryViewType::GetByName (" ELF" );
33423349 if (elf)
0 commit comments