Revision 53 project/spec2000/176.gcc/regclass.s

View differences:

regclass.s
1190 1190
	st	 r0,r9,lo16(_prefclass)
1191 1191
@Lte5:
1192 1192

  
1193
	align	 8
1194
	global	 _regclass
1195
_regclass:
1196
	subu	 r31,r31,96
1197
	st	 r1,r31,84
1198
	st	 r30,r31,80
1199
	st.d	 r24,r31,72
1200
	st.d	 r22,r31,64
1201
	addu	 r30,r31,80
1202
	st.d	 r20,r31,56
1203
	or	 r25,r0,r2
1204
	st.d	 r16,r31,40
1205
	or	 r17,r0,r3
1206
	bsr.n	 _init_recog
1207
	st.d	 r18,r31,48
1208
@Ltb6:
1209
	mak	 r4,r17,0<5>
1210
	or	 r3,r0,0
1211
	subu	 r31,r31,r4
1212
	or.u	 r13,r0,hi16(_savings)
1213
	addu	 r2,r31,32
1214
	or	 r21,r0,r25
1215
	bsr.n	 _memset
1216
	st	 r2,r13,lo16(_savings)
1217
	bcnd.n	 eq0,r21,@L564
1218
	or.u	 r13,r0,hi16(_insn_n_operands)
1219
	or.u	 r18,r0,hi16(_recog_operand)
1220
	or	 r16,r13,lo16(_insn_n_operands)
1221
@L566:
1222
	ld.hu	 r13,r0,r21
1223
	cmp	 r13,r13,13
1224
	bb1	 ne,r13,@L569
1225
	ld	 r13,r21,16
1226
	ld.hu	 r12,r0,r13
1227
	subu	 r13,r12,26
1228
	mask	 r13,r13,0xffff
1229
	cmp	 r13,r13,1
1230
	bb1.n	 ls,r13,@L569
1231
	mask	 r13,r12,0xffff
1232
	cmp	 r13,r13,21
1233
	bb1	 ne,r13,@L568
1234
@L569:
1235
	ld.hu	 r12,r0,r21
1236
	cmp	 r13,r12,14
1237
	bb1.n	 ne,r13,@L728
1238
	cmp	 r13,r12,15
1239
	ld	 r13,r21,16
1240
	ld.hu	 r13,r0,r13
1241
	subu	 r13,r13,23
1242
	mask	 r13,r13,0xffff
1243
	cmp	 r13,r13,1
1244
	bb0.n	 ls,r13,@L568
1245
	cmp	 r13,r12,15
1246
@L728:
1247
	bb1	 ne,r13,@L565
1248
@L568:
1249
	ld.hu	 r13,r0,r21
1250
	cmp	 r13,r13,13
1251
	bb1	 ne,r13,@L571
1252
	bsr.n	 _asm_noperands
1253
	ld	 r2,r21,16
1254
	bcnd	 lt0,r2,@L571
1255
	bsr.n	 _asm_noperands
1256
	ld	 r2,r21,16
1257
	or	 r22,r0,r2
1258
	mak	 r25,r22,0<2>
1259
	bsr.n	 _oballoc
1260
	or	 r2,r0,r25
1261
	or	 r24,r0,r2
1262
	bsr.n	 _oballoc
1263
	or	 r2,r0,r25
1264
	or	 r23,r0,r2
1265
	ld	 r2,r21,16
1266
	or	 r3,r0,r24
1267
	or	 r4,r0,0
1268
	or	 r6,r0,0
1269
	or	 r5,r0,r23
1270
	bsr.n	 _decode_asm_operands
1271
	subu	 r25,r22,1
1272
	bcnd.n	 lt0,r25,@L573
1273
	xor.c	 r13,r25,r0
1274
	bcnd.n	 lt0,r25,@L711
1275
	mask	 r12,r13,3
1276
	bcnd.n	 eq0,r12,@L575
1277
	cmp	 r13,r12,3
1278
	bb1.n	 ge,r13,@L711
1279
	cmp	 r13,r12,2
1280
	bb1	 ge,r13,@L712
1281
	ld	 r2,r24[r25]
1282
	or	 r3,r0,r25
1283
	or	 r4,r0,r23
1284
	bsr.n	 _reg_class_record
1285
	subu	 r25,r22,2
1286
@L712:
1287
	ld	 r2,r24[r25]
1288
	or	 r3,r0,r25
1289
	or	 r4,r0,r23
1290
	bsr.n	 _reg_class_record
1291
	subu	 r25,r25,1
1292
@L711:
1293
	ld	 r2,r24[r25]
1294
	or	 r3,r0,r25
1295
	or	 r4,r0,r23
1296
	bsr.n	 _reg_class_record
1297
	subu	 r25,r25,1
1298
	bcnd.n	 lt0,r25,@L729
1299
	or	 r2,r0,r24
1300
@L575:
1301
	ld	 r2,r24[r25]
1302
	or	 r3,r0,r25
1303
	bsr.n	 _reg_class_record
1304
	or	 r4,r0,r23
1305
	subu	 r3,r25,1
1306
	ld	 r2,r24[r3]
1307
	bsr.n	 _reg_class_record
1308
	or	 r4,r0,r23
1309
	subu	 r3,r25,2
1310
	ld	 r2,r24[r3]
1311
	bsr.n	 _reg_class_record
1312
	or	 r4,r0,r23
1313
	subu	 r3,r25,3
1314
	ld	 r2,r24[r3]
1315
	or	 r4,r0,r23
1316
	bsr.n	 _reg_class_record
1317
	subu	 r25,r25,4
1318
	bcnd	 ge0,r25,@L575
1319
@L573:
1320
	or	 r2,r0,r24
1321
@L729:
1322
	bsr.n	 _obfree
1323
	addu	 r1,r1,@L739
1324
@L740:
1325
	align	 4
1326
@L571:
1327
	bsr.n	 _recog_memoized
1328
	or	 r2,r0,r21
1329
	or	 r19,r0,r2
1330
	bsr.n	 _insn_extract
1331
	or	 r2,r0,r21
1332
	ld	 r20,r16[r19]
1333
	subu	 r25,r20,1
1334
	bcnd	 lt0,r25,@L579
1335
	mul	 r24,r19,20
1336
	or.u	 r13,r0,hi16(_recog_operand)
1337
	xor.c	 r12,r25,r0
1338
	or	 r22,r13,lo16(_recog_operand)
1339
	or.u	 r13,r0,hi16(_insn_operand_constraint)
1340
	mask	 r12,r12,3
1341
	bcnd.n	 lt0,r25,@L692
1342
	or	 r23,r13,lo16(_insn_operand_constraint)
1343
	bcnd.n	 eq0,r12,@L581
1344
	cmp	 r13,r12,3
1345
	bb1.n	 ge,r13,@L692
1346
	cmp	 r13,r12,2
1347
	bb1	 ge,r13,@L693
1348
	ld	 r2,r22[r25]
1349
	or	 r3,r0,r25
1350
	addu	 r4,r24,r23
1351
	bsr.n	 _reg_class_record
1352
	subu	 r25,r20,2
1353
@L693:
1354
	ld	 r2,r22[r25]
1355
	or	 r3,r0,r25
1356
	addu	 r4,r24,r23
1357
	bsr.n	 _reg_class_record
1358
	subu	 r25,r25,1
1359
@L692:
1360
	ld	 r2,r22[r25]
1361
	or	 r3,r0,r25
1362
	addu	 r4,r24,r23
1363
	bsr.n	 _reg_class_record
1364
	subu	 r25,r25,1
1365
	bcnd.n	 lt0,r25,@L730
1366
	or.u	 r13,r0,hi16(_optimize)
1367
@L581:
1368
	ld	 r2,r22[r25]
1369
	or	 r3,r0,r25
1370
	bsr.n	 _reg_class_record
1371
	addu	 r4,r24,r23
1372
	subu	 r3,r25,1
1373
	ld	 r2,r22[r3]
1374
	bsr.n	 _reg_class_record
1375
	addu	 r4,r24,r23
1376
	subu	 r3,r25,2
1377
	ld	 r2,r22[r3]
1378
	bsr.n	 _reg_class_record
1379
	addu	 r4,r24,r23
1380
	subu	 r3,r25,3
1381
	ld	 r2,r22[r3]
1382
	addu	 r4,r24,r23
1383
	bsr.n	 _reg_class_record
1384
	subu	 r25,r25,4
1385
	bcnd	 ge0,r25,@L581
1386
@L579:
1387
	or.u	 r13,r0,hi16(_optimize)
1388
@L730:
1389
	ld	 r13,r13,lo16(_optimize)
1390
	bcnd	 eq0,r13,@L565
1391
	ld	 r13,r16[r19]
1392
	cmp	 r13,r13,2
1393
	bb1.n	 le,r13,@L565
1394
	or.u	 r12,r0,hi16(_insn_operand_constraint)
1395
	mul	 r13,r19,20
1396
	or	 r12,r12,lo16(_insn_operand_constraint)
1397
	addu	 r13,r13,r12
1398
	ld	 r12,r13,4
1399
	ld.b	 r13,r0,r12
1400
	cmp	 r13,r13,48
1401
	bb1	 ne,r13,@L565
1402
	ld.b	 r13,r12,1
1403
	bcnd	 ne0,r13,@L565
1404
	or.u	 r23,r0,hi16(_recog_operand+4)
1405
	ld	 r3,r23,lo16(_recog_operand+4)
1406
	ld.hu	 r12,r0,r3
1407
	subu	 r13,r12,38
1408
	mask	 r13,r13,0xffff
1409
	cmp	 r13,r13,1
1410
	bb1.n	 ls,r13,@L584
1411
	or	 r25,r23,lo16(_recog_operand+4)
1412
	mask	 r13,r12,0xffff
1413
	cmp	 r12,r13,30
1414
	cmp	 r13,r13,32
1415
	or	 r12,r12,r13
1416
	extu	 r12,r12,1<eq>
1417
	bcnd	 eq0,r12,@L565
1418
@L584:
1419
	subu	 r24,r25,4
1420
	bsr.n	 _rtx_equal_p
1421
	ld	 r2,r0,r24
1422
	bcnd	 ne0,r2,@L565
1423
	ld	 r2,r0,r24
1424
	bsr.n	 _rtx_equal_p
1425
	ld	 r3,r25,4
1426
	bcnd	 ne0,r2,@L565
1427
	ld	 r13,r0,r24
1428
	ld.hu	 r13,r0,r13
1429
	cmp	 r13,r13,34
1430
	bb1	 ne,r13,@L565
1431
	bsr.n	 _prev_real_insn
1432
	or	 r2,r0,r21
1433
	or	 r25,r0,r2
1434
	ld	 r2,r0,r24
1435
	bsr.n	 _gen_move_insn
1436
	ld	 r3,r23,lo16(_recog_operand+4)
1437
	bsr.n	 _emit_insn_before
1438
	or	 r3,r0,r21
1439
	bcnd	 eq0,r25,@L586
1440
	ld.hu	 r13,r0,r25
1441
	cmp	 r13,r13,14
1442
	bb1.n	 ne,r13,@L731
1443
	or.u	 r12,r0,hi16(_reg_n_sets)
1444
@L586:
1445
	or.u	 r13,r0,hi16(_n_basic_blocks)
1446
	ld	 r13,r13,lo16(_n_basic_blocks)
1447
	bcnd.n	 le0,r13,@L585
1448
	or	 r11,r0,0
1449
	or	 r9,r0,r13
1450
	or.u	 r13,r0,hi16(_basic_block_head)
1451
	mask	 r12,r9,3
1452
	ld	 r10,r13,lo16(_basic_block_head)
1453
	bcnd.n	 eq0,r12,@L590
1454
	cmp	 r13,r12,1
1455
	bb0.n	 gt,r13,@L666
1456
	cmp	 r13,r12,2
1457
	bb0	 gt,r13,@L667
1458
	ld	 r13,r0,r10
1459
	cmp	 r13,r21,r13
1460
	bb1	 ne,r13,@L669
1461
	st	 r2,r0,r10
1462
@L669:
1463
	or	 r11,r0,1
1464
@L667:
1465
	ld	 r13,r10[r11]
1466
	cmp	 r13,r21,r13
1467
	bb1	 ne,r13,@L672
1468
	st	 r2,r10[r11]
1469
@L672:
1470
	addu	 r11,r11,1
1471
@L666:
1472
	ld	 r13,r10[r11]
1473
	cmp	 r13,r21,r13
1474
	bb1	 ne,r13,@L675
1475
	st	 r2,r10[r11]
1476
@L675:
1477
	addu	 r11,r11,1
1478
	cmp	 r13,r11,r9
1479
	bb0	 lt,r13,@L585
1480
@L590:
1481
	ld	 r13,r10[r11]
1482
	cmp	 r13,r21,r13
1483
	bb1	 ne,r13,@L678
1484
	st	 r2,r10[r11]
1485
@L678:
1486
	addu	 r12,r11,1
1487
	ld	 r13,r10[r12]
1488
	cmp	 r13,r21,r13
1489
	bb1	 ne,r13,@L681
1490
	st	 r2,r10[r12]
1491
@L681:
1492
	addu	 r12,r11,2
1493
	ld	 r13,r10[r12]
1494
	cmp	 r13,r21,r13
1495
	bb1	 ne,r13,@L684
1496
	st	 r2,r10[r12]
1497
@L684:
1498
	addu	 r12,r11,3
1499
	ld	 r13,r10[r12]
1500
	cmp	 r13,r21,r13
1501
	bb1	 ne,r13,@L687
1502
	st	 r2,r10[r12]
1503
@L687:
1504
	addu	 r11,r11,4
1505
	cmp	 r13,r11,r9
1506
	bb1	 lt,r13,@L590
1507
@L585:
1508
	or.u	 r12,r0,hi16(_reg_n_sets)
1509
@L731:
1510
	ld	 r13,r18,lo16(_recog_operand)
1511
	ld	 r12,r12,lo16(_reg_n_sets)
1512
	ld	 r11,r13,4
1513
	ld.hu	 r13,r12[r11]
1514
	addu	 r13,r13,1
1515
	st.h	 r13,r12[r11]
1516
	or.u	 r13,r0,hi16(_recog_operand_loc+4)
1517
	ld	 r12,r18,lo16(_recog_operand)
1518
	ld	 r11,r13,lo16(_recog_operand_loc+4)
1519
	or.u	 r13,r0,hi16(_insn_n_dups)
1520
	or	 r13,r13,lo16(_insn_n_dups)
1521
	st	 r12,r0,r11
1522
	ld	 r2,r13[r19]
1523
	subu	 r25,r2,1
1524
	bcnd.n	 lt0,r25,@L565
1525
	or.u	 r13,r0,hi16(_recog_dup_num)
1526
	xor.c	 r12,r25,r0
1527
	or	 r10,r13,lo16(_recog_dup_num)
1528
	or.u	 r13,r0,hi16(_recog_dup_loc)
1529
	mask	 r12,r12,3
1530
	bcnd.n	 lt0,r25,@L640
1531
	or	 r11,r13,lo16(_recog_dup_loc)
1532
	bcnd.n	 eq0,r12,@L596
1533
	cmp	 r13,r12,3
1534
	bb1.n	 ge,r13,@L640
1535
	cmp	 r13,r12,2
1536
	bb1	 ge,r13,@L641
1537
	ld.b	 r13,r25,r10
1538
	cmp	 r13,r13,1
1539
	bb1	 ne,r13,@L643
1540
	ld	 r12,r11[r25]
1541
	ld	 r13,r18,lo16(_recog_operand)
1542
	st	 r13,r0,r12
1543
@L643:
1544
	subu	 r25,r2,2
1545
@L641:
1546
	ld.b	 r13,r25,r10
1547
	cmp	 r13,r13,1
1548
	bb1	 ne,r13,@L646
1549
	ld	 r12,r11[r25]
1550
	ld	 r13,r18,lo16(_recog_operand)
1551
	st	 r13,r0,r12
1552
@L646:
1553
	subu	 r25,r25,1
1554
@L640:
1555
	ld.b	 r13,r25,r10
1556
	cmp	 r13,r13,1
1557
	bb1	 ne,r13,@L649
1558
	ld	 r12,r11[r25]
1559
	ld	 r13,r18,lo16(_recog_operand)
1560
	st	 r13,r0,r12
1561
@L649:
1562
	subu	 r25,r25,1
1563
	bcnd	 lt0,r25,@L565
1564
@L596:
1565
	ld.b	 r13,r25,r10
1566
	cmp	 r13,r13,1
1567
	bb1.n	 ne,r13,@L732
1568
	subu	 r12,r25,1
1569
	ld	 r12,r11[r25]
1570
	ld	 r13,r18,lo16(_recog_operand)
1571
	st	 r13,r0,r12
1572
	subu	 r12,r25,1
1573
@L732:
1574
	ld.b	 r13,r12,r10
1575
	cmp	 r13,r13,1
1576
	bb1	 ne,r13,@L655
1577
	ld	 r12,r11[r12]
1578
	ld	 r13,r18,lo16(_recog_operand)
1579
	st	 r13,r0,r12
1580
@L655:
1581
	subu	 r12,r25,2
1582
	ld.b	 r13,r12,r10
1583
	cmp	 r13,r13,1
1584
	bb1	 ne,r13,@L658
1585
	ld	 r12,r11[r12]
1586
	ld	 r13,r18,lo16(_recog_operand)
1587
	st	 r13,r0,r12
1588
@L658:
1589
	subu	 r12,r25,3
1590
	ld.b	 r13,r12,r10
1591
	cmp	 r13,r13,1
1592
	bb1	 ne,r13,@L661
1593
	ld	 r12,r11[r12]
1594
	ld	 r13,r18,lo16(_recog_operand)
1595
	st	 r13,r0,r12
1596
@L661:
1597
	subu	 r25,r25,4
1598
	bcnd	 ge0,r25,@L596
1599
@L565:
1600
	ld	 r21,r21,12
1601
	bcnd	 ne0,r21,@L566
1602
@L564:
1603
	or	 r2,r0,r17
1604
	bsr.n	 _oballoc
1605
	or.u	 r25,r0,hi16(_prefclass)
1606
	st	 r2,r25,lo16(_prefclass)
1607
	or	 r2,r0,r17
1608
	bsr.n	 _oballoc
1609
	or	 r25,r0,56
1610
	or.u	 r13,r0,hi16(_preferred_or_nothing)
1611
	cmp	 r12,r25,r17
1612
	bb0.n	 lt,r12,@L601
1613
	st	 r2,r13,lo16(_preferred_or_nothing)
1614
	or.u	 r13,r0,hi16(_reg_class_subunion)
1615
	or	 r5,r13,lo16(_reg_class_subunion)
1616
	or	 r8,r0,0
1617
@L738:
1618
	or	 r11,r0,13
1619
	or.u	 r13,r0,hi16(_savings)
1620
	or	 r7,r0,12
1621
	ld	 r12,r13,lo16(_savings)
1622
	mak	 r13,r25,0<5>
1623
	or	 r9,r0,48
1624
	addu	 r6,r12,r13
1625
@L607:
1626
	ld.h	 r12,r6[r7]
1627
	cmp	 r13,r12,r8
1628
	bb0	 gt,r13,@L616
1629
	or	 r8,r0,r12
1630
	br.n	 @L614
1631
	or	 r11,r0,r7
1632
	align	 4
1633
@L616:
1634
	bb1.n	 ne,r13,@L733
1635
	subu	 r10,r7,1
1636
	mul	 r13,r11,56
1637
	addu	 r13,r13,r5
1638
	ld	 r11,r13,r9
1639
@L614:
1640
	subu	 r10,r7,1
1641
@L733:
1642
	ld.h	 r12,r6[r10]
1643
	cmp	 r13,r12,r8
1644
	bb0.n	 gt,r13,@L620
1645
	subu	 r9,r9,4
1646
	or	 r8,r0,r12
1647
	br.n	 @L618
1648
	or	 r11,r0,r10
1649
	align	 4
1650
@L620:
1651
	bb1.n	 ne,r13,@L734
1652
	subu	 r10,r7,2
1653
	mul	 r13,r11,56
1654
	addu	 r13,r13,r5
1655
	ld	 r11,r13,r9
1656
@L618:
1657
	subu	 r10,r7,2
1658
@L734:
1659
	ld.h	 r12,r6[r10]
1660
	cmp	 r13,r12,r8
1661
	bb0.n	 gt,r13,@L624
1662
	subu	 r9,r9,4
1663
	or	 r8,r0,r12
1664
	br.n	 @L622
1665
	or	 r11,r0,r10
1666
	align	 4
1667
@L624:
1668
	bb1.n	 ne,r13,@L735
1669
	subu	 r10,r7,3
1670
	mul	 r13,r11,56
1671
	addu	 r13,r13,r5
1672
	ld	 r11,r13,r9
1673
@L622:
1674
	subu	 r10,r7,3
1675
@L735:
1676
	ld.h	 r12,r6[r10]
1677
	cmp	 r13,r12,r8
1678
	bb0.n	 gt,r13,@L628
1679
	subu	 r9,r9,4
1680
	or	 r8,r0,r12
1681
	br.n	 @L626
1682
	or	 r11,r0,r10
1683
	align	 4
1684
@L628:
1685
	bb1.n	 ne,r13,@L736
1686
	subu	 r10,r7,4
1687
	mul	 r13,r11,56
1688
	addu	 r13,r13,r5
1689
	ld	 r11,r13,r9
1690
@L626:
1691
	subu	 r10,r7,4
1692
@L736:
1693
	ld.h	 r12,r6[r10]
1694
	cmp	 r13,r12,r8
1695
	bb0.n	 gt,r13,@L632
1696
	subu	 r9,r9,4
1697
	or	 r8,r0,r12
1698
	br.n	 @L630
1699
	or	 r11,r0,r10
1700
	align	 4
1701
@L632:
1702
	bb1.n	 ne,r13,@L737
1703
	subu	 r10,r7,5
1704
	mul	 r13,r11,56
1705
	addu	 r13,r13,r5
1706
	ld	 r11,r13,r9
1707
@L630:
1708
	subu	 r10,r7,5
1709
@L737:
1710
	ld.h	 r12,r6[r10]
1711
	cmp	 r13,r12,r8
1712
	bb0.n	 gt,r13,@L636
1713
	subu	 r9,r9,4
1714
	or	 r8,r0,r12
1715
	br.n	 @L634
1716
	or	 r11,r0,r10
1717
	align	 4
1718
@L636:
1719
	bb1	 ne,r13,@L634
1720
	mul	 r13,r11,56
1721
	addu	 r13,r13,r5
1722
	ld	 r11,r13,r9
1723
@L634:
1724
	subu	 r7,r7,6
1725
	bcnd.n	 gt0,r7,@L607
1726
	subu	 r9,r9,4
1727
	or.u	 r13,r0,hi16(_prefclass)
1728
	ld	 r13,r13,lo16(_prefclass)
1729
	st.b	 r11,r13,r25
1730
	or.u	 r13,r0,hi16(_reg_n_refs)
1731
	ld	 r13,r13,lo16(_reg_n_refs)
1732
	bcnd	 eq0,r13,@L602
1733
	ld.h	 r13,r6,20
1734
	ld.h	 r12,r6,30
1735
	ld.h	 r11,r6,28
1736
	subu	 r13,r8,r13
1737
	addu	 r12,r12,r11
1738
	or.u	 r11,r0,hi16(_preferred_or_nothing)
1739
	cmp	 r13,r13,r12
1740
	ld	 r12,r11,lo16(_preferred_or_nothing)
1741
	extu	 r13,r13,1<ge>
1742
	st.b	 r13,r12,r25
1743
@L602:
1744
	addu	 r25,r25,1
1745
	cmp	 r13,r25,r17
1746
	bb1.n	 lt,r13,@L738
1747
	or	 r8,r0,0
1748
@L601:
1749
@Lte6:
1750
	subu	 r31,r30,80
1751
	ld	 r1,r31,84
1752
	ld	 r30,r31,80
1753
	ld.d	 r24,r31,72
1754
	ld.d	 r22,r31,64
1755
	ld.d	 r20,r31,56
1756
	ld.d	 r18,r31,48
1757
	ld.d	 r16,r31,40
1758
	jmp.n	 r1
1759
	addu	 r31,r31,96
1760
	def	 @L739,@L565-@L740
1761

  
1762
	align	 8
1763
	global	 _reg_class_record
1764
_reg_class_record:
1765
	subu	 r31,r31,80
1766
	st.d	 r22,r31,48
1767
	or	 r23,r0,r2
1768
	st.d	 r24,r31,56
1769
	or	 r25,r0,0
1770
	or	 r22,r0,0
1771
	st	 r19,r31,36
1772
	or	 r19,r0,0
1773
	st.d	 r20,r31,40
1774
	or	 r21,r0,r4
1775
	st	 r1,r31,64
1776
@Ltb7:
1777
	or	 r20,r0,0
1778
	ld	 r24,r21[r3]
1779
@L808:
1780
	ld.hu	 r13,r0,r23
1781
	cmp	 r13,r13,35
1782
	bb0	 eq,r13,@L807
1783
	ld	 r23,r23,4
1784
	br	 @L808
1785
	align	 4
1786
@L807:
1787
	ld.hu	 r13,r0,r23
1788
	cmp	 r13,r13,37
1789
	bb1	 ne,r13,@L812
1790
	ld	 r2,r23,4
1791
	or	 r3,r0,2
1792
	bsr.n	 _record_address_regs
1793
	or	 r4,r0,0
1794
@L812:
1795
	ld.hu	 r13,r0,r23
1796
	cmp	 r13,r13,34
1797
	bb0.n	 ne,r13,@L813
1798
	or	 r10,r0,r24
1799
	bcnd	 eq0,r24,@L805
1800
	ld.b	 r13,r0,r24
1801
	cmp	 r13,r13,112
1802
	bb0.n	 eq,r13,@L805
1803
	or	 r2,r0,r23
1804
	or	 r3,r0,2
1805
	or	 r4,r0,0
1806
	bsr.n	 _record_address_regs
1807
	addu	 r1,r1,@L873
1808
@L874:
1809
	align	 4
1810
@L813:
1811
	ld.bu	 r11,r0,r10
1812
	ext	 r13,r11,8<0>
1813
	cmp	 r12,r22,0
1814
	cmp	 r13,r13,0
1815
	and	 r13,r13,r12
1816
	extu	 r12,r13,1<eq>
1817
	xor	 r13,r12,1
1818
	bcnd.n	 eq0,r13,@L816
1819
	or.u	 r13,r0,hi16(_target_flags)
1820
	ld	 r12,r13,lo16(_target_flags)
1821
	or.u	 r13,r0,hi16(_reg_class_subunion)
1822
	subu	 r6,r0,192
1823
	or	 r8,r13,lo16(_reg_class_subunion)
1824
	mask	 r7,r12,2
1825
	mask	 r9,r12,64
1826
	ext	 r13,r11,8<0>
1827
@L872:
1828
	bcnd	 ne0,r13,@L819
1829
	or	 r10,r0,r22
1830
	or	 r22,r0,0
1831
@L819:
1832
	ld.b	 r13,r0,r10
1833
	subu	 r11,r13,33
1834
	or.u	 r13,r0,hi16(@L860)
1835
	cmp	 r12,r11,82
1836
	bb0.n	 ls,r12,@L846
1837
	or	 r13,r13,lo16(@L860)
1838
	ld	 r13,r13[r11]
1839
	jmp	 r13
1840
	align	 4
1841
@L860:
1842
	word	 @L817
1843
	word	 @L846
1844
	word	 @L817
1845
	word	 @L846
1846
	word	 @L817
1847
	word	 @L817
1848
	word	 @L846
1849
	word	 @L846
1850
	word	 @L846
1851
	word	 @L838
1852
	word	 @L835
1853
	word	 @L817
1854
	word	 @L846
1855
	word	 @L846
1856
	word	 @L846
1857
	word	 @L845
1858
	word	 @L845
1859
	word	 @L845
1860
	word	 @L845
1861
	word	 @L845
1862
	word	 @L846
1863
	word	 @L846
1864
	word	 @L846
1865
	word	 @L846
1866
	word	 @L846
1867
	word	 @L846
1868
	word	 @L846
1869
	word	 @L846
1870
	word	 @L817
1871
	word	 @L846
1872
	word	 @L817
1873
	word	 @L846
1874
	word	 @L846
1875
	word	 @L846
1876
	word	 @L846
1877
	word	 @L846
1878
	word	 @L846
1879
	word	 @L817
1880
	word	 @L817
1881
	word	 @L817
1882
	word	 @L846
1883
	word	 @L846
1884
	word	 @L846
1885
	word	 @L846
1886
	word	 @L846
1887
	word	 @L846
1888
	word	 @L846
1889
	word	 @L846
1890
	word	 @L846
1891
	word	 @L846
1892
	word	 @L846
1893
	word	 @L846
1894
	word	 @L846
1895
	word	 @L846
1896
	word	 @L846
1897
	word	 @L846
1898
	word	 @L846
1899
	word	 @L846
1900
	word	 @L846
1901
	word	 @L846
1902
	word	 @L846
1903
	word	 @L846
1904
	word	 @L846
1905
	word	 @L846
1906
	word	 @L846
1907
	word	 @L846
1908
	word	 @L846
1909
	word	 @L846
1910
	word	 @L846
1911
	word	 @L846
1912
	word	 @L840
1913
	word	 @L846
1914
	word	 @L817
1915
	word	 @L846
1916
	word	 @L846
1917
	word	 @L846
1918
	word	 @L837
1919
	word	 @L817
1920
	word	 @L837
1921
	word	 @L817
1922
	word	 @L846
1923
	word	 @L840
1924
	word	 @L817
1925
	align	 4
1926
@L835:
1927
	br.n	 @L817
1928
	or	 r20,r0,1
1929
	align	 4
1930
@L837:
1931
	br.n	 @L817
1932
	or	 r19,r0,1
1933
	align	 4
1934
@L838:
1935
	br.n	 @L817
1936
	addu	 r10,r10,1
1937
	align	 4
1938
@L840:
1939
	mul	 r13,r25,56
1940
	addu	 r13,r13,r8
1941
	ld	 r25,r13,40
1942
	br.n	 @L871
1943
	addu	 r10,r10,1
1944
	align	 4
1945
@L845:
1946
	ld.b	 r13,r0,r10
1947
	lda	 r13,r21[r13]
1948
	ld	 r22,r13,r6
1949
	br.n	 @L871
1950
	addu	 r10,r10,1
1951
	align	 4
1952
@L846:
1953
	mul	 r12,r25,56
1954
	ld.b	 r11,r0,r10
1955
	cmp	 r13,r11,97
1956
	bb0.n	 ne,r13,@L847
1957
	addu	 r12,r12,r8
1958
	cmp	 r13,r11,100
1959
	bb0.n	 ne,r13,@L849
1960
	cmp	 r13,r11,102
1961
	bb1	 ne,r13,@L851
1962
	bcnd.n	 eq0,r7,@L848
1963
	or	 r11,r0,r12
1964
	br.n	 @L848
1965
	addu	 r11,r11,12
1966
	align	 4
1967
@L851:
1968
	cmp	 r13,r11,120
1969
	bb1	 ne,r13,@L854
1970
	bcnd.n	 eq0,r9,@L848
1971
	or	 r11,r0,r12
1972
	br.n	 @L848
1973
	addu	 r11,r11,8
1974
	align	 4
1975
@L854:
1976
	cmp	 r13,r11,121
1977
	bb1	 ne,r13,@L857
1978
	bcnd.n	 eq0,r9,@L848
1979
	or	 r11,r0,r12
1980
	br.n	 @L848
1981
	addu	 r11,r11,4
1982
	align	 4
1983
@L857:
1984
	br.n	 @L848
1985
	or	 r11,r0,r12
1986
	align	 4
1987
@L849:
1988
	br.n	 @L848
1989
	addu	 r11,r12,20
1990
	align	 4
1991
@L847:
1992
	addu	 r11,r12,36
1993
@L848:
1994
	ld	 r25,r0,r11
1995
@L817:
1996
	addu	 r10,r10,1
1997
@L871:
1998
	ld.bu	 r11,r0,r10
1999
	ext	 r13,r11,8<0>
2000
	cmp	 r12,r22,0
2001
	cmp	 r13,r13,0
2002
	and	 r13,r13,r12
2003
	extu	 r12,r13,1<eq>
2004
	xor	 r13,r12,1
2005
	bcnd.n	 ne0,r13,@L872
2006
	ext	 r13,r11,8<0>
2007
@L816:
2008
	cmp	 r12,r25,0
2009
	cmp	 r13,r25,13
2010
	addu	 r11,r20,1
2011
	or.u	 r10,r0,hi16(_savings)
2012
	or	 r12,r12,r13
2013
	ld	 r13,r23,4
2014
	mak	 r8,r11,0<1>
2015
	ld	 r11,r10,lo16(_savings)
2016
	mak	 r13,r13,0<5>
2017
	extu	 r10,r12,1<eq>
2018
	xor	 r12,r10,1
2019
	bcnd.n	 eq0,r12,@L862
2020
	addu	 r9,r11,r13
2021
	ld.hu	 r12,r9[r25]
2022
	mul	 r11,r25,56
2023
	or.u	 r13,r0,hi16(_reg_class_subclasses)
2024
	addu	 r12,r12,r8
2025
	or	 r13,r13,lo16(_reg_class_subclasses)
2026
	st.h	 r12,r9[r25]
2027
	addu	 r11,r11,r13
2028
	ld	 r12,r0,r11
2029
	cmp	 r13,r12,14
2030
	bb0	 ne,r13,@L862
2031
	or	 r10,r0,0
2032
@L866:
2033
	ld.hu	 r13,r9[r12]
2034
	addu	 r13,r13,r8
2035
	addu	 r10,r10,4
2036
	st.h	 r13,r9[r12]
2037
	ld	 r12,r11,r10
2038
	cmp	 r13,r12,14
2039
	bb1	 ne,r13,@L866
2040
@L862:
2041
	bcnd	 ne0,r19,@L868
2042
	ld.hu	 r13,r9,28
2043
	addu	 r13,r13,1
2044
	lda.h	 r13,r13[r20]
2045
	st.h	 r13,r9,28
2046
@L868:
2047
	ld.hu	 r13,r9,30
2048
	addu	 r13,r13,1
2049
	st.h	 r13,r9,30
2050
@L805:
2051
@Lte7:
2052
	ld	 r1,r31,64
2053
	ld	 r19,r31,36
2054
	ld.d	 r24,r31,56
2055
	ld.d	 r22,r31,48
2056
	ld.d	 r20,r31,40
2057
	jmp.n	 r1
2058
	addu	 r31,r31,80
2059
	def	 @L873,@L805-@L874
2060

  
2061
	align	 8
2062
	global	 _record_address_regs
2063
_record_address_regs:
2064
	subu	 r31,r31,80
2065
	st	 r1,r31,64
2066
	st.d	 r24,r31,56
2067
	st.d	 r22,r31,48
2068
	st.d	 r20,r31,40
2069
@Ltb8:
2070
	ld.hu	 r11,r0,r2
2071
	or.u	 r13,r0,hi16(@L1004)
2072
	or	 r23,r0,r3
2073
	subu	 r10,r11,30
2074
	or	 r22,r0,r4
2075
	cmp	 r12,r10,36
2076
	bb0.n	 ls,r12,@L997
2077
	or	 r13,r13,lo16(@L1004)
2078
	ld	 r13,r13[r10]
2079
	jmp	 r13
2080
	align	 4
2081
@L1004:
2082
	word	 @L940
2083
	word	 @L997
2084
	word	 @L940
2085
	word	 @L940
2086
	word	 @L984
2087
	word	 @L997
2088
	word	 @L997
2089
	word	 @L997
2090
	word	 @L940
2091
	word	 @L940
2092
	word	 @L940
2093
	word	 @L997
2094
	word	 @L997
2095
	word	 @L997
2096
	word	 @L948
2097
	word	 @L997
2098
	word	 @L997
2099
	word	 @L997
2100
	word	 @L997
2101
	word	 @L997
2102
	word	 @L997
2103
	word	 @L997
2104
	word	 @L997
2105
	word	 @L997
2106
	word	 @L997
2107
	word	 @L997
2108
	word	 @L997
2109
	word	 @L997
2110
	word	 @L997
2111
	word	 @L997
2112
	word	 @L997
2113
	word	 @L997
2114
	word	 @L997
2115
	word	 @L983
2116
	word	 @L983
2117
	word	 @L983
2118
	word	 @L983
2119
	align	 4
2120
@L948:
2121
	ld	 r8,r2,4
2122
	or	 r4,r0,0
2123
	or	 r24,r0,0
2124
	ld.hu	 r10,r0,r8
2125
	or	 r23,r0,0
2126
	ld	 r25,r2,8
2127
	cmp	 r13,r10,35
2128
	ld.hu	 r11,r0,r25
2129
	bb1.n	 ne,r13,@L1036
2130
	or	 r7,r0,0
2131
@L951:
2132
	ld	 r8,r8,4
2133
	ld.hu	 r10,r0,r8
2134
	cmp	 r13,r10,35
2135
	bb1.n	 eq,r13,@L951
2136
	cmp	 r13,r11,35
2137
	br	 @L1040
2138
	align	 4
2139
@L955:
2140
	ld	 r25,r25,4
2141
	ld.hu	 r11,r0,r25
2142
@L1036:
2143
	cmp	 r13,r11,35
2144
@L1040:
2145
	bb1.n	 eq,r13,@L955
2146
	cmp	 r13,r10,47
2147
	cmp	 r12,r11,37
2148
	or	 r13,r13,r12
2149
	extu	 r13,r13,1<eq>
2150
	bcnd.n	 ne0,r13,@L1037
2151
	cmp	 r13,r11,47
2152
	cmp	 r12,r10,37
2153
	or	 r13,r13,r12
2154
	extu	 r13,r13,1<eq>
2155
	bcnd.n	 ne0,r13,@L1038
2156
	cmp	 r13,r10,30
2157
	bb1.n	 ne,r13,@L961
2158
	cmp	 r13,r11,30
2159
	br.n	 @L958
2160
	or	 r7,r0,1
2161
	align	 4
2162
@L961:
2163
	bb1.n	 ne,r13,@L963
2164
	cmp	 r12,r10,34
2165
	br.n	 @L958
2166
	or	 r23,r0,1
2167
	align	 4
2168
@L963:
2169
	cmp	 r9,r11,34
2170
	and	 r13,r12,r9
2171
	extu	 r13,r13,1<eq>
2172
	bcnd.n	 eq0,r13,@L965
2173
	or.u	 r13,r0,hi16(_regno_pointer_flag)
2174
	ld	 r12,r13,lo16(_regno_pointer_flag)
2175
	ld	 r13,r8,4
2176
	ld.b	 r13,r12,r13
2177
	bcnd	 ne0,r13,@L1038
2178
	ld	 r13,r25,4
2179
	ld.b	 r13,r12,r13
2180
	bcnd.n	 ne0,r13,@L958
2181
	or	 r4,r0,2
2182
	or	 r24,r0,1
2183
	br.n	 @L958
2184
	or	 r4,r0,1
2185
	align	 4
2186
@L965:
2187
	bb1.n	 ne,r12,@L971
2188
	cmp	 r13,r11,44
2189
	bb1.n	 ne,r13,@L972
2190
	or.u	 r13,r0,hi16(_regno_pointer_flag)
2191
	ld	 r12,r13,lo16(_regno_pointer_flag)
2192
	ld	 r13,r8,4
2193
	ld.b	 r13,r12,r13
2194
	bcnd	 ne0,r13,@L972
2195
@L1037:
2196
	br.n	 @L958
2197
	or	 r4,r0,2
2198
	align	 4
2199
@L972:
2200
	ld	 r12,r8,4
2201
	br.n	 @L1039
2202
	or.u	 r13,r0,hi16(_regno_pointer_flag)
2203
	align	 4
2204
@L971:
2205
	bb1.n	 ne,r9,@L958
2206
	cmp	 r13,r10,44
2207
	bb1.n	 ne,r13,@L1041
2208
	or.u	 r13,r0,hi16(_regno_pointer_flag)
2209
	ld	 r12,r13,lo16(_regno_pointer_flag)
2210
	ld	 r13,r25,4
2211
	ld.b	 r13,r12,r13
2212
	bcnd.n	 ne0,r13,@L976
2213
	or.u	 r13,r0,hi16(_regno_pointer_flag)
2214
@L1038:
2215
	br.n	 @L958
2216
	or	 r24,r0,2
2217
	align	 4
2218
@L976:
2219
@L1041:
2220
	ld	 r12,r25,4
2221
@L1039:
2222
	ld	 r11,r13,lo16(_regno_pointer_flag)
2223
	or	 r13,r0,1
2224
	st.b	 r13,r11,r12
2225
@L958:
2226
	bcnd	 ne0,r7,@L978
2227
	or	 r3,r0,2
2228
	or	 r2,r0,r8
2229
	bsr.n	 _record_address_regs
2230
	subu	 r3,r3,r4
2231
@L978:
2232
	bcnd.n	 ne0,r23,@L940
2233
	or	 r3,r0,2
2234
	or	 r4,r0,r24
2235
	or	 r2,r0,r25
2236
	subu	 r3,r3,r4
2237
	bsr.n	 _record_address_regs
2238
	addu	 r1,r1,@L1043
2239
@L1044:
2240
	align	 4
2241
@L983:
2242
	mak	 r3,r23,0<1>
2243
	ld	 r2,r2,4
2244
	mak	 r4,r22,0<1>
2245
	bsr.n	 _record_address_regs
2246
	addu	 r1,r1,@L1045
2247
@L1046:
2248
	align	 4
2249
@L984:
2250
	or.u	 r12,r0,hi16(_savings)
2251
	ld	 r13,r2,4
2252
	ld	 r12,r12,lo16(_savings)
2253
	mak	 r13,r13,0<5>
2254
	addu	 r9,r12,r13
2255
	ld.hu	 r13,r9,30
2256
	ld.hu	 r12,r9,18
2257
	addu	 r13,r13,1
2258
	addu	 r12,r12,r23
2259
	st.h	 r13,r9,30
2260
	or.u	 r13,r0,hi16(_reg_class_subclasses)
2261
	st.h	 r12,r9,18
2262
	or	 r12,r13,lo16(_reg_class_subclasses)
2263
	ld	 r11,r12,504
2264
	cmp	 r13,r11,14
2265
	bb0	 ne,r13,@L985
2266
	addu	 r10,r12,504
2267
	or	 r12,r0,0
2268
@L989:
2269
	ld.hu	 r13,r9[r11]
2270
	addu	 r13,r13,r23
2271
	addu	 r12,r12,4
2272
	st.h	 r13,r9[r11]
2273
	ld	 r11,r10,r12
2274
	cmp	 r13,r11,14
2275
	bb1	 ne,r13,@L989
2276
@L985:
2277
	bcnd	 eq0,r22,@L940
2278
	ld.hu	 r13,r9,20
2279
	or.u	 r12,r0,hi16(_reg_class_subclasses)
2280
	addu	 r13,r13,r22
2281
	or	 r12,r12,lo16(_reg_class_subclasses)
2282
	st.h	 r13,r9,20
2283
	ld	 r11,r12,560
2284
	cmp	 r13,r11,14
2285
	bb0.n	 ne,r13,@L940
2286
	addu	 r12,r12,560
2287
	or	 r10,r0,0
2288
@L995:
2289
	ld.hu	 r13,r9[r11]
2290
	addu	 r13,r13,r22
2291
	addu	 r10,r10,4
2292
	st.h	 r13,r9[r11]
2293
	ld	 r11,r12,r10
2294
	cmp	 r13,r11,14
2295
	bb0	 ne,r13,@L940
2296
	br	 @L995
2297
	align	 4
2298
@L997:
2299
	or.u	 r13,r0,hi16(_rtx_length)
2300
	or	 r13,r13,lo16(_rtx_length)
2301
	ld	 r20,r13[r11]
2302
	or.u	 r13,r0,hi16(_rtx_format)
2303
	or	 r13,r13,lo16(_rtx_format)
2304
	subu	 r24,r20,1
2305
	ld	 r21,r13[r11]
2306
	bcnd.n	 lt0,r24,@L940
2307
	xor.c	 r13,r24,r0
2308
	lda	 r25,r2[r24]
2309
	bcnd.n	 lt0,r24,@L1008
2310
	mask	 r12,r13,3
2311
	bcnd.n	 eq0,r12,@L1001
2312
	cmp	 r13,r12,3
2313
	bb1.n	 ge,r13,@L1008
2314
	cmp	 r13,r12,2
2315
	bb1	 ge,r13,@L1009
2316
	ld.b	 r13,r21,r24
2317
	cmp	 r13,r13,101
2318
	bb1	 ne,r13,@L1011
2319
	ld	 r2,r25,4
2320
	or	 r3,r0,r23
2321
	bsr.n	 _record_address_regs
2322
	or	 r4,r0,r22
2323
@L1011:
2324
	subu	 r25,r25,4
2325
	subu	 r24,r20,2
2326
@L1009:
2327
	ld.b	 r13,r21,r24
2328
	cmp	 r13,r13,101
2329
	bb1	 ne,r13,@L1014
2330
	ld	 r2,r25,4
2331
	or	 r3,r0,r23
2332
	bsr.n	 _record_address_regs
2333
	or	 r4,r0,r22
2334
@L1014:
2335
	subu	 r25,r25,4
2336
	subu	 r24,r24,1
2337
@L1008:
2338
	ld.b	 r13,r21,r24
2339
	cmp	 r13,r13,101
2340
	bb1	 ne,r13,@L1017
2341
	ld	 r2,r25,4
2342
	or	 r3,r0,r23
2343
	bsr.n	 _record_address_regs
2344
	or	 r4,r0,r22
2345
@L1017:
2346
	subu	 r24,r24,1
2347
	bcnd.n	 lt0,r24,@L940
2348
	subu	 r25,r25,4
2349
@L1001:
2350
	ld.b	 r13,r21,r24
2351
	cmp	 r13,r13,101
2352
	bb1.n	 ne,r13,@L1042
2353
	subu	 r13,r24,1
2354
	ld	 r2,r25,4
2355
	or	 r3,r0,r23
2356
	bsr.n	 _record_address_regs
2357
	or	 r4,r0,r22
2358
	subu	 r13,r24,1
2359
@L1042:
2360
	ld.b	 r13,r21,r13
2361
	cmp	 r13,r13,101
2362
	bb1.n	 ne,r13,@L1023
2363
	subu	 r25,r25,4
2364
	ld	 r2,r25,4
2365
	or	 r3,r0,r23
2366
	bsr.n	 _record_address_regs
2367
	or	 r4,r0,r22
2368
@L1023:
2369
	subu	 r13,r24,2
2370
	ld.b	 r13,r21,r13
2371
	cmp	 r13,r13,101
2372
	bb1.n	 ne,r13,@L1026
2373
	subu	 r25,r25,4
2374
	ld	 r2,r25,4
2375
	or	 r3,r0,r23
2376
	bsr.n	 _record_address_regs
2377
	or	 r4,r0,r22
2378
@L1026:
2379
	subu	 r13,r24,3
2380
	ld.b	 r13,r21,r13
2381
	cmp	 r13,r13,101
2382
	bb1.n	 ne,r13,@L1029
2383
	subu	 r25,r25,4
2384
	ld	 r2,r25,4
2385
	or	 r3,r0,r23
2386
	bsr.n	 _record_address_regs
2387
	or	 r4,r0,r22
2388
@L1029:
2389
	subu	 r24,r24,4
2390
	bcnd.n	 ge0,r24,@L1001
2391
	subu	 r25,r25,4
2392
@L940:
2393
@Lte8:
2394
	ld	 r1,r31,64
2395
	ld.d	 r24,r31,56
2396
	ld.d	 r22,r31,48
2397
	ld.d	 r20,r31,40
2398
	jmp.n	 r1
2399
	addu	 r31,r31,80
2400
	def	 @L1045,@L940-@L1046
2401
	def	 @L1043,@L940-@L1044
2402

  
2403
	align	 8
2404
	global	 _reg_scan
2405
_reg_scan:
2406
	subu	 r31,r31,64
2407
	st.d	 r22,r31,32
2408
	or	 r22,r0,r2
2409
	st.d	 r24,r31,40
2410
	or	 r24,r0,r3
2411
	or	 r23,r0,r4
2412
	bcnd.n	 ne0,r23,@L1059
2413
	st	 r1,r31,48
2414
@Ltb9:
2415
	mak	 r2,r24,0<1>
2416
	bsr.n	 _oballoc
2417
	or.u	 r25,r0,hi16(_regno_first_uid)
2418
	st	 r2,r25,lo16(_regno_first_uid)
2419
@L1059:
2420
	mak	 r24,r24,0<1>
2421
	or.u	 r13,r0,hi16(_regno_first_uid)
2422
	or	 r3,r0,0
2423
	ld	 r2,r13,lo16(_regno_first_uid)
2424
	bsr.n	 _memset
2425
	or	 r4,r0,r24
2426
	bcnd.n	 ne0,r23,@L1070
2427
	or.u	 r13,r0,hi16(_regno_last_uid)
2428
	or	 r2,r0,r24
2429
	bsr.n	 _oballoc
2430
	or.u	 r25,r0,hi16(_regno_last_uid)
2431
	st	 r2,r25,lo16(_regno_last_uid)
2432
	or.u	 r13,r0,hi16(_regno_last_uid)
2433
@L1070:
2434
	or	 r3,r0,0
2435
	ld	 r2,r13,lo16(_regno_last_uid)
2436
	or	 r4,r0,r24
2437
	bsr.n	 _memset
2438
	or	 r25,r0,r22
2439
	or.u	 r12,r0,hi16(_max_parallel)
2440
	or	 r13,r0,3
2441
	bcnd.n	 eq0,r25,@L1062
2442
	st	 r13,r12,lo16(_max_parallel)
2443
	or	 r24,r0,r12
2444
@L1064:
2445
	ld.hu	 r11,r0,r25
2446
	cmp	 r13,r11,13
2447
	cmp	 r12,r11,15
2448
	or	 r13,r13,r12
2449
	extu	 r13,r13,1<eq>
2450
	bcnd.n	 ne0,r13,@L1066
2451
	cmp	 r13,r11,14
2452
	bb1	 ne,r13,@L1063
2453
@L1066:
2454
	ld	 r12,r25,16
2455
	ld.hu	 r13,r0,r12
2456
	cmp	 r13,r13,20
2457
	bb1	 ne,r13,@L1067
2458
	ld	 r13,r12,4
2459
	ld	 r12,r0,r13
2460
	ld	 r13,r24,lo16(_max_parallel)
2461
	cmp	 r13,r12,r13
2462
	bb1	 ls,r13,@L1067
2463
	st	 r12,r24,lo16(_max_parallel)
2464
@L1067:
2465
	ld	 r2,r25,16
2466
	bsr.n	 _reg_scan_mark_refs
2467
	ld	 r3,r25,4
2468
@L1063:
2469
	ld	 r25,r25,12
2470
	bcnd	 ne0,r25,@L1064
2471
@L1062:
2472
@Lte9:
2473
	ld	 r1,r31,48
2474
	ld.d	 r24,r31,40
2475
	ld.d	 r22,r31,32
2476
	jmp.n	 r1
2477
	addu	 r31,r31,64
2478

  
2479
	align	 8
2480
	global	 _reg_scan_mark_refs
2481
_reg_scan_mark_refs:
2482
	subu	 r31,r31,80
2483
	st	 r1,r31,64
2484
	st.d	 r24,r31,56
2485
	st.d	 r22,r31,48
2486
	st.d	 r20,r31,40
2487
	st.d	 r18,r31,32
2488
@Ltb10:
2489
	ld.hu	 r11,r0,r2
2490
	or.u	 r13,r0,hi16(@L1126)
2491
	subu	 r10,r11,23
2492
	or	 r22,r0,r3
2493
	cmp	 r12,r10,17
2494
	bb0.n	 ls,r12,@L1112
2495
	or	 r13,r13,lo16(@L1126)
2496
	ld	 r13,r13[r10]
2497
	jmp	 r13
2498
	align	 4
2499
@L1126:
2500
	word	 @L1099
2501
	word	 @L1099
2502
	word	 @L1112
2503
	word	 @L1112
2504
	word	 @L1112
2505
	word	 @L1112
2506
	word	 @L1112
2507
	word	 @L1099
2508
	word	 @L1099
2509
	word	 @L1099
2510
	word	 @L1099
2511
	word	 @L1110
2512
	word	 @L1112
2513
	word	 @L1112
2514
	word	 @L1112
2515
	word	 @L1099
2516
	word	 @L1099
2517
	word	 @L1099
2518
	align	 4
2519
@L1110:
2520
	or.u	 r12,r0,hi16(_regno_last_uid)
2521
	ld	 r2,r2,4
2522
	or.u	 r13,r0,hi16(_regno_first_uid)
2523
	ld	 r12,r12,lo16(_regno_last_uid)
2524
	ld	 r11,r13,lo16(_regno_first_uid)
2525
	st.h	 r22,r12[r2]
2526
	ld.h	 r13,r11[r2]
2527
	bcnd	 ne0,r13,@L1099
2528
	st.h	 r22,r11[r2]
2529
	br	 @L1099
2530
	align	 4
2531
@L1112:
2532
	or.u	 r13,r0,hi16(_rtx_length)
2533
	or	 r13,r13,lo16(_rtx_length)
2534
	ld	 r12,r13[r11]
2535
	or.u	 r13,r0,hi16(_rtx_format)
2536
	or	 r13,r13,lo16(_rtx_format)
2537
	subu	 r19,r12,1
2538
	ld	 r18,r13[r11]
2539
	bcnd.n	 lt0,r19,@L1099
2540
	lda	 r20,r2[r19]
2541
@L1116:
2542
	ld.b	 r12,r18,r19
2543
	cmp	 r13,r12,101
2544
	bb1.n	 ne,r13,@L1117
2545
	cmp	 r13,r12,69
2546
	ld	 r2,r20,4
2547
	or	 r3,r0,r22
2548
	bsr.n	 _reg_scan_mark_refs
2549
	addu	 r1,r1,@L1146
2550
@L1147:
2551
	align	 4
2552
@L1117:
2553
	bb1	 ne,r13,@L1115
2554
	ld	 r11,r20,4
2555
	bcnd	 eq0,r11,@L1115
2556
	ld	 r21,r0,r11
2557
	subu	 r24,r21,1
2558
	bcnd	 lt0,r24,@L1115
2559
	mak	 r25,r24,0<2>
2560
	xor.c	 r13,r24,r0
2561
	or	 r23,r0,r20
2562
	bcnd.n	 lt0,r24,@L1129
2563
	mask	 r12,r13,3
2564
	bcnd.n	 eq0,r12,@L1123
2565
	cmp	 r13,r12,3
2566
	bb1.n	 ge,r13,@L1129
2567
	cmp	 r13,r12,2
2568
	bb1.n	 ge,r13,@L1130
2569
	addu	 r13,r11,r25
2570
	or	 r3,r0,r22
2571
	ld	 r2,r13,4
2572
	subu	 r25,r25,4
2573
	bsr.n	 _reg_scan_mark_refs
2574
	subu	 r24,r21,2
2575
@L1130:
2576
	ld	 r13,r20,4
2577
	addu	 r13,r13,r25
2578
	or	 r3,r0,r22
2579
	ld	 r2,r13,4
2580
	subu	 r24,r24,1
2581
	bsr.n	 _reg_scan_mark_refs
2582
	subu	 r25,r25,4
2583
@L1129:
2584
	ld	 r13,r23,4
2585
	addu	 r13,r13,r25
2586
	or	 r3,r0,r22
2587
	ld	 r2,r13,4
2588
	subu	 r24,r24,1
2589
	bsr.n	 _reg_scan_mark_refs
2590
	subu	 r25,r25,4
2591
	bcnd	 lt0,r24,@L1115
2592
@L1123:
2593
	ld	 r13,r23,4
2594
	addu	 r13,r13,r25
2595
	ld	 r2,r13,4
2596
	bsr.n	 _reg_scan_mark_refs
2597
	or	 r3,r0,r22
2598
	ld	 r13,r23,4
2599
	ld	 r2,r25,r13
2600
	bsr.n	 _reg_scan_mark_refs
2601
	or	 r3,r0,r22
2602
	ld	 r13,r23,4
2603
	subu	 r12,r25,8
2604
	addu	 r13,r13,r12
2605
	ld	 r2,r13,4
2606
	bsr.n	 _reg_scan_mark_refs
2607
	or	 r3,r0,r22
2608
	ld	 r12,r23,4
2609
	subu	 r13,r25,12
2610
	addu	 r12,r12,r13
2611
	subu	 r24,r24,4
2612
	ld	 r2,r12,4
2613
	or	 r3,r0,r22
2614
	bsr.n	 _reg_scan_mark_refs
2615
	subu	 r25,r25,16
2616
	bcnd	 ge0,r24,@L1123
2617
@L1115:
2618
	subu	 r19,r19,1
2619
	bcnd.n	 ge0,r19,@L1116
2620
	subu	 r20,r20,4
2621
@L1099:
2622
@Lte10:
2623
	ld	 r1,r31,64
2624
	ld.d	 r24,r31,56
2625
	ld.d	 r22,r31,48
2626
	ld.d	 r20,r31,40
2627
	ld.d	 r18,r31,32
2628
	jmp.n	 r1
2629
	addu	 r31,r31,80
2630
	def	 @L1146,@L1115-@L1147
2631

  
2632
	comm	 _max_parallel,4
2633
	comm	 _fixed_regs,56
2634
	comm	 _fixed_reg_set,8
2635
	comm	 _call_used_regs,56
2636
	comm	 _call_used_reg_set,8
2637
	comm	 _call_fixed_regs,56
2638
	comm	 _call_fixed_reg_set,8
2639
	comm	 _global_regs,56
2640
	comm	 _reg_class_size,56
2641
	comm	 _reg_class_superclasses,784
2642
	comm	 _reg_class_subclasses,784
2643
	comm	 _reg_class_subunion,784
2644
	comm	 _regno_first_uid,4
2645
	comm	 _regno_last_uid,4
2646
	bss	 _savings,4,4
2647
	bss	 _prefclass,4,4
2648
	bss	 _preferred_or_nothing,4,4

Also available in: Unified diff