[Vm-dev] VM Maker: VMMaker.oscog-eem.2700.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Feb 4 00:20:40 UTC 2020


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2700.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.2700
Author: eem
Time: 3 February 2020, 4:20:23.680549 pm
UUID: 18fdc5b5-cd1b-46be-a6f2-2861de93a618
Ancestors: VMMaker.oscog-eem.2699

Cogit: restore generqation of the MIPSEL cogit.  It needed to define its ABICalleeSavedRegisterMask.

=============== Diff against VMMaker.oscog-eem.2699 ===============

Item was changed:
  ----- Method: CogMIPSELCompiler class>>initializeAbstractRegisters (in category 'class initialization') -----
  initializeAbstractRegisters
  	"Assign the abstract registers with the identities/indices of the relevant concrete registers."
  
  	"See MIPSConstants>>initializeRegisters for a description of the C ABI."
  
  	"Note we can fit all of the abstract registers in C preserved registers, and
  	 not need to save or restore them at runtime calls."
  
  	ReceiverResultReg		:= S0.
  	Arg0Reg				:= S1.
  	Arg1Reg				:= S2.
  	ClassReg				:= S3.
  	SendNumArgsReg		:= S4.
  	TempReg				:= S5.
  	VarBaseReg				:= S6. "Must be callee saved"
  	SPReg					:= SP.
  	FPReg					:= FP.
  	RISCTempReg			:= AT.
  	LinkReg				:= RA.
  
+ 	self flag: #OABI. "see e.g. http://refspecs.linuxbase.org/elf/mipsabi.pdf"
+ 	ABICalleeSavedRegisterMask := self
+ 									registerMaskFor: S0 and: S1 and: S2 and: S3
+ 									and: S4 and: S5 and: S6 and: S7.
- 	self flag: #OABI.
  	ABICallerSavedRegisterMask := self
  									registerMaskFor: T0 and: T1 and: T2 and: T3
  									and: T4 and: T5 and: T6 and: T7 and: T8 and: T9.
  	CallerSavedRegisterMask := ABICallerSavedRegisterMask
  								bitAnd: (self registerMaskFor: ClassReg and: ReceiverResultReg and: SendNumArgsReg and: Arg0Reg and: Arg1Reg).
  
  	NumRegisters := 32.
  
  	self flag: #todo.
  	"Extra0Reg			:= ??.
  	Extra1Reg			:= ??.
  	Extra2Reg			:= ??.
  	Extra3Reg			:= ??.
  	Extra4Reg			:= ??.
  	Extra5Reg			:= ??.
  	Extra6Reg			:= ??.
  	Extra7Reg			:= ??."
  
  	self flag: #todo.
  	"DPFPReg0				:= ??.
  	DPFPReg1				:= ??.
  	DPFPReg2				:= ??.
  	DPFPReg3				:= ??.
  	DPFPReg4				:= ??.
  	DPFPReg5				:= ??.
  	DPFPReg6				:= ??.
  	DPFPReg7				:= ??.
  	DPFPReg8				:= ??.
  	DPFPReg9				:= ??.
  	DPFPReg10				:= ??.
  	DPFPReg11				:= ??.
  	DPFPReg12				:= ??.
  	DPFPReg13				:= ??.
  	DPFPReg14				:= ??.
  	DPFPReg15				:= ??"!



More information about the Vm-dev mailing list