19a90cd40c6e510484e018afd087a4c239b616ee0Brian Paul/* 29a90cd40c6e510484e018afd087a4c239b616ee0Brian Paul * Clip testing in SPARC assembly 39a90cd40c6e510484e018afd087a4c239b616ee0Brian Paul */ 47943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 59f23a3a1bff6c8af93e651273c9887bbf119f555Ian Romanick#if __arch64__ 67943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define LDPTR ldx 77943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_DATA 0x00 87943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_START 0x08 97943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_COUNT 0x10 107943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_STRIDE 0x14 117943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_SIZE 0x18 127943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_FLAGS 0x1c 137943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#else 147943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define LDPTR ld 157943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_DATA 0x00 167943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_START 0x04 177943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_COUNT 0x08 187943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_STRIDE 0x0c 197943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_SIZE 0x10 207943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define V4F_FLAGS 0x14 217943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#endif 227943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 237943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define VEC_SIZE_1 1 247943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define VEC_SIZE_2 3 257943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define VEC_SIZE_3 7 267943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul#define VEC_SIZE_4 15 277943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 28462183fe4cb6df6d90632d9e2cee881c8d26b1cbAlan Hourihane .register %g2, #scratch 29462183fe4cb6df6d90632d9e2cee881c8d26b1cbAlan Hourihane .register %g3, #scratch 30462183fe4cb6df6d90632d9e2cee881c8d26b1cbAlan Hourihane 317943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .text 327943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .align 64 337943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 347943b349d696f8030f0d2f836ad42a762f4c6026Brian Paulone_dot_zero: 357943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .word 0x3f800000 /* 1.0f */ 367943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 377943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul /* This trick is shamelessly stolen from the x86 387943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * Mesa asm. Very clever, and we can do it too 397943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * since we have the necessary add with carry 407943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * instructions on Sparc. 417943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul */ 427943b349d696f8030f0d2f836ad42a762f4c6026Brian Paulclip_table: 437943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 0, 1, 0, 2, 4, 5, 4, 6 447943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 0, 1, 0, 2, 8, 9, 8, 10 457943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 32, 33, 32, 34, 36, 37, 36, 38 467943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 32, 33, 32, 34, 40, 41, 40, 42 477943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 0, 1, 0, 2, 4, 5, 4, 6 487943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 0, 1, 0, 2, 8, 9, 8, 10 497943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 16, 17, 16, 18, 20, 21, 20, 22 507943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 16, 17, 16, 18, 24, 25, 24, 26 517943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 63, 61, 63, 62, 55, 53, 55, 54 527943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 63, 61, 63, 62, 59, 57, 59, 58 537943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 47, 45, 47, 46, 39, 37, 39, 38 547943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 47, 45, 47, 46, 43, 41, 43, 42 557943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 63, 61, 63, 62, 55, 53, 55, 54 567943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 63, 61, 63, 62, 59, 57, 59, 58 577943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 31, 29, 31, 30, 23, 21, 23, 22 587943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .byte 31, 29, 31, 30, 27, 25, 27, 26 597943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 607943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul/* GLvector4f *clip_vec, GLvector4f *proj_vec, 61b4922b533155cc139ebafb111502bb55d2ad2ccfEric Anholt GLubyte clipMask[], GLubyte *orMask, GLubyte *andMask, 62b4922b533155cc139ebafb111502bb55d2ad2ccfEric Anholt GLboolean viewport_z_enable */ 637943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 647943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .align 64 657943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul__pc_tramp: 667943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul retl 677943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul nop 687943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 697943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .globl _mesa_sparc_cliptest_points4 707943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul_mesa_sparc_cliptest_points4: 717943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul save %sp, -64, %sp 727943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul call __pc_tramp 737943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul sub %o7, (. - one_dot_zero - 4), %g1 747943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%g1 + 0x0], %f4 757943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %g1, 0x4, %g1 767943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 777943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + V4F_STRIDE], %l1 78bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller ld [%i0 + V4F_COUNT], %l3 797943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul LDPTR [%i0 + V4F_START], %i0 807943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul LDPTR [%i1 + V4F_START], %i5 817943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ldub [%i3], %g2 827943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ldub [%i4], %g3 837943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul sll %g3, 8, %g3 847943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul or %g2, %g3, %g2 857943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 867943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i1 + V4F_FLAGS], %g3 877943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul or %g3, VEC_SIZE_4, %g3 887943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %g3, [%i1 + V4F_FLAGS] 897943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul mov 3, %g3 907943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %g3, [%i1 + V4F_SIZE] 91bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller st %l3, [%i1 + V4F_COUNT] 927943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul clr %l2 937943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul clr %l0 947943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 957943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul /* l0: i 96bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller * l3: count 977943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * l1: stride 987943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * l2: c 997943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * g2: (tmpAndMask << 8) | tmpOrMask 1007943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * g1: clip_table 1017943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * i0: from[stride][i] 1027943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * i2: clipMask 1037943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * i5: vProj[4][i] 1047943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul */ 1057943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 1067943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul1: ld [%i0 + 0x0c], %f3 ! LSU Group 1077943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x0c], %g5 ! LSU Group 1087943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x08], %g4 ! LSU Group 1097943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul fdivs %f4, %f3, %f8 ! FGM 1107943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addcc %g5, %g5, %g5 ! IEU1 Group 1117943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g0, 0x0, %g3 ! IEU1 Group 1127943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addcc %g4, %g4, %g4 ! IEU1 Group 1137943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 1147943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul subcc %g5, %g4, %g0 ! IEU1 Group 1157943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x04], %g4 ! LSU Group 1167943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 1177943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addcc %g4, %g4, %g4 ! IEU1 Group 1187943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 1197943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul subcc %g5, %g4, %g0 ! IEU1 Group 1207943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x00], %g4 ! LSU Group 1217943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 1227943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addcc %g4, %g4, %g4 ! IEU1 Group 1237943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 1247943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul subcc %g5, %g4, %g0 ! IEU1 Group 1257943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 1267943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ldub [%g1 + %g3], %g3 ! LSU Group 1277943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul cmp %g3, 0 ! IEU1 Group, stall 1287943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul be 2f ! CTI 1297943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul stb %g3, [%i2] ! LSU 1307943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul sll %g3, 8, %g4 ! IEU1 Group 1317943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %l2, 1, %l2 ! IEU0 1327943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %g0, [%i5 + 0x00] ! LSU 1337943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul or %g4, 0xff, %g4 ! IEU0 Group 1347943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul or %g2, %g3, %g2 ! IEU1 1357943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %g0, [%i5 + 0x04] ! LSU 1367943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul and %g2, %g4, %g2 ! IEU0 Group 1377943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %g0, [%i5 + 0x08] ! LSU 1387943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul b 3f ! CTI 1397943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %f4, [%i5 + 0x0c] ! LSU Group 1407943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul2: ld [%i0 + 0x00], %f0 ! LSU Group 1417943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x04], %f1 ! LSU Group 1427943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x08], %f2 ! LSU Group 1437943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul fmuls %f0, %f8, %f0 ! FGM 1447943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %f0, [%i5 + 0x00] ! LSU Group 1457943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul fmuls %f1, %f8, %f1 ! FGM 1467943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %f1, [%i5 + 0x04] ! LSU Group 1477943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul fmuls %f2, %f8, %f2 ! FGM 1487943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %f2, [%i5 + 0x08] ! LSU Group 1497943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul st %f8, [%i5 + 0x0c] ! LSU Group 1507943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul3: add %i5, 0x10, %i5 ! IEU1 1517943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %l0, 1, %l0 ! IEU0 Group 1527943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %i2, 1, %i2 ! IEU0 Group 153bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller cmp %l0, %l3 ! IEU1 Group 1547943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul bne 1b ! CTI 1557943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %i0, %l1, %i0 ! IEU0 Group 1567943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul stb %g2, [%i3] ! LSU 1577943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul srl %g2, 8, %g3 ! IEU0 Group 158bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller cmp %l2, %l3 ! IEU1 Group 1597943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul bl,a 1f ! CTI 1607943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul clr %g3 ! IEU0 1617943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul1: stb %g3, [%i4] ! LSU Group 1627943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ret ! CTI Group 1637943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul restore %i1, 0x0, %o0 1647943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 1657943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul .globl _mesa_sparc_cliptest_points4_np 1667943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul_mesa_sparc_cliptest_points4_np: 1677943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul save %sp, -64, %sp 1687943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 1697943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul call __pc_tramp 1707943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul sub %o7, (. - one_dot_zero - 4), %g1 1717943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %g1, 0x4, %g1 1727943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 1737943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + V4F_STRIDE], %l1 174bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller ld [%i0 + V4F_COUNT], %l3 1757943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul LDPTR [%i0 + V4F_START], %i0 1767943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ldub [%i3], %g2 1777943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ldub [%i4], %g3 1787943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul sll %g3, 8, %g3 1797943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul or %g2, %g3, %g2 1807943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 1817943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul clr %l2 1827943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul clr %l0 1837943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 1847943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul /* l0: i 185bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller * l3: count 1867943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * l1: stride 1877943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * l2: c 1887943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * g2: (tmpAndMask << 8) | tmpOrMask 1897943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * g1: clip_table 1907943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * i0: from[stride][i] 1917943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul * i2: clipMask 1927943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul */ 1937943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul 1947943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul1: ld [%i0 + 0x0c], %g5 ! LSU Group 1957943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x08], %g4 ! LSU Group 1967943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addcc %g5, %g5, %g5 ! IEU1 Group 1977943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g0, 0x0, %g3 ! IEU1 Group 1987943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addcc %g4, %g4, %g4 ! IEU1 Group 1997943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 2007943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul subcc %g5, %g4, %g0 ! IEU1 Group 2017943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x04], %g4 ! LSU Group 2027943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 2037943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addcc %g4, %g4, %g4 ! IEU1 Group 2047943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 2057943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul subcc %g5, %g4, %g0 ! IEU1 Group 2067943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ld [%i0 + 0x00], %g4 ! LSU Group 2077943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 2087943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addcc %g4, %g4, %g4 ! IEU1 Group 2097943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 2107943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul subcc %g5, %g4, %g0 ! IEU1 Group 2117943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul addx %g3, %g3, %g3 ! IEU1 Group 2127943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ldub [%g1 + %g3], %g3 ! LSU Group 2137943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul cmp %g3, 0 ! IEU1 Group, stall 2147943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul be 2f ! CTI 2157943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul stb %g3, [%i2] ! LSU 2167943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul sll %g3, 8, %g4 ! IEU1 Group 2177943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %l2, 1, %l2 ! IEU0 2187943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul or %g4, 0xff, %g4 ! IEU0 Group 2197943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul or %g2, %g3, %g2 ! IEU1 2207943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul and %g2, %g4, %g2 ! IEU0 Group 2217943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul2: add %l0, 1, %l0 ! IEU0 Group 2227943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %i2, 1, %i2 ! IEU0 Group 223bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller cmp %l0, %l3 ! IEU1 Group 2247943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul bne 1b ! CTI 2257943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul add %i0, %l1, %i0 ! IEU0 Group 2267943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul stb %g2, [%i3] ! LSU 2277943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul srl %g2, 8, %g3 ! IEU0 Group 228bde27b0d94dc2b3d0d4656e2c85ecbbd1245b3acDavid Miller cmp %l2, %l3 ! IEU1 Group 2297943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul bl,a 1f ! CTI 2307943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul clr %g3 ! IEU0 2317943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul1: stb %g3, [%i4] ! LSU Group 2327943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul ret ! CTI Group 2337943b349d696f8030f0d2f836ad42a762f4c6026Brian Paul restore %i1, 0x0, %o0 234