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] 97