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