Skip to content
Felix S. Klock II edited this page Jul 28, 2013 · 1 revision

Todos

  • Long Term
    • Unified Benchmarking for all (scheme... and host?) systems
    • Separate mutable state from codevectors.
      • I have been focusing on problems with the triangl benchmark lately and I have found that a likely reason for some very wide and unpredictable discrepancies in performance is that we end up allocating the codevector too close to another object that is mutated while the benchmark runs.
      • "Too close" is not exactly right; its all about particular bit-patterns. (although a conservatively selected enforced distance would do the trick).
      • I thought the problem was between *answer* and the code for attempt at first, but now after reading the code and doing more experiments, I think the problem is with *board* and attempt.

> (define new-board *board*)
new-board

> (map addr (list  (procedure-ref attempt 0) *board*  (procedure-ref test 0) *sequence* *answer*))
("10110111011110010100001011100000"
 "10110111100000001100001101000000"
 "10110111011110010101010110110000"
 "10110111011110001111000000000000"
 "10110111011101100011010110100000")

> (main)

Words allocated: 262144
Words reclaimed: 0
Elapsed time...: 1979 ms (User: 1980 ms; System: 0 ms)
Elapsed GC time: 1 ms (CPU: 0 in 1 collections.)

> (set! *board* old-board)
0

> (map addr (list  (procedure-ref attempt 0) *board*  (procedure-ref test 0) *sequence* *answer*))
("10110111011110010100001011100000"
 "10110111011110010100111100011000"
 "10110111011110010101010110110000"
 "10110111011110001111000000000000"
 "10110111011100000111000111000000")

> (main)

Words allocated: 262144
Words reclaimed: 0
Elapsed time...: 2982 ms (User: 2984 ms; System: 0 ms)
Elapsed GC time: 0 ms (CPU: 0 in 1 collections.)
 * I have not yet read the optimization 
    manual for details, but some newsnet searches lead me to guess that 64K might be the magic 
    number here... or perhaps 32K; another experiment indicates the problem might go away when 
    the two are 33,176 bytes apart... 
  • Short Term
    • 0.93
      • Documentation
        • Common Larceny
      • add an examples folder...
        • what is lib/ if not an examples folder?
        • there's no guarantee the stuff in lib/ is sane
        • that information should be the readme...
    • add a twobit.heap to all systems (can this be in for 0.93?)
    • post 0.93
      • libexec
        • readme file should make clear role of bin/ versus bin/libexec/
    • build Common Larceny atop:
      • Common Larceny
      • IasnLarceny
      • MzScheme (which is what we do anyway)

  • Check in code to root-ify SECOND before throwing exception

    • Make sure to do the 4->2byte exn code change separately
  • Look into whether we should expose the dbg procedure from debug.sch

  • Explore whether we'll need to have better support for continuable exceptions for R6RS

  • Add Petit targets to nightly builds

  • Put in (fixnum) peepholes for * and quotient. (but not /, right?)

  • Put in peephole for string-length (or at least string-length:str)

  • Reconsider global/setrtn/invoke peephole?


TODO: check whether representation-inference is actually breaking the compiled time-compile.sch in scmipts/


TODO: Try replacing Sassy's push-stack ADT representation to use a bytevector instead of a list structure. (I think JonathanKraut has also been considering doing something along these lines.)


Tried changing sassy-invoke.sch and sassy-instr.sch so that the seqlist macro would avoid appending, and instead imperatively update a global sequence of emitted instructions.

  1. This change was much easier than I had thought it would be (which actually makes me worried that I did it wrong or didn't test it properly, but we'll ignore that for now)
  2. This change did not seem to improve things.

Removing the redundant labels generated by exported-procedure (as opposed to compiled-procedure) did not seem to improve anything noticeably.

  • But this is an ugliness that I should remove anyway, now that Sassy's handling of labels has been fixed.

I temporarily turned define-sassy-instr into a macro that kept track of time between compiles of each such form, so that I could try to determine where time is going when we compile sassy-instr.sch. The methodology has all sorts of holes, but I thought the rough data might still point to areas to be improved. In particular, the fact that we see 2 orders of maginitude in the range of times seems like something might be up (or that might just be artifacts of periodic garbage collection; I probably should have printed out more timing info...)

Here's the macro (assuming the defn of define-sassy-instr is replaced to define define-sassy-instr*)


(define-syntax define-sassy-instr
  (transformer 
   (lambda (exp rename compare)
     (let ((elapsed (memstats-elapsed-time (memstats))))
       (cond (elapsed-time
              (display (- elapsed elapsed-time))
              (newline)))
       (set! elapsed-time elapsed))
     (display "COMPILING ")
     (display (cadr exp)) 
     (newline)
     `(,(rename 'define-sassy-instr* )
       . ,(cdr exp)))))

COMPILING (ia86.mcall fcn name)
5
COMPILING (ia86.loadr targetreg regno)
6
COMPILING (ia86.storer regno sourcereg)
5
COMPILING (ia86.loadc hwreg slot)
9
COMPILING (ia86.write_barrier r1 r2)
41
COMPILING (decr arg)
20
COMPILING (incr arg)
3
COMPILING (ia86.timer_check)
7
COMPILING (ia86.exception_noncontinuable excode)
7
COMPILING (ia86.exception_continuable excode restart)
8
COMPILING (ia86.alloc)
40
COMPILING (ia86.const2reg hwreg const)
2
COMPILING (ia86.const2regf hwreg const)
12
COMPILING (ia86.t_align x)
1
COMPILING (ia86.t_cont)
1
COMPILING (ia86.t_label n)
2
COMPILING (ia86.t_const_imm x)
1
COMPILING (ia86.t_const_constvector x)
1
COMPILING (ia86.t_const_setreg_imm x regno)
7
COMPILING (ia86.t_const_setreg_constvector x regno)
4
COMPILING (ia86.t_global x)
1
COMPILING (ia86.t_global_setreg x hwreg)
36
COMPILING (ia86.t_setglbl x)
6
COMPILING (ia86.t_const_setglbl_imm x glbl)
7
COMPILING (ia86.t_const_setglbl_constvector x glbl)
2
COMPILING (ia86.t_reg_setglbl regno x)
6
COMPILING (ia86.t_lexical rib off)
27
COMPILING (ia86.t_setlex rib off)
43
COMPILING (ia86.t_stack slot)
3
COMPILING (ia86.t_setstk slot)
3
COMPILING (ia86.t_load regno slot)
7
COMPILING (ia86.t_store regno slot)
7
COMPILING (ia86.t_reg regno)
1
COMPILING (ia86.t_setreg regno)
1
COMPILING (ia86.t_movereg regno1 regno2)
23
COMPILING (ia86.init_closure r)
77
COMPILING (ia86.t_lambda codevec constvec n)
38
COMPILING (ia86.t_lexes n)
33
COMPILING (ia86.t_argseq n)
31
COMPILING (ia86.t_argsge n)
15
COMPILING (ia86.t_save0 n)
53
COMPILING (ia86.t_save1 n)
4
COMPILING (ia86.t_save n)
7
COMPILING (ia86.t_setrtn lbl)
18
COMPILING (ia86.t_restore n)
35
COMPILING (ia86.t_pop n)
3
COMPILING (ia86.t_popstk)
1
COMPILING (ia86.t_return)
6
COMPILING (ia86.t_nop)
1
COMPILING (ia86.t_jump levels label name)
2
COMPILING (ia86.t_setrtn_jump levels label)
7
COMPILING (ia86.t_jump* levels label setrtn?)
80
COMPILING (ia86.t_skip lbl)
3
COMPILING (ia86.t_skipf lbl)
5
COMPILING (ia86.t_branch lbl)
28
COMPILING (ia86.t_branchf lbl)
7
COMPILING (ia86.t_reg_branchf regno lbl)
7
COMPILING (ia86.t_check w x y z)
5
COMPILING (ia86.t_reg_check regno lbl)
7
COMPILING (ia86.t_trap w x y z)
13
COMPILING (ia86.setcc hwreg cc)
28
COMPILING (ia86.double_tag_predicate ptrtag hdr)
3
COMPILING (ia86.fixnum_test_temp_is_free regno)
16
COMPILING (ia86.single_tag_test hwreg x)
6
COMPILING (ia86.single_tag_test_ex hwreg x y)
13
COMPILING (ia86.double_tag_test hwreg x y)
34
COMPILING (ia86.fixnum_arithmetic regno y z ex)
50
COMPILING (ia86.trusted_fixnum_compare sregno dregno regno y)
14
COMPILING (ia86.fixnum_compare regno y z)
45
COMPILING (ia86.fixnum_shift x y z)
62
COMPILING (ia86.generic_arithmetic sregno dregno regno y z millicode)
59
COMPILING (ia86.generic_compare_branchf hwreg regno jnc mcode l)
37
COMPILING (ia86.generic_compare regno condition z)
37
COMPILING (ia86.generic_char_compare regno y z)
54
COMPILING (ia86.generic_imm_compare_branchf hwregno imm jnc mcode l)
36
COMPILING (ia86.generic_imm_compare imm cc mcode)
37
COMPILING (ia86.generic_char_imm_compare x y z)
21
COMPILING (ia86.indexed_structure_length/hdr ptrtag hdrtag ex byte?)
24
COMPILING (ia86.indexed_structure_length ptrtag ex byte?)
28
COMPILING (ia86.indexed_structure_test regno y z hdrtag ex byte? test_reg_value)
95
COMPILING (ia86.indexed_structure_test_imm x y hdrtag ex byte?)
64
COMPILING (ia86.load_from_indexed_structure regno y byte?)
32
COMPILING (ia86.load_from_indexed_structure_imm x y byte?)
36
COMPILING (ia86.indexed_structure_ref/hdr reg ptrtag hdrtag ex byte?)
3
COMPILING (ia86.indexed_structure_ref_imm/hdr idx ptrtag hdrtag ex byte?)
3
COMPILING (ia86.indexed_structure_ref reg ptrtag ex byte?)
3
COMPILING (ia86.indexed_structure_ref_imm reg ptrtag ex byte?)
3
COMPILING (ia86.check_nothing regno y)
1
COMPILING (ia86.check_fixnum regno y)
5
COMPILING (ia86.check_char regno y)
8
COMPILING (ia86.indexed_structure_set_char regno y z hdrtag ex)
40
COMPILING (ia86.indexed_structure_set_byte regno1 regno2 z hdrtag ex)
25
COMPILING (ia86.indexed_structure_set_word regno1 regno2 z hdrtag ex)
3
COMPILING (ia86.do_indexed_structure_set_word hwregno regno1 regno2 z)
82
COMPILING (ia86.make_indexed_structure_word regno y z ex)
62
COMPILING (ia86.make_indexed_structure_byte regno hdrtag ex)
111
COMPILING (ia86.t_op1 x)
98
COMPILING (ia86.t_op1* op rs rd)
16
COMPILING (ia86.t_op2 x y)
72
COMPILING (ia86.t_op2* op rs1 rs2 rd)
13
COMPILING (ia86.t_op2imm x y)
48
COMPILING (ia86.t_op2imm* op rs1 imm rd)
13
COMPILING (ia86.t_op3 x y z)
26
COMPILING (ia86.t_reg_op1_branchf op rs l)
7
COMPILING (ia86.t_reg_op1_check op rs l)
6
COMPILING (ia86.t_reg_op2_branchf op rs1 rs2 l)
12
COMPILING (ia86.t_reg_op2imm_branchf op rs1 imm l)
12
COMPILING (ia86.t_reg_op2_check op rs1 rs2 l)
8
COMPILING (ia86.t_reg_op2imm_check op rs1 imm l)
24
COMPILING (ia86.t_reg_op3 op rs1 rs2 rs3)
WARNING from macro expander:
Redefining 
define-sassy-instr/peep
5
COMPILING (ia86.t_op1_1)
4
COMPILING (ia86.t_op1_3)
3
COMPILING (ia86.t_op1_3* rs rd)
5
COMPILING (ia86.t_op1_4)
2
COMPILING (ia86.t_op1_4* rs rd)
5
COMPILING (ia86.t_op1_5)
2
COMPILING (ia86.t_op1_5* rs rd)
3
COMPILING (ia86.t_op1_6)
2
COMPILING (ia86.t_op1_7)
3
COMPILING (ia86.t_op1_8)
4
COMPILING (ia86.t_op1_9)
3
COMPILING (ia86.t_op1_9* rs rd)
27
COMPILING (ia86.t_op1_10)
2
COMPILING (ia86.t_op1_10* rs rd)
11
COMPILING (ia86.t_op1_11)
3
COMPILING (ia86.t_op1_11* rs rd)
8
COMPILING (ia86.t_op1_12)
2
COMPILING (ia86.t_op1_12* rs rd)
8
COMPILING (ia86.t_op1_13)
3
COMPILING (ia86.t_op1_14)
5
COMPILING (ia86.t_op1_15)
2
COMPILING (ia86.t_op1_15* rs rd)
34
COMPILING (ia86.t_op1_16)
3
COMPILING (ia86.t_op1_16* rs rd)
15
COMPILING (ia86.t_op1_17)
3
COMPILING (ia86.t_op1_18)
3
COMPILING (ia86.t_op1_20)
2
COMPILING (ia86.t_op1_21)
3
COMPILING (ia86.t_op1_22)
42
COMPILING (ia86.t_op1_23)
3
COMPILING (ia86.t_op1_23* rs rd)
5
COMPILING (ia86.t_op1_24)
3
COMPILING (ia86.t_op1_25)
3
COMPILING (ia86.t_op1_26)
3
COMPILING (ia86.t_op1_27)
3
COMPILING (ia86.t_op1_28)
2
COMPILING (ia86.t_op1_29)
3
COMPILING (ia86.t_op1_30)
3
COMPILING (ia86.t_op1_31)
42
COMPILING (ia86.t_op1_32)
4
COMPILING (ia86.t_op1_33)
23
COMPILING (ia86.t_op1_34)
3
COMPILING (ia86.t_op1_35)
3
COMPILING (ia86.t_op1_36)
24
COMPILING (ia86.t_op1_37)
25
COMPILING (ia86.t_op1_38)
45
COMPILING (ia86.t_op1_39)
3
COMPILING (ia86.t_op1_40)
3
COMPILING (ia86.t_op1_41)
3
COMPILING (ia86.t_op1_42)
3
COMPILING (ia86.t_op1_43)
2
COMPILING (ia86.t_op1_44)
4
COMPILING (ia86.t_op2_45 x)
55
COMPILING (ia86.t_op1_46)
6
COMPILING (ia86.t_op1_47)
3
COMPILING (ia86.t_op1_47* rs rd)
7
COMPILING (ia86.t_op1_48)
3
COMPILING (ia86.t_op1_49)
6
COMPILING (ia86.t_op1_52)
3
COMPILING (ia86.t_op1_52* rs rd)
33
COMPILING (ia86.t_op1_54)
3
COMPILING (ia86.t_op1_54* rs rd)
31
COMPILING (ia86.t_op2_55 x)
8
COMPILING (ia86.t_op2_56 rs2)
3
COMPILING (ia86.t_op2_56* rs1 rd rs2)
25
COMPILING (ia86.t_reg_op2_branchf_eq? rs1 rs2 l)
44
COMPILING (ia86.t_reg_op2imm_branchf_eq? rs1 imm l)
12
COMPILING (ia86.t_op2_57 regno)
8
COMPILING (ia86.t_op2_58 rs2)
4
COMPILING (ia86.t_op2_58* rs1 rd rs2)
186
COMPILING (ia86.t_op2_59 rs2)
20
COMPILING (ia86.t_op2_59* rs1 rd rs2)
44
COMPILING (ia86.t_op2_60 rs2)
20
COMPILING (ia86.t_op2_60* rs1 rd rs2)
47
COMPILING (ia86.t_op2_61 rs2)
21
COMPILING (ia86.t_op2_61* rs1 rd rs2)
7
COMPILING (ia86.t_op2_62 rs2)
3
COMPILING (ia86.t_op2_62* rs1 rd rs2)
4
COMPILING (ia86.t_op2_63 regno)
6
COMPILING (ia86.t_op2_64 regno)
6
COMPILING (ia86.t_op2_65 regno)
6
COMPILING (ia86.t_op2_66 regno)
4
COMPILING (ia86.t_op2_67 regno)
20
COMPILING (ia86.t_op2_68 regno)
4
COMPILING (ia86.t_op2_69 regno)
4
COMPILING (ia86.t_op2_70 regno)
4
COMPILING (ia86.t_reg_op2_branchf_66 rs1 rs2 l)
5
COMPILING (ia86.t_reg_op2_branchf_67 rs1 rs2 l)
5
COMPILING (ia86.t_reg_op2_branchf_68 rs1 rs2 l)
5
COMPILING (ia86.t_reg_op2_branchf_69 rs1 rs2 l)
4
COMPILING (ia86.t_reg_op2_branchf_70 rs1 rs2 l)
6
COMPILING (ia86.t_op2_71 regno)
73
COMPILING (ia86.t_op2_72 regno)
72
COMPILING (ia86.t_op2_73 regno)
72
COMPILING (ia86.t_op2_74 regno)
21
COMPILING (ia86.t_op2_75 regno)
4
COMPILING (ia86.t_op2_76 regno)
4
COMPILING (ia86.t_op2_77 regno)
3
COMPILING (ia86.t_op2_78 regno)
12
COMPILING (ia86.t_op3_79 regno y)
4
COMPILING (ia86.t_op2_80 regno)
3
COMPILING (ia86.t_op2_81 regno)
4
COMPILING (ia86.t_op2_82 regno)
6
COMPILING (ia86.t_op2_83 regno)
4
COMPILING (ia86.t_op2_84 regno)
55
COMPILING (ia86.t_op2_85 regno)
4
COMPILING (ia86.t_op2_86 regno)
4
COMPILING (ia86.t_op2_87 regno)
4
COMPILING (ia86.t_op2_88 regno)
21
COMPILING (ia86.t_op2_89 regno)
4
COMPILING (ia86.t_op2_90 regno)
6
COMPILING (ia86.t_op3_91 regno y)
4
COMPILING (ia86.t_op3_92 regno y)
4
COMPILING (ia86.t_op3_93 regno y)
8
COMPILING (ia86.t_op1_94)
4
COMPILING (ia86.t_op1_94* rs rd)
13
COMPILING (ia86.t_op1_95)
4
COMPILING (ia86.t_op1_95* rs rd)
26
COMPILING (ia86.t_op2_96 regno)
23
COMPILING (ia86.t_op3_97 regno y)
4
COMPILING (ia86.t_op2_98 regno)
7
COMPILING (ia86.t_op2_99 regno)
4
COMPILING (ia86.t_op3_100 regno y)
5
COMPILING (ia86.t_op1_101)
4
COMPILING (ia86.t_op1_102)
4
COMPILING (ia86.t_op2_103 regno)
7
COMPILING (ia86.t_op1_104)
4
COMPILING (ia86.t_op1_105)
4
COMPILING (ia86.t_op1_106)
21
COMPILING (ia86.t_op1_107)
4
COMPILING (ia86.t_op1_108)
13
COMPILING (ia86.t_op2_109 regno)
5
COMPILING (ia86.t_op2imm_128 imm)
11
COMPILING (ia86.t_op2imm_129 imm)
4
COMPILING (ia86.t_op2imm_129* rs1 rd imm)
34
COMPILING (ia86.t_op2imm_130 imm)
5
COMPILING (ia86.t_op2imm_130* rs1 rd imm)
123
COMPILING (ia86.t_op2imm_131 imm)
21
COMPILING (ia86.t_op2imm_131* rs1 rd imm)
118
COMPILING (ia86.t_op2imm_132 imm)
21
COMPILING (ia86.t_op2imm_133 imm)
5
COMPILING (ia86.t_op2imm_134 imm)
4
COMPILING (ia86.t_op2imm_135 imm)
5
COMPILING (ia86.t_op2imm_136 imm)
4
COMPILING (ia86.t_reg_op2imm_branchf_132 rs imm l)
4
COMPILING (ia86.t_reg_op2imm_branchf_133 rs imm l)
5
COMPILING (ia86.t_reg_op2imm_branchf_134 rs imm l)
4
COMPILING (ia86.t_reg_op2imm_branchf_135 rs imm l)
5
COMPILING (ia86.t_reg_op2imm_branchf_136 rs imm l)
5
COMPILING (ia86.t_op2imm_137 imm)
21
COMPILING (ia86.t_op2imm_138 imm)
5
COMPILING (ia86.t_op2imm_139 imm)
4
COMPILING (ia86.t_op2imm_140 imm)
5
COMPILING (ia86.t_op2imm_141 imm)
5
COMPILING (ia86.t_op2imm_142 imm)
13
COMPILING (ia86.t_op2imm_143 imm)
5
COMPILING (ia86.t_op2imm_144 imm)
6
COMPILING (ia86.t_op2imm_145 imm)
7
COMPILING (ia86.t_op2imm_146 imm)
21
COMPILING (ia86.t_op1_200)
5
COMPILING (ia86.t_op1_201)
4
COMPILING (ia86.t_op2_202 regno)
5
COMPILING (ia86.t_op2_203 regno)
5
COMPILING (ia86.t_op1_204)
68
COMPILING (ia86.t_op2_205 regno)
110
COMPILING (ia86.t_op2_206 regno)
21
COMPILING (ia86.t_op2_207 regno)
5
COMPILING (ia86.t_op2_208 regno)
4
COMPILING (ia86.t_op2_209 regno)
5
COMPILING (ia86.t_op2_210 regno)
5
COMPILING (ia86.t_op1_211)
55
COMPILING (ia86.t_op1_212)
39
COMPILING (ia86.t_op1_213)
55
COMPILING (ia86.fixnum_imm_arithmetic regno y z ex)
88
COMPILING (ia86.t_op2imm_250 imm)
21
COMPILING (ia86.t_op2imm_251 imm)
5
COMPILING (ia86.fixnum_imm_compare imm y z)
69
COMPILING (ia86.t_op2imm_253 imm)
5
COMPILING (ia86.t_op2imm_254 imm)
5
COMPILING (ia86.t_op2imm_255 imm)
4
COMPILING (ia86.t_op2imm_256 imm)
5
COMPILING (ia86.t_op2imm_257 imm)
10
COMPILING (ia86.t_op1_401)
5
COMPILING (ia86.t_op1_401* rs rd)
49
COMPILING (ia86.t_op2_402 rs2)
5
COMPILING (ia86.t_op2_402* rs1 rd rs2)
66
COMPILING (ia86.t_op3_403 regno y)
5
COMPILING (ia86.t_reg_op3_403 hwregno regno2 regno3)
10
COMPILING (ia86.t_op1_404)
21
COMPILING (ia86.t_op1_404* rs rd)
26
COMPILING (ia86.t_op1_405)
5
COMPILING (ia86.t_op1_405* rs rd)
44
COMPILING (ia86.t_op2_406 rs2)
5
COMPILING (ia86.t_op2_406* rs1 rd rs2)
11
COMPILING (ia86.t_op2_407 rs2)
5
COMPILING (ia86.t_op2_407* rs1 rd rs2)
10
COMPILING (ia86.t_op2_408 rs2)
5
COMPILING (ia86.t_op2_408* rs1 rd rs2)
27
COMPILING (ia86.t_op2_409 rs2)
6
COMPILING (ia86.t_op2_409* rs1 rd rs2)
11
COMPILING (ia86.t_op2_410 rs2)
5
COMPILING (ia86.t_op2_410* rs1 rd rs2)
22
COMPILING (ia86.trusted_fixnum_compare_branch hwregno regno l jnc)
42
COMPILING (ia86.t_reg_op2_check_406 hwregno regno2 l)
6
COMPILING (ia86.t_reg_op2_check_407 hwregno regno2 l)
22
COMPILING (ia86.t_reg_op2_check_408 hwregno regno2 l)
6
COMPILING (ia86.t_reg_op2_check_409 hwregno regno2 l)
5
COMPILING (ia86.t_reg_op2_check_410 hwregno regno2 l)
6
COMPILING (ia86.t_reg_op2_branchf_406 hwregno regno2 l)
10
COMPILING (ia86.t_reg_op2_branchf_407 hwregno regno2 l)
9
COMPILING (ia86.t_reg_op2_branchf_408 hwregno regno2 l)
9
COMPILING (ia86.t_reg_op2_branchf_409 hwregno regno2 l)
27
COMPILING (ia86.t_reg_op2_branchf_410 hwregno regno2 l)
14
COMPILING (ia86.t_op2imm_450 imm)
6
COMPILING (ia86.t_op2imm_450* rs1 rd imm)
46
COMPILING (ia86.t_op2imm_451 imm)
5
COMPILING (ia86.t_op2imm_451* rs1 rd imm)
23
COMPILING (ia86.t_op2imm_452 imm)
5
COMPILING (ia86.t_op2imm_452* rs1 rd imm)
45
COMPILING (ia86.t_op2imm_453 imm)
5
COMPILING (ia86.t_op2imm_453* rs1 rd imm)
23
COMPILING (ia86.t_op2imm_454 imm)
5
COMPILING (ia86.t_op2imm_454* rs1 rd imm)
41
COMPILING (ia86.t_op2imm_455 imm)
6
COMPILING (ia86.t_op2imm_455* rs1 rd imm)
17
COMPILING (ia86.trusted_fixnum_compare_imm_branch hwregno imm l jnc)
37
COMPILING (ia86.t_reg_op2imm_check_451 hwregno imm l)
6
COMPILING (ia86.t_reg_op2imm_check_452 hwregno imm l)
6
COMPILING (ia86.t_reg_op2imm_check_453 hwregno imm l)
6
COMPILING (ia86.t_reg_op2imm_check_454 hwregno imm l)
5
COMPILING (ia86.t_reg_op2imm_check_455 hwregno imm l)
6
COMPILING (ia86.t_reg_op2imm_branchf_451 hwregno imm l)
27
COMPILING (ia86.t_reg_op2imm_branchf_452 hwregno imm l)
27
COMPILING (ia86.t_reg_op2imm_branchf_453 hwregno imm l)
10
COMPILING (ia86.t_reg_op2imm_branchf_454 hwregno imm l)
10
COMPILING (ia86.t_reg_op2imm_branchf_455 hwregno imm l)
10
COMPILING (ia86.t_op2_500 regno)
51
COMPILING (ia86.t_op2_501 regno)
53
COMPILING (ia86.t_op2_502 regno)
34
COMPILING (ia86.t_op2_503 regno)
58
COMPILING (ia86.t_op2imm_520 imm)
7
COMPILING (ia86.t_op2imm_520* rs1 rd imm)
54
COMPILING (ia86.t_op2imm_521 imm)
6
COMPILING (ia86.t_op2imm_521* rs1 rd imm)
130
COMPILING (ia86.t_op2imm_522 imm)
23
COMPILING (ia86.t_op2imm_522* rs1 rd imm)
55
COMPILING (ia86.t_op2imm_523 imm)
7
COMPILING (ia86.t_op2imm_523* rs1 rd imm)
128
COMPILING (ia86.reg_generic_compare_lowimm_branchf imm rs l)
44
COMPILING (ia86.reg_generic_compare_imm_branchf imm rs l)
44
COMPILING (ia86.t_reg_op1_branchf_null? rs l)
6
COMPILING (ia86.t_reg_op1_branchf_eof_object? rs l)
7
COMPILING (ia86.t_reg_op1_branchf_pair? rs l)
21
COMPILING (ia86.t_reg_op1_branchf_zero? rs l)
118
COMPILING (ia86.t_reg_op1_branchf_fixnum? rs l)
60
COMPILING (ia86.t_reg_op1_check_fixnum? rs l)
56
COMPILING (ia86.t_reg_op1_check_pair? rs l)
34
COMPILING (ia86.t_reg_op1_check_vector? rs l)
17
COMPILING (ia86.t_reg_op1_check_string? rs l)
Clone this wiki locally