1f5df1827Smickey/* $NetBSD: scanc.S,v 1.1 2001/06/19 00:22:47 fvdl Exp $ */ 2f5df1827Smickey 3f5df1827Smickey/*- 4f5df1827Smickey * Copyright (c) 1998 The NetBSD Foundation, Inc. 5f5df1827Smickey * All rights reserved. 6f5df1827Smickey * 7f5df1827Smickey * This code is derived from software contributed to The NetBSD Foundation 8f5df1827Smickey * by Charles M. Hannum. 9f5df1827Smickey * 10f5df1827Smickey * Redistribution and use in source and binary forms, with or without 11f5df1827Smickey * modification, are permitted provided that the following conditions 12f5df1827Smickey * are met: 13f5df1827Smickey * 1. Redistributions of source code must retain the above copyright 14f5df1827Smickey * notice, this list of conditions and the following disclaimer. 15f5df1827Smickey * 2. Redistributions in binary form must reproduce the above copyright 16f5df1827Smickey * notice, this list of conditions and the following disclaimer in the 17f5df1827Smickey * documentation and/or other materials provided with the distribution. 18f5df1827Smickey * 19f5df1827Smickey * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20f5df1827Smickey * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21f5df1827Smickey * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22f5df1827Smickey * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23f5df1827Smickey * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24f5df1827Smickey * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25f5df1827Smickey * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26f5df1827Smickey * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27f5df1827Smickey * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28f5df1827Smickey * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29f5df1827Smickey * POSSIBILITY OF SUCH DAMAGE. 30f5df1827Smickey */ 31f5df1827Smickey 32f5df1827Smickey/* 33f5df1827Smickey * Adapted for NetBSD/x86_64 by Frank van der Linden <fvdl@wasabisystems.com> 34f5df1827Smickey */ 35f5df1827Smickey 36f5df1827Smickey#include <machine/asm.h> 37f5df1827Smickey 38f5df1827SmickeyENTRY(scanc) 391d66f0a0Smortimer RETGUARD_SETUP(scanc, r10) 40f5df1827Smickey movq %rdx,%r11 41f5df1827Smickey movb %cl,%dl 42f5df1827Smickey movl %edi,%ecx 43f5df1827Smickey testl %ecx,%ecx 44f5df1827Smickey jz 2f 45f5df1827Smickey movq %r11,%rdi 46f5df1827Smickey xorq %rax,%rax 47f5df1827Smickey1: 48f5df1827Smickey lodsb 49f5df1827Smickey testb %dl,(%rax,%rdi) 50f5df1827Smickey jnz 2f 51f5df1827Smickey decl %ecx 52f5df1827Smickey jnz 1b 53f5df1827Smickey2: 54f5df1827Smickey movl %ecx,%eax 551d66f0a0Smortimer RETGUARD_CHECK(scanc, r10) 56f5df1827Smickey ret 57fc541c5dSguenther lfence 58*28c67577SguentherEND(scanc) 59