Commit Graph

97 Commits

Author SHA1 Message Date
xiongluo 771d51b546 refactor jsMethod
1. Move necessary fileds in jsMethod
2. Make jsMethod inherit aligned struct
3. Change some function names for easy reading

Signed-off-by: xiongluo <xiongluo@huawei.com>
2022-04-20 23:17:00 -10:00
lifansheng a725676a6c Runtime architecture adjustment
Description
  Cut out most of the initialization logic in Runtime::Create and disconnect the
  inheritance relationship of most classes such as JSThread.
Issue:
  #I53418: Runtime architecture adjustment

Signed-off-by: lifansheng <lifansheng1@huawei.com>
Change-Id: Ib9c1a40354f77d32e515e23334e7f4b4a4fa3259
2022-04-21 14:37:31 +08:00
openharmony_ci 47d32ddc02 !1029 Support watch expression and condtional breakpoint
Merge pull request !1029 from Gymee/feature_watch
2022-04-18 14:13:30 +00:00
Gymee 83048efbf1 support watch expression and conditional breakpoint
Signed-off-by: Gymee <yumeijie@huawei.com>
Change-Id: I794a5ee770f251e6fea4de5058575519ff0490e6
2022-04-18 20:04:33 +08:00
songzhengchao e846617c23 1 bug fix compile bc/common stub vm setup load stub
2 rename glue type POINTER TO NATIVE_POINTER
3 when function need call another js function, it will lowering to call "JSCall" trampoline function
JSCall trampoline function will check calltarget function, then correct the arguments, finally jump
the native or optimized code address of the target function.

JSCall(glue, argc, calltarget, ....)
then proxy call(glue, argc, callTarget, argv[])
        if proxy->GetHandler is function
            tail call JSCall(glue, argc, callTarget, argv); // consider performance
        else
            //Call(trap, handler, «target, thisArgument, argArray»)
            call CreateArrayFromList(glue, argc, argv[]) ---> arrHandle  // maybe trigger GC, construct OptimizedWithArgvLeaveFrame, visitor argv[0]..argv[argc-1]
            call JSCall(glue, argc, method, argv[])
issue:https://gitee.com/openharmony/ark_js_runtime/issues/I52T6B?from=project-issue

Change-Id: I650ff10b35bc085ec81e7734ce35501ee23fbb62
2022-04-18 11:36:41 +08:00
songzhengchao 71dd7f53b9 refactor llvm_ir_builder.cpp call
bug fix OptimizedWithArgvLeaveFrameHandler::Iterate bug

issue:https://gitee.com/openharmony/ark_js_runtime/issues/I52T6B?from=project-issue
Signed-off-by: songzhengchao <surpassgoodchao@qq.com>
2022-04-17 22:32:54 +08:00
openharmony_ci 50bb6b9bc6 !1025 debugger refactor
Merge pull request !1025 from changcheng/debugger_refactor
2022-04-17 01:01:12 +00:00
wengchangcheng d6c835caea Descriptor: debugger refactor
details:
1. debugger refactor, don't use runtime debugger
2. fix debugger crash

issue: https://gitee.com/openharmony/ark_js_runtime/issues/I52VXK

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: I08e3c86bf659b9e0a44d014d13b11462d50218b3
2022-04-17 01:16:26 +08:00
xujie cf0becfdba Add Slowpath Aot Lowering
Aot lowering for AsyncFunctionEnter, TypeOfDyn, ResumeGenerator,
GetResumeMode, DefineNCFuncDyn, DefineMethod

issue: https://gitee.com/openharmony/ark_js_runtime/issues/I52PWZ

Signed-off-by: xujie <xujie101@huawei.com>
Change-Id: I5b32726d41580bcb0d7baa9bed6b3941fef23384
2022-04-16 17:35:30 +08:00
songzhengchao 56477d35de bug fix compile bc/common stub vm setup load stub
rename glue type POINTER TO NATIVE_POINTER

issue:https://gitee.com/openharmony/ark_js_runtime/issues/I52T6B?from=project-issue

Signed-off-by: songzhengchao <songzhengchao@huawei.com>
Change-Id: Ic50466ef1afd931268a649227458642f933b2360
2022-04-16 17:20:27 +08:00
openharmony_ci 7c000a7499 !973 fix codeDex warning
Merge pull request !973 from zhaozhibo/master
2022-04-12 08:41:37 +00:00
zhaozhibo aaf776aab5 fix code warning for codeDex
Signed-off-by: zhaozhibo <zhaozhibo3@huawei.com>
2022-04-12 14:27:50 +08:00
luochuhao 89e18a6381 Modify for helloworld demo on AOT framework
Adaptation on serialization and deserialization of snapshot file is needed,
for providing string constant table.

Tweak on callarg1dyn runtime stub.

Adjust initialization sequence of tsloader and global constant to cope with snapshot
deserilization.

Issue: https://gitee.com/openharmony/ark_js_runtime/issues/I527BJ
Signed-off-by: luochuhao <luochuhao@huawei.com>
Change-Id: I20a82dd0dbeec368b4ff93db4cca8d0ffbdb6717
2022-04-12 13:50:09 +08:00
wuzhefeng d57c16507c Fix crash bug
The feature of TSAOT should be switched off/on via jsoptions. This PR
adds such missing control logic and fix the crash during vm setup.

Issue: https://gitee.com/openharmony/ark_js_runtime/issues/I51Y3O

Signed-off-by: wuzhefeng <wuzhefeng1@huawei.com>
Change-Id: I211cf41b814566502f8de5135e5fc006beb71375
2022-04-10 08:22:36 -07:00
dingwen 1c70dfbc78 Add snapshot generation step for aot compiler and testing entry of aot compiled function.
issue:https://gitee.com/openharmony/ark_js_runtime/issues/I4ZOXH
Signed-off-by: dingwen <dingwen6@huawei.com>

Change-Id: I2a52b06453f48407c418e57b3ce62e710042768b
2022-04-10 14:59:33 +08:00
dingwen f7c357a8d4 SnapShot serialize and deserialize by using ObjectXray visit object
field
issue:https://gitee.com/openharmony/ark_js_runtime/issues/I4ZOXH

Signed-off-by: dingwen <dingwen6@huawei.com>
Change-Id: I6e03cfb4f7b89786b612b56adc0877f8b178058e
2022-04-10 12:32:07 +08:00
wengchangcheng 2e4dbad3a3 [part-1] support watch expression
1. delete unused execute arguments
2. support select execute entry
3. support get execute return value

issue: https://gitee.com/openharmony/ark_js_runtime/issues/I51MKR

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: I40139e2f4afa36ad7d169d7f6c367a62a40bf476
2022-04-09 22:53:42 +08:00
guobingbing 589234007e FFI optimization for call params
Signed-off-by: guobingbing <guobingbing3@huawei.com>
Change-Id: I61b820e91b85364e4f41d35ca0172ad059a1b916
2022-04-07 21:13:46 +08:00
wengchangcheng 4e08cec6ee [part-1] delete "*-inl.h" of newest codex rule
move the definition to the declare head file

issue: https://gitee.com/openharmony/ark_js_runtime/issues/I512HV

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: Ieeb0ec96281cda51d0bebd6a2e771fc8d4078306
2022-04-07 14:14:49 +08:00
wengchangcheng 0b4981525d refactor stl container
1. using runtime container instead of stl container
2. change debugger line amd column type to int32_t

issue: https://gitee.com/openharmony/ark_js_runtime/issues/I50NHW

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: I0eb4651f17c6f6894f11de1ba904bcbe83a57db7
2022-04-06 16:05:22 +08:00
wengchangcheng 7c0ca961f5 refactor debugger extractor
1. rename js_pt_extractor
2. move debug_info_extractor to js_runtime
3. use map to store MethodDebug info and LocalVariable info
4. refactor ScopeInfo extractor

issue: https://gitee.com/openharmony/ark_js_runtime/issues/I5004N

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: Id64d718aa9360afd53398ee729714c859bd61768
2022-03-30 17:49:11 +08:00
lichenshuai fcda5bb413 Add AsmInterpreterFrame
Add AsmInterpreterFrame for ASM.

Issue: #I4YF9X

Signed-off-by: lichenshuai <lichenshuai@huawei.com>
Change-Id: I4efc781a9fca90de4a0aed5b6a91a8122cfa16ab
2022-03-30 10:51:05 +08:00
yingguofeng@huawei.com 2b48dab678 EmptyArray、EmptyTaggedQueue、EmptyLayoutInfo Move to GloblaEnvConstant.
When New class,It depends on EmptyLayoutInfo.So it must new EmptyLayoutInfo first.

https://gitee.com/openharmony/ark_js_runtime/issues/I4ZIGT?from=project-issue

Change-Id: I654ec61e7f3dc1ab55539dd64acba24489983107
Signed-off-by: yingguofeng@huawei.com <yingguofeng@huawei.com>
2022-03-25 11:05:13 +08:00
wengchangcheng 4804cd80d3 add Wextra and Werror in gn args
1. add -Wextra and -Werror to check code format error
2. modify all compiler error

issue: https://gitee.com/openharmony/ark_js_runtime/issues/I4ZDQE

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: If5fdd1980494269b4c06bf1bb38a8eba7952adea
2022-03-24 21:45:19 +08:00
luochuhao 8c6f8ef20d Implement aot file generated step for aot compiler
Implement llvmIRGeneration Pass in aot compiler pipeline.

Rename and reconstruct LLVMStubModule and LLVMModuleAssembler class. Move aot code infos
related to describe current (code size, begin addr, entry offset of each func etc.)  AOT
snippet and corresponding serialization/deserialization func to NEW class called AotCodeInfo.
Move functions related to file reading/writing to NEW class called AotFileManager.

Add new call opcode in circuit IR to differentiate call into common stubs and call into
runtime interfaces without GC.

Adapt js runtime option for above changes.

Issue: https://gitee.com/openharmony/ark_js_runtime/issues/I4ZDY5
Signed-off-by: luochuhao <luochuhao@huawei.com>
Change-Id: If0ab5927ad2551fe5567d1c7b18540fbcc38bc15
2022-03-24 15:44:26 +08:00
DaiH 3e5c4da8c3 Change file folder "platform" to "tastpool"
Signed-off-by: DaiH <daihuina1@huawei.com>

1. Change file folder "platform" to "tastpool"
2. Change class "platform" to "tastpool"

https: //gitee.com/openharmony/ark_js_runtime/issues/I4Z7EU
Change-Id: Ife3f2a9e52a02e5046e3ccd936f1993aa225e908
2022-03-23 15:43:38 +08:00
openharmony_ci 2eeb9e88b3 !762 share constpool, and fix some codestyle
Merge pull request !762 from changcheng/fix_codestyle
2022-03-21 15:01:23 +00:00
wengchangcheng fbf3c4a035 share constpool, and modify some code refactor
1. cache constpool in ecma vm
2. use JSPandaFile instead of panda_file::File
3. make GenerateProgram as a static function
4. add a singleton of JSPandaFileManager::GetInstance()

issue: https://gitee.com/openharmony/ark_js_runtime/issues/I4WZVV

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: Ic7ccd66764c3a020e575d4046e1792475d45be6b
2022-03-21 21:46:25 +08:00
xujie 479b7c3785 Clean Code For CodeHub Issues #96-#123 And #250-#264
According to the problems pointed out by the issuer and the
specifications compiled by Huawei, modify the non-compliant
parts of jsruntime.

Issue:https://gitee.com/openharmony/ark_js_runtime/issues/I4YLCQ

Signed-off-by: xujie <xujie101@huawei.com>
Change-Id: Iceb771dfd9f3aa9017205068fc50ab1a63aae08b
2022-03-21 17:09:19 +08:00
wuzhefeng aa44e06513 Fix compilation errors
Because there are some macros that trigger compilation errors when
compiling stub-compiler and aot-compiler. The root cause is that several
classes declarations are missing from the associated macros. This PR
fixes the issues via adding the lost classes to the macros. Besides, we
also rename the FastStub to CommonStubs in order to make the stub-arch
more readable.

Issue:https://gitee.com/openharmony/ark_js_runtime/issues/I4YKBN

Signed-off-by: wuzhefeng <wuzhefeng1@huawei.com>
Change-Id: I16263fef7deeadf8a9ce4e5252a6e9898a7742bc
2022-03-18 18:17:21 -07:00
luochuhao c705ce054b Refactor ID definition and callSignature initialization mechanism of stubs
Refactor ID definition and callSignature initialization mechanism of runtime stub,
optimizer stub and bytecode handler stub,
reduce amount and complexity of macro used in calling those stubs.

Add stubDes struct to classify stubs both in AOT file generation phase
and AOT file loading phase.

Fix some circular dependency problems in including header files.

Fix certain inline function declaration and definition format problems, which could lead to
compiling errors.

Issue: https://gitee.com/openharmony/ark_js_runtime/issues/I4VMLD?from=project-issue
Test: stubTest(unit test), richards with asm interpreter enabled
Signed-off-by: luochuhao <luochuhao@huawei.com>
Change-Id: Ibd5fcd963347b97f8dec227f3245d2064463b0b0
2022-03-18 22:01:52 +08:00
wanghuan 68ab7992a7 feature:add asm handle disable range by option
description:add an option to control asm interpreter stub handle disable range in debug mode

reason:add an option to control asm interpreter stub handle disable range in debug mode

issue:https://gitee.com/open_harmony/dashboard?issue_id=I4XAXX

Signed-off-by: wanghuan <wanghuan80@huawei.com>
Change-Id: Ie573a11be453f036cefb9d2eb000b84bb5007e6b
2022-03-16 14:32:47 +08:00
wanyanglan fd4c928922 Add information such as instruction immediate, method_id, string_id, etc.
The lowering slow path requires not only the vreg information of the
instruction, but also other information such as string id, method id, etc.

For each bytecode instruction, collect the various information stored in
the instruction, and use the information as the input of the gate, and
in the lowering stage, take out the required information from the gate.

issue:https://gitee.com/openharmony/ark_js_runtime/issues/I4WQR5

Signed-off-by: wanyanglan <wanyanglan1@huawei.com>
Change-Id: I42ef36554b0b88ce3e1cd0f593e8ce9e924b83e0
2022-03-15 11:02:40 +08:00
sunzhe23 57fe644984 refactor runtime trampoline id
Description:
add runtime_trace for runtime trampoline
mov runtime_trampolines.cpp info cmascript/trampoline/
rename FAST_STUB_ID as RUNTIME_CALL_ID

issue: #I4XBC9

Signed-off-by: sunzhe23 <sunzhe23@huawei.com>
2022-03-11 02:17:24 -08:00
y00576111 a1796a573e EcmaScript Standard Module Implementation
Delete the existing module implementation and
re implement the module function according to the ECMA 2018 specification

issue: #I4NZQT [https://gitee.com/openharmony/ark_ts2abc/issues/I4NZQT]

Signed-off-by: y00576111 <yaojian16@huawei.com>
Change-Id: I8d381db7f8bf2f3d6b2a5c21cbc3cbab1aef0b9b
2022-03-10 19:10:42 +08:00
lengchangjing 48e2da7c31 Merge branch 'master' of https://gitee.com/leng-changjing/ark_js_runtime_option 2022-03-07 22:39:05 +08:00
lengchangjing eb86719436 Merge remote-tracking branch 'mother/master' 2022-03-07 20:55:58 +08:00
lengchangjing 99c0c94b20 Merge remote-tracking branch 'mother/master' 2022-03-07 20:52:59 +08:00
xiongluo cb55b5b6cd fix gc bug
Signed-off-by: xiongluo <xiongluo@huawei.com>
2022-03-06 17:58:44 -10:00
lengchangjing d8988764bc Merge remote-tracking branch 'mother/master' 2022-03-07 10:56:22 +08:00
openharmony_ci dfbff80e63 !687 fix jspandafile of framework file and aot info
Merge pull request !687 from changcheng/refactor_pandafile_and_nativepointer
2022-03-06 15:57:41 +00:00
lengchangjing fb1cf3cd96 Merge remote-tracking branch 'mother/master' 2022-03-04 21:26:36 +08:00
lengchangjing e2c971a8f9 change Class Ecma_VM's member options_ for multiple use
Description
  add a member of type JSRuntimeOptions
Related issue
  #I4W0M1:change Class Ecma_VM's member options_ for multiple use

Signed-off-by: lengchangjing <lengchangjing@huawei.com>
2022-03-04 21:01:43 +08:00
wengchangcheng 65ce5ee62d fix jspandafile of framework file and aot info
1. delete unused logic of framework pandafile
2. refactor native pointer callback
3. fix bug of generate aot info

https://gitee.com/openharmony/ark_js_runtime/issues/I4VSSL

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: I3ba318a0bc2c0e95afff6473ff106bc8b5c9dfe4
2022-03-04 15:29:27 +08:00
scw 326b0140c9 move dfx feature to dfx dir
ISSUE:https://gitee.com/openharmony/ark_js_runtime/issues/I4SXXS

Signed-off-by: scw <suchongwei@huawei.com>
Change-Id: Ie5ae6a70f5b561b7578702db591affb26a0057d9
2022-03-04 10:52:47 +08:00
wengchangcheng 7c7b0e5097 fix actor bug
modify actor for app start

issue:https://gitee.com/openharmony/js_worker_module/issues/I4SMW8

Signed-off-by: wengchangcheng <wengchangcheng@huawei.com>
Change-Id: Iad48f3173a963c4290701a708f41832359c88b02
2022-03-02 15:33:19 +08:00
y00576111 9eeef5be33 js pandafile refactor, support actor function
When the worker thread is started
the part shared by the virtual machine is not recreated
only the part that cannot be shared is created

issue:https://gitee.com/openharmony/js_worker_module/issues/I4SMW8

Signed-off-by: y00576111 <yaojian16@huawei.com>
Change-Id: I3c01588bb8449bd9cd8b410cfd13ff55205f41c1
2022-03-02 15:33:19 +08:00
panzhenyu1 17258d9872 Adapt for windows platform
related issue: https://gitee.com/openharmony/ark_js_runtime/issues/I4VDA4
Change-Id: I4560cf0ec4c05ccd855debb51b6d0190b4f1ccfa
Signed-off-by: panzhenyu1 <panzhenyu1@huawei.com>
2022-03-02 11:22:58 +08:00
openharmony_ci 70b2803369 !605 Optimize call
Merge pull request !605 from 李晨帅/master
2022-02-26 09:47:54 +00:00
lichenshuai 4b3fbfa5c5 Optimize call
Currently, in the TSBenchmark of call, ark is still not as good as v8. So it needs to be optimized.

The way to set call frame is mainly optimized. After the optimization, fast path is executed when actual args is equal
to declared args. Call type, numVregs, numArgs, native flag are all stored in one field for further stub.

Signed-off-by: lichenshuai <lichenshuai@huawei.com>
2022-02-26 11:53:40 +08:00