Changeset 167094 in webkit for trunk/Source/JavaScriptCore/offlineasm/ast.rb
- Timestamp:
- Apr 10, 2014, 3:33:59 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/offlineasm/ast.rb
r148474 r167094 230 230 end 231 231 232 def immediateOperand? 233 true 234 end 235 232 236 def register? 233 237 false … … 256 260 end 257 261 258 def address? 259 false 260 end 261 262 def label? 263 false 264 end 265 266 def immediate? 262 def value 263 "#{left.value} + #{right.value}" 264 end 265 266 def address? 267 false 268 end 269 270 def label? 271 false 272 end 273 274 def immediate? 275 true 276 end 277 278 def immediateOperand? 267 279 true 268 280 end … … 294 306 end 295 307 296 def address? 297 false 298 end 299 300 def label? 301 false 302 end 303 304 def immediate? 308 def value 309 "#{left.value} - #{right.value}" 310 end 311 312 def address? 313 false 314 end 315 316 def label? 317 false 318 end 319 320 def immediate? 321 true 322 end 323 324 def immediateOperand? 305 325 true 306 326 end … … 344 364 end 345 365 366 def immediateOperand? 367 false 368 end 369 346 370 def register? 347 371 false … … 381 405 end 382 406 407 def immediateOperand? 408 false 409 end 410 383 411 def register? 384 412 false … … 419 447 end 420 448 449 def immediateOperand? 450 false 451 end 452 421 453 def register? 422 454 false … … 457 489 end 458 490 491 def immediateOperand? 492 false 493 end 494 459 495 def register? 460 496 false … … 495 531 end 496 532 533 def immediateOperand? 534 false 535 end 536 497 537 def register? 498 538 false … … 530 570 def immediate? 531 571 true 572 end 573 574 def immediateOperand? 575 false 532 576 end 533 577 … … 608 652 end 609 653 654 def immediateOperand? 655 false 656 end 657 610 658 def register? 611 659 true … … 627 675 628 676 def immediate? 677 false 678 end 679 680 def immediateOperand? 629 681 false 630 682 end … … 698 750 def immediate? 699 751 false 752 end 753 754 def immediateOperand? 755 true 700 756 end 701 757 … … 760 816 end 761 817 818 def immediateOperand? 819 false 820 end 821 762 822 def register? 763 823 false … … 791 851 def immediate? 792 852 false 853 end 854 855 def immediateOperand? 856 true 793 857 end 794 858 … … 865 929 866 930 $labelMapping = {} 931 $referencedExternLabels = Array.new 867 932 868 933 class Label < NoChildren … … 872 937 super(codeOrigin) 873 938 @name = name 874 end 875 876 def self.forName(codeOrigin, name) 939 @extern = true 940 @global = false 941 end 942 943 def self.forName(codeOrigin, name, definedInFile = false) 877 944 if $labelMapping[name] 878 945 raise "Label name collision: #{name}" unless $labelMapping[name].is_a? Label … … 880 947 $labelMapping[name] = Label.new(codeOrigin, name) 881 948 end 949 if definedInFile 950 $labelMapping[name].clearExtern() 951 end 882 952 $labelMapping[name] 883 953 end 884 954 955 def self.setAsGlobal(codeOrigin, name) 956 if $labelMapping[name] 957 label = $labelMapping[name] 958 raise "Label: #{name} declared global multiple times" unless not label.global? 959 label.setGlobal() 960 else 961 newLabel = Label.new(codeOrigin, name) 962 newLabel.setGlobal() 963 $labelMapping[name] = newLabel 964 end 965 end 966 967 def self.resetReferenced 968 $referencedExternLabels = Array.new 969 end 970 971 def self.forReferencedExtern() 972 $referencedExternLabels.each { 973 | label | 974 yield "#{label.name}" 975 } 976 end 977 978 def clearExtern 979 @extern = false 980 end 981 982 def extern? 983 @extern 984 end 985 986 def setGlobal 987 @global = true 988 end 989 990 def global? 991 @global 992 end 993 885 994 def dump 886 995 "#{name}:" … … 950 1059 end 951 1060 1061 def extern? 1062 $labelMapping[name].is_a? Label and $labelMapping[name].extern? 1063 end 1064 1065 def used 1066 if !$referencedExternLabels.include?(@label) and extern? 1067 $referencedExternLabels.push(@label) 1068 end 1069 end 1070 952 1071 def dump 953 1072 label.name 954 1073 end 955 1074 956 def address? 957 false 958 end 959 960 def label? 961 true 962 end 963 964 def immediate? 965 false 1075 def value 1076 asmLabel() 1077 end 1078 1079 def address? 1080 false 1081 end 1082 1083 def label? 1084 true 1085 end 1086 1087 def immediate? 1088 false 1089 end 1090 1091 def immediateOperand? 1092 true 966 1093 end 967 1094 end … … 990 1117 label.name 991 1118 end 992 993 def address? 994 false 995 end 996 997 def label? 998 true 999 end 1000 1001 def immediate? 1002 false 1119 1120 def value 1121 asmLabel() 1122 end 1123 1124 def address? 1125 false 1126 end 1127 1128 def label? 1129 true 1130 end 1131 1132 def immediate? 1133 false 1134 end 1135 1136 def immediateOperand? 1137 true 1003 1138 end 1004 1139 end
Note:
See TracChangeset
for help on using the changeset viewer.