File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11#lang racket
2- (provide symbol->label symbol-> data-label lookup pad-stack unpad-stack)
2+ (provide symbol->data-label lookup pad-stack unpad-stack)
33(require a86/ast)
44
55(define rsp 'rsp )
66(define r15 'r15 )
77
8- ;; Symbol -> Label
9- ;; Produce a symbol that is a valid Nasm label
10- (define (symbol->label s)
11- (to-label "label_ " s))
12-
138(define (symbol->data-label s)
14- (to-label "data_ " s))
15-
16- (define (to-label prefix s)
17- (string->symbol
18- (string-append
19- prefix
20- (list->string
21- (map (λ (c)
22- (if (or (char<=? #\a c #\z )
23- (char<=? #\A c #\Z )
24- (char<=? #\0 c #\9 )
25- (memq c '(#\_ #\$ #\# #\@ #\~ #\. #\? )))
26- c
27- #\_ ))
28- (string->list (symbol->string s))))
29- "_ "
30- (number->string (eq-hash-code s) 16 ))))
9+ (symbol->label
10+ (string->symbol (string-append "data_ " (symbol->string s)))))
3111
3212;; Id CEnv -> [Maybe Integer]
3313(define (lookup x cenv)
Original file line number Diff line number Diff line change 11#lang racket
2- (provide symbol->label symbol-> data-label lookup pad-stack unpad-stack)
2+ (provide symbol->data-label lookup pad-stack unpad-stack)
33(require a86/ast)
44
55(define rsp 'rsp )
66(define r15 'r15 )
77
8- ;; Symbol -> Label
9- ;; Produce a symbol that is a valid Nasm label
10- (define (symbol->label s)
11- (to-label "label_ " s))
12-
138(define (symbol->data-label s)
14- (to-label "data_ " s))
15-
16- (define (to-label prefix s)
17- (string->symbol
18- (string-append
19- prefix
20- (list->string
21- (map (λ (c)
22- (if (or (char<=? #\a c #\z )
23- (char<=? #\A c #\Z )
24- (char<=? #\0 c #\9 )
25- (memq c '(#\_ #\$ #\# #\@ #\~ #\. #\? )))
26- c
27- #\_ ))
28- (string->list (symbol->string s))))
29- "_ "
30- (number->string (eq-hash-code s) 16 ))))
9+ (symbol->label
10+ (string->symbol (string-append "data_ " (symbol->string s)))))
3111
3212;; Id CEnv -> [Maybe Integer]
3313(define (lookup x cenv)
Original file line number Diff line number Diff line change 11#lang racket
2- (provide symbol->label symbol-> data-label lookup pad-stack unpad-stack)
2+ (provide symbol->data-label lookup pad-stack unpad-stack)
33(require a86/ast)
44
55(define rsp 'rsp )
66(define r15 'r15 )
77
8- ;; Symbol -> Label
9- ;; Produce a symbol that is a valid Nasm label
10- (define (symbol->label s)
11- (to-label "label_ " s))
12-
138(define (symbol->data-label s)
14- (to-label "data_ " s))
15-
16- (define (to-label prefix s)
17- (string->symbol
18- (string-append
19- prefix
20- (list->string
21- (map (λ (c)
22- (if (or (char<=? #\a c #\z )
23- (char<=? #\A c #\Z )
24- (char<=? #\0 c #\9 )
25- (memq c '(#\_ #\$ #\# #\@ #\~ #\. #\? )))
26- c
27- #\_ ))
28- (string->list (symbol->string s))))
29- "_ "
30- (number->string (eq-hash-code s) 16 ))))
9+ (symbol->label
10+ (string->symbol (string-append "data_ " (symbol->string s)))))
3111
3212;; Id CEnv -> [Maybe Integer]
3313(define (lookup x cenv)
You can’t perform that action at this time.
0 commit comments