[Vm-dev] [commit][3513] Add byte accessor generation to the Bochs source generators

commits at squeakvm.org commits at squeakvm.org
Thu Dec 3 23:09:57 UTC 2015


Revision: 3513
Author:   eliot
Date:     2015-12-03 15:09:55 -0800 (Thu, 03 Dec 2015)
Log Message:
-----------
Add byte accessor generation to the Bochs source generators

Modified Paths:
--------------
    branches/Cog/processors/IA32/bochs/exploration/Makefile
    branches/Cog/processors/IA32/bochs/exploration/printcpu.c
    branches/Cog/processors/IA32/bochs/explorationx64/Makefile
    branches/Cog/processors/IA32/bochs/explorationx64/printcpu.c

Modified: branches/Cog/processors/IA32/bochs/exploration/Makefile
===================================================================
--- branches/Cog/processors/IA32/bochs/exploration/Makefile	2015-12-02 20:56:33 UTC (rev 3512)
+++ branches/Cog/processors/IA32/bochs/exploration/Makefile	2015-12-03 23:09:55 UTC (rev 3513)
@@ -1,10 +1,15 @@
-LIBDEPS=../../bochs/cpu/libcpu.a
-CFLAGS=-m32 -I.. -I../../bochs -I../../bochs/cpu -I../../bochs/instrument/stubs -L../cpu -lcpu
-FULLLIBS=-L../fpu -lfpu -L../disasm -ldisasm
+#LIBDEPS=../../bochs/cpu/libcpu.a
+#BOCHS=../../bochs
+#BOCHSEXP=../../bochs/exploration
+LIBDEPS=../cpu/libcpu.a
+BOCHS=../../../processors/IA32/bochs
+BOCHSEXP=.
+CFLAGS=-m32 -I.. -I$(BOCHS) -I$(BOCHS)/cpu -I$(BOCHS)/instrument/stubs -L../cpu -lcpu
 
 .PHONY:	$(LIBDEPS)
 
-all: bxcpu.txt BochsIA32Alien-regs.st BochsIA32Alien-cr.st BochsIA32Alien-xmm.st
+#all: bxcpu.txt BochsIA32Alien-regs.st BochsIA32Alien-cr.st BochsIA32Alien-xmm.st
+all: BochsIA32Alien-regs.st BochsIA32Alien-cr.st BochsIA32Alien-xmm.st
 
 bxcpu.txt: printbxcpu
 	./printbxcpu >bxcpu.txt
@@ -23,14 +28,14 @@
 	rm -f printcpu printcpucr printcpuxmm
 	rm -f printcpu.exe printcpucr.exe printcpuxmm.exe
 
-printbxcpu: ../../bochs/exploration/printbxcpu.cpp $(LIBDEPS)
+printbxcpu: $(BOCHSEXP)/printbxcpu.cpp $(LIBDEPS)
 	g++ -o $@ $< $(CFLAGS)
 
-printcpu: ../../bochs/exploration/printcpu.c $(LIBDEPS)
+printcpu: $(BOCHSEXP)/printcpu.c $(LIBDEPS)
 	g++ -o $@ $< $(CFLAGS)
 
-printcpucr: ../../bochs/exploration/printcpucr.c $(LIBDEPS)
+printcpucr: $(BOCHSEXP)/printcpucr.c $(LIBDEPS)
 	g++ -o $@ $< $(CFLAGS)
 
-printcpuxmm: ../../bochs/exploration/printcpuxmm.c $(LIBDEPS)
+printcpuxmm: $(BOCHSEXP)/printcpuxmm.c $(LIBDEPS)
 	g++ -o $@ $< $(CFLAGS)

Modified: branches/Cog/processors/IA32/bochs/exploration/printcpu.c
===================================================================
--- branches/Cog/processors/IA32/bochs/exploration/printcpu.c	2015-12-02 20:56:33 UTC (rev 3512)
+++ branches/Cog/processors/IA32/bochs/exploration/printcpu.c	2015-12-03 23:09:55 UTC (rev 3513)
@@ -28,12 +28,18 @@
 main()
 {
 #define stoffsetof(type,field) (offsetof(type,field)+1)
-#define print(r,n) \
+#define print(r,n,b) \
 printf("!BochsIA32Alien methodsFor: 'accessing' stamp: 'eem %d/%d/%d %d:%02d'!\r"\
 	"%s\r\t^self unsignedLongAt: %ld! !\r", m,d,y,h,i, lower(#r), \
 	stoffsetof(BX_CPU_C,gen_reg[n].dword.erx));\
 printf("!BochsIA32Alien methodsFor: 'accessing' stamp: 'eem %d/%d/%d %d:%02d'!\r"\
 	"%s: anUnsignedInteger\r\t^self unsignedLongAt: %ld put: anUnsignedInteger! !\r", m,d,y,h,i, lower(#r), \
+	stoffsetof(BX_CPU_C,gen_reg[n].dword.erx));\
+printf("!BochsIA32Alien methodsFor: 'accessing' stamp: 'eem %d/%d/%d %d:%02d'!\r"\
+	"%s\r\t^self unsignedByteAt: %ld! !\r", m,d,y,h,i, lower(#b), \
+	stoffsetof(BX_CPU_C,gen_reg[n].dword.erx));\
+printf("!BochsIA32Alien methodsFor: 'accessing' stamp: 'eem %d/%d/%d %d:%02d'!\r"\
+	"%s: anUnsignedInteger\r\t^self unsignedByteAt: %ld put: anUnsignedInteger! !\r", m,d,y,h,i, lower(#b), \
 	stoffsetof(BX_CPU_C,gen_reg[n].dword.erx))
 
 	time_t nowsecs = time(0);
@@ -52,15 +58,15 @@
 			"eflags\r\t^self unsignedLongAt: %ld! !\r", m,d,y,h,i,
 			stoffsetof(BX_CPU_C,eflags));
 
-	print(EAX,BX_32BIT_REG_EAX);
-	print(EBX,BX_32BIT_REG_EBX);
-	print(ECX,BX_32BIT_REG_ECX);
-	print(EDX,BX_32BIT_REG_EDX);
-	print(ESP,BX_32BIT_REG_ESP);
-	print(EBP,BX_32BIT_REG_EBP);
-	print(ESI,BX_32BIT_REG_ESI);
-	print(EDI,BX_32BIT_REG_EDI);
-	print(EIP,BX_32BIT_REG_EIP);
+	print(EAX,BX_32BIT_REG_EAX,al);
+	print(EBX,BX_32BIT_REG_EBX,bl);
+	print(ECX,BX_32BIT_REG_ECX,cl);
+	print(EDX,BX_32BIT_REG_EDX,dl);
+	print(ESP,BX_32BIT_REG_ESP,spl);
+	print(EBP,BX_32BIT_REG_EBP,bpl);
+	print(ESI,BX_32BIT_REG_ESI,sil);
+	print(EDI,BX_32BIT_REG_EDI,dil);
+	print(EIP,BX_32BIT_REG_EIP,ipl); /* the ipl: method should be discarded */
 
 	return 0;
 }

Modified: branches/Cog/processors/IA32/bochs/explorationx64/Makefile
===================================================================
--- branches/Cog/processors/IA32/bochs/explorationx64/Makefile	2015-12-02 20:56:33 UTC (rev 3512)
+++ branches/Cog/processors/IA32/bochs/explorationx64/Makefile	2015-12-03 23:09:55 UTC (rev 3513)
@@ -1,6 +1,10 @@
+#LIBDEPS=../../bochs/cpu/libcpu.a
+#BOCHS=../../bochs
+#BOCHSEXP=../../bochs/exploration
 #BOCHS=../../../processors/IA32/bochs
-BOCHS=../../processors/IA32/bochs
-BOCHSEX64=$(BOCHS)/explorationx64
+#BOCHSEX64=$(BOCHS)/explorationx64
+BOCHS=../../../processors/IA32/bochs
+BOCHSEX64=.
 LIBDEPS=../../cpu/libcpu.a
 CFLAGS=-m32 -I.. -I$(BOCHS) -I$(BOCHS)/cpu -I$(BOCHS)/instrument/stubs -L../cpu -lcpu
 FULLLIBS=-L../fpu -lfpu -L../disasm -ldisasm

Modified: branches/Cog/processors/IA32/bochs/explorationx64/printcpu.c
===================================================================
--- branches/Cog/processors/IA32/bochs/explorationx64/printcpu.c	2015-12-02 20:56:33 UTC (rev 3512)
+++ branches/Cog/processors/IA32/bochs/explorationx64/printcpu.c	2015-12-03 23:09:55 UTC (rev 3513)
@@ -28,12 +28,18 @@
 main()
 {
 #define stoffsetof(type,field) (offsetof(type,field)+1)
-#define print(r,n) \
+#define print(r,n,b) \
 printf("!BochsX64Alien methodsFor: 'accessing' stamp: 'eem %d/%d/%d %d:%02d'!\r"\
 	"%s\r\t^self unsignedLongLongAt: %ld! !\r", m,d,y,h,i, lower(#r), \
 	stoffsetof(BX_CPU_C,gen_reg[n].dword.erx));\
 printf("!BochsX64Alien methodsFor: 'accessing' stamp: 'eem %d/%d/%d %d:%02d'!\r"\
 	"%s: anUnsignedInteger\r\t^self unsignedLongLongAt: %ld put: anUnsignedInteger! !\r", m,d,y,h,i, lower(#r), \
+	stoffsetof(BX_CPU_C,gen_reg[n].dword.erx));\
+printf("!BochsX64Alien methodsFor: 'accessing' stamp: 'eem %d/%d/%d %d:%02d'!\r"\
+	"%s\r\t^self unsignedByteAt: %ld! !\r", m,d,y,h,i, lower(#b), \
+	stoffsetof(BX_CPU_C,gen_reg[n].dword.erx));\
+printf("!BochsX64Alien methodsFor: 'accessing' stamp: 'eem %d/%d/%d %d:%02d'!\r"\
+	"%s: anUnsignedInteger\r\t^self unsignedByteAt: %ld put: anUnsignedInteger! !\r", m,d,y,h,i, lower(#b), \
 	stoffsetof(BX_CPU_C,gen_reg[n].dword.erx))
 
 	time_t nowsecs = time(0);
@@ -52,23 +58,23 @@
 			"rflags\r\t^self unsignedLongLongAt: %ld! !\r", m,d,y,h,i,
 			stoffsetof(BX_CPU_C,eflags));
 
-	print(RAX,BX_64BIT_REG_RAX);
-	print(RBX,BX_64BIT_REG_RBX);
-	print(RCX,BX_64BIT_REG_RCX);
-	print(RDX,BX_64BIT_REG_RDX);
-	print(RSP,BX_64BIT_REG_RSP);
-	print(RBP,BX_64BIT_REG_RBP);
-	print(RSI,BX_64BIT_REG_RSI);
-	print(RDI,BX_64BIT_REG_RDI);
-	print(R8,BX_64BIT_REG_R8);
-	print(R9,BX_64BIT_REG_R9);
-	print(R10,BX_64BIT_REG_R10);
-	print(R11,BX_64BIT_REG_R11);
-	print(R12,BX_64BIT_REG_R12);
-	print(R13,BX_64BIT_REG_R13);
-	print(R14,BX_64BIT_REG_R14);
-	print(R15,BX_64BIT_REG_R15);
-	print(RIP,BX_64BIT_REG_RIP);
+	print(RAX,BX_64BIT_REG_RAX,al);
+	print(RBX,BX_64BIT_REG_RBX,bl);
+	print(RCX,BX_64BIT_REG_RCX,cl);
+	print(RDX,BX_64BIT_REG_RDX,dl);
+	print(RSP,BX_64BIT_REG_RSP,spl);
+	print(RBP,BX_64BIT_REG_RBP,bpl);
+	print(RSI,BX_64BIT_REG_RSI,sil);
+	print(RDI,BX_64BIT_REG_RDI,dil);
+	print(R8,BX_64BIT_REG_R8,r8l);
+	print(R9,BX_64BIT_REG_R9,r9l);
+	print(R10,BX_64BIT_REG_R10,r10l);
+	print(R11,BX_64BIT_REG_R11,r11l);
+	print(R12,BX_64BIT_REG_R12,r12l);
+	print(R13,BX_64BIT_REG_R13,r13l);
+	print(R14,BX_64BIT_REG_R14,r14l);
+	print(R15,BX_64BIT_REG_R15,r15l);
+	print(RIP,BX_64BIT_REG_RIP,ipl); /* the ipl: method should be discarded */
 
 	return 0;
 }



More information about the Vm-dev mailing list