def init_mips64
init_mips32r2
@valid_props.update :mi64 => true
addop 'ld', 0b110111 << 26, :rt, :rs_i16, :m64
addop 'lwu', 0b100111 << 26, :rt, :rs_i16
addop 'sd', 0b111111 << 26, :rt, :rs_i16, :m64
addop 'scd', 0b111100 << 26, :rt, :rs_i16, :m64
addop 'ldl', 0b011010 << 26, :rt, :rs_i16
addop 'ldr', 0b011011 << 26, :rt, :rs_i16
addop 'sdl', 0b101100 << 26, :rt, :rs_i16
addop 'sdr', 0b101101 << 26, :rt, :rs_i16
addop 'lld', 0b110100 << 26, :rt, :rs_i16
addop 'daddi', 0b011000 << 26, :rt, :rs, :i16
addop 'daddiu', 0b011001 << 26, :rt, :rs, :i16
addop 'dclo', (0b011100 << 26) | (0b100101), :rd, :rt, :rs
addop 'dclz', (0b011100 << 26) | (0b100100), :rd, :rt, :rs
addop 'dadd', 0b101100, :rd, :rs, :rt
addop 'daddu', 0b101101, :rd, :rs, :rt
addop 'dsub', 0b101110, :rd, :rs, :rt
addop 'dsubu', 0b101111, :rd, :rs, :rt
addop 'dsll', 0b111000, :rd, :rt, :sa
addop 'dsll32', 0b111100, :rd, :rt, :sa
addop 'dsllv', 0b010100, :rd, :rt, :rs
addop 'dsra', 0b111011, :rd, :rt, :sa
addop 'dsra32', 0b111111, :rd, :rt, :sa
addop 'dsrav', 0b010111, :rd, :rt, :rs
addop 'dsrl', 0b111010, :rd, :rt, :sa
addop 'dsrl32', 0b111110, :rd, :rt, :sa
addop 'dsrlv', 0b010110, :rd, :rt, :rs
addop 'ddiv', 0b011110, :rs, :rt
addop 'ddivu', 0b011111, :rs, :rt
addop 'dmult', 0b011100, :rs, :rt
addop 'dmultu', 0b011101, :rs, :rt
addop 'dmfc0', (0b010000<<26) | (0b00001<<21), :rt, :idb
addop 'dmfc0', (0b010000<<26) | (0b00001<<21), :rt, :idb, :sel
addop 'dmtc0', (0b010000<<26) | (0b00101<<21), :rt, :idb
addop 'dmtc0', (0b010000<<26) | (0b00101<<21), :rt, :idb, :sel
end