Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/runtime/compiler/il/Opcodes.enum
6000 views
/*******************************************************************************
 * Copyright (c) 2020, 2021 IBM Corp. and others
 *
 * This program and the accompanying materials are made available under
 * the terms of the Eclipse Public License 2.0 which accompanies this
 * distribution and is available at https://www.eclipse.org/legal/epl-2.0/
 * or the Apache License, Version 2.0 which accompanies this distribution and
 * is available at https://www.apache.org/licenses/LICENSE-2.0.
 *
 * This Source Code may also be made available under the following
 * Secondary Licenses when the conditions for such availability set
 * forth in the Eclipse Public License, v. 2.0 are satisfied: GNU
 * General Public License, version 2 with the GNU Classpath
 * Exception [1] and GNU General Public License, version 2 with the
 * OpenJDK Assembly Exception [2].
 *
 * [1] https://www.gnu.org/software/classpath/license.html
 * [2] http://openjdk.java.net/legal/assembly-exception.html
 *
 * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception
 *******************************************************************************/

#include "il/OMROpcodes.enum"

OPCODE_MACRO(\
   /* .opcode               = */ zdload, \
   /* .name                 = */ "zdload", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::ZonedDecimal, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ILChildProp::NoChildren, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdloadi, \
   /* .name                 = */ "zdloadi", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::ZonedDecimal, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Address), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect zoned decimal load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdstore, \
   /* .name                 = */ "zdstore", \
   /* .properties1          = */ ILProp1::Store | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHavePaddingAddress | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::ZonedDecimal, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdstorei, \
   /* .name                 = */ "zdstorei", \
   /* .properties1          = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHavePaddingAddress | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::ZonedDecimal, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ TWO_CHILD(TR::Address, TR::ZonedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect zoned decimal store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2zd, \
   /* .name                 = */ "pd2zd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint | ILProp4::CanHavePaddingAddress, \
   /* .dataType             = */ TR::ZonedDecimal, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to zoned decimal (UNPK) */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zd2pd, \
   /* .name                 = */ "zd2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal to packed decimal (PACK) */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsleLoad, \
   /* .name                 = */ "zdsleLoad", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingEmbedded, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingEmbedded, \
   /* .childProperties      = */ ILChildProp::NoChildren, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading embedded load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdslsLoad, \
   /* .name                 = */ "zdslsLoad", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingSeparate, \
   /* .childProperties      = */ ILChildProp::NoChildren, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading separate load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdstsLoad, \
   /* .name                 = */ "zdstsLoad", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::ZonedDecimalSignTrailingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignTrailingSeparate, \
   /* .childProperties      = */ ILChildProp::NoChildren, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading separate load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsleLoadi, \
   /* .name                 = */ "zdsleLoadi", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingEmbedded, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingEmbedded, \
   /* .childProperties      = */ ONE_CHILD(TR::Address), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect zoned decimal sign leading embedded load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdslsLoadi, \
   /* .name                 = */ "zdslsLoadi", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingSeparate, \
   /* .childProperties      = */ ONE_CHILD(TR::Address), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect zoned decimal sign leading separate load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdstsLoadi, \
   /* .name                 = */ "zdstsLoadi", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::ZonedDecimalSignTrailingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignTrailingSeparate, \
   /* .childProperties      = */ ONE_CHILD(TR::Address), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect zoned decimal sign trailing separate load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsleStore, \
   /* .name                 = */ "zdsleStore", \
   /* .properties1          = */ ILProp1::Store | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHavePaddingAddress | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingEmbedded, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingEmbedded, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignLeadingEmbedded), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading embedded store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdslsStore, \
   /* .name                 = */ "zdslsStore", \
   /* .properties1          = */ ILProp1::Store | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingSeparate, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignLeadingSeparate), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading separate store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdstsStore, \
   /* .name                 = */ "zdstsStore", \
   /* .properties1          = */ ILProp1::Store | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::ZonedDecimalSignTrailingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignTrailingSeparate, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignTrailingSeparate), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign trailing separate store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsleStorei, \
   /* .name                 = */ "zdsleStorei", \
   /* .properties1          = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHavePaddingAddress | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingEmbedded, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingEmbedded, \
   /* .childProperties      = */ TWO_CHILD(TR::Address, TR::ZonedDecimalSignLeadingEmbedded), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect zoned decimal sign leading embedded store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdslsStorei, \
   /* .name                 = */ "zdslsStorei", \
   /* .properties1          = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingSeparate, \
   /* .childProperties      = */ TWO_CHILD(TR::Address, TR::ZonedDecimalSignLeadingSeparate), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect zoned decimal sign leading separate store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdstsStorei, \
   /* .name                 = */ "zdstsStorei", \
   /* .properties1          = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::ZonedDecimalSignTrailingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignTrailingSeparate, \
   /* .childProperties      = */ TWO_CHILD(TR::Address, TR::ZonedDecimalSignTrailingSeparate), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect zoned decimal sign trailing separate store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zd2zdsle, \
   /* .name                 = */ "zd2zdsle", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingEmbedded, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingEmbedded, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal to zoned decimal sign leading embedded */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zd2zdsls, \
   /* .name                 = */ "zd2zdsls", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingSeparate, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal to zoned decimal sign leading separate */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zd2zdsts, \
   /* .name                 = */ "zd2zdsts", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimalSignTrailingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignTrailingSeparate, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal to zoned decimal sign trailing separate */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsle2pd, \
   /* .name                 = */ "zdsle2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignLeadingEmbedded), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading embedded to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsls2pd, \
   /* .name                 = */ "zdsls2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignLeadingSeparate), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading separate to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsts2pd, \
   /* .name                 = */ "zdsts2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignTrailingSeparate), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign trailing separate to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsle2zd, \
   /* .name                 = */ "zdsle2zd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimal, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignLeadingEmbedded), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading embedded to zoned decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsls2zd, \
   /* .name                 = */ "zdsls2zd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimal, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignLeadingSeparate), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign leading separate to zoned decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ zdsts2zd, \
   /* .name                 = */ "zdsts2zd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimal, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::ZonedDecimalSignTrailingSeparate), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    zoned decimal sign trailing separate to zoned decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2zdsls, \
   /* .name                 = */ "pd2zdsls", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignLeadingSeparate, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to zoned decimal sign leading separate */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2zdslsSetSign, \
   /* .name                 = */ "pd2zdslsSetSign", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::SetSign | ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimalSignLeadingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to zoned decimal sign leading separate with forced sign code setting */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2zdsts, \
   /* .name                 = */ "pd2zdsts", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimalSignTrailingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to zoned decimal sign trailing separate */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2zdstsSetSign, \
   /* .name                 = */ "pd2zdstsSetSign", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::SetSign | ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::ZonedDecimalSignTrailingSeparate, \
   /* .typeProperties       = */ ILTypeProp::ZonedDecimalSignTrailingSeparate, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to zoned decimal sign trailing separate with forced sign code setting */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udLoad, \
   /* .name                 = */ "udLoad", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::UnicodeDecimal, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimal, \
   /* .childProperties      = */ ILChildProp::NoChildren, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udslLoad, \
   /* .name                 = */ "udslLoad", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::UnicodeDecimalSignLeading, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignLeading, \
   /* .childProperties      = */ ILChildProp::NoChildren, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal sign leading load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udstLoad, \
   /* .name                 = */ "udstLoad", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::UnicodeDecimalSignTrailing, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignTrailing, \
   /* .childProperties      = */ ILChildProp::NoChildren, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal sign trailing load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udLoadi, \
   /* .name                 = */ "udLoadi", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::UnicodeDecimal, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Address), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect unicode decimal load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udslLoadi, \
   /* .name                 = */ "udslLoadi", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::UnicodeDecimalSignLeading, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignLeading, \
   /* .childProperties      = */ ONE_CHILD(TR::Address), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect unicode decimal sign leading load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udstLoadi, \
   /* .name                 = */ "udstLoadi", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::UnicodeDecimalSignTrailing, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignTrailing, \
   /* .childProperties      = */ ONE_CHILD(TR::Address), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect unicode decimal sign trailing load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udStore, \
   /* .name                 = */ "udStore", \
   /* .properties1          = */ ILProp1::Store | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHavePaddingAddress | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::UnicodeDecimal, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::UnicodeDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udslStore, \
   /* .name                 = */ "udslStore", \
   /* .properties1          = */ ILProp1::Store | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::UnicodeDecimalSignLeading, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignLeading, \
   /* .childProperties      = */ ONE_CHILD(TR::UnicodeDecimalSignLeading), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal sign leading store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udstStore, \
   /* .name                 = */ "udstStore", \
   /* .properties1          = */ ILProp1::Store | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::UnicodeDecimalSignTrailing, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignTrailing, \
   /* .childProperties      = */ ONE_CHILD(TR::UnicodeDecimalSignTrailing), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal sign trailing store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udStorei, \
   /* .name                 = */ "udStorei", \
   /* .properties1          = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHavePaddingAddress | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::UnicodeDecimal, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimal, \
   /* .childProperties      = */ TWO_CHILD(TR::Address, TR::UnicodeDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect unicode decimal store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udslStorei, \
   /* .name                 = */ "udslStorei", \
   /* .properties1          = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::UnicodeDecimalSignLeading, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignLeading, \
   /* .childProperties      = */ TWO_CHILD(TR::Address, TR::UnicodeDecimalSignLeading), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect unicode decimal sign leading store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udstStorei, \
   /* .name                 = */ "udstStorei", \
   /* .properties1          = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::UnicodeDecimalSignTrailing, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignTrailing, \
   /* .childProperties      = */ TWO_CHILD(TR::Address, TR::UnicodeDecimalSignTrailing), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect unicode decimal sign trailing store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2ud, \
   /* .name                 = */ "pd2ud", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::UnicodeDecimal, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to unicode decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2udsl, \
   /* .name                 = */ "pd2udsl", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::UnicodeDecimalSignLeading, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignLeading, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to unicode decimal sign leading */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2udst, \
   /* .name                 = */ "pd2udst", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::UnicodeDecimalSignTrailing, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimalSignTrailing, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to unicode decimal sign trailing */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udsl2ud, \
   /* .name                 = */ "udsl2ud", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::UnicodeDecimal, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::UnicodeDecimalSignLeading), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal sign leading to unicode decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udst2ud, \
   /* .name                 = */ "udst2ud", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::UnicodeDecimal, \
   /* .typeProperties       = */ ILTypeProp::UnicodeDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::UnicodeDecimalSignTrailing), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal sign trailing to unicode decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ ud2pd, \
   /* .name                 = */ "ud2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::UnicodeDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udsl2pd, \
   /* .name                 = */ "udsl2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::UnicodeDecimalSignLeading), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal sign leading to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ udst2pd, \
   /* .name                 = */ "udst2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::UnicodeDecimalSignTrailing), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unicode decimal sign trailing to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdload, \
   /* .name                 = */ "pdload", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ILChildProp::NoChildren, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdloadi, \
   /* .name                 = */ "pdloadi", \
   /* .properties1          = */ ILProp1::LoadVar | ILProp1::Indirect | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Address), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect packed decimal load */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdstore, \
   /* .name                 = */ "pdstore", \
   /* .properties1          = */ ILProp1::Store | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdstorei, \
   /* .name                 = */ "pdstorei", \
   /* .properties1          = */ ILProp1::Store | ILProp1::Indirect | ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeDef, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanUseStoreAsAnAccumulator, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_CHILD(TR::Address, TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    indirect packed decimal store */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdadd, \
   /* .name                 = */ "pdadd", \
   /* .properties1          = */ ILProp1::Commutative | ILProp1::Associative | ILProp1::Add, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::pdadd, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal add */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdsub, \
   /* .name                 = */ "pdsub", \
   /* .properties1          = */ ILProp1::Sub, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal subtract */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdmul, \
   /* .name                 = */ "pdmul", \
   /* .properties1          = */ ILProp1::Commutative | ILProp1::Associative | ILProp1::Mul, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::pdmul, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal multiply */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pddiv, \
   /* .name                 = */ "pddiv", \
   /* .properties1          = */ ILProp1::Div, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal divide */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdrem, \
   /* .name                 = */ "pdrem", \
   /* .properties1          = */ ILProp1::Rem, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal remainder */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdneg, \
   /* .name                 = */ "pdneg", \
   /* .properties1          = */ ILProp1::Neg, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal negation */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdabs, \
   /* .name                 = */ "pdabs", \
   /* .properties1          = */ 0, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::Abs, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal absolute value */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdshr, \
   /* .name                 = */ "pdshr", \
   /* .properties1          = */ ILProp1::RightShift, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal shift right */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdshl, \
   /* .name                 = */ "pdshl", \
   /* .properties1          = */ ILProp1::LeftShift, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal shift left */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdshrSetSign, \
   /* .name                 = */ "pdshrSetSign", \
   /* .properties1          = */ ILProp1::RightShift, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::SetSign | ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal shift right and set the sign code */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdshlSetSign, \
   /* .name                 = */ "pdshlSetSign", \
   /* .properties1          = */ ILProp1::LeftShift, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::SetSign | ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal shift left and set the sign code */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdshlOverflow, \
   /* .name                 = */ "pdshlOverflow", \
   /* .properties1          = */ ILProp1::LeftShift, \
   /* .properties2          = */ ILProp2::ValueNumberShare, \
   /* .properties3          = */ ILProp3::LikeUse, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal shift left with overflow detection */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdchk, \
   /* .name                 = */ "pdchk", \
   /* .properties1          = */ 0, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal validity checking */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2i, \
   /* .name                 = */ "pd2i", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to signed integer (SINT32) */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2iOverflow, \
   /* .name                 = */ "pd2iOverflow", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to signed integer with overflow on (SINT32) */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2iu, \
   /* .name                 = */ "pd2iu", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Unsigned, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to unsigned integer (UINT32) */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ i2pd, \
   /* .name                 = */ "i2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Int32), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    signed integer (SINT32) to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ iu2pd, \
   /* .name                 = */ "iu2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Int32), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unsigned integer (UINT32) to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2l, \
   /* .name                 = */ "pd2l", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int64, \
   /* .typeProperties       = */ ILTypeProp::Size_8 | ILTypeProp::Integer, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to signed long (SINT64) */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2lOverflow, \
   /* .name                 = */ "pd2lOverflow", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int64, \
   /* .typeProperties       = */ ILTypeProp::Size_8 | ILTypeProp::Integer, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to signed integer with overflow on (SINT64) */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2lu, \
   /* .name                 = */ "pd2lu", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int64, \
   /* .typeProperties       = */ ILTypeProp::Size_8 | ILTypeProp::Unsigned, \
   /* .childProperties      = */ ONE_CHILD(TR::Int64), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to unsigned long (UINT64) */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ l2pd, \
   /* .name                 = */ "l2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Int64), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    signed long (SINT64) to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ lu2pd, \
   /* .name                 = */ "lu2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Int64), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    unsigned long (UINT64) to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2f, \
   /* .name                 = */ "pd2f", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::ConversionHasFraction, \
   /* .dataType             = */ TR::Float, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Floating_Point, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to float */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pd2d, \
   /* .name                 = */ "pd2d", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::ConversionHasFraction, \
   /* .dataType             = */ TR::Double, \
   /* .typeProperties       = */ ILTypeProp::Size_8 | ILTypeProp::Floating_Point, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal to double */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ f2pd, \
   /* .name                 = */ "f2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::ConversionHasFraction | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Float), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    float to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ d2pd, \
   /* .name                 = */ "d2pd", \
   /* .properties1          = */ ILProp1::Conversion, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::ConversionHasFraction | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::Double), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    double to packed decimal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdcmpeq, \
   /* .name                 = */ "pdcmpeq", \
   /* .properties1          = */ ILProp1::BooleanCompare, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::CompareTrueIfEqual, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::pdcmpeq, \
   /* .reverseBranchOpCode  = */ TR::pdcmpne, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal compare if equal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdcmpne, \
   /* .name                 = */ "pdcmpne", \
   /* .properties1          = */ ILProp1::BooleanCompare, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::CompareTrueIfLess | ILProp3::CompareTrueIfGreater, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::pdcmpne, \
   /* .reverseBranchOpCode  = */ TR::pdcmpeq, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal compare if not equal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdcmplt, \
   /* .name                 = */ "pdcmplt", \
   /* .properties1          = */ ILProp1::BooleanCompare, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::CompareTrueIfLess, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::pdcmpgt, \
   /* .reverseBranchOpCode  = */ TR::pdcmpge, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal compare if less than */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdcmpge, \
   /* .name                 = */ "pdcmpge", \
   /* .properties1          = */ ILProp1::BooleanCompare, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::CompareTrueIfGreater | ILProp3::CompareTrueIfEqual, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::pdcmple, \
   /* .reverseBranchOpCode  = */ TR::pdcmplt, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal compare if greater than or equal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdcmpgt, \
   /* .name                 = */ "pdcmpgt", \
   /* .properties1          = */ ILProp1::BooleanCompare, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::CompareTrueIfGreater, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::pdcmplt, \
   /* .reverseBranchOpCode  = */ TR::pdcmple, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal compare if greater than */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdcmple, \
   /* .name                 = */ "pdcmple", \
   /* .properties1          = */ ILProp1::BooleanCompare, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::CompareTrueIfLess | ILProp3::CompareTrueIfEqual, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ TWO_SAME_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::pdcmpge, \
   /* .reverseBranchOpCode  = */ TR::pdcmpgt, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal compare if less than or equal */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdclean, \
   /* .name                 = */ "pdclean", \
   /* .properties1          = */ 0, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    set the sign code to the preferred sign code and force 0 to the positive sign code */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdclear, \
   /* .name                 = */ "pdclear", \
   /* .properties1          = */ 0, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::SkipDynamicLitPoolOnInts, \
   /* .properties4          = */ ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    clear the specified range of packed decimal digits */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdclearSetSign, \
   /* .name                 = */ "pdclearSetSign", \
   /* .properties1          = */ 0, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ ILProp3::SkipDynamicLitPoolOnInts, \
   /* .properties4          = */ ILProp4::SetSignOnNode | ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    clear the specified range of packed decimal digits and set the sign to the specified value */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdSetSign, \
   /* .name                 = */ "pdSetSign", \
   /* .properties1          = */ 0, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::SetSign | ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal forced sign code setting */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ pdModifyPrecision, \
   /* .name                 = */ "pdModifyPrecision", \
   /* .properties1          = */ 0, \
   /* .properties2          = */ ILProp2::ValueNumberShare | ILProp2::SupportedForPRE, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ ILProp4::ModifyPrecision | ILProp4::BinaryCodedDecimalOp | ILProp4::CanHaveStorageReferenceHint, \
   /* .dataType             = */ TR::PackedDecimal, \
   /* .typeProperties       = */ ILTypeProp::PackedDecimal, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    packed decimal modify precision */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ countDigits, \
   /* .name                 = */ "countDigits", \
   /* .properties1          = */ 0, \
   /* .properties2          = */ 0, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ 0, \
   /* .dataType             = */ TR::Int32, \
   /* .typeProperties       = */ ILTypeProp::Size_4 | ILTypeProp::Integer, \
   /* .childProperties      = */ ONE_CHILD(TR::PackedDecimal), \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          =    Inline code for counting digits of an integer/long value */ \
)
OPCODE_MACRO(\
   /* .opcode               = */ BCDCHK, \
   /* .name                 = */ "BCDCHK", \
   /* .properties1          = */ ILProp1::TreeTop | ILProp1::HasSymbolRef, \
   /* .properties2          = */ ILProp2::CanRaiseException | ILProp2::Check | ILProp2::MayUseSystemStack, \
   /* .properties3          = */ 0, \
   /* .properties4          = */ 0, \
   /* .dataType             = */ TR::NoType, \
   /* .typeProperties       = */ 0, \
   /* .childProperties      = */ ILChildProp::Unspecified, \
   /* .swapChildrenOpCode   = */ TR::BadILOp, \
   /* .reverseBranchOpCode  = */ TR::BadILOp, \
   /* .booleanCompareOpCode = */ TR::BadILOp, \
   /* .ifCompareOpCode      = */ TR::BadILOp, \
   /* .description          = */ \
)