changeset 2582:6c475ddefd6f

Add support for ccr/sr update instructions to 68K test generator
author Michael Pavone <pavone@retrodev.com>
date Sat, 08 Feb 2025 13:34:07 -0800
parents 9e10149c9e10
children 0f7609fe03f2
files gentests.py testcases.txt
diffstat 2 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gentests.py	Sat Feb 08 12:51:35 2025 -0800
+++ b/gentests.py	Sat Feb 08 13:34:07 2025 -0800
@@ -93,7 +93,7 @@
 		return self.kind
 
 	def write_init(self, outfile, size, already):
-		if not str(self) in already:
+		if not str(self) in already and not self.kind in ('ccr', 'sr'):
 			minv,maxv = get_size_range(size)
 			val = randint(minv,maxv)
 			already[str(self)] = val
@@ -428,6 +428,8 @@
 			return [Immediate(randint(start, end)) for x in range(0,8)]
 		else:
 			return [Immediate(num) for num in range(start, end+1)]
+	elif mode in ('ccr', 'sr'):
+		return [Register(mode, 0)]
 	else:
 		print("Don't know what to do with source type", mode)
 		return None
@@ -447,7 +449,7 @@
 		self.dst.write_init(outfile, self.size, already)
 
 	def invalidate_dest(self, already):
-		if type(self.dst) == Register:
+		if type(self.dst) == Register and not self.dst.kind in ('ccr', 'sr'):
 			del already[str(self.dst)]
 
 	def save_result(self, reg, always):
@@ -458,7 +460,10 @@
 				src = Decrement(self.dst.reg)
 			else:
 				src = self.dst
-			return 'move.' + self.size + ' ' + str(src) + ', ' + str(reg)
+			if type(src) is Register and src.kind == 'ccr':
+				return 'move sr, ' + str(reg)
+			else:
+				return 'move.' + self.size + ' ' + str(src) + ', ' + str(reg)
 		else:
 			return ''
 
--- a/testcases.txt	Sat Feb 08 12:51:35 2025 -0800
+++ b/testcases.txt	Sat Feb 08 13:34:07 2025 -0800
@@ -85,4 +85,9 @@
 swap	w		d
 tst		bwl		d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
 lea		l		(a);(n,a);(n,a,x);(n).w;(n).l;(n,pc);(n,pc,x)					a
-
+ori		b		#n																ccr
+ori		w		#n																sr
+andi	b		#n																ccr
+andi	w		#n																sr
+eori	b		#n																ccr
+eori	w		#n																sr