summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/framework/rule/prdrExpr.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/diag/prdf/common/framework/rule/prdrExpr.H')
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/rule/prdrExpr.H31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/usr/diag/prdf/common/framework/rule/prdrExpr.H b/src/usr/diag/prdf/common/framework/rule/prdrExpr.H
index b221dda4f..75140d37a 100755
--- a/src/usr/diag/prdf/common/framework/rule/prdrExpr.H
+++ b/src/usr/diag/prdf/common/framework/rule/prdrExpr.H
@@ -356,15 +356,28 @@ class ExprOp2 : public Expr
uint16_t getSignature()
{
- return SignatureOp::combineSig(
- (NULL == cv_arg[0] ?
- SignatureOp::DEFAULT_SIGNATURE
- : cv_arg[0]->getSignature()
- ),
- (NULL == cv_arg[1] ?
- SignatureOp::DEFAULT_SIGNATURE
- : cv_arg[1]->getSignature()
- ));
+ // To match the signature generation during IPL
+ // time in RightShiftRegister/LeftShiftRegister,
+ // We need to skip calling combineSig during
+ // rule compile time.
+ // The casting is needed since these are extend ascii codes
+ if ((char(Prdr::RSHIFT) == cv_op) ||
+ (char(Prdr::LSHIFT) == cv_op))
+ {
+ return cv_arg[0]->getSignature();
+ }
+ else
+ {
+ return SignatureOp::combineSig(
+ (NULL == cv_arg[0] ?
+ SignatureOp::DEFAULT_SIGNATURE
+ : cv_arg[0]->getSignature()
+ ),
+ (NULL == cv_arg[1] ?
+ SignatureOp::DEFAULT_SIGNATURE
+ : cv_arg[1]->getSignature()
+ ));
+ }
};
};
OpenPOWER on IntegriCloud