changeset 2468:0ca78837e4d2

Implement ext instruction in new 68K core
author Michael Pavone <pavone@retrodev.com>
date Sat, 24 Feb 2024 22:54:36 -0800
parents bf8a77a8ddc4
children db32408394c3
files cpu_dsl.py m68k.cpu
diffstat 2 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/cpu_dsl.py	Sat Feb 24 21:07:38 2024 -0800
+++ b/cpu_dsl.py	Sat Feb 24 22:54:36 2024 -0800
@@ -712,6 +712,7 @@
 		fmt = '\n\t{dst} = {src} & 0x80 ? {src} | 0xFF00 : {src} & 0x7F;'
 	else:
 		fmt = '\n\t{dst} = {src} & 0x8000 ? {src} | 0xFFFF0000 : {src} & 0x7FFF;'
+	prog.lastSize = params[0]
 	return fmt.format(src=params[1], dst=params[2])
 	
 def _getCarryCheck(prog):
--- a/m68k.cpu	Sat Feb 24 21:07:38 2024 -0800
+++ b/m68k.cpu	Sat Feb 24 22:54:36 2024 -0800
@@ -1710,6 +1710,18 @@
 	m68k_save_dst Z
 	m68k_prefetch
 
+01001000ZZ000RRR ext
+	invalid Z 0
+	invalid Z 1
+	if Z = 3
+		meta bits 32
+	else
+		meta bits 16
+	end
+	sext bits dregs.R dregs.R
+	update_flags NZV0C0
+	m68k_prefetch
+
 0100111001110000 reset
 	if reset_handler
 	pcall reset_handler m68k_reset_handler context