| /****************************************************************************** |
| * Copyright (c) 2004, 2008 IBM Corporation |
| * All rights reserved. |
| * This program and the accompanying materials |
| * are made available under the terms of the BSD License |
| * which accompanies this distribution, and is available at |
| * http://www.opensource.org/licenses/bsd-license.php |
| * |
| * Contributors: |
| * IBM Corporation - initial implementation |
| *****************************************************************************/ |
| |
| // The Forth code words (primitives) that are specific to PowerPC64. |
| |
| // CPU register accesses. |
| cod(HID0!) |
| cod(HID0@) |
| cod(HID1!) |
| cod(HID1@) |
| cod(HID4!) |
| cod(HID4@) |
| cod(HID5!) |
| cod(HID5@) |
| cod(MSR@) |
| cod(MSR!) |
| cod(SDR1@) |
| cod(SDR1!) |
| cod(PVR@) |
| cod(PIR@) |
| cod(TBL@) |
| cod(TBU@) |
| cod(DABR@) |
| cod(DABR!) |
| cod(HIOR@) |
| cod(HIOR!) |
| cod(SPRG0@) |
| cod(SPRG0!) |
| cod(SPRG1@) |
| cod(SPRG1!) |
| cod(SPRG2@) |
| cod(SPRG2!) |
| cod(SPRG3@) |
| cod(SPRG3!) |
| cod(HSPRG0@) |
| cod(HSPRG0!) |
| cod(HSPRG1@) |
| cod(HSPRG1!) |
| cod(DEC@) |
| cod(DEC!) |
| |
| cod(MMCR0!) |
| cod(PMC1@) |
| |
| cod(ICBI) |
| |
| |
| // The start address of a binary payload. |
| //con(PAYLOAD (type_u)_binary_payload_start) |
| |
| // Calling the client program. |
| con(CLIENT-ENTRY-POINT (type_u)client_entry_point) |
| cod(JUMP-CLIENT) |
| dfr(CLIENTINTERFACE) |
| |
| |
| con(ROMFS-LOOKUP-ENTRY (type_u) c_romfs_lookup) |
| |
| // not very elegant... but the only way it works for me |
| con(.WRITE-LOG-BYTE-ENTRY (type_u) writeLogByte_wrapper) |
| col(WRITE-LOG-BYTE-ENTRY .WRITE-LOG-BYTE-ENTRY @) |
| |
| cod(CALL-C) |
| cod(START-RTAS) |
| |
| |
| cod(FLUSHCACHE) |
| // Bit map allocator |
| cod(BM-ALLOCATOR-INIT) |
| cod(BM-ALLOC) |
| cod(BM-FREE) |
| |
| // Hang. |
| cod(CRASH) |
| |
| var(DAAR 0x00f00000) |
| col(DUMBER DAAR @ C! LIT(1) DAAR +!) |
| |
| dfr(BOOT-EXCEPTION-HANDLER) |
| |
| col(NICEINIT DOTICK DROP DOTO EMIT DOTICK ((FIND)) DOTO (FIND) DOTICK 2DROP DOTO (REVEAL) LIT((type_u)_binary_OF_fsi_start) LIT((type_u)_binary_OF_fsi_end) OVER - DOTICK EVALUATE CATCH BOOT-EXCEPTION-HANDLER) |
| |
| static cell xt_SYSTHROW[] = { _0 RDEPTH_X21 DUP LIT(0x100) _X3d _0BRANCH(5) SWAP DROP NICEINIT BRANCH(7) DUP LIT(0x3800) _X3d _0BRANCH(1) CLIENTINTERFACE PRINT_X2d_STATUS QUIT }; |
| |
| // sentinel, leave it here! |
| col(LASTWORD ) |
| |