source: rtems/bsps/sparc64/shared/helenos/boot/sparc64/loader/ofwasm.S @ 142175ef

5
Last change on this file since 142175ef was 142175ef, checked in by Sebastian Huber <sebastian.huber@…>, on 04/23/18 at 07:57:54

bsps/sparc64: Move helenos to bsps

This patch is a part of the BSP source reorganization.

Update #3285.

  • Property mode set to 100644
File size: 2.0 KB
Line 
1#
2# Copyright (c) 2006 Martin Decky
3# Copyright (c) 2006 Jakub Jermar
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9#
10# - Redistributions of source code must retain the above copyright
11#   notice, this list of conditions and the following disclaimer.
12# - 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# - The name of the author may not be used to endorse or promote products
16#   derived from this software without specific prior written permission.
17#
18# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28#
29
30/*
31 * This code is originally in asm.S. This is the only function used from that
32 * file, so it has been relocated to this new file ofw.S which is not actually
33 * located in the HelenOS code base.
34 */
35
36#include <arch/stack.h>
37#include <boot/register.h>
38
39.register %g2, #scratch
40.register %g3, #scratch
41
42.text
43
44.global ofw
45ofw:
46        save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
47        set ofw_cif, %l0
48        ldx [%l0], %l0
49       
50        rdpr  %pstate, %l1
51        and  %l1, ~PSTATE_AM_BIT, %l2
52        wrpr  %l2, 0, %pstate
53       
54        jmpl %l0, %o7
55        mov %i0, %o0
56
57  clr %g4     ! correction for gcc's ABI change
58
59        wrpr %l1, 0, %pstate
60       
61        ret
62        restore %o0, 0, %o0
Note: See TracBrowser for help on using the repository browser.