summaryrefslogtreecommitdiff
path: root/console-low.S
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2011-05-05 13:06:24 -0700
committerRichard Henderson <rth@twiddle.net>2011-05-05 13:12:49 -0700
commit369d1d9a68527fe2659f4a21dc4c0aa52533dbc3 (patch)
treee348726a048cecbb036ba7b9a80cd1bf7bfcff21 /console-low.S
parent9e75c89f005e07e059c80317904fefaffe6fde7f (diff)
downloadqemu-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.S126
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