From a39a82cc9773c8336eaa48379f2d2fe3615f178c Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Tue, 17 Jun 2014 01:50:29 -0400 Subject: blastem builds and almost works on OS X now --- zruntime.S | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'zruntime.S') diff --git a/zruntime.S b/zruntime.S index 4445842..1883239 100644 --- a/zruntime.S +++ b/zruntime.S @@ -125,7 +125,7 @@ z80_read_bank: add $3, %ebp push %rsi mov 144(%rsi), %rsi /* get system context pointer */ - cmp $0, 120(%rsi) /* check bus busy flag */ + cmpb $0, 120(%rsi) /* check bus busy flag */ pop %rsi jne bus_busy z80_read_bank_cont: @@ -243,7 +243,7 @@ z80_read_bank_word: add $3, %ebp /* first read typically has 3 wait states */ push %rsi mov 144(%rsi), %rsi /* get system context pointer */ - cmp $0, 120(%rsi) /* check bus busy flag */ + cmpb $0, 120(%rsi) /* check bus busy flag */ pop %rsi jne bus_busy_word z80_read_bank_word_cont: @@ -256,7 +256,7 @@ z80_read_bank_word_cont: add $4, %ebp /* second read typically has 4 wait states */ push %rsi mov 144(%rsi), %rsi /* get system context pointer */ - cmp $0, 120(%rsi) /* check bus busy flag */ + cmpb $0, 120(%rsi) /* check bus busy flag */ pop %rsi jne bus_busy_word2 z80_read_bank_word_cont2: -- cgit v1.2.3 From 8a7f8bc09c88e9446d475127a82df23a1dcb0c75 Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Mon, 23 Jun 2014 13:12:04 -0400 Subject: Ensure proper stack alignment when the Z80 calls into C code. This fixes a crash in optimized builds on OSX --- zruntime.S | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'zruntime.S') diff --git a/zruntime.S b/zruntime.S index 1883239..a7bac3f 100644 --- a/zruntime.S +++ b/zruntime.S @@ -150,7 +150,15 @@ z80_read_ym2612: call z80_save_context mov %r13w, %di push %rsi + test $8, %rsp + jnz 0f call z80_read_ym + jmp 1f +0: + sub $8, %rsp + call z80_read_ym + add $8, %rsp +1: pop %rsi mov %al, %r13b call z80_load_context @@ -196,7 +204,15 @@ z80_write_ym2612: call z80_save_context mov %r14w, %di mov %r13b, %dl + test $8, %rsp + jnz 0f + call z80_write_ym + jmp 1f +0: + sub $8, %rsp call z80_write_ym + add $8, %rsp +1: mov %rax, %rsi jmp z80_load_context z80_write_bank_reg: @@ -219,7 +235,15 @@ z80_write_vdp: call z80_save_context mov %r14w, %di mov %r13b, %dl + test $8, %rsp + jnz 0f + call z80_vdp_port_write + jmp 1f +0: + sub $8, %rsp call z80_vdp_port_write + add $8, %rsp +1: mov %rax, %rsi jmp z80_load_context -- cgit v1.2.3