1#!/usr/bin/perl 2# $OpenBSD: genasm.pl,v 1.2 2003/07/13 06:39:44 jason Exp $ 3# 4# Copyright (c) 2003 Jason L. Wright (jason@thought.net) 5# All rights reserved. 6# 7# Redistribution and use in source and binary forms, with or without 8# modification, are permitted provided that the following conditions 9# are met: 10# 1. Redistributions of source code must retain the above copyright 11# notice, this list of conditions and the following disclaimer. 12# 2. Redistributions in binary form must reproduce the above copyright 13# notice, this list of conditions and the following disclaimer in the 14# documentation and/or other materials provided with the distribution. 15# 16# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 25# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26# POSSIBILITY OF SUCH DAMAGE. 27# 28 29print "#include <machine/asm.h>\n"; 30print "#include <machine/ctlreg.h>\n\n"; 31 32for ($i = -4096; $i <= 4095; $i++) { 33 if ($i < 0) { 34 $name = -$i; 35 $name = "_$name"; 36 } else { 37 $name = $i; 38 } 39 print "ENTRY(simm13_ldq_$name)\n"; 40 print " sub %o0, $i, %o0\n"; 41 print " retl\n"; 42 print " ldq [%o0 + $i], %f0\n\n"; 43 44 print "ENTRY(simm13_stq_$name)\n"; 45 print " sub %o0, $i, %o0\n"; 46 print " retl\n"; 47 print " stq %f0, [%o0 + $i]\n\n"; 48} 49