diff options
| author | Charles.Forsyth <devnull@localhost> | 2009-03-25 15:55:14 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2009-03-25 15:55:14 +0000 |
| commit | dfd1934d5e1ddbeb326f77fc0e52307c801a1a3e (patch) | |
| tree | f1e8b23278caae95e01d88b00421d6c3642357ef /emu/Plan9/asm-power.s | |
| parent | 78dfdcbd59dc8f36975e7695933e3f753957474c (diff) | |
x20090325-1554
Diffstat (limited to 'emu/Plan9/asm-power.s')
| -rw-r--r-- | emu/Plan9/asm-power.s | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/emu/Plan9/asm-power.s b/emu/Plan9/asm-power.s new file mode 100644 index 00000000..ff1c57f2 --- /dev/null +++ b/emu/Plan9/asm-power.s @@ -0,0 +1,28 @@ + TEXT tramp(SB), 1, $0 + ADD $-8, R3, R4 /* new stack */ + MOVW 4(FP), R5 /* func to exec */ + MOVW R5, LR + MOVW 8(FP), R3 /* arg to reg */ + MOVW R4, R1 /* new stack */ + BL (LR) + MOVW R0, R3 + MOVW $_exits(SB), R4 + MOVW R4, LR + BR (LR) + + TEXT vstack(SB), 1, $0 /* Passes &targ through R3 */ + MOVW ustack(SB), R1 + MOVW $exectramp(SB), R4 + MOVW R4, CTR + BR (CTR) + RETURN + + TEXT FPsave(SB), 1, $0 + MOVFL FPSCR, F0 + FMOVD F0, 0(R3) + RETURN + + TEXT FPrestore(SB), 1, $0 + FMOVD 0(R3), F0 + MOVFL F0, FPSCR + RETURN |
