Mercurial > repos > blastem
comparison runtime.S @ 544:8a26567852b7
Generate native_addr and native_addr_and_sync at runtime so they can use the generated save/load_context functions
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 16 Feb 2014 19:21:39 -0800 |
parents | 915a1cb98bac |
children | 67cf0ce57d8d |
comparison
equal
deleted
inserted
replaced
543:915a1cb98bac | 544:8a26567852b7 |
---|---|
147 shr $1, %cl | 147 shr $1, %cl |
148 and $1, %cl | 148 and $1, %cl |
149 mov %cl, (%rsi) | 149 mov %cl, (%rsi) |
150 ret | 150 ret |
151 | 151 |
152 .global m68k_native_addr_and_sync | |
153 m68k_native_addr_and_sync: | |
154 call m68k_save_context | |
155 push %rcx | |
156 mov %rsi, %rdi | |
157 xor %esi, %esi | |
158 test $8, %rsp | |
159 jnz adjust_rsp_na | |
160 call sync_components | |
161 jmp no_adjust_rsp_na | |
162 adjust_rsp_na: | |
163 sub $8, %rsp | |
164 call sync_components | |
165 add $8, %rsp | |
166 no_adjust_rsp_na: | |
167 pop %rsi | |
168 push %rax | |
169 mov %rax, %rdi | |
170 call get_native_address_trans | |
171 mov %rax, %rcx | |
172 pop %rsi | |
173 call m68k_load_context | |
174 ret | |
175 | |
176 .global m68k_native_addr | |
177 m68k_native_addr: | |
178 call m68k_save_context | |
179 push %rsi | |
180 mov %rsi, %rdi | |
181 mov %ecx, %esi | |
182 call get_native_address_trans | |
183 mov %rax, %rcx | |
184 pop %rsi | |
185 call m68k_load_context | |
186 ret | |
187 | |
188 .global m68k_save_context | 152 .global m68k_save_context |
189 m68k_save_context: | 153 m68k_save_context: |
190 mov %bl, 1(%rsi) /* N Flag */ | 154 mov %bl, 1(%rsi) /* N Flag */ |
191 mov %dl, 2(%rsi) /* Z flag */ | 155 mov %dl, 2(%rsi) /* Z flag */ |
192 mov %bh, 3(%rsi) /* V flag */ | 156 mov %bh, 3(%rsi) /* V flag */ |