[PATCH] D33363: [mips] Support `micromips` attribute

Simon Dardis via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat May 20 14:26:17 PDT 2017


sdardis added inline comments.


================
Comment at: include/clang/Basic/AttrDocs.td:1277-1278
+``__attribute__((nomicromips))`` attributes on MIPS targets. These attributes
+may be attached to a function definition and instructs the backend to locally
+select or turn off microMIPS code generation.
+
----------------
> instructs the backend to locally select or turn off microMIPS code generation.

I think we can improve this to:

"instructs the backend to generate or not to generate microMIPS code for that function."


================
Comment at: lib/Sema/SemaDeclAttr.cpp:5949
+  case AttributeList::AT_MicroMips:
+    handleSimpleAttributeWithExclusions<MicroMipsAttr, Mips16Attr,
+                                        MipsInterruptAttr>(S, D, Attr);
----------------
This is incorrect. microMIPS can be used to support interrupt handlers as the instruction set supports returning from an exception with 'eret'. MIPS16e lacks the 'eret' instruction, so it cannot be used with an interrupt handler function.

Aside: it is implementation dependant which ISAmode is used when an interrupt occurs on a processor supporting microMIPS and MIPS32R3 from my reading of the specification.


Repository:
  rL LLVM

https://reviews.llvm.org/D33363





More information about the cfe-commits mailing list