0.8.2.8:
[sbcl.git] / src / runtime / ppc-darwin-os.c
1 #include "globals.h"
2 #include <signal.h>
3 #include <ucontext.h>
4 #include "bsd-os.h"
5
6 os_context_register_t   *
7 os_context_register_addr(os_context_t *context, int offset)
8 {
9     ppc_saved_state_t *state = &context->uc_mcontext->ss;
10     switch(offset) {
11     case 0:
12         return &state->r0;
13     case 1:
14         return &state->r1;
15     case 2:
16         return &state->r2;
17     case 3:
18         return &state->r3;
19     case 4:
20         return &state->r4;
21     case 5:
22         return &state->r5;
23     case 6:
24         return &state->r6;
25     case 7:
26         return &state->r7;
27     case 8:
28         return &state->r8;
29     case 9:
30         return &state->r9;
31     case 10:
32         return &state->r10;
33     case 11:
34         return &state->r11;
35     case 12:
36         return &state->r12;
37     case 13:
38         return &state->r13;
39     case 14:
40         return &state->r14;
41     case 15:
42         return &state->r15;
43     case 16:
44         return &state->r16;
45     case 17:
46         return &state->r17;
47     case 18:
48         return &state->r18;
49     case 19:
50         return &state->r19;
51     case 20:
52         return &state->r20;
53     case 21:
54         return &state->r21;
55     case 22:
56         return &state->r22;
57     case 23:
58         return &state->r23;
59     case 24:
60         return &state->r24;
61     case 25:
62         return &state->r25;
63     case 26:
64         return &state->r26;
65     case 27:
66         return &state->r27;
67     case 28:
68         return &state->r28;
69     case 29:
70         return &state->r29;
71     case 30:
72         return &state->r30;
73     case 31:
74         return &state->r31;
75     case 41:
76         /* PT_DAR */
77         return &context->uc_mcontext->es.dar;
78     case 42:
79         /* PT_DSISR */
80         return &context->uc_mcontext->es.dsisr;
81     }
82 }
83
84 os_context_register_t *
85 os_context_lr_addr(os_context_t *context)
86 {
87     return &context->uc_mcontext->ss.lr;
88 }
89
90 void 
91 os_flush_icache(os_vm_address_t address, os_vm_size_t length)
92 {
93     /* see ppc-arch.c */
94     ppc_flush_icache(address,length);
95 }