diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2005-07-06 12:58:12 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2005-07-06 12:58:12 +0000 |
commit | 3f4df6211e05c0b214edf06218e2c3168d304af6 (patch) | |
tree | e934d24f4772897900f018bb4dd29bc8bcb3072a /libgloss/ms1/trap.S | |
parent | 27eb5dbc70b25610263960b3236bbe553e7b7cc0 (diff) | |
download | cygnal-3f4df6211e05c0b214edf06218e2c3168d304af6.tar.gz cygnal-3f4df6211e05c0b214edf06218e2c3168d304af6.tar.bz2 cygnal-3f4df6211e05c0b214edf06218e2c3168d304af6.zip |
* configure.in: Add ms1 case.
* configure: Regenerate.
* ms1/16-002.ld: New.
* ms1/16-003.ld: New.
* ms1/64-001.ld: New.
* ms1/access.c: New.
* ms1/chmod.c: New.
* ms1/close.c: New.
* ms1/configure: New.
* ms1/configure.in: New.
* ms1/crt0-16-002.S: New.
* ms1/crt0-16-003.S: New.
* ms1/crt0-64-001.S: New.
* ms1/crt0.S: New.
* ms1/exit-16-002.c: New.
* ms1/exit-16-003.c: New.
* ms1/exit-64-001.c: New.
* ms1/exit.c: New.
* ms1/fstat.c: New.
* ms1/getpid.c: New.
* ms1/gettime.c: New.
* ms1/isatty.c: New.
* ms1/kill.c: New.
* ms1/lseek.c: New.
* ms1/Makefile.in: New.
* ms1/open.c: New.
* ms1/read.c: New.
* ms1/sbrk.c: New.
* ms1/startup-16-002.S: New.
* ms1/startup-16-003.S: New.
* ms1/startup-64-001.S: New.
* ms1/stat.c: New.
* ms1/time.c: New.
* ms1/times.c: New.
* ms1/trap.h: New.
* ms1/trap.S: New.
* ms1/unlink.c: New.
* ms1/utime.c: New.
* ms1/write.c: New.
Diffstat (limited to 'libgloss/ms1/trap.S')
-rw-r--r-- | libgloss/ms1/trap.S | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libgloss/ms1/trap.S b/libgloss/ms1/trap.S new file mode 100644 index 000000000..9fca7204e --- /dev/null +++ b/libgloss/ms1/trap.S @@ -0,0 +1,34 @@ +;; +;; The errno will be in r5 if r11 is -1. +;; + .text + .global __trap0 +__trap0: + ;; non-leaf function so need to create stack frame to + ;; store ra and fp + subi sp, sp, #16 + stw ra, sp, #12 + or r0, r0, r0 ;; nop + stw fp, sp, #8 + or fp, sp, sp + stw r5, sp, #4 + or r0, r0, r0 ;; nop + stw r6, sp, #0 + addi r6, r0, #$-1 + si r14 + or r0, r0, r0 ;; nop + brne r11, r6, .L0 + ldui r6, #%hi16(errno) + addui r6, r6, #%lo16(errno) + stw r5, r6, #0 + or r0, r0, r0 ;; nop +.L0: + ldw r6, sp, #0 + or r0, r0, r0 ;; nop + ldw r5, sp, #4 + or r0, r0, r0 ;; nop + ldw ra, sp, #12 + or r0, r0, r0 ;; nop + ldw fp, sp, #8 + jal r0, r14 + addi sp, sp, #16 |