Index: lib/Target/Mips/AsmParser/MipsAsmParser.cpp =================================================================== --- lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -3442,6 +3442,7 @@ return false; } AssemblerOptions.back()->setMacro(); + getTargetStreamer().emitDirectiveSetMacro(); Parser.Lex(); // Consume the EndOfStatement. return false; } @@ -3459,6 +3460,7 @@ return false; } AssemblerOptions.back()->setNoMacro(); + getTargetStreamer().emitDirectiveSetNoMacro(); Parser.Lex(); // Consume the EndOfStatement. return false; } Index: test/MC/Mips/mips_directives.s =================================================================== --- test/MC/Mips/mips_directives.s +++ test/MC/Mips/mips_directives.s @@ -17,6 +17,7 @@ # CHECK-NOT: nop # CHECK: jal 1328 # encoding: [0x0c,0x00,0x01,0x4c] # CHECK-NOT: nop +# CHECK: .set nomacro .set noreorder b 1332 @@ -33,6 +34,7 @@ # CHECK: .4byte 2013265916 .set at=$12 .set macro +# CHECK: .set macro # CHECK: .set reorder # CHECK: b 1332 # encoding: [0x10,0x00,0x01,0x4d] # CHECK: nop # encoding: [0x00,0x00,0x00,0x00] Index: test/MC/Mips/module-directive-bad.s =================================================================== --- test/MC/Mips/module-directive-bad.s +++ test/MC/Mips/module-directive-bad.s @@ -203,7 +203,7 @@ .set macro .module fp=64 -# FIXME: emitDirectiveSetMacro should call forbidModuleDirective(). +# CHECK: :[[@LINE-1]]:13: error: .module directive must appear before any code .llvm_internal_mips_reallow_module_directive .module fp=32 @@ -211,7 +211,7 @@ .set nomacro .module fp=64 -# FIXME: emitDirectiveSetNoMacro should call forbidModuleDirective(). +# CHECK: :[[@LINE-1]]:13: error: .module directive must appear before any code .llvm_internal_mips_reallow_module_directive .module fp=32