Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / SLOF / slof / fs / fcode / little-big.fs
1 \ *****************************************************************************
2 \ * Copyright (c) 2004, 2011 IBM Corporation
3 \ * All rights reserved.
4 \ * This program and the accompanying materials
5 \ * are made available under the terms of the BSD License
6 \ * which accompanies this distribution, and is available at
7 \ * http://www.opensource.org/licenses/bsd-license.php
8 \ *
9 \ * Contributors:
10 \ *     IBM Corporation - initial implementation
11 \ ****************************************************************************/
12
13 \ little- and big-endian FCODE IP access functions
14
15
16 ?bigendian [IF]                       \ Big endian access functions first
17
18
19 : read-fcode-num16 ( -- n )
20    0 fcode-num !
21    ?arch64 IF
22       read-byte fcode-num 6 + C!
23       next-ip
24       read-byte fcode-num 7 + C!
25    ELSE
26       read-byte fcode-num 2 + C!
27       next-ip
28       read-byte fcode-num 3 + C!
29    THEN
30    fcode-num @
31 ;
32
33 : read-fcode-num32 ( -- n )
34    0 fcode-num !
35    ?arch64 IF
36       read-byte fcode-num 4 + C!
37       next-ip
38       read-byte fcode-num 5 + C!
39       next-ip
40       read-byte fcode-num 6 + C!
41       next-ip
42       read-byte fcode-num 7 + C!
43    ELSE
44       read-byte fcode-num 0 + C!
45       next-ip
46       read-byte fcode-num 1 + C!
47       next-ip
48       read-byte fcode-num 2 + C!
49       next-ip
50       read-byte fcode-num 3 + C!
51    THEN
52    fcode-num @
53 ;
54
55
56 [ELSE]                                \ Now the little endian access functions
57
58
59 : read-fcode-num16 ( -- n )
60    0 fcode-num !
61    ?arch64 IF
62       read-byte fcode-num 7 + C!
63       next-ip
64       read-byte fcode-num 6 + C!
65    ELSE
66       read-byte fcode-num 1 + C!
67       next-ip
68       read-byte fcode-num 0 + C!
69    THEN
70    fcode-num @
71 ;
72
73 : read-fcode-num32 ( adr -- n )
74    0 fcode-num !
75    ?arch64 IF
76       read-byte fcode-num 7 + C!
77       next-ip
78       read-byte fcode-num 6 + C!
79       next-ip
80       read-byte fcode-num 5 + C!
81       next-ip
82       read-byte fcode-num 4 + C!
83    ELSE
84       read-byte fcode-num 3 + C!
85       next-ip
86       read-byte fcode-num 2 + C!
87       next-ip
88       read-byte fcode-num 1 + C!
89       next-ip
90       read-byte fcode-num 0 + C!
91    THEN
92    fcode-num @
93 ;
94
95
96 [THEN]