aboutsummaryrefslogtreecommitdiff
path: root/textures/base/pack/rangeview_btn.png
blob: fbcd80a1df893b560fb1dd05cda0ec17221b98c9 (plain)
ofshex dumpascii
0000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 40 00 00 00 40 08 06 00 00 00 aa 69 71 .PNG........IHDR...@...@......iq
0020 de 00 00 00 06 62 4b 47 44 00 ff 00 ff 00 ff a0 bd a7 93 00 00 00 09 70 48 59 73 00 00 0d d7 00 .....bKGD..............pHYs.....
0040 00 0d d7 01 42 28 9b 78 00 00 00 07 74 49 4d 45 07 de 0c 0c 01 19 27 54 0e f3 02 00 00 05 d1 49 ....B(.x....tIME......'T.......I
0060 44 41 54 78 da ed 5a 6d 88 16 55 14 7e ce ec bc 77 7c 57 4c 8b d6 8f b5 44 c5 cc 30 ec 87 19 85 DATx..Zm..U.~...w|WL....D..0....
0080 50 6a 52 d4 0a 15 28 2a 44 62 12 d1 c7 1f 15 72 7f 14 84 11 54 10 14 45 08 61 59 d1 97 28 82 5b PjR...(*Db.....r....T..E.aY..(.[
00a0 16 58 a4 b1 f9 63 cb 4a 45 91 b5 5d b5 da dc 5a 28 64 5f 77 ee b9 77 de 39 fd d8 7d d7 61 dc 7d .X...c.JE..]...Z(d_w..w.9..}.a.}
00c0 3f 67 3f 84 79 e0 c2 bc b3 f7 9c 7b ee b9 f7 dc f3 9c 3b 0b a4 48 91 22 45 8a 14 29 52 a4 48 91 ?g?.y......{......;..H."E..)R.H.
00e0 22 45 8a 14 89 c2 32 37 5b e6 2e 6b 4c b7 65 de 2b 7d 7d 37 96 92 09 98 d7 5a e6 93 96 f9 5f cb "E....27[..kL.e.+}}7.....Z...._.
0100 dc c6 cc 8b ae ce c9 5b bb d4 32 4b b4 05 cc 1d 22 72 cd b0 93 37 66 83 65 0e 63 72 c7 46 d2 4e .......[..2K...."r...7f.e.cr.F.N
0120 67 24 94 8a c8 24 88 ac be e2 3d 30 d7 5a bb a6 88 dc 56 00 14 7b 7d b3 b5 76 e9 55 e3 80 80 79 g$...$....=0.Z....V..{}..v.U...y
0140 75 60 cc 29 88 6c 00 d0 7b c5 80 22 b9 62 1b 27 f6 3b 0f a0 0f 61 d8 62 99 0f 48 2e 37 2d 69 7b u`.).l..{..".b.'.;...a.b..H.7-i{
0160 dd 84 57 de b5 d6 9e cb 64 32 73 89 c8 0e bc 6b c8 1b b3 4c 80 8d 00 1e 08 89 ce 17 51 71 1e c0 ..W.....d2s....k...L........Qq..
0180 3c 00 3b 84 68 4f 26 93 39 4e 44 5c d0 c3 22 d7 01 f8 7b dc 3a 00 be df 48 8e 73 4f 60 cc 4b 96 <.;.hO&.9ND\.."...{.:...H.sO`.K.
01a0 b9 01 22 3a b0 f6 47 84 e1 97 99 6c f6 41 eb fb 2b c8 75 bd 22 1e 6c 75 3d ef 09 00 8e 65 7e 34 ..":..G....l.A..+.u.".lu=....e~4
01c0 30 66 9b 65 9e 0d 20 b0 c6 9c 76 81 dd 22 d2 41 44 c1 78 3c f1 b7 59 66 3f 7e f0 45 da 2f cc 7c 0f.e......v..".AD.x<..Yf?~.E./.|
01e0 6b 89 1d 44 96 f9 f9 12 7a 7e 2e a5 a7 12 50 42 93 7f 01 c0 f6 32 ba 5e 14 a2 fb 94 52 6d 22 42 k..D....z~....PB.....2.^....Rm"B
0200 c6 98 5b 54 3e df 4b f5 f5 7f 00 80 61 de 45 c0 86 32 f4 fc 17 84 e1 e2 6c 36 7b 76 cc 1d 60 8c ..[T>.K.....a.E..2......l6{v..`.
0220 59 42 22 47 2a 08 a7 5f 5d a5 16 5b 63 3e 21 60 2d 80 bc 10 3d 4d 44 27 11 86 ad 15 1c 38 ad ae YB"G*.._]..[c>!`-...=MD'.....8..
0240 e7 2d 23 a2 fc 98 39 40 44 ea 03 63 8e 02 58 50 91 1c f0 19 01 eb a2 7e 04 70 10 40 53 85 26 34 .-#...9@D..c..XP.......~.p.@S.&4
0260 67 3c ef d5 31 73 40 a0 f5 0e 21 7a 72 0c 8f 9e 40 88 96 2a a5 da 46 dd 01 81 d6 ab 84 a8 65 1c g<..1s@...!zr...@..*..F.......e.
0280 9c bf a7 5d a5 16 13 51 df a8 11 21 e9 ed 9d 2a 8e b3 73 9c 24 a0 05 79 6b 5f 19 55 26 68 95 7a ...]...Q...!...*..s.$..yk_.U&h.z
02a0 03 22 53 13 30 be 0b 40 5f ad 4a 44 e4 19 eb fb cb 47 c5 01 01 f3 5a 02 d6 d7 ba 6d 43 60 61 c6 ."S.0..@_.JD.....G....Z....mC`a.
02c0 f3 6e 70 95 9a 0c e0 c5 5a 29 bd 38 ce 2e 11 99 3c a2 0e 90 4b 97 1a 05 78 27 81 dc 7b c4 f3 bc .np.....Z).8....<...K...x'..{...
02e0 53 00 40 44 81 1b 86 1f 24 a0 73 96 35 e6 ad 11 3b 04 45 84 02 63 be 02 70 7f ec 4f bd 10 39 26 S.@D....$.s.5...;.E..c..p..O..9&
0300 44 17 48 64 06 88 6e 03 30 a9 74 26 c4 3e 11 39 44 44 0d 00 36 01 68 2c 27 fa 00 74 02 c8 11 30 D.Hd..n.0.t&.>.9DD..6.h,'..t...0
0320 45 80 39 f1 45 24 60 8d eb 79 7b 12 3f 69 8c 31 4f c5 28 e9 f1 40 eb 26 11 c9 c4 1c 95 09 b4 5e E.9.E$`..y{.?i.1O.(..@.&.......^
0340 65 99 4f 14 a1 b3 15 b5 80 b9 23 30 e6 b1 f8 5d 82 f4 f6 4e b5 5a 6f b1 5a f7 0c f6 d7 ba 47 72 e.O.......#0...]...N.Zo.Z.....Gr
0360 b9 e9 89 4e 5e 6b 3d cf 32 e7 22 06 ed 14 11 55 62 c7 a8 80 f9 bd 04 1c d0 22 22 13 4b 85 a6 65 ...N^k=.2."....Ub........"".K..e
0380 3e 1a 91 d9 9f 64 89 eb 58 ad 5b 0b ca 0d f3 87 22 42 e5 86 8d 61 fe 68 98 89 e5 0d f3 ef 96 f9 >....d..X.[....."B...a.h........
03a0 cf 61 27 af f5 e1 52 8e 8e 8c 75 7d c0 dc 31 68 a7 31 1b 93 a1 5a 5a 37 45 8c ea 2a b5 1a 43 18 .a'...R...u}..1h.1...ZZ7E..*..C.
03c0 36 d1 32 ff 15 9b dc 6b 22 92 2d f4 61 e6 05 96 b9 3d d6 c7 17 df 9f 5d 51 7a f6 fd 7b 63 b6 52 6.2....k".-.a....=.....]Qz..{c.R
03e0 12 0e 78 37 a2 f4 b9 1a 4a e5 82 8e 93 43 19 66 7d 7f 79 2c ee df af 72 ac b6 c8 2e b8 a3 e6 34 ..x7....J....C.f}.y,...r.......4
0400 28 44 77 15 9e 43 e0 8b 6a 8c 8a ca 91 c8 61 22 92 2b 6e 66 26 4c f8 1e 00 47 5e 1d a8 72 cd 2e (Dw..C..j.....a".+nf&L...G^..r..
0420 cb 85 e1 9d 49 f0 80 99 05 75 4a a9 33 d5 58 a4 94 6a ef f7 03 20 8e c3 43 e6 e3 fe b2 76 f0 4e ....I....uJ.3.X..j......C....v.N
0440 30 24 ea ac 8a 0f 10 75 44 9e 1b 93 70 40 21 56 83 81 56 55 24 0d 4e 4e 84 8b f4 e3 18 57 a8 8d 0$.....uD...p@!V..VU$.NN.....W..
0460 1c 11 d5 d7 1e 02 40 77 61 21 91 cb 35 54 65 49 bf 9c 37 70 28 5e 28 d2 b3 fb 32 b7 95 d9 d5 0c ......@wa!..5TeI..7p(^(...2.....
0480 25 22 73 22 cf dd 35 3b 80 88 06 b7 7d 5e a9 65 d5 18 95 57 6a 79 64 c0 f6 22 5d a3 21 b6 aa ca %"s"..5;....}^.e...Wjyd.."].!...
04a0 85 6f 8a b0 c2 f6 da 43 20 0c bf 8e ec 86 c7 ab 5a 15 a2 4d 03 8f 7e 9d e7 1d 2e d2 2f 3a d6 fa .o.....C........Z..M..~...../:..
04c0 2a d2 e0 4a 00 85 93 df d6 29 f5 4d ed 44 a8 af 6f 96 65 e6 48 7a 7a a8 c2 ea f1 91 08 89 fa b8 *..J.....).M.D..o.e.Hzz.........
04e0 e8 58 b9 dc 34 cb 7c 69 30 1d 1a f3 ad 88 b8 65 6e fd 29 01 f3 6f 91 54 ba 2f 31 36 68 8d 79 33 .X..4.|i0......en.)..o.T./16h.y3
0500 a2 f8 a2 31 e6 f6 72 2f 4c 2d f3 c5 01 39 a3 b5 9e 57 46 1e 7f 39 ca 07 0c f3 e7 22 52 5f c2 71 ...1..r/L-...9...WF..9....."R_.q
0520 d3 2d f3 0f 11 b9 80 99 17 26 49 87 a7 04 cc 67 a2 2c cd 68 bd 39 5e 08 45 0b 22 ab f5 d6 d8 fd .-.......&I....g.,.h.9^.E.".....
0540 7e 73 05 cc f1 44 d5 c5 50 7f db 5e ee dc ca a6 8a cc bc c8 01 0e 01 b8 36 22 7c 56 80 4f 09 f8 ~s...D..P..^............6"|V.O..
0560 49 c2 b0 97 1c 67 92 00 4b 08 58 37 50 aa 16 e2 79 77 46 a9 75 43 11 a0 61 8a af f9 75 40 2b fa I....g..K.X7P...ywF.uC..a...u@+.
0580 4b e5 78 39 7c 1a 44 3d 10 99 09 e0 a6 21 ce b1 16 57 a9 87 89 28 4c fc 52 54 6b 3d bf ae ff 22 K.x9|.D=.....!...W...(L.RTk=..."
05a0 74 7e b9 9b 07 c0 eb ae 52 cd 95 de df fb be 3f c7 75 9c fd 00 ca fe 0a 44 44 6f d7 65 32 9b 47 t~......R......?.u......DDo.e2.G
05c0 f4 d3 99 88 4c b0 5a 6f 19 f8 a7 87 e1 4a d8 d0 1a 73 b0 1c 2e 5e aa a4 36 5a 3f 6b 99 bb 8a 96 ....L.Zo.....J...s...^..6Z?k....
05e0 cc c6 7c 57 ed 27 74 aa c1 b8 ba 80 79 05 88 56 08 30 03 40 bd 43 f4 8f 84 61 a7 2b b2 97 b2 d9 ..|W.'t.....y..V.0.@.C...a.+....
0600 f3 09 3a bd 2e d0 fa 6e 38 ce 4a 02 1a 43 60 a2 23 d2 23 c0 b9 40 64 6f 36 9b ed 44 8a 14 29 52 ..:....n8.J..C`.#.#..@do6..D..)R
0620 a4 48 91 22 45 8a 14 29 52 a4 48 91 a2 5c fc 0f e5 36 99 f5 85 5d d3 c4 00 00 00 00 49 45 4e 44 .H."E..)R.H..\...6...]......IEND
0640 ae 42 60 82 .B`.
='#n339'>339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831
/*
** $Id: lcode.c,v 2.25.1.5 2011/01/31 14:53:16 roberto Exp $
** Code generator for Lua
** See Copyright Notice in lua.h
*/


#include <stdlib.h>

#define lcode_c
#define LUA_CORE

#include "lua.h"

#include "lcode.h"
#include "ldebug.h"
#include "ldo.h"
#include "lgc.h"
#include "llex.h"
#include "lmem.h"
#include "lobject.h"
#include "lopcodes.h"
#include "lparser.h"
#include "ltable.h"


#define hasjumps(e)	((e)->t != (e)->f)


static int isnumeral(expdesc *e) {
  return (e->k == VKNUM && e->t == NO_JUMP && e->f == NO_JUMP);
}


void luaK_nil (FuncState *fs, int from, int n) {
  Instruction *previous;
  if (fs->pc > fs->lasttarget) {  /* no jumps to current position? */
    if (fs->pc == 0) {  /* function start? */
      if (from >= fs->nactvar)
        return;  /* positions are already clean */
    }
    else {
      previous = &fs->f->code[fs->pc-1];
      if (GET_OPCODE(*previous) == OP_LOADNIL) {
        int pfrom = GETARG_A(*previous);
        int pto = GETARG_B(*previous);
        if (pfrom <= from && from <= pto+1) {  /* can connect both? */
          if (from+n-1 > pto)
            SETARG_B(*previous, from+n-1);
          return;
        }
      }
    }
  }
  luaK_codeABC(fs, OP_LOADNIL, from, from+n-1, 0);  /* else no optimization */
}


int luaK_jump (FuncState *fs) {
  int jpc = fs->jpc;  /* save list of jumps to here */
  int j;
  fs->jpc = NO_JUMP;
  j = luaK_codeAsBx(fs, OP_JMP, 0, NO_JUMP);
  luaK_concat(fs, &j, jpc);  /* keep them on hold */
  return j;
}


void luaK_ret (FuncState *fs, int first, int nret) {
  luaK_codeABC(fs, OP_RETURN, first, nret+1, 0);
}


static int condjump (FuncState *fs, OpCode op, int A, int B, int C) {
  luaK_codeABC(fs, op, A, B, C);
  return luaK_jump(fs);
}


static void fixjump (FuncState *fs, int pc, int dest) {
  Instruction *jmp = &fs->f->code[pc];
  int offset = dest-(pc+1);
  lua_assert(dest != NO_JUMP);
  if (abs(offset) > MAXARG_sBx)
    luaX_syntaxerror(fs->ls, "control structure too long");
  SETARG_sBx(*jmp, offset);
}


/*
** returns current `pc' and marks it as a jump target (to avoid wrong
** optimizations with consecutive instructions not in the same basic block).
*/
int luaK_getlabel (FuncState *fs) {
  fs->lasttarget = fs->pc;
  return fs->pc;
}


static int getjump (FuncState *fs, int pc) {
  int offset = GETARG_sBx(fs->f->code[pc]);
  if (offset == NO_JUMP)  /* point to itself represents end of list */
    return NO_JUMP;  /* end of list */
  else
    return (pc+1)+offset;  /* turn offset into absolute position */
}


static Instruction *getjumpcontrol (FuncState *fs, int pc) {
  Instruction *pi = &fs->f->code[pc];
  if (pc >= 1 && testTMode(GET_OPCODE(*(pi-1))))
    return pi-1;
  else
    return pi;
}


/*
** check whether list has any jump that do not produce a value
** (or produce an inverted value)
*/
static int need_value (FuncState *fs, int list) {
  for (; list != NO_JUMP; list = getjump(fs, list)) {
    Instruction i = *getjumpcontrol(fs, list);
    if (GET_OPCODE(i) != OP_TESTSET) return 1;
  }
  return 0;  /* not found */
}


static int patchtestreg (FuncState *fs, int node, int reg) {
  Instruction *i = getjumpcontrol(fs, node);
  if (GET_OPCODE(*i) != OP_TESTSET)
    return 0;  /* cannot patch other instructions */
  if (reg != NO_REG && reg != GETARG_B(*i))
    SETARG_A(*i, reg);
  else  /* no register to put value or register already has the value */
    *i = CREATE_ABC(OP_TEST, GETARG_B(*i), 0, GETARG_C(*i));

  return 1;
}


static void removevalues (FuncState *fs, int list) {
  for (; list != NO_JUMP; list = getjump(fs, list))
      patchtestreg(fs, list, NO_REG);
}


static void patchlistaux (FuncState *fs, int list, int vtarget, int reg,
                          int dtarget) {
  while (list != NO_JUMP) {
    int next = getjump(fs, list);
    if (patchtestreg(fs, list, reg))
      fixjump(fs, list, vtarget);
    else
      fixjump(fs, list, dtarget);  /* jump to default target */
    list = next;
  }
}


static void dischargejpc (FuncState *fs) {
  patchlistaux(fs, fs->jpc, fs->pc, NO_REG, fs->pc);
  fs->jpc = NO_JUMP;
}


void luaK_patchlist (FuncState *fs, int list, int target) {
  if (target == fs->pc)
    luaK_patchtohere(fs, list);
  else {
    lua_assert(target < fs->pc);
    patchlistaux(fs, list, target, NO_REG, target);
  }
}


void luaK_patchtohere (FuncState *fs, int list) {
  luaK_getlabel(fs);
  luaK_concat(fs, &fs->jpc, list);
}