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