 			}
 			// This must be decomposed into two instructions, since addresses are always 32 bits
 			// lui	dest, src.upper
-			let lui = Instruction.parseString("lui " + args[1] + ", \(aaaa.value)", location: location, verbose: false)![0]
+			let lui = Instruction.parseString("lui \(args[1]), \(aaaa.value)", location: location, verbose: false)![0]
 			lui.unresolvedDependencies.append(args[2])
 			lui.labels = labels
 			lui.comment = comment
 			// ori	dest, dest, src.lower
-			let ori = Instruction.parseString("ori " + args[1] + ", " + args[1] + ", \(aaaa.value)", location: location + lui.pcIncrement, verbose: false)![0]
+			let ori = Instruction.parseString("ori \(args[1]), \(args[1]), \(aaaa.value)", location: location + lui.pcIncrement, verbose: false)![0]
 			ori.unresolvedDependencies.append(args[2])
 			switch(ori.type) {
 			case let .ALUI(_, dest, src1, src2):

			guard let _ = Register(args[1], writing: true) else {
				return nil
			}
			let add = Instruction.parseString("add " + args[1] + ", $zero, $zero", location: location, verbose: false)![0]
			add.labels = labels
			add.comment = comment
			return [add]

			guard let _ = Register(args[1], writing: true), _ = Register(args[2], writing: false) else {
				return nil
			}
			let nor = Instruction.parseString("nor \(args[1]), \(args[2]), \(zero.name)", location: location, verbose: false)![0]
			nor.labels = labels
			nor.comment = comment
			return [nor]
