diff: Compiler fix for stack layouts.

Tyson Dowd trd at cs.mu.oz.au
Tue Jan 6 17:32:19 AEDT 1998


Hi,

This change goes with the runtime changes I just posted.

===================================================================


Estimated hours taken: 1

compiler/stack_layout.m:
	Remove the label address from internal label layouts.


Index: compiler/stack_layout.m
===================================================================
RCS file: /home/staff/zs/imp/mercury/compiler/stack_layout.m,v
retrieving revision 1.3
diff -u -r1.3 stack_layout.m
--- stack_layout.m	1997/12/05 15:47:50	1.3
+++ stack_layout.m	1998/01/06 06:22:20
@@ -31,7 +31,6 @@
 % For each continuation label in a procedure
 % 	mercury_data__stack_layout__mercury__<proc_label>_i<label number>
 % containing:
-%	code address		(Code *) - address of label
 %	procedure info		(Word *) - pointer to procedure stack layout
 %	number of live vars	(Integer)
 %	live data locations and (Word *) - pointer to vector of 
@@ -153,6 +152,7 @@
 	{ stack_layout__represent_lval(SuccipLval, SuccipRval) },
 	{ StackSlotsRval = const(int_const(StackSlots)) },
 	{ CodeAddrRval = const(code_addr_const(label(Label))) },
+
 	stack_layout__represent_code_model(CodeModel, CodeModelRval),
 	{ MaybeRvals = [yes(CodeAddrRval), yes(StackSlotsRval), 
 		yes(CodeModelRval), yes(SuccipRval)] },
@@ -190,8 +190,6 @@
 	{ set__to_sorted_list(LiveLvalSet, LiveLvals) },
 	
 		% generate the required rvals
-	{ CodeAddrRval = const(label_entry(Label)) },
-
 	stack_layout__get_module_name(ModuleName),
 	{ EntryAddrRval = const(data_addr_const(data_addr(ModuleName,
 		stack_layout(local(ProcLabel))))) },
@@ -199,7 +197,7 @@
 	{ LengthRval = const(int_const(Length)) },
 	stack_layout__construct_liveval_pairs(LiveLvals, LiveValRval),
 
-	{ MaybeRvals = [yes(CodeAddrRval), yes(EntryAddrRval), 
+	{ MaybeRvals = [yes(EntryAddrRval), 
 		yes(LengthRval), yes(LiveValRval)]  },
 
 	{ CModule = c_data(ModuleName, stack_layout(Label), yes, 


-- 
       Tyson Dowd           # If I'm unusually agressive in this email, it's
                            # probably because USENET has been down here for
     trd at cs.mu.oz.au        # over a week, and I'm missing my usual dosage
http://www.cs.mu.oz.au/~trd # of flamewars. My apologies in advance.



More information about the developers mailing list