about summary refs log tree commit diff stats
path: root/arc/.traces/indirect-addressing-oarg
blob: d1875176a04c6344c9a68aa0001bf5e74d372701 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
c{0: 0 (((1 integer-address)) <- ((copy)) ((2 literal))) -- nil
c{0: 1 (((2 integer)) <- ((copy)) ((34 literal))) -- nil
c{0: 2 (((1 integer-address) (deref)) <- ((add)) ((2 integer)) ((2 literal))) -- nil
c{1: 0 ✓ (((1 integer-address)) <- ((copy)) ((2 literal)))
c{1: 1 ✓ (((2 integer)) <- ((copy)) ((34 literal)))
c{1: 2 ✓ (((1 integer-address) (deref)) <- ((add)) ((2 integer)) ((2 literal)))
cn0: convert-names in main
cn0: (((1 integer-address)) <- ((copy)) ((2 literal))) nil nil
cn0: checking arg ((2 literal))
cn0: checking oarg ((1 integer-address))
maybe-add: ((1 integer-address))
cn0: (((2 integer)) <- ((copy)) ((34 literal))) nil nil
cn0: checking arg ((34 literal))
cn0: checking oarg ((2 integer))
maybe-add: ((2 integer))
cn0: (((1 integer-address) (deref)) <- ((add)) ((2 integer)) ((2 literal))) nil nil
cn0: checking arg ((2 integer))
maybe-add: ((2 integer))
cn0: checking arg ((2 literal))
cn0: checking oarg ((1 integer-address) (deref))
maybe-add: ((1 integer-address) (deref))
cn1: (((1 integer-address)) <- ((copy)) ((2 literal)))
cn1: (((2 integer)) <- ((copy)) ((34 literal)))
cn1: (((1 integer-address) (deref)) <- ((add)) ((2 integer)) ((2 literal)))
schedule: main
run: main 0: (((1 integer-address)) <- ((copy)) ((2 literal)))
run: main 0: 2 => ((1 integer-address))
mem: ((1 integer-address)): 1 <= 2
run: main 1: (((2 integer)) <- ((copy)) ((34 literal)))
run: main 1: 34 => ((2 integer))
mem: ((2 integer)): 2 <= 34
run: main 2: (((1 integer-address) (deref)) <- ((add)) ((2 integer)) ((2 literal)))
mem: ((2 integer)) => 34
run: main 2: 36 => ((1 integer-address) (deref))
mem: ((1 integer-address) (deref)): 2 <= 36
schedule: done with routine nil
>16
17
18
                                                                                       
                 
 
         
                                                   
                                 


                  
 
       
 
      
          
                                       
                            
 
                            
# First program: same as https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
# Just return 42.
#
# To run:
#   $ bootstrap/bootstrap translate ex1.subx -o ex1
#   $ bootstrap/bootstrap run ex1
# Expected result:
#   $ echo $?
#   42

== code

Entry:
# exit(42)
bb/copy-to-ebx  0x2a/imm32  # 42 in hex
e8/call  syscall_exit/disp32

# . . vim:nowrap:textwidth=0