#BEGIN_LEGAL
#
#Copyright (c) 2016 Intel Corporation
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#  
#END_LEGAL

xed_reg_enum_t XMM_R()::
mode16 | OUTREG=XMM_R_32()
mode32 | OUTREG=XMM_R_32()
mode64 | OUTREG=XMM_R_64()

xed_reg_enum_t XMM_R_32()::
REG=0x0  | OUTREG=XED_REG_XMM0
REG=0x1  | OUTREG=XED_REG_XMM1
REG=0x2  | OUTREG=XED_REG_XMM2
REG=0x3  | OUTREG=XED_REG_XMM3
REG=0x4  | OUTREG=XED_REG_XMM4
REG=0x5  | OUTREG=XED_REG_XMM5
REG=0x6  | OUTREG=XED_REG_XMM6
REG=0x7  | OUTREG=XED_REG_XMM7

xed_reg_enum_t XMM_R_64()::
REXR=0 REG=0x0  | OUTREG=XED_REG_XMM0
REXR=0 REG=0x1  | OUTREG=XED_REG_XMM1
REXR=0 REG=0x2  | OUTREG=XED_REG_XMM2
REXR=0 REG=0x3  | OUTREG=XED_REG_XMM3
REXR=0 REG=0x4  | OUTREG=XED_REG_XMM4
REXR=0 REG=0x5  | OUTREG=XED_REG_XMM5
REXR=0 REG=0x6  | OUTREG=XED_REG_XMM6
REXR=0 REG=0x7  | OUTREG=XED_REG_XMM7
REXR=1 REG=0x0  | OUTREG=XED_REG_XMM8
REXR=1 REG=0x1  | OUTREG=XED_REG_XMM9
REXR=1 REG=0x2  | OUTREG=XED_REG_XMM10
REXR=1 REG=0x3  | OUTREG=XED_REG_XMM11
REXR=1 REG=0x4  | OUTREG=XED_REG_XMM12
REXR=1 REG=0x5  | OUTREG=XED_REG_XMM13
REXR=1 REG=0x6  | OUTREG=XED_REG_XMM14
REXR=1 REG=0x7  | OUTREG=XED_REG_XMM15


xed_reg_enum_t XMM_B()::
mode16 | OUTREG=XMM_B_32()
mode32 | OUTREG=XMM_B_32()
mode64 | OUTREG=XMM_B_64()

xed_reg_enum_t XMM_B_32()::
RM=0x0  | OUTREG=XED_REG_XMM0
RM=0x1  | OUTREG=XED_REG_XMM1
RM=0x2  | OUTREG=XED_REG_XMM2
RM=0x3  | OUTREG=XED_REG_XMM3
RM=0x4  | OUTREG=XED_REG_XMM4
RM=0x5  | OUTREG=XED_REG_XMM5
RM=0x6  | OUTREG=XED_REG_XMM6
RM=0x7  | OUTREG=XED_REG_XMM7

xed_reg_enum_t XMM_B_64()::
REXB=0 RM=0x0  | OUTREG=XED_REG_XMM0
REXB=0 RM=0x1  | OUTREG=XED_REG_XMM1
REXB=0 RM=0x2  | OUTREG=XED_REG_XMM2
REXB=0 RM=0x3  | OUTREG=XED_REG_XMM3
REXB=0 RM=0x4  | OUTREG=XED_REG_XMM4
REXB=0 RM=0x5  | OUTREG=XED_REG_XMM5
REXB=0 RM=0x6  | OUTREG=XED_REG_XMM6
REXB=0 RM=0x7  | OUTREG=XED_REG_XMM7
REXB=1 RM=0x0  | OUTREG=XED_REG_XMM8
REXB=1 RM=0x1  | OUTREG=XED_REG_XMM9
REXB=1 RM=0x2  | OUTREG=XED_REG_XMM10
REXB=1 RM=0x3  | OUTREG=XED_REG_XMM11
REXB=1 RM=0x4  | OUTREG=XED_REG_XMM12
REXB=1 RM=0x5  | OUTREG=XED_REG_XMM13
REXB=1 RM=0x6  | OUTREG=XED_REG_XMM14
REXB=1 RM=0x7  | OUTREG=XED_REG_XMM15

