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 */