MIPS64 ELF file has a very specific relocation record format. Each record might specify up to three relocation operations. So the r_info field in fact consists of three relocation type sub-fields and optional code of "special" symbols.
http://techpubs.sgi.com/library/manuals/4000/007-4658-001/pdf/007-4658-001.pdf
page 40
The patch implements support of the MIPS64 relocation record format in yaml2obj/obj2yaml tools by introducing new optional Relocation fields: Type2, Type3, and SpecSym. These fields are recognized only if the object/YAML file relates to the MIPS64 target.
Rather than changing the fields of ELFYAML::Relocation dynamically, I would prefer if we just treated this MIPS64 special case as just syntax sugar for filling in the bits of the usual Type field. E.g. make the Type field a union of either a single relocation value, as it "usually" is, or a sub-object with Type, Type2, Type3, SpecSym fields in the MIPS64 case.
So really the only changes to the code would end up being that we would optionally accept a subobject for the Type field with the MIPS64 special fields, and we would dump in that format when applicable.