diff options
Diffstat (limited to 'code/tools/lcc/sparc/solaris/tst/switch.sbk')
-rw-r--r-- | code/tools/lcc/sparc/solaris/tst/switch.sbk | 713 |
1 files changed, 713 insertions, 0 deletions
diff --git a/code/tools/lcc/sparc/solaris/tst/switch.sbk b/code/tools/lcc/sparc/solaris/tst/switch.sbk new file mode 100644 index 0000000..2566d07 --- /dev/null +++ b/code/tools/lcc/sparc/solaris/tst/switch.sbk @@ -0,0 +1,713 @@ +.global main +.section ".text" +.align 4 +main: +save %sp,-96,%sp +set .L6,%i5 +ba .L5; nop +.L2: +ldsb [%i5],%o0 +call backslash; nop +mov %o0,%i3 +set .L7,%o0 +ldsb [%i5],%o1 +mov %i3,%o2 +call printf; nop +.L3: +add %i5,1,%i5 +.L5: +ldsb [%i5],%i3 +cmp %i3,0; bne .L2; nop +call f; nop +call g; nop +call h; nop +set 16777216,%i4 +ba .L11; nop +.L8: +mov %i4,%o0 +call big; nop +.L9: +set 16777216,%i3 +add %i4,%i3,%i4 +.L11: +set 117440512,%i3 +and %i4,%i3,%i3 +cmp %i3,0; bne .L8; nop +call limit; nop +mov %g0,%i0 +.L1: +ret; restore +.type main,#function +.size main,.-main +.global backslash +.align 4 +backslash: +cmp %o0,102; be .L16; nop +cmp %o0,102; bg .L22; nop +.L21: +cmp %o0,98; be .L15; nop +ba .L13; nop +.L22: +cmp %o0,110; be .L17; nop +cmp %o0,110; bl .L13; nop +.L23: +cmp %o0,114; be .L18; nop +cmp %o0,116; be .L19; nop +cmp %o0,118; be .L20; nop +ba .L13; nop +.L15: +set 8,%o0 +ba .L12; nop +.L16: +set 12,%o0 +ba .L12; nop +.L17: +set 10,%o0 +ba .L12; nop +.L18: +set 13,%o0 +ba .L12; nop +.L19: +set 9,%o0 +ba .L12; nop +.L20: +set 11,%o0 +ba .L12; nop +.L13: +.L12: +retl; nop +.type backslash,#function +.size backslash,.-backslash +.global f +.align 4 +f: +save %sp,-96,%sp +mov %g0,%i4 +set .L25,%o0 +call printf; nop +mov %g0,%i5 +.L26: +mov %i5,%i3 +cmp %i5,1; bl .L30; nop +cmp %i5,20; bg .L30; nop +sll %i5,2,%i2 +set .L42-4,%i1 +ld [%i2+%i1],%i2 +jmp %i2; nop +.section ".rodata" +.align 4 +.L42: +.word .L32 +.word .L33 +.word .L30 +.word .L30 +.word .L30 +.word .L30 +.word .L34 +.word .L35 +.word .L36 +.word .L30 +.word .L30 +.word .L30 +.word .L30 +.word .L30 +.word .L30 +.word .L37 +.word .L38 +.word .L39 +.word .L40 +.word .L41 +.section ".text" +.L32: +mov %i5,%i4 +ba .L31; nop +.L33: +mov %i5,%i4 +ba .L31; nop +.L34: +mov %i5,%i4 +ba .L31; nop +.L35: +mov %i5,%i4 +ba .L31; nop +.L36: +mov %i5,%i4 +ba .L31; nop +.L37: +mov %i5,%i4 +ba .L31; nop +.L38: +mov %i5,%i4 +ba .L31; nop +.L39: +mov %i5,%i4 +ba .L31; nop +.L40: +mov %i5,%i4 +ba .L31; nop +.L41: +mov %i5,%i4 +.L30: +.L31: +set .L44,%o0 +mov %i4,%o1 +call printf; nop +.L27: +add %i5,1,%i5 +cmp %i5,20; ble .L26; nop +mov %g0,%i0 +.L24: +ret; restore +.type f,#function +.size f,.-f +.global g +.align 4 +g: +save %sp,-96,%sp +set .L46,%o0 +call printf; nop +set 1,%i5 +.L47: +cmp %i5,1001; bl .L64; nop +cmp %i5,1004; bg .L65; nop +sll %i5,2,%i4 +set .L66-4004,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L66: +.word .L60 +.word .L60 +.word .L60 +.word .L60 +.section ".text" +.L64: +cmp %i5,1; bl .L51; nop +cmp %i5,8; bg .L51; nop +sll %i5,2,%i4 +set .L68-4,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L68: +.word .L53 +.word .L53 +.word .L55 +.word .L55 +.word .L55 +.word .L57 +.word .L57 +.word .L57 +.section ".text" +.L65: +cmp %i5,3001; bl .L51; nop +cmp %i5,3004; bg .L51; nop +sll %i5,2,%i4 +set .L70-12004,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L70: +.word .L62 +.word .L62 +.word .L62 +.word .L62 +.section ".text" +.L53: +set .L54,%o0 +mov %i5,%o1 +call printf; nop +ba .L52; nop +.L55: +set .L56,%o0 +mov %i5,%o1 +call printf; nop +ba .L52; nop +.L57: +set .L58,%o0 +mov %i5,%o1 +call printf; nop +.L51: +set .L59,%o0 +mov %i5,%o1 +call printf; nop +ba .L52; nop +.L60: +set .L61,%o0 +mov %i5,%o1 +call printf; nop +ba .L52; nop +.L62: +set .L63,%o0 +mov %i5,%o1 +call printf; nop +.L52: +.L48: +add %i5,1,%i5 +cmp %i5,10; ble .L47; nop +mov %g0,%i0 +.L45: +ret; restore +.type g,#function +.size g,.-g +.global h +.align 4 +h: +save %sp,-96,%sp +mov %g0,%i4 +set .L73,%o0 +call printf; nop +set 1,%i5 +.L74: +cmp %i5,264; be .L86; nop +cmp %i5,264; bg .L94; nop +.L93: +cmp %i5,120; be .L84; nop +cmp %i5,120; bg .L96; nop +.L95: +cmp %i5,8; be .L83; nop +cmp %i5,8; bl .L78; nop +.L97: +cmp %i5,16; be .L82; nop +ba .L78; nop +.L96: +cmp %i5,128; be .L80; nop +cmp %i5,128; bl .L78; nop +.L98: +cmp %i5,248; be .L87; nop +ba .L78; nop +.L94: +cmp %i5,288; be .L91; nop +cmp %i5,288; bg .L100; nop +.L99: +cmp %i5,272; be .L88; nop +cmp %i5,272; bl .L78; nop +.L101: +cmp %i5,280; be .L85; nop +ba .L78; nop +.L100: +cmp %i5,304; be .L89; nop +cmp %i5,304; bg .L103; nop +.L102: +cmp %i5,296; be .L90; nop +ba .L78; nop +.L103: +cmp %i5,312; be .L92; nop +ba .L78; nop +.L78: +add %i4,1,%i4 +ba .L75; nop +.L80: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L82: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L83: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L84: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L85: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L86: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L87: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L88: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L89: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L90: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L91: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +ba .L79; nop +.L92: +set .L81,%o0 +mov %i5,%o1 +call printf; nop +.L79: +.L75: +add %i5,1,%i5 +cmp %i5,500; ble .L74; nop +set .L104,%o0 +mov %i4,%o1 +call printf; nop +mov %g0,%i0 +.L72: +ret; restore +.type h,#function +.size h,.-h +.global big +.align 4 +big: +save %sp,-96,%sp +set 0x6000000,%i4 +and %i0,%i4,%i5 +set 33554432,%i3 +cmp %i5,%i3; be .L111; nop +cmp %i5,%i3; bg .L115; nop +.L114: +cmp %i5,-2; be .L109; nop +cmp %i5,-1; be .L109; nop +cmp %i5,0; be .L109; nop +ba .L106; nop +.L115: +mov %i5,%i4 +set 67108864,%i3 +cmp %i4,%i3; be .L112; nop +ba .L106; nop +.L109: +set .L110,%o0 +mov %i0,%o1 +call printf; nop +ba .L107; nop +.L111: +set .L110,%o0 +mov %i0,%o1 +call printf; nop +ba .L107; nop +.L112: +set .L110,%o0 +mov %i0,%o1 +call printf; nop +ba .L107; nop +.L106: +set .L113,%o0 +mov %i0,%o1 +call printf; nop +.L107: +mov %g0,%i0 +.L105: +ret; restore +.type big,#function +.size big,.-big +.global limit +.align 4 +limit: +save %sp,-96,%sp +set -2147483648,%i5 +.L117: +set -2147483648,%i4 +cmp %i5,%i4; bl .L121; nop +set -2147483644,%i3 +cmp %i5,%i3; bg .L121; nop +sll %i5,2,%i3 +sll %i4,2,%i4 +sub %i3,%i4,%i4 +set .L134,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L134: +.word .L123 +.word .L125 +.word .L127 +.word .L129 +.word .L131 +.section ".text" +.L123: +set .L124,%o0 +call printf; nop +ba .L122; nop +.L125: +set .L126,%o0 +call printf; nop +ba .L122; nop +.L127: +set .L128,%o0 +call printf; nop +ba .L122; nop +.L129: +set .L130,%o0 +call printf; nop +ba .L122; nop +.L131: +set .L132,%o0 +call printf; nop +ba .L122; nop +.L121: +set .L133,%o0 +call printf; nop +.L122: +.L118: +add %i5,1,%i5 +set -2147483643,%i4 +cmp %i5,%i4; ble .L117; nop +set 2147483647,%i5 +.L135: +set 2147483643,%i4 +cmp %i5,%i4; bl .L139; nop +set 2147483647,%i3 +cmp %i5,%i3; bg .L139; nop +sll %i5,2,%i3 +sll %i4,2,%i4 +sub %i3,%i4,%i4 +set .L146,%i3 +ld [%i4+%i3],%i4 +jmp %i4; nop +.section ".rodata" +.align 4 +.L146: +.word .L145 +.word .L144 +.word .L143 +.word .L142 +.word .L141 +.section ".text" +.L141: +set .L124,%o0 +call printf; nop +ba .L140; nop +.L142: +set .L126,%o0 +call printf; nop +ba .L140; nop +.L143: +set .L128,%o0 +call printf; nop +ba .L140; nop +.L144: +set .L130,%o0 +call printf; nop +ba .L140; nop +.L145: +set .L132,%o0 +call printf; nop +ba .L140; nop +.L139: +set .L133,%o0 +call printf; nop +.L140: +.L136: +sub %i5,1,%i5 +set 2147483642,%i4 +cmp %i5,%i4; bge .L135; nop +mov %g0,%i0 +.L116: +ret; restore +.type limit,#function +.size limit,.-limit +.section ".rodata" +.align 1 +.L133: +.byte 53 +.byte 10 +.byte 0 +.align 1 +.L132: +.byte 52 +.byte 10 +.byte 0 +.align 1 +.L130: +.byte 51 +.byte 10 +.byte 0 +.align 1 +.L128: +.byte 50 +.byte 10 +.byte 0 +.align 1 +.L126: +.byte 49 +.byte 10 +.byte 0 +.align 1 +.L124: +.byte 48 +.byte 10 +.byte 0 +.align 1 +.L113: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 32 +.byte 40 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 41 +.byte 10 +.byte 0 +.align 1 +.L110: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.L104: +.byte 37 +.byte 100 +.byte 32 +.byte 100 +.byte 101 +.byte 102 +.byte 97 +.byte 117 +.byte 108 +.byte 116 +.byte 115 +.byte 10 +.byte 0 +.align 1 +.L81: +.byte 105 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L73: +.byte 104 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L63: +.byte 54 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L61: +.byte 53 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L59: +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L58: +.byte 51 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L56: +.byte 50 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L54: +.byte 49 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L46: +.byte 103 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L44: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.L25: +.byte 102 +.byte 58 +.byte 10 +.byte 0 +.align 1 +.L7: +.byte 37 +.byte 99 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.L6: +.byte 98 +.byte 102 +.byte 110 +.byte 114 +.byte 116 +.byte 118 +.byte 120 +.byte 0 |