From 369d1d9a68527fe2659f4a21dc4c0aa52533dbc3 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 5 May 2011 13:06:24 -0700 Subject: Beginnings of the SRM console prompt. --- console-low.S | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 console-low.S (limited to 'console-low.S') diff --git a/console-low.S b/console-low.S new file mode 100644 index 0000000..a03f4ed --- /dev/null +++ b/console-low.S @@ -0,0 +1,126 @@ +/* Assembly helper routines for the emulation SRM console. + + Copyright (C) 2011 Richard Henderson + + This file is part of QEMU PALcode. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the text + of the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. If not see + . */ + + .set nomacro + .set noat + .text + .cfi_sections .debug_frame + +#define SAVE_ALL_SIZE (18*8) + + .globl entInt + .type entInt, @function + .cfi_startproc simple +entInt: + .cfi_return_column 64 + .cfi_def_cfa $sp, 48 + .cfi_rel_offset 64, 8 + .cfi_rel_offset $gp, 16 + .cfi_rel_offset $16, 24 + .cfi_rel_offset $17, 32 + .cfi_rel_offset $18, 40 + lda $sp, -SAVE_ALL_SIZE($sp) + .cfi_adjust_cfa_offset SAVE_ALL_SIZE + stq $0, 0*8($sp) + stq $1, 1*8($sp) + stq $2, 2*8($sp) + stq $3, 3*8($sp) + stq $4, 4*8($sp) + stq $5, 5*8($sp) + stq $6, 6*8($sp) + stq $7, 7*8($sp) + stq $8, 9*8($sp) + stq $19, 9*8($sp) + stq $20, 10*8($sp) + stq $21, 11*8($sp) + stq $22, 12*8($sp) + stq $23, 13*8($sp) + stq $24, 14*8($sp) + stq $25, 15*8($sp) + stq $26, 16*8($sp) + stq $27, 17*8($sp) + stq $28, 18*8($sp) + .cfi_rel_offset $0, 0*8 + .cfi_rel_offset $1, 1*8 + .cfi_rel_offset $2, 2*8 + .cfi_rel_offset $3, 3*8 + .cfi_rel_offset $4, 4*8 + .cfi_rel_offset $5, 5*8 + .cfi_rel_offset $6, 6*8 + .cfi_rel_offset $7, 7*8 + .cfi_rel_offset $8, 8*8 + .cfi_rel_offset $19, 9*8 + .cfi_rel_offset $20, 10*8 + .cfi_rel_offset $21, 11*8 + .cfi_rel_offset $22, 12*8 + .cfi_rel_offset $23, 13*8 + .cfi_rel_offset $24, 14*8 + .cfi_rel_offset $25, 15*8 + .cfi_rel_offset $26, 16*8 + .cfi_rel_offset $27, 17*8 + .cfi_rel_offset $28, 18*8 + + bsr $26, do_entInt !samegp + + ldq $0, 0*8($sp) + ldq $1, 1*8($sp) + ldq $2, 2*8($sp) + ldq $3, 3*8($sp) + ldq $4, 4*8($sp) + ldq $5, 5*8($sp) + ldq $6, 6*8($sp) + ldq $7, 7*8($sp) + ldq $8, 9*8($sp) + ldq $19, 9*8($sp) + ldq $20, 10*8($sp) + ldq $21, 11*8($sp) + ldq $22, 12*8($sp) + ldq $23, 13*8($sp) + ldq $24, 14*8($sp) + ldq $25, 15*8($sp) + ldq $26, 16*8($sp) + ldq $27, 17*8($sp) + ldq $28, 18*8($sp) + lda $sp, SAVE_ALL_SIZE($sp) + .cfi_adjust_cfa_offset -SAVE_ALL_SIZE + .cfi_restore $0 + .cfi_restore $1 + .cfi_restore $2 + .cfi_restore $3 + .cfi_restore $4 + .cfi_restore $5 + .cfi_restore $6 + .cfi_restore $7 + .cfi_restore $8 + .cfi_restore $19 + .cfi_restore $20 + .cfi_restore $21 + .cfi_restore $22 + .cfi_restore $23 + .cfi_restore $24 + .cfi_restore $25 + .cfi_restore $26 + .cfi_restore $27 + .cfi_restore $28 + + call_pal 0x3f // rti + + .cfi_endproc + .size entInt, . - entInt -- cgit v1.1