From 3b9e2a620bca1d622cca02995710905c25236dce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Balogh?= Date: Wed, 26 Mar 2014 17:08:16 +0000 Subject: [PATCH] added a remark about a possible QEMU issue with CMP/CMPI .W and .B on ColdFire git-svn-id: trunk@27291 - --- compiler/m68k/cgcpu.pas | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/m68k/cgcpu.pas b/compiler/m68k/cgcpu.pas index 7be9c04bee..11a83b3a32 100644 --- a/compiler/m68k/cgcpu.pas +++ b/compiler/m68k/cgcpu.pas @@ -1425,8 +1425,12 @@ unit cgcpu; list.concat(taicpu.op_reg(A_TST,TCGSize2OpSize[size],reg)) else begin - { ColdFire also needs S_L for CMPI } - if current_settings.cputype in cpu_coldfire then + { ColdFire ISA A also needs S_L for CMPI } + { Note: older QEMU pukes from CMPI sizes <> .L even on ISA B/C, but + it's actually *LEGAL*, see CFPRM, page 4-30, the bug also seems + fixed in recent QEMU, but only when CPU cfv4e is forced, not by + default. (KB) } + if current_settings.cputype in cpu_coldfire{-[cpu_isa_b,cpu_isa_c]} then begin sign_extend(list, size, reg); size:=OS_INT;