diff options
author | Richard Henderson <rth@twiddle.net> | 2011-05-05 13:06:24 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2011-05-05 13:12:49 -0700 |
commit | 369d1d9a68527fe2659f4a21dc4c0aa52533dbc3 (patch) | |
tree | e348726a048cecbb036ba7b9a80cd1bf7bfcff21 /console-low.S | |
parent | 9e75c89f005e07e059c80317904fefaffe6fde7f (diff) | |
download | qemu-palcode-369d1d9a68527fe2659f4a21dc4c0aa52533dbc3.zip qemu-palcode-369d1d9a68527fe2659f4a21dc4c0aa52533dbc3.tar.gz qemu-palcode-369d1d9a68527fe2659f4a21dc4c0aa52533dbc3.tar.bz2 |
Beginnings of the SRM console prompt.
Diffstat (limited to 'console-low.S')
-rw-r--r-- | console-low.S | 126 |
1 files changed, 126 insertions, 0 deletions
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 + <http://www.gnu.org/licenses/>. */ + + .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 |