ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni/*
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * CDDL HEADER START
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni *
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * The contents of this file are subject to the terms of the
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * Common Development and Distribution License (the "License").
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * You may not use this file except in compliance with the License.
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni *
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * or http://www.opensolaris.org/os/licensing.
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * See the License for the specific language governing permissions
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * and limitations under the License.
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni *
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * When distributing Covered Code, include this CDDL HEADER in each
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * If applicable, add the following below this CDDL HEADER, with the
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * fields enclosed by brackets "[]" replaced with your own identifying
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * information: Portions Copyright [yyyy] [name of copyright owner]
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni *
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * CDDL HEADER END
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni */
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni/*
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * Use is subject to license terms.
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni */
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni/*
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * ASSERTION:
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * Aggregating actions may never be speculative.
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni *
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni * SECTION: Speculative Tracing/Using a Speculation
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni *
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni */
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni#pragma D option quiet
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael VanoniBEGIN
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni{
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni i = 0;
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni}
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoniprofile:::tick-1sec
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni/i < 1/
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni{
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni var = speculation();
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni speculate(var);
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni printf("Speculation ID: %d", var);
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni @sdev["speculate"] = stddev(i);
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni i++;
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni}
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoniprofile:::tick-1sec
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni/1 == i/
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni{
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni exit(0);
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni}
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael VanoniERROR
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni{
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni exit(0);
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni}
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael VanoniEND
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni{
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni exit(0);
ccf8180ea3a3378aeb6f06a09d4e090b54c01cc9Rafael Vanoni}