[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