quebex

A software analysis framework built around the QBE intermediate language

git clone https://git.8pit.net/quebex.git

  1function w $getcode(w %.1) {
  2@start.57
  3	%.2 =l alloc4 1
  4	storeb %.1, %.2
  5@body.58
  6	%.3 =w loadsb %.2
  7	%.4 =w extsb %.3
  8	%.5 =w ceqw %.4, 47
  9	jnz %.5, @if_true.59, @if_false.60
 10@if_true.59
 11	ret 63
 12@if_false.60
 13	%.6 =w loadsb %.2
 14	%.7 =w extsb %.6
 15	%.8 =w ceqw %.7, 95
 16	jnz %.8, @if_true.61, @if_false.62
 17@if_true.61
 18	ret 63
 19@if_false.62
 20	%.9 =w loadsb %.2
 21	%.10 =w extsb %.9
 22	%.11 =w ceqw %.10, 43
 23	jnz %.11, @if_true.63, @if_false.64
 24@if_true.63
 25	ret 62
 26@if_false.64
 27	%.12 =w loadsb %.2
 28	%.13 =w extsb %.12
 29	%.14 =w ceqw %.13, 45
 30	jnz %.14, @if_true.65, @if_false.66
 31@if_true.65
 32	ret 62
 33@if_false.66
 34	%.15 =w loadsb %.2
 35	%.16 =w extsb %.15
 36	%.17 =w ceqw %.16, 61
 37	jnz %.17, @if_true.67, @if_false.68
 38@if_true.67
 39	ret 254
 40@if_false.68
 41	%.18 =w loadsb %.2
 42	%.19 =w extsb %.18
 43	%.20 =w csltw %.19, 48
 44	jnz %.20, @if_true.69, @if_false.70
 45@if_true.69
 46	ret 255
 47@if_false.70
 48	%.21 =w loadsb %.2
 49	%.22 =w extsb %.21
 50	%.23 =w cslew %.22, 57
 51	jnz %.23, @logic_right.71, @logic_join.72
 52@logic_right.71
 53	%.24 =w loadsb %.2
 54	%.25 =w extsb %.24
 55	%.26 =w csgew %.25, 48
 56	%.27 =w cnew %.26, 0
 57@logic_join.72
 58	%.28 =w phi   @if_false.70    0, @logic_right.71 %.27
 59	jnz %.28, @if_true.73, @if_false.74
 60@if_true.73
 61	%.29 =w loadsb %.2
 62	%.30 =w extsb %.29
 63	%.31 =w sub 61, 57
 64	%.32 =w add %.30, %.31
 65	ret %.32
 66@if_false.74
 67	%.33 =w loadsb %.2
 68	%.34 =w extsb %.33
 69	%.35 =w cslew %.34, 90
 70	jnz %.35, @logic_right.75, @logic_join.76
 71@logic_right.75
 72	%.36 =w loadsb %.2
 73	%.37 =w extsb %.36
 74	%.38 =w csgew %.37, 65
 75	%.39 =w cnew %.38, 0
 76@logic_join.76
 77	%.40   =w   phi    @if_false.74 0,    @logic_right.75 %.39
 78	jnz %.40, @if_true.77, @if_false.78
 79@if_true.77
 80	%.41 =w loadsb %.2
 81	%.42 =w extsb %.41
 82	%.43 =w sub %.42, 65
 83	ret %.43
 84@if_false.78
 85	%.44 =w loadsb %.2
 86	%.45 =w extsb %.44
 87	%.46 =w cslew %.45, 122
 88	jnz %.46, @logic_right.79, @logic_join.80
 89@logic_right.79
 90	%.47 =w loadsb %.2
 91	%.48 =w extsb %.47
 92	%.49 =w csgew %.48, 97
 93	%.50 =w cnew %.49, 0
 94@logic_join.80
 95	%.51 =w phi @if_false.78 0 ,    @logic_right.79 %.50
 96	jnz %.51, @if_true.81, @if_false.82
 97@if_true.81
 98	%.52 =w loadsb %.2
 99	%.53 =w extsb %.52
100	%.54 =w sub 51, 122
101	%.55 =w add %.53, %.54
102	ret %.55
103@if_false.82
104	ret 255
105}