Start each pass with .DSABL LSB

otherwise the end of pass 1 carries over into pass 2, which messes with
the ranges of local symbols.
This commit is contained in:
Olaf Seibert 2021-04-18 15:18:38 +02:00
parent 22fdaedded
commit 2753b081cc
3 changed files with 30 additions and 6 deletions

View File

@ -203,6 +203,7 @@ void prepare_pass(int this_pass, STACK *stack, int nr_files, char **fnames)
suppressed = 0;
enabl_lc = 1;
enabl_lcm = 0;
enabl_lsb = 0;
enabl_ama = opt_enabl_ama;
}

View File

@ -31,18 +31,30 @@
31 000032 001400 2$: beq 3$
32 000034 001400 3$: beq 4$
33 000036 001773 4$: beq lab4
33
34
35 ; -- test if next pass sets this back to default (off)
36 ; also test that normal labels don't delimit local ones
37
38 .enabl lsb
39
40 000040 001000 1$: bne 2$
41 000042 001401 2$: beq 3$
42 000044 001775 lab5: beq 1$
43 000046 001400 3$: beq 4$
44 000050 001775 4$: beq lab5
44
Symbol table
. ******R 001 12345$1 000006R L 001 3$3 000022R L 001 LAB1 000000R 001 LAB4 000026R 001
1$0 000002R L 001 12345$2 000012R L 001 3$4 000034R L 001 LAB2A 000004R 001
1$3 000016R L 001 2$3 000020R L 001 4$3 000024R L 001 LAB2B 000010R 001
1$4 000030R L 001 2$4 000032R L 001 4$4 000036R L 001 LAB3 000014R 001
. ******R 001 12345$1 000006R L 001 3$3 000022R L 001 4$5 000050R L 001 LAB4 000026R 001
1$0 000002R L 001 12345$2 000012R L 001 3$4 000034R L 001 LAB1 000000R 001 LAB5 000044R 001
1$3 000016R L 001 2$3 000020R L 001 3$5 000046R L 001 LAB2A 000004R 001
1$4 000030R L 001 2$4 000032R L 001 4$3 000024R L 001 LAB2B 000010R 001
1$5 000040R L 001 2$5 000042R L 001 4$4 000036R L 001 LAB3 000014R 001
Program sections:
. ABS. 000000 000 (RW,I,GBL,ABS,OVR,NOSAV)
000040 001 (RW,I,LCL,REL,CON,NOSAV)
000052 001 (RW,I,LCL,REL,CON,NOSAV)

View File

@ -31,3 +31,14 @@ lab4: beq 1$
2$: beq 3$
3$: beq 4$
4$: beq lab4
; -- test if next pass sets this back to default (off)
; also test that normal labels don't delimit local ones
.enabl lsb
1$: bne 2$
2$: beq 3$
lab5: beq 1$
3$: beq 4$
4$: beq lab5