c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsyncCopyright (C) 2009-2012 Oracle Corporation
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncThis file is part of VirtualBox Open Source Edition (OSE), as
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncavailable from http://www.virtualbox.org. This file is free software;
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncyou can redistribute it and/or modify it under the terms of the GNU
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncGeneral Public License (GPL) as published by the Free Software
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncFoundation, in version 2 as it comes in the "COPYING" file of the
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsyncVirtualBox OSE distribution. VirtualBox OSE is distributed in the
da6d243a079e5c0db6b0edd2bd6ff1065a2178f3vboxsynchope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync #apiutil.CopyrightC()
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync # Get sorted list of dispatched functions.
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync # The order is very important - it must match cr_opcodes.h
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync # and spu_dispatch_table.h
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print '%include "iprt/asmdefs.mac"'
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%ifdef RT_ARCH_AMD64"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "extern glim"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%else ; X86"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "extern glim"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%endif"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync keys = apiutil.GetDispatchedFunctions(sys.argv[1]+"/APIspec.txt")
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%ifdef RT_ARCH_AMD64"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "\tjmp \t[glim+%d wrt rip wrt ..gotpcrel]" % (8*index)
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%else ; X86"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%endif"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print '; Aliases'
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync # Now loop over all the functions and take care of any aliases
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync allkeys = apiutil.GetAllFunctions(sys.argv[1]+"/APIspec.txt")
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync # we already processed this function earlier
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync # alias is the function we're aliasing
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync # this dict lookup should never fail (raise an exception)!
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%ifdef RT_ARCH_AMD64"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "\tjmp \t[glim+%d wrt rip wrt ..gotpcrel]" % (8*index)
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%else ; X86"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "%endif"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print '; No-op stubs'
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync # Now generate no-op stub functions
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "\tleave"
7eeca0bc9b71feb4baf8935a1ae99bcf328dedecvboxsync print "\tret"