SWEET生成WCET时call的问题

以Statement为单位的WCET分析

Posted by Kingtous on January 9, 2019

Call 结构

论文描述

  • Call包含三个参数
    • 被 Call 的 函数
    • 函数调用的参数
    • return 返回的参数所存放的地址

Article_Call

实例1

callissue

实例2

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
{ label 64 { lref 64 "fft_twiddle_gen_seq::bb13::18" } { dec_unsigned 64 0 } }
{ call
	{ label 64 { lref 64 "callfunction" } { dec_unsigned 64 0 } }
	{ add
		64 
		{ load 64
			{ addr 64 { fref 64 "%tmp14" } { dec_unsigned 64 0 } }
		}
		{ select
			128 0 63 
			{ u_mul
				64 64 
				{ s_ext
					32 64 
					{ load 32
						{ addr 64 { fref 64 "%tmp15" } { dec_unsigned 64 0 } }
					}
				}
				{ dec_unsigned 64 16 }
			}
		}
		{ dec_unsigned 1 0 }
	}
	{ add
		64 
		{ load 64
			{ addr 64 { fref 64 "%tmp18" } { dec_unsigned 64 0 } }
		}
		{ select
			128 0 63 
			{ u_mul
				64 64 
				{ s_ext
					32 64 
					{ load 32
						{ addr 64 { fref 64 "%tmp19" } { dec_unsigned 64 0 } }
					}
				}
				{ dec_unsigned 64 16 }
			}
		}
		{ dec_unsigned 1 0 }
	}
	{ load 64
		{ addr 64 { fref 64 "%tmp22" } { dec_unsigned 64 0 } }
	}
	{ load 32
		{ addr 64 { fref 64 "%tmp23" } { dec_unsigned 64 0 } }
	}
	{ load 32
		{ addr 64 { fref 64 "%tmp24" } { dec_unsigned 64 0 } }
	}
	{ load 32
		{ addr 64 { fref 64 "%tmp25" } { dec_unsigned 64 0 } }
	}
	{ select
		64 0 31 
		{ u_mul
			32 32 
			{ load 32
				{ addr 64 { fref 64 "%tmp26" } { dec_unsigned 64 0 } }
			}
			{ load 32
				{ addr 64 { fref 64 "%tmp27" } { dec_unsigned 64 0 } }
			}
		}
	}
	{ select
		64 0 31 
		{ u_mul
			32 32 
			{ load 32
				{ addr 64 { fref 64 "%tmp29" } { dec_unsigned 64 0 } }
			}
			{ load 32
				{ addr 64 { fref 64 "%tmp30" } { dec_unsigned 64 0 } }
			}
		}
	}
	result
}