add_and_subtract.py revision 6086:2ac9ab003d54
111308Santhony.gutierrez@amd.com# Copyright (c) 2007 The Hewlett-Packard Development Company
211308Santhony.gutierrez@amd.com# All rights reserved.
311308Santhony.gutierrez@amd.com#
411308Santhony.gutierrez@amd.com# Redistribution and use of this software in source and binary forms,
511308Santhony.gutierrez@amd.com# with or without modification, are permitted provided that the
611308Santhony.gutierrez@amd.com# following conditions are met:
711308Santhony.gutierrez@amd.com#
811308Santhony.gutierrez@amd.com# The software must be used only for Non-Commercial Use which means any
911308Santhony.gutierrez@amd.com# use which is NOT directed to receiving any direct monetary
1011308Santhony.gutierrez@amd.com# compensation for, or commercial advantage from such use.  Illustrative
1111308Santhony.gutierrez@amd.com# examples of non-commercial use are academic research, personal study,
1211308Santhony.gutierrez@amd.com# teaching, education and corporate research & development.
1311308Santhony.gutierrez@amd.com# Illustrative examples of commercial use are distributing products for
1411308Santhony.gutierrez@amd.com# commercial advantage and providing services using the software for
1511308Santhony.gutierrez@amd.com# commercial advantage.
1611308Santhony.gutierrez@amd.com#
1711308Santhony.gutierrez@amd.com# If you wish to use this software or functionality therein that may be
1811308Santhony.gutierrez@amd.com# covered by patents for commercial use, please contact:
1911308Santhony.gutierrez@amd.com#     Director of Intellectual Property Licensing
2011308Santhony.gutierrez@amd.com#     Office of Strategy and Technology
2111308Santhony.gutierrez@amd.com#     Hewlett-Packard Company
2211308Santhony.gutierrez@amd.com#     1501 Page Mill Road
2311308Santhony.gutierrez@amd.com#     Palo Alto, California  94304
2411308Santhony.gutierrez@amd.com#
2511308Santhony.gutierrez@amd.com# Redistributions of source code must retain the above copyright notice,
2611308Santhony.gutierrez@amd.com# this list of conditions and the following disclaimer.  Redistributions
2711308Santhony.gutierrez@amd.com# in binary form must reproduce the above copyright notice, this list of
2811308Santhony.gutierrez@amd.com# conditions and the following disclaimer in the documentation and/or
2911308Santhony.gutierrez@amd.com# other materials provided with the distribution.  Neither the name of
3011308Santhony.gutierrez@amd.com# the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
3111308Santhony.gutierrez@amd.com# contributors may be used to endorse or promote products derived from
3211308Santhony.gutierrez@amd.com# this software without specific prior written permission.  No right of
3311308Santhony.gutierrez@amd.com# sublicense is granted herewith.  Derivatives of the software and
3411308Santhony.gutierrez@amd.com# output created using the software may be prepared, but only for
3511308Santhony.gutierrez@amd.com# Non-Commercial Uses.  Derivatives of the software may be shared with
3611308Santhony.gutierrez@amd.com# others provided: (i) the others agree to abide by the list of
3711308Santhony.gutierrez@amd.com# conditions herein which includes the Non-Commercial Use restrictions;
3811308Santhony.gutierrez@amd.com# and (ii) such Derivatives of the software include the above copyright
3911308Santhony.gutierrez@amd.com# notice to acknowledge the contribution from this software where
4011308Santhony.gutierrez@amd.com# applicable, this list of conditions and the disclaimer below.
4111308Santhony.gutierrez@amd.com#
4211670Sandreas.hansson@arm.com# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
4311308Santhony.gutierrez@amd.com# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
4411670Sandreas.hansson@arm.com# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
4511682Sandreas.hansson@arm.com# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
4611682Sandreas.hansson@arm.com# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
4711308Santhony.gutierrez@amd.com# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
4811308Santhony.gutierrez@amd.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
4911308Santhony.gutierrez@amd.com# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
5011308Santhony.gutierrez@amd.com# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
5111308Santhony.gutierrez@amd.com# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
5211308Santhony.gutierrez@amd.com# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5311308Santhony.gutierrez@amd.com#
5411308Santhony.gutierrez@amd.com# Authors: Gabe Black
5511308Santhony.gutierrez@amd.com
5611308Santhony.gutierrez@amd.commicrocode = '''
5711308Santhony.gutierrez@amd.comdef macroop ADD_R_R
5811308Santhony.gutierrez@amd.com{
5911308Santhony.gutierrez@amd.com    add reg, reg, regm, flags=(OF,SF,ZF,AF,PF,CF)
6011308Santhony.gutierrez@amd.com};
6111308Santhony.gutierrez@amd.com
6211308Santhony.gutierrez@amd.comdef macroop ADD_R_I
6311308Santhony.gutierrez@amd.com{
6411308Santhony.gutierrez@amd.com    limm t1, imm
6511308Santhony.gutierrez@amd.com    add reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
6611308Santhony.gutierrez@amd.com};
6711308Santhony.gutierrez@amd.com
6811308Santhony.gutierrez@amd.comdef macroop ADD_M_I
6911308Santhony.gutierrez@amd.com{
7011308Santhony.gutierrez@amd.com    limm t2, imm
7111308Santhony.gutierrez@amd.com    ldst t1, seg, sib, disp
7211308Santhony.gutierrez@amd.com    add t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
7311308Santhony.gutierrez@amd.com    st t1, seg, sib, disp
7411308Santhony.gutierrez@amd.com};
7511308Santhony.gutierrez@amd.com
7611308Santhony.gutierrez@amd.comdef macroop ADD_P_I
7711308Santhony.gutierrez@amd.com{
7811308Santhony.gutierrez@amd.com    rdip t7
7911308Santhony.gutierrez@amd.com    limm t2, imm
8011308Santhony.gutierrez@amd.com    ldst t1, seg, riprel, disp
8111308Santhony.gutierrez@amd.com    add t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
8211308Santhony.gutierrez@amd.com    st t1, seg, riprel, disp
8311308Santhony.gutierrez@amd.com};
8411308Santhony.gutierrez@amd.com
8511308Santhony.gutierrez@amd.comdef macroop ADD_LOCKED_M_I
8611308Santhony.gutierrez@amd.com{
8711308Santhony.gutierrez@amd.com    limm t2, imm
8811308Santhony.gutierrez@amd.com    ldstl t1, seg, sib, disp
8911308Santhony.gutierrez@amd.com    add t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
9011310SBrad.Beckmann@amd.com    stul t1, seg, sib, disp
9111308Santhony.gutierrez@amd.com};
9211308Santhony.gutierrez@amd.com
9311308Santhony.gutierrez@amd.comdef macroop ADD_LOCKED_P_I
9411308Santhony.gutierrez@amd.com{
9511308Santhony.gutierrez@amd.com    rdip t7
9611308Santhony.gutierrez@amd.com    limm t2, imm
9711308Santhony.gutierrez@amd.com    ldstl t1, seg, riprel, disp
9811308Santhony.gutierrez@amd.com    add t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
9911308Santhony.gutierrez@amd.com    stul t1, seg, riprel, disp
10011308Santhony.gutierrez@amd.com};
10111308Santhony.gutierrez@amd.com
10211308Santhony.gutierrez@amd.comdef macroop ADD_M_R
10311308Santhony.gutierrez@amd.com{
10411308Santhony.gutierrez@amd.com    ldst t1, seg, sib, disp
10511308Santhony.gutierrez@amd.com    add t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
10611308Santhony.gutierrez@amd.com    st t1, seg, sib, disp
10711308Santhony.gutierrez@amd.com};
10811308Santhony.gutierrez@amd.com
10911308Santhony.gutierrez@amd.comdef macroop ADD_P_R
11011308Santhony.gutierrez@amd.com{
11111308Santhony.gutierrez@amd.com    rdip t7
11211308Santhony.gutierrez@amd.com    ldst t1, seg, riprel, disp
11311308Santhony.gutierrez@amd.com    add t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
11411308Santhony.gutierrez@amd.com    st t1, seg, riprel, disp
11511308Santhony.gutierrez@amd.com};
11611308Santhony.gutierrez@amd.com
11711308Santhony.gutierrez@amd.comdef macroop ADD_LOCKED_M_R
11811308Santhony.gutierrez@amd.com{
11911308Santhony.gutierrez@amd.com    ldstl t1, seg, sib, disp
12011308Santhony.gutierrez@amd.com    add t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
12111308Santhony.gutierrez@amd.com    stul t1, seg, sib, disp
12211308Santhony.gutierrez@amd.com};
12311308Santhony.gutierrez@amd.com
12411308Santhony.gutierrez@amd.comdef macroop ADD_LOCKED_P_R
12511308Santhony.gutierrez@amd.com{
12611308Santhony.gutierrez@amd.com    rdip t7
12711308Santhony.gutierrez@amd.com    ldstl t1, seg, riprel, disp
12811308Santhony.gutierrez@amd.com    add t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
12911308Santhony.gutierrez@amd.com    stul t1, seg, riprel, disp
13011308Santhony.gutierrez@amd.com};
13111308Santhony.gutierrez@amd.com
13211308Santhony.gutierrez@amd.comdef macroop ADD_R_M
13311308Santhony.gutierrez@amd.com{
13411308Santhony.gutierrez@amd.com    ld t1, seg, sib, disp
13511308Santhony.gutierrez@amd.com    add reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
13611308Santhony.gutierrez@amd.com};
13711308Santhony.gutierrez@amd.com
13811308Santhony.gutierrez@amd.comdef macroop ADD_R_P
13911308Santhony.gutierrez@amd.com{
14011308Santhony.gutierrez@amd.com    rdip t7
14111308Santhony.gutierrez@amd.com    ld t1, seg, riprel, disp
14211308Santhony.gutierrez@amd.com    add reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
14311308Santhony.gutierrez@amd.com};
14411308Santhony.gutierrez@amd.com
14511308Santhony.gutierrez@amd.comdef macroop SUB_R_R
14611308Santhony.gutierrez@amd.com{
14711308Santhony.gutierrez@amd.com    sub reg, reg, regm, flags=(OF,SF,ZF,AF,PF,CF)
14811308Santhony.gutierrez@amd.com};
14911308Santhony.gutierrez@amd.com
15011308Santhony.gutierrez@amd.comdef macroop SUB_R_I
15111308Santhony.gutierrez@amd.com{
15211308Santhony.gutierrez@amd.com    limm t1, imm
15311308Santhony.gutierrez@amd.com    sub reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
15411308Santhony.gutierrez@amd.com};
15511308Santhony.gutierrez@amd.com
15611308Santhony.gutierrez@amd.comdef macroop SUB_R_M
15711308Santhony.gutierrez@amd.com{
15811308Santhony.gutierrez@amd.com    ld t1, seg, sib, disp
15911308Santhony.gutierrez@amd.com    sub reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
16011308Santhony.gutierrez@amd.com};
16111308Santhony.gutierrez@amd.com
16211308Santhony.gutierrez@amd.comdef macroop SUB_R_P
16311308Santhony.gutierrez@amd.com{
16411308Santhony.gutierrez@amd.com    rdip t7
16511308Santhony.gutierrez@amd.com    ld t1, seg, riprel, disp
16611308Santhony.gutierrez@amd.com    sub reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
16711308Santhony.gutierrez@amd.com};
16811308Santhony.gutierrez@amd.com
16911308Santhony.gutierrez@amd.comdef macroop SUB_M_I
17011308Santhony.gutierrez@amd.com{
17111308Santhony.gutierrez@amd.com    limm t2, imm
17211308Santhony.gutierrez@amd.com    ldst t1, seg, sib, disp
17311308Santhony.gutierrez@amd.com    sub t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
17411308Santhony.gutierrez@amd.com    st t1, seg, sib, disp
17511308Santhony.gutierrez@amd.com};
17611308Santhony.gutierrez@amd.com
17711308Santhony.gutierrez@amd.comdef macroop SUB_P_I
17811308Santhony.gutierrez@amd.com{
17911308Santhony.gutierrez@amd.com    rdip t7
18011308Santhony.gutierrez@amd.com    limm t2, imm
18111308Santhony.gutierrez@amd.com    ldst t1, seg, riprel, disp
18211308Santhony.gutierrez@amd.com    sub t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
18311308Santhony.gutierrez@amd.com    st t1, seg, riprel, disp
18411308Santhony.gutierrez@amd.com};
18511308Santhony.gutierrez@amd.com
18611308Santhony.gutierrez@amd.comdef macroop SUB_LOCKED_M_I
18711308Santhony.gutierrez@amd.com{
18811308Santhony.gutierrez@amd.com    limm t2, imm
18911308Santhony.gutierrez@amd.com    ldstl t1, seg, sib, disp
19011308Santhony.gutierrez@amd.com    sub t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
19111308Santhony.gutierrez@amd.com    stul t1, seg, sib, disp
19211308Santhony.gutierrez@amd.com};
19311308Santhony.gutierrez@amd.com
19411308Santhony.gutierrez@amd.comdef macroop SUB_LOCKED_P_I
19511308Santhony.gutierrez@amd.com{
19611308Santhony.gutierrez@amd.com    rdip t7
19711308Santhony.gutierrez@amd.com    limm t2, imm
19811308Santhony.gutierrez@amd.com    ldstl t1, seg, riprel, disp
19911308Santhony.gutierrez@amd.com    sub t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
20011308Santhony.gutierrez@amd.com    stul t1, seg, riprel, disp
20111308Santhony.gutierrez@amd.com};
20211308Santhony.gutierrez@amd.com
20311308Santhony.gutierrez@amd.comdef macroop SUB_M_R
20411308Santhony.gutierrez@amd.com{
20511308Santhony.gutierrez@amd.com    ldst t1, seg, sib, disp
20611308Santhony.gutierrez@amd.com    sub t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
20711308Santhony.gutierrez@amd.com    st t1, seg, sib, disp
20811308Santhony.gutierrez@amd.com};
20911308Santhony.gutierrez@amd.com
21011308Santhony.gutierrez@amd.comdef macroop SUB_P_R
21111308Santhony.gutierrez@amd.com{
21211308Santhony.gutierrez@amd.com    rdip t7
21311308Santhony.gutierrez@amd.com    ldst t1, seg, riprel, disp
21411308Santhony.gutierrez@amd.com    sub t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
21511308Santhony.gutierrez@amd.com    st t1, seg, riprel, disp
21611308Santhony.gutierrez@amd.com};
21711308Santhony.gutierrez@amd.com
21811308Santhony.gutierrez@amd.comdef macroop SUB_LOCKED_M_R
21911308Santhony.gutierrez@amd.com{
22011308Santhony.gutierrez@amd.com    ldstl t1, seg, sib, disp
22111308Santhony.gutierrez@amd.com    sub t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
22211308Santhony.gutierrez@amd.com    stul t1, seg, sib, disp
22311308Santhony.gutierrez@amd.com};
22411308Santhony.gutierrez@amd.com
22511308Santhony.gutierrez@amd.comdef macroop SUB_LOCKED_P_R
22611308Santhony.gutierrez@amd.com{
22711308Santhony.gutierrez@amd.com    rdip t7
22811308Santhony.gutierrez@amd.com    ldstl t1, seg, riprel, disp
22911308Santhony.gutierrez@amd.com    sub t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
23011308Santhony.gutierrez@amd.com    stul t1, seg, riprel, disp
23111308Santhony.gutierrez@amd.com};
23211308Santhony.gutierrez@amd.com
23311308Santhony.gutierrez@amd.comdef macroop ADC_R_R
23411308Santhony.gutierrez@amd.com{
23511308Santhony.gutierrez@amd.com    adc reg, reg, regm, flags=(OF,SF,ZF,AF,PF,CF)
23611308Santhony.gutierrez@amd.com};
23711308Santhony.gutierrez@amd.com
23811308Santhony.gutierrez@amd.comdef macroop ADC_R_I
23911308Santhony.gutierrez@amd.com{
24011308Santhony.gutierrez@amd.com    limm t1, imm
24111308Santhony.gutierrez@amd.com    adc reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
24211308Santhony.gutierrez@amd.com};
24311308Santhony.gutierrez@amd.com
24411308Santhony.gutierrez@amd.comdef macroop ADC_M_I
24511308Santhony.gutierrez@amd.com{
24611308Santhony.gutierrez@amd.com    limm t2, imm
24711308Santhony.gutierrez@amd.com    ldst t1, seg, sib, disp
24811308Santhony.gutierrez@amd.com    adc t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
24911308Santhony.gutierrez@amd.com    st t1, seg, sib, disp
25011308Santhony.gutierrez@amd.com};
25111308Santhony.gutierrez@amd.com
25211308Santhony.gutierrez@amd.comdef macroop ADC_P_I
25311308Santhony.gutierrez@amd.com{
25411308Santhony.gutierrez@amd.com    rdip t7
25511308Santhony.gutierrez@amd.com    limm t2, imm
25611308Santhony.gutierrez@amd.com    ldst t1, seg, riprel, disp
25711308Santhony.gutierrez@amd.com    adc t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
25811308Santhony.gutierrez@amd.com    st t1, seg, riprel, disp
25911308Santhony.gutierrez@amd.com};
26011308Santhony.gutierrez@amd.com
26111308Santhony.gutierrez@amd.comdef macroop ADC_LOCKED_M_I
26211308Santhony.gutierrez@amd.com{
26311308Santhony.gutierrez@amd.com    limm t2, imm
26411308Santhony.gutierrez@amd.com    ldstl t1, seg, sib, disp
26511308Santhony.gutierrez@amd.com    adc t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
26611308Santhony.gutierrez@amd.com    stul t1, seg, sib, disp
26711308Santhony.gutierrez@amd.com};
26811308Santhony.gutierrez@amd.com
26911308Santhony.gutierrez@amd.comdef macroop ADC_LOCKED_P_I
27011308Santhony.gutierrez@amd.com{
27111308Santhony.gutierrez@amd.com    rdip t7
27211308Santhony.gutierrez@amd.com    limm t2, imm
27311308Santhony.gutierrez@amd.com    ldstl t1, seg, riprel, disp
27411308Santhony.gutierrez@amd.com    adc t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
27511308Santhony.gutierrez@amd.com    stul t1, seg, riprel, disp
27611308Santhony.gutierrez@amd.com};
27711308Santhony.gutierrez@amd.com
27811308Santhony.gutierrez@amd.comdef macroop ADC_M_R
27911308Santhony.gutierrez@amd.com{
28011308Santhony.gutierrez@amd.com    ldst t1, seg, sib, disp
28111308Santhony.gutierrez@amd.com    adc t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
28211308Santhony.gutierrez@amd.com    st t1, seg, sib, disp
28311308Santhony.gutierrez@amd.com};
28411308Santhony.gutierrez@amd.com
28511308Santhony.gutierrez@amd.comdef macroop ADC_P_R
28611308Santhony.gutierrez@amd.com{
28711308Santhony.gutierrez@amd.com    rdip t7
28811308Santhony.gutierrez@amd.com    ldst t1, seg, riprel, disp
28911308Santhony.gutierrez@amd.com    adc t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
29011308Santhony.gutierrez@amd.com    st t1, seg, riprel, disp
29111308Santhony.gutierrez@amd.com};
29211308Santhony.gutierrez@amd.com
29311308Santhony.gutierrez@amd.comdef macroop ADC_LOCKED_M_R
29411308Santhony.gutierrez@amd.com{
29511308Santhony.gutierrez@amd.com    ldstl t1, seg, sib, disp
29611308Santhony.gutierrez@amd.com    adc t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
29711308Santhony.gutierrez@amd.com    stul t1, seg, sib, disp
29811308Santhony.gutierrez@amd.com};
29911308Santhony.gutierrez@amd.com
30011308Santhony.gutierrez@amd.comdef macroop ADC_LOCKED_P_R
30111308Santhony.gutierrez@amd.com{
30211308Santhony.gutierrez@amd.com    rdip t7
30311308Santhony.gutierrez@amd.com    ldstl t1, seg, riprel, disp
30411308Santhony.gutierrez@amd.com    adc t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
30511308Santhony.gutierrez@amd.com    stul t1, seg, riprel, disp
30611310SBrad.Beckmann@amd.com};
30711308Santhony.gutierrez@amd.com
30811308Santhony.gutierrez@amd.comdef macroop ADC_R_M
30911308Santhony.gutierrez@amd.com{
31011308Santhony.gutierrez@amd.com    ld t1, seg, sib, disp
31111308Santhony.gutierrez@amd.com    adc reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
31211308Santhony.gutierrez@amd.com};
31311308Santhony.gutierrez@amd.com
31411308Santhony.gutierrez@amd.comdef macroop ADC_R_P
31511308Santhony.gutierrez@amd.com{
31611308Santhony.gutierrez@amd.com    rdip t7
31711308Santhony.gutierrez@amd.com    ld t1, seg, riprel, disp
31811308Santhony.gutierrez@amd.com    adc reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
31911308Santhony.gutierrez@amd.com};
32011308Santhony.gutierrez@amd.com
32111308Santhony.gutierrez@amd.comdef macroop SBB_R_R
32211308Santhony.gutierrez@amd.com{
32311308Santhony.gutierrez@amd.com    sbb reg, reg, regm, flags=(OF,SF,ZF,AF,PF,CF)
32411310SBrad.Beckmann@amd.com};
32511310SBrad.Beckmann@amd.com
32611308Santhony.gutierrez@amd.comdef macroop SBB_R_I
32711308Santhony.gutierrez@amd.com{
32811308Santhony.gutierrez@amd.com    limm t1, imm
32911308Santhony.gutierrez@amd.com    sbb reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
33011308Santhony.gutierrez@amd.com};
33111308Santhony.gutierrez@amd.com
33211308Santhony.gutierrez@amd.comdef macroop SBB_R_M
33311308Santhony.gutierrez@amd.com{
33411308Santhony.gutierrez@amd.com    ld t1, seg, sib, disp
33511308Santhony.gutierrez@amd.com    sbb reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
33611308Santhony.gutierrez@amd.com};
33711308Santhony.gutierrez@amd.com
33811308Santhony.gutierrez@amd.comdef macroop SBB_R_P
33911308Santhony.gutierrez@amd.com{
34011308Santhony.gutierrez@amd.com    rdip t7
34111308Santhony.gutierrez@amd.com    ld t1, seg, riprel, disp
34211308Santhony.gutierrez@amd.com    sbb reg, reg, t1, flags=(OF,SF,ZF,AF,PF,CF)
34311308Santhony.gutierrez@amd.com};
34411308Santhony.gutierrez@amd.com
34511308Santhony.gutierrez@amd.comdef macroop SBB_M_I
34611308Santhony.gutierrez@amd.com{
34711308Santhony.gutierrez@amd.com    limm t2, imm
34811308Santhony.gutierrez@amd.com    ldst t1, seg, sib, disp
34911308Santhony.gutierrez@amd.com    sbb t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
350    st t1, seg, sib, disp
351};
352
353def macroop SBB_P_I
354{
355    rdip t7
356    limm t2, imm
357    ldst t1, seg, riprel, disp
358    sbb t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
359    st t1, seg, riprel, disp
360};
361
362def macroop SBB_LOCKED_M_I
363{
364    limm t2, imm
365    ldstl t1, seg, sib, disp
366    sbb t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
367    stul t1, seg, sib, disp
368};
369
370def macroop SBB_LOCKED_P_I
371{
372    rdip t7
373    limm t2, imm
374    ldstl t1, seg, riprel, disp
375    sbb t1, t1, t2, flags=(OF,SF,ZF,AF,PF,CF)
376    stul t1, seg, riprel, disp
377};
378
379def macroop SBB_M_R
380{
381    ldst t1, seg, sib, disp
382    sbb t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
383    st t1, seg, sib, disp
384};
385
386def macroop SBB_P_R
387{
388    rdip t7
389    ldst t1, seg, riprel, disp
390    sbb t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
391    st t1, seg, riprel, disp
392};
393
394def macroop SBB_LOCKED_M_R
395{
396    ldstl t1, seg, sib, disp
397    sbb t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
398    stul t1, seg, sib, disp
399};
400
401def macroop SBB_LOCKED_P_R
402{
403    rdip t7
404    ldstl t1, seg, riprel, disp
405    sbb t1, t1, reg, flags=(OF,SF,ZF,AF,PF,CF)
406    stul t1, seg, riprel, disp
407};
408
409def macroop NEG_R
410{
411    sub reg, t0, reg, flags=(CF,OF,SF,ZF,AF,PF)
412};
413
414def macroop NEG_M
415{
416    ldst t1, seg, sib, disp
417    sub t1, t0, t1, flags=(CF,OF,SF,ZF,AF,PF)
418    st t1, seg, sib, disp
419};
420
421def macroop NEG_P
422{
423    rdip t7
424    ldst t1, seg, riprel, disp
425    sub t1, t0, t1, flags=(CF,OF,SF,ZF,AF,PF)
426    st t1, seg, riprel, disp
427};
428'''
429