* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: exu_sub_n2.s
* Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
* 4150 Network Circle, Santa Clara, California 95054, U.S.A.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* For the avoidance of doubt, and except that if any non-GPL license
* choice is available it will apply instead, Sun elects to use only
* the General Public License version 2 (GPLv2) at this time for any
* software where a choice of GPL license versions is made
* available with the language indicating that GPLv2 or any later version
* may be used, or where a choice of which version of the GPL is applied is
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* ========== Copyright Header End ============================================
#define NUM_IMMED_CASES 5
#define H_T0_Tag_Overflow
#define My_T0_Tag_Overflow \
/*******************************************************/
th_fork(th_main,%l0) ! start up to four threads.
! All threads do the same thing. No need to run more than one core,
! and no need to differentiate the threads because nobody stores
!**************************
!**************************
add %g0,NUM_REG_CASES,%l3
add %g1,0x10,%g1 ! move operand pointer
!**************************
!**************************
! hit a all cases of tsubcc bits 1:0
add %g1,8,%g1 ! move operand pointer
add %g0,NUM_IMMED_CASES,%l3
! ccr clear, immed = fff (max positive)
! ccr clear, immed = 1fff (-1)
! ccr set, immed = assorted
add %g1,8,%g1 ! move operand pointer
!==========================
.word 0x00000000, 0x00000000 ! xcc.z, icc.z (0-0)
.word 0x00000000, 0x00000000
.word 0x80000000, 0x80000000 ! xcc.n, icc.n (x-0)
.word 0x00000000, 0x00000000
.word 0x00000000, 0x80000000 ! xcc.z, icc.z (x-x)
.word 0x00000000, 0x80000000
.word 0x80000000, 0x00000000 ! xcc.z, icc.z (x-x)
.word 0x80000000, 0x00000000
.word 0xaaaaaaaa, 0x22222222 ! xcc.n (x-0)
.word 0x00000000, 0x00000000
.word 0x00000000, 0x00000000 ! xcc.c, icc.c (0-x)
.word 0xffffffff, 0xffffffbe
.word 0x00000000, 0x7fffffff ! xcc.nc, icc.nvc
.word 0x00000000, 0xffffffff
.word 0xffffffff, 0xffffffff ! xcc.n, icc.z
.word 0x00000000, 0xffffffff
.word 0x00000000, 0x80000000 ! icc.v
.word 0x00000000, 0x00000001
.word 0x00000000, 0x00000000 ! xcc.nc, icc.c
.word 0x00000000, 0xffffffff
.word 0xffffffff, 0xffffffff ! xcc.n, icc.z
.word 0x7fffffff, 0xffffffff
.word 0xffffffff, 0xffffffff ! xcc.z, icc.z
.word 0xffffffff, 0xffffffff
.word 0xffffffff, 0xffffffff ! xcc.n, icc.n
.word 0x00000000, 0x00000001
.word 0x80000000, 0x00000000 ! xcc.v, icc.nvc
.word 0x00000000, 0x00000001
.word 0x00000000, 0x00000000 ! xcc.c, icc.c
.word 0xffffffff, 0xffffffff
.word 0x87654321, 0x56789abd ! 64:-x - -y, xcc.nc, icc.nc
.word 0x96312468, 0x7abcdef1 ! 32:+x - +y
.word 0x56789abc, 0x87654320 ! 64:+x - -y, xcc.nvc, icc.v
.word 0x9abcdef1, 0x4631246a ! 32:-x - +y
.word 0x0, 0xc ! <1:0> = 00
.word 0x0, 0xe ! <1:0> = 01
.word 0x00000000, 0x00000000
.word 0x00000000, 0x7fffffff
.word 0x00000000, 0x00000001
.word 0x7fffffff, 0xffffffff
.word 0xffffffff, 0xffffffff