1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14.record panda.String <external> 15.record panda.Class <external> 16.record panda.Array <external> 17 18.record panda.Object {} 19.record Math {} 20.record Double {} 21.record Float {} 22.record IO {} 23.record System {} 24.record Convert {} 25.record Object {} 26.record DebugUtils {} 27 28# exceptions 29 30.record panda.StackOverflowException { 31 panda.String message 32 panda.Object cause 33} 34 35.record panda.NullPointerException { 36 panda.String message 37 panda.Object cause 38} 39 40.record panda.ArrayIndexOutOfBoundsException { 41 panda.String message 42 panda.Object cause 43} 44 45.record panda.IndexOutOfBoundsException { 46 panda.String message 47 panda.Object cause 48} 49 50.record panda.IllegalStateException { 51 panda.String message 52 panda.Object cause 53} 54 55.record panda.UnsupportedOperationException { 56 panda.String message 57 panda.Object cause 58} 59 60.record panda.ArrayStoreException { 61 panda.String message 62 panda.Object cause 63} 64 65.record panda.StringIndexOutOfBoundsException { 66 panda.String message 67 panda.Object cause 68} 69 70.record panda.NegativeArraySizeException { 71 panda.String message 72 panda.Object cause 73} 74 75.record panda.ArithmeticException { 76 panda.String message 77 panda.Object cause 78} 79 80.record panda.ClassCastException { 81 panda.String message 82 panda.Object cause 83} 84 85.record panda.AbstractMethodError { 86 panda.String message 87 panda.Object cause 88} 89 90.record panda.NoClassDefFoundError { 91 panda.String message 92 panda.Object cause 93} 94 95.record panda.ClassNotFoundException { 96 panda.String message 97 panda.Object cause 98} 99 100.record panda.NoSuchFieldError { 101 panda.String message 102 panda.Object cause 103} 104 105.record panda.NoSuchMethodError { 106 panda.String message 107 panda.Object cause 108} 109 110.record panda.ExceptionInInitializerError { 111 panda.String message 112 panda.Object cause 113} 114 115.record panda.InstantiationError { 116 panda.String message 117 panda.Object cause 118} 119 120.record panda.IllegalMonitorStateException { 121 panda.String message 122 panda.Object cause 123} 124 125.record panda.OutOfMemoryError { 126 panda.String message 127 panda.Object cause 128} 129 130.record panda.RuntimeException { 131 panda.String message 132 panda.Object cause 133} 134 135.record panda.VerifyError { 136 panda.String message 137 panda.Object cause 138} 139 140.record panda.Error { 141 panda.String message 142 panda.Object cause 143} 144 145.record panda.IncompatibleClassChangeError { 146 panda.String message 147 panda.Object cause 148} 149 150.function void panda.Object.ctor(panda.Object a0) <ctor> { 151 return.void 152} 153 154.function void panda.StackOverflowException.ctor(panda.StackOverflowException a0, panda.String a1, panda.Object a2) <ctor> { 155 lda.obj a1 156 stobj.obj a0, panda.StackOverflowException.message 157 lda.obj a2 158 stobj.obj a0, panda.StackOverflowException.cause 159 return.void 160} 161 162.function panda.String panda.StackOverflowException.getMessage(panda.StackOverflowException a0) { 163 ldobj.obj a0, panda.StackOverflowException.message 164 return.obj 165} 166 167.function panda.String panda.StackOverflowException.getCause(panda.StackOverflowException a0) { 168 ldobj.obj a0, panda.StackOverflowException.cause 169 return.obj 170} 171 172.function void panda.NullPointerException.ctor(panda.NullPointerException a0, panda.String a1, panda.Object a2) <ctor> { 173 lda.obj a1 174 stobj.obj a0, panda.NullPointerException.message 175 lda.obj a2 176 stobj.obj a0, panda.NullPointerException.cause 177 return.void 178} 179 180.function panda.String panda.NullPointerException.getMessage(panda.NullPointerException a0) { 181 ldobj.obj a0, panda.NullPointerException.message 182 return.obj 183} 184 185.function panda.Object panda.NullPointerException.getCause(panda.NullPointerException a0) { 186 ldobj.obj a0, panda.NullPointerException.cause 187 return.obj 188} 189 190.function void panda.ArrayIndexOutOfBoundsException.ctor(panda.ArrayIndexOutOfBoundsException a0, panda.String a1, panda.Object a2) <ctor> { 191 lda.obj a1 192 stobj.obj a0, panda.ArrayIndexOutOfBoundsException.message 193 lda.obj a2 194 stobj.obj a0, panda.ArrayIndexOutOfBoundsException.cause 195 return.void 196} 197 198.function panda.String panda.ArrayIndexOutOfBoundsException.getMessage(panda.ArrayIndexOutOfBoundsException a0) { 199 ldobj.obj a0, panda.ArrayIndexOutOfBoundsException.message 200 return.obj 201} 202 203.function panda.Object panda.ArrayIndexOutOfBoundsException.getCause(panda.ArrayIndexOutOfBoundsException a0) { 204 ldobj.obj a0, panda.ArrayIndexOutOfBoundsException.cause 205 return.obj 206} 207 208.function void panda.IndexOutOfBoundsException.ctor(panda.IndexOutOfBoundsException a0, panda.String a1, panda.Object a2) <ctor> { 209 lda.obj a1 210 stobj.obj a0, panda.IndexOutOfBoundsException.message 211 lda.obj a2 212 stobj.obj a0, panda.IndexOutOfBoundsException.cause 213 return.void 214} 215 216.function panda.String panda.IndexOutOfBoundsException.getMessage(panda.IndexOutOfBoundsException a0) { 217 ldobj.obj a0, panda.IndexOutOfBoundsException.message 218 return.obj 219} 220 221.function panda.Object panda.IndexOutOfBoundsException.getCause(panda.IndexOutOfBoundsException a0) { 222 ldobj.obj a0, panda.IndexOutOfBoundsException.cause 223 return.obj 224} 225 226.function void panda.IllegalStateException.ctor(panda.IllegalStateException a0, panda.String a1, panda.Object a2) <ctor> { 227 lda.obj a1 228 stobj.obj a0, panda.IllegalStateException.message 229 lda.obj a2 230 stobj.obj a0, panda.IllegalStateException.cause 231 return.void 232} 233 234.function panda.String panda.IllegalStateException.getMessage(panda.IllegalStateException a0) { 235 ldobj.obj a0, panda.IllegalStateException.message 236 return.obj 237} 238 239.function panda.Object panda.IllegalStateException.getCause(panda.IllegalStateException a0) { 240 ldobj.obj a0, panda.IllegalStateException.cause 241 return.obj 242} 243 244.function void panda.UnsupportedOperationException.ctor(panda.UnsupportedOperationException a0, panda.String a1, panda.Object a2) <ctor> { 245 lda.obj a1 246 stobj.obj a0, panda.UnsupportedOperationException.message 247 lda.obj a2 248 stobj.obj a0, panda.UnsupportedOperationException.cause 249 return.void 250} 251 252.function panda.String panda.UnsupportedOperationException.getMessage(panda.UnsupportedOperationException a0) { 253 ldobj.obj a0, panda.UnsupportedOperationException.message 254 return.obj 255} 256 257.function panda.Object panda.UnsupportedOperationException.getCause(panda.UnsupportedOperationException a0) { 258 ldobj.obj a0, panda.UnsupportedOperationException.cause 259 return.obj 260} 261 262.function void panda.ArrayStoreException.ctor(panda.ArrayStoreException a0, panda.String a1, panda.Object a2) <ctor> { 263 lda.obj a1 264 stobj.obj a0, panda.ArrayStoreException.message 265 lda.obj a2 266 stobj.obj a0, panda.ArrayStoreException.cause 267 return.void 268} 269 270.function panda.String panda.ArrayStoreException.getMessage(panda.ArrayStoreException a0) { 271 ldobj.obj a0, panda.ArrayStoreException.message 272 return.obj 273} 274 275.function panda.Object panda.ArrayStoreException.getCause(panda.ArrayStoreException a0) { 276 ldobj.obj a0, panda.ArrayStoreException.cause 277 return.obj 278} 279 280.function void panda.StringIndexOutOfBoundsException.ctor(panda.StringIndexOutOfBoundsException a0, panda.String a1, panda.Object a2) <ctor> { 281 lda.obj a1 282 stobj.obj a0, panda.StringIndexOutOfBoundsException.message 283 lda.obj a2 284 stobj.obj a0, panda.StringIndexOutOfBoundsException.cause 285 return.void 286} 287 288.function panda.String panda.StringIndexOutOfBoundsException.getMessage(panda.StringIndexOutOfBoundsException a0) { 289 ldobj.obj a0, panda.StringIndexOutOfBoundsException.message 290 return.obj 291} 292 293.function panda.Object panda.StringIndexOutOfBoundsException.getCause(panda.StringIndexOutOfBoundsException a0) { 294 ldobj.obj a0, panda.StringIndexOutOfBoundsException.cause 295 return.obj 296} 297 298.function void panda.NegativeArraySizeException.ctor(panda.NegativeArraySizeException a0, panda.String a1, panda.Object a2) <ctor> { 299 lda.obj a1 300 stobj.obj a0, panda.NegativeArraySizeException.message 301 lda.obj a2 302 stobj.obj a0, panda.NegativeArraySizeException.cause 303 return.void 304} 305 306.function panda.String panda.NegativeArraySizeException.getMessage(panda.NegativeArraySizeException a0) { 307 ldobj.obj a0, panda.NegativeArraySizeException.message 308 return.obj 309} 310 311.function panda.Object panda.NegativeArraySizeException.getCause(panda.NegativeArraySizeException a0) { 312 ldobj.obj a0, panda.NegativeArraySizeException.cause 313 return.obj 314} 315 316.function void panda.ArithmeticException.ctor(panda.ArithmeticException a0, panda.String a1, panda.Object a2) <ctor> { 317 lda.obj a1 318 stobj.obj a0, panda.ArithmeticException.message 319 lda.obj a2 320 stobj.obj a0, panda.ArithmeticException.cause 321 return.void 322} 323 324.function panda.String panda.ArithmeticException.getMessage(panda.ArithmeticException a0) { 325 ldobj.obj a0, panda.ArithmeticException.message 326 return.obj 327} 328 329.function panda.Object panda.ArithmeticException.getCause(panda.ArithmeticException a0) { 330 ldobj.obj a0, panda.ArithmeticException.cause 331 return.obj 332} 333 334.function void panda.ClassCastException.ctor(panda.ClassCastException a0, panda.String a1, panda.Object a2) <ctor> { 335 lda.obj a1 336 stobj.obj a0, panda.ClassCastException.message 337 lda.obj a2 338 stobj.obj a0, panda.ClassCastException.cause 339 return.void 340} 341 342.function panda.String panda.ClassCastException.getMessage(panda.ClassCastException a0) { 343 ldobj.obj a0, panda.ClassCastException.message 344 return.obj 345} 346 347.function panda.Object panda.ClassCastException.getCause(panda.ClassCastException a0) { 348 ldobj.obj a0, panda.ClassCastException.cause 349 return.obj 350} 351 352.function void panda.AbstractMethodError.ctor(panda.AbstractMethodError a0, panda.String a1, panda.Object a2) <ctor> { 353 lda.obj a1 354 stobj.obj a0, panda.AbstractMethodError.message 355 lda.obj a2 356 stobj.obj a0, panda.AbstractMethodError.cause 357 return.void 358} 359 360.function panda.String panda.AbstractMethodError.getMessage(panda.AbstractMethodError a0) { 361 ldobj.obj a0, panda.AbstractMethodError.message 362 return.obj 363} 364 365.function panda.Object panda.AbstractMethodError.getCause(panda.AbstractMethodError a0) { 366 ldobj.obj a0, panda.AbstractMethodError.cause 367 return.obj 368} 369 370.function void panda.NoClassDefFoundError.ctor(panda.NoClassDefFoundError a0, panda.String a1, panda.Object a2) <ctor> { 371 lda.obj a1 372 stobj.obj a0, panda.NoClassDefFoundError.message 373 lda.obj a2 374 stobj.obj a0, panda.NoClassDefFoundError.cause 375 return.void 376} 377 378.function panda.String panda.NoClassDefFoundError.getMessage(panda.NoClassDefFoundError a0) { 379 ldobj.obj a0, panda.NoClassDefFoundError.message 380 return.obj 381} 382 383.function panda.Object panda.NoClassDefFoundError.getCause(panda.NoClassDefFoundError a0) { 384 ldobj.obj a0, panda.NoClassDefFoundError.cause 385 return.obj 386} 387 388.function void panda.ClassNotFoundException.ctor(panda.ClassNotFoundException a0, panda.String a1, panda.Object a2) <ctor> { 389 lda.obj a1 390 stobj.obj a0, panda.ClassNotFoundException.message 391 lda.obj a2 392 stobj.obj a0, panda.ClassNotFoundException.cause 393 return.void 394} 395 396.function panda.String panda.ClassNotFoundException.getMessage(panda.ClassNotFoundException a0) { 397 ldobj.obj a0, panda.ClassNotFoundException.message 398 return.obj 399} 400 401.function panda.Object panda.ClassNotFoundException.getCause(panda.ClassNotFoundException a0) { 402 ldobj.obj a0, panda.ClassNotFoundException.cause 403 return.obj 404} 405 406.function void panda.NoSuchFieldError.ctor(panda.NoSuchFieldError a0, panda.String a1, panda.Object a2) <ctor> { 407 lda.obj a1 408 stobj.obj a0, panda.NoSuchFieldError.message 409 lda.obj a2 410 stobj.obj a0, panda.NoSuchFieldError.cause 411 return.void 412} 413 414.function panda.String panda.NoSuchFieldError.getMessage(panda.NoSuchFieldError a0) { 415 ldobj.obj a0, panda.NoSuchFieldError.message 416 return.obj 417} 418 419.function panda.Object panda.NoSuchFieldError.getCause(panda.NoSuchFieldError a0) { 420 ldobj.obj a0, panda.NoSuchFieldError.cause 421 return.obj 422} 423 424.function void panda.NoSuchMethodError.ctor(panda.NoSuchMethodError a0, panda.String a1, panda.Object a2) <ctor> { 425 lda.obj a1 426 stobj.obj a0, panda.NoSuchMethodError.message 427 lda.obj a2 428 stobj.obj a0, panda.NoSuchMethodError.cause 429 return.void 430} 431 432.function panda.String panda.NoSuchMethodError.getMessage(panda.NoSuchMethodError a0) { 433 ldobj.obj a0, panda.NoSuchMethodError.message 434 return.obj 435} 436 437.function panda.Object panda.NoSuchMethodError.getCause(panda.NoSuchMethodError a0) { 438 ldobj.obj a0, panda.NoSuchMethodError.cause 439 return.obj 440} 441 442.function void panda.ExceptionInInitializerError.ctor(panda.ExceptionInInitializerError a0, panda.String a1, panda.Object a2) <ctor> { 443 lda.obj a1 444 stobj.obj a0, panda.ExceptionInInitializerError.message 445 lda.obj a2 446 stobj.obj a0, panda.ExceptionInInitializerError.cause 447 return.void 448} 449 450.function panda.String panda.ExceptionInInitializerError.getMessage(panda.ExceptionInInitializerError a0) { 451 ldobj.obj a0, panda.ExceptionInInitializerError.message 452 return.obj 453} 454 455.function panda.Object panda.ExceptionInInitializerError.getCause(panda.ExceptionInInitializerError a0) { 456 ldobj.obj a0, panda.ExceptionInInitializerError.cause 457 return.obj 458} 459 460.function void panda.InstantiationError.ctor(panda.InstantiationError a0, panda.String a1, panda.Object a2) <ctor> { 461 lda.obj a1 462 stobj.obj a0, panda.InstantiationError.message 463 lda.obj a2 464 stobj.obj a0, panda.InstantiationError.cause 465 return.void 466} 467 468.function panda.String panda.InstantiationError.getMessage(panda.InstantiationError a0) { 469 ldobj.obj a0, panda.InstantiationError.message 470 return.obj 471} 472 473.function panda.Object panda.InstantiationError.getCause(panda.InstantiationError a0) { 474 ldobj.obj a0, panda.InstantiationError.cause 475 return.obj 476} 477 478.function void panda.IllegalMonitorStateException.ctor(panda.IllegalMonitorStateException a0, panda.String a1, panda.Object a2) <ctor> { 479 lda.obj a1 480 stobj.obj a0, panda.IllegalMonitorStateException.message 481 lda.obj a2 482 stobj.obj a0, panda.IllegalMonitorStateException.cause 483 return.void 484} 485 486.function panda.String panda.IllegalMonitorStateException.getMessage(panda.IllegalMonitorStateException a0) { 487 ldobj.obj a0, panda.IllegalMonitorStateException.message 488 return.obj 489} 490 491.function panda.Object panda.IllegalMonitorStateException.getCause(panda.IllegalMonitorStateException a0) { 492 ldobj.obj a0, panda.IllegalMonitorStateException.cause 493 return.obj 494} 495 496.function void panda.OutOfMemoryError.ctor(panda.OutOfMemoryError a0, panda.String a1, panda.Object a2) <ctor> { 497 lda.obj a1 498 stobj.obj a0, panda.OutOfMemoryError.message 499 lda.obj a2 500 stobj.obj a0, panda.OutOfMemoryError.cause 501 return.void 502} 503 504.function panda.String panda.OutOfMemoryError.getMessage(panda.OutOfMemoryError a0) { 505 ldobj.obj a0, panda.OutOfMemoryError.message 506 return.obj 507} 508 509.function panda.Object panda.OutOfMemoryError.getCause(panda.OutOfMemoryError a0) { 510 ldobj.obj a0, panda.OutOfMemoryError.cause 511 return.obj 512} 513 514.function void panda.RuntimeException.ctor(panda.RuntimeException a0, panda.String a1, panda.Object a2) <ctor> { 515 lda.obj a1 516 stobj.obj a0, panda.RuntimeException.message 517 lda.obj a2 518 stobj.obj a0, panda.RuntimeException.cause 519 return.void 520} 521 522.function panda.String panda.RuntimeException.getMessage(panda.RuntimeException a0) { 523 ldobj.obj a0, panda.RuntimeException.message 524 return.obj 525} 526 527.function panda.Object panda.RuntimeException.getCause(panda.RuntimeException a0) { 528 ldobj.obj a0, panda.RuntimeException.cause 529 return.obj 530} 531 532.function void panda.VerifyError.ctor(panda.VerifyError a0, panda.String a1, panda.Object a2) <ctor> { 533 lda.obj a1 534 stobj.obj a0, panda.VerifyError.message 535 lda.obj a2 536 stobj.obj a0, panda.VerifyError.cause 537 return.void 538} 539 540.function panda.String panda.VerifyError.getMessage(panda.VerifyError a0) { 541 ldobj.obj a0, panda.VerifyError.message 542 return.obj 543} 544 545.function panda.Object panda.VerifyError.getCause(panda.VerifyError a0) { 546 ldobj.obj a0, panda.VerifyError.cause 547 return.obj 548} 549 550.function void panda.Error.ctor(panda.Error a0, panda.String a1, panda.Object a2) <ctor> { 551 lda.obj a1 552 stobj.obj a0, panda.Error.message 553 lda.obj a2 554 stobj.obj a0, panda.Error.cause 555 return.void 556} 557 558.function panda.String panda.Error.getMessage(panda.Error a0) { 559 ldobj.obj a0, panda.Error.message 560 return.obj 561} 562 563.function panda.Object panda.Error.getCause(panda.Error a0) { 564 ldobj.obj a0, panda.Error.cause 565 return.obj 566} 567 568.function void panda.IncompatibleClassChangeError.ctor(panda.IncompatibleClassChangeError a0, panda.String a1, panda.Object a2) <ctor> { 569 lda.obj a1 570 stobj.obj a0, panda.IncompatibleClassChangeError.message 571 lda.obj a2 572 stobj.obj a0, panda.IncompatibleClassChangeError.cause 573 return.void 574} 575 576.function panda.String panda.IncompatibleClassChangeError.getMessage(panda.IncompatibleClassChangeError a0) { 577 ldobj.obj a0, panda.IncompatibleClassChangeError.message 578 return.obj 579} 580 581.function panda.Object panda.IncompatibleClassChangeError.getCause(panda.IncompatibleClassChangeError a0) { 582 ldobj.obj a0, panda.IncompatibleClassChangeError.cause 583 return.obj 584} 585 586# Math methods 587 588.function i32 Math.absI32(i32 a0) <native> 589 590.function i64 Math.absI64(i64 a0) <native> 591 592.function f32 Math.absF32(f32 a0) <native> 593 594.function f64 Math.absF64(f64 a0) <native> 595 596.function f32 Math.fsin(f32 a0) <native> 597 598.function f64 Math.sin(f64 a0) <native> 599 600.function f32 Math.fcos(f32 a0) <native> 601 602.function f64 Math.cos(f64 a0) <native> 603 604.function f32 Math.fpow(f32 a0, f32 a1) <native> 605 606.function f64 Math.pow(f64 a0, f64 a1) <native> 607 608.function f32 Math.fsqrt(f32 a0) <native> 609 610.function f64 Math.sqrt(f64 a0) <native> 611 612.function i32 Math.minI32(i32 a0, i32 a1) <native> 613 614.function i64 Math.minI64(i64 a0, i64 a1) <native> 615 616.function f32 Math.minF32(f32 a0, f32 a1) <native> 617 618.function f64 Math.minF64(f64 a0, f64 a1) <native> 619 620.function i32 Math.maxI32(i32 a0, i32 a1) <native> 621 622.function i64 Math.maxI64(i64 a0, i64 a1) <native> 623 624.function f32 Math.maxF32(f32 a0, f32 a1) <native> 625 626.function f64 Math.maxF64(f64 a0, f64 a1) <native> 627 628.function u1 Double.isInfinite(f64 a0) <native> 629 630.function u1 Float.isInfinite(f32 a0) <native> 631 632.function f64 Math.calculateDouble(u32 a0, f64 a1) <native> 633 634.function f32 Math.calculateFloat(u32 a0, f32 a1) <native> 635 636# IO methods 637 638.function void IO.printI32(i32 a0) <native> 639 640.function void IO.printU32(u32 a0) <native> 641 642.function void IO.printI64(i64 a0) <native> 643 644.function void IO.printU64(u64 a0) <native> 645 646.function void IO.printF32(f32 a0) <native> 647 648.function void IO.printF64(f64 a0) <native> 649 650.function void IO.printString(panda.String a0) <native> 651 652# System methods 653.function i32 System.getCoroutineWorkerId() <native> 654 655.function void System.scheduleCoroutine() <native> 656 657.function void System.exit(i32 a0) <native> 658 659.function u8 System.compileMethod(panda.String a0) <native> 660 661.function i64 System.nanoTime() <native> 662 663.function void System.assert(u1 a0) <native> 664 665.function void System.assertPrint(u1 a0, panda.String a1) <native> 666 667# Debug methods 668 669.function void DebugUtils.checkTag(i64 a0, i64 a1) <native> 670 671# Object methods 672 673# TODO(mwx851039): move to java lib 674 675.function panda.Object Object.createNonMovable(panda.Class a0) <native> 676 677.function void Object.monitorEnter(panda.Object a0) <native> 678 679.function void Object.monitorExit(panda.Object a0) <native> 680 681.function void Object.Wait(panda.Object a0) <native> 682 683.function void Object.TimedWait(panda.Object a0, u64 a1) <native> 684 685.function void Object.TimedWaitNanos(panda.Object a0, u64 a1, u64 a2) <native> 686 687.function void Object.Notify(panda.Object a0) <native> 688 689.function void Object.NotifyAll(panda.Object a0) <native> 690 691# Convert methods 692 693.function i32 Convert.stringToI32(panda.String a0) <native> 694 695.function u32 Convert.stringToU32(panda.String a0) <native> 696 697.function i64 Convert.stringToI64(panda.String a0) <native> 698 699.function u64 Convert.stringToU64(panda.String a0) <native> 700 701.function f32 Convert.stringToF32(panda.String a0) <native> 702 703.function f64 Convert.stringToF64(panda.String a0) <native> 704