commit 62c77d2bdd4be70891ca2fb7b9bd8ef221489728
parent bd1a46920d03b79310ba5fb6c53b7baa57798652
Author: Alexander Burger <abu@software-lab.de>
Date:   Wed, 12 Oct 2011 10:29:10 +0200
Save "reason" in 'errEXYZ'
Diffstat:
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src64/err.l b/src64/err.l
@@ -1,4 +1,4 @@
-# 11oct11abu
+# 12oct11abu
 # (c) Software Lab. Alexander Burger
 
 # Debug print routine
@@ -31,6 +31,9 @@
 # Y message format
 # Z message parameter
 (code 'errEXYZ)
+   link
+   push E  # <L I> Save reason
+   link
    sub S (+ 240 IV)  # <S> Message buffer, <S 240> outFrame
    cc sprintf(S Y Z)  # Build message
    null X  # Error context?
@@ -39,8 +42,7 @@
    ld (Up) A  # Save it
    nul (S)  # Message empty?
    if nz  # No
-      push E  # Save reason
-      lea E (S I)  # Make transient symbol
+      ld E S  # Make transient symbol
       call mkStrE_E
       ld (Msg) E  # Store in '*Msg'
       ld C (Catch)  # Search catch frames
@@ -73,7 +75,6 @@
          end
          ld C (C)  # Next frame
       loop
-      pop E  # Retrieve reason
    end
    ld (Chr) 0  # Init globals
    ld (ExtN) 0
@@ -108,15 +109,14 @@
    if nz  # Yes
       ld C ErrTok  # Print error token
       call outStringC
-      push E  # Save reason
       ld E X  # Get context
-      call printE_E  # Print context
+      call printE  # Print context
       call newline
-      pop E  # Retrieve reason
    end
-   null E  # Reason?
+   ld E (L I)  # Get reason
+   null E  # any?
    if nz  # Yes
-      call printE_E  # Print reason
+      call printE  # Print reason
       ld C Dashes  # Print " -- "
       call outStringC
    end