@@ -1582,15 +1582,28 @@ def RWProbeOp : FIRRTLOp<"ref.rwprobe",
1582
1582
let assemblyFormat = "$target attr-dict `:` type($result)";
1583
1583
}
1584
1584
1585
- def XMRRefOp : FIRRTLOp<"xmr.ref"> {
1585
+ def XMRRefOp : FIRRTLOp<"xmr.ref", [
1586
+ Pure,
1587
+ DeclareOpInterfaceMethods<SymbolUserOpInterface>]> {
1586
1588
let summary = "FIRRTL XMR operation, targetable by ref ops.";
1589
+ let description = [{
1590
+ Takes a (symbol-ref to a) hierarchical path and returns a reference to
1591
+ the target. Through this reference, the target can be read or written
1592
+ "at a distance".
1593
+ }];
1587
1594
let arguments = (ins FlatSymbolRefAttr:$ref, DefaultValuedAttr<StrAttr, "{}">:$verbatimSuffix);
1588
1595
let results = (outs RefType:$dest);
1589
1596
let assemblyFormat = "$ref (`,` $verbatimSuffix^)? attr-dict `:` qualified(type($dest))";
1590
1597
}
1591
1598
1592
- def XMRDerefOp : FIRRTLOp<"xmr.deref"> {
1599
+ def XMRDerefOp : FIRRTLOp<"xmr.deref", [
1600
+ Pure,
1601
+ DeclareOpInterfaceMethods<SymbolUserOpInterface>]> {
1593
1602
let summary = "FIRRTL XMR operation, reading an XMR target.";
1603
+ let description = [{
1604
+ A "read at a distance", taking a (symbol-ref to a) hierarchical path,
1605
+ returning the value of the target.
1606
+ }];
1594
1607
let arguments = (ins FlatSymbolRefAttr:$ref, DefaultValuedAttr<StrAttr, "{}">:$verbatimSuffix);
1595
1608
let results = (outs PassiveType:$dest);
1596
1609
let assemblyFormat = "$ref (`,` $verbatimSuffix^)? attr-dict `:` qualified(type($dest))";
0 commit comments