@@ -177,18 +177,6 @@ macro popFloat64(reg)
177177 popv reg
178178end
179179
180- # Call site tracking
181-
182- macro saveCallSiteIndex()
183- if X86_64
184- loadp UnboxedWasmCalleeStackSlot[cfr], ws0
185- end
186- loadp Wasm::IPIntCallee::m_bytecode[ws0], t0
187- move PC , t1
188- subq t0, t1
189- storei t1, CallSiteIndex[cfr]
190- end
191-
192180# Entering IPInt
193181
194182# MC = location in argumINT bytecode
@@ -581,8 +569,7 @@ ipintOp(_call_indirect, macro()
581569 move MC, a3
582570 advanceMC(IPInt::CallIndirectMetadata::signature)
583571
584- operationCall(macro () cCall4(_ipint_extern_prepare_call_indirect) end )
585- btpz r1, _wasm_throw_from_slow_path_trampoline
572+ operationCallMayThrow(macro () cCall4(_ipint_extern_prepare_call_indirect) end )
586573
587574 loadq [sp ], IPIntCallCallee
588575 loadq 8 [sp ], IPIntCallFunctionSlot
@@ -628,8 +615,7 @@ ipintOp(_return_call_indirect, macro()
628615 # Get callIndirectMetadata
629616 move cfr, a1
630617 move MC, a3
631- operationCall(macro () cCall4(_ipint_extern_prepare_call_indirect) end )
632- btpz r1, _wasm_throw_from_slow_path_trampoline
618+ operationCallMayThrow(macro () cCall4(_ipint_extern_prepare_call_indirect) end )
633619
634620 loadq [sp ], IPIntCallCallee
635621 loadq 8 [sp ], IPIntCallFunctionSlot
@@ -647,8 +633,7 @@ ipintOp(_call_ref, macro()
647633 loadi IPInt::CallRefMetadata::typeIndex[MC], a2
648634 move sp , a3
649635
650- operationCall(macro () cCall4(_ipint_extern_prepare_call_ref) end )
651- btpz r1, _wasm_throw_from_slow_path_trampoline
636+ operationCallMayThrow(macro () cCall4(_ipint_extern_prepare_call_ref) end )
652637 loadq [sp ], IPIntCallCallee
653638 loadq 8 [sp ], IPIntCallFunctionSlot
654639 addq 16 , sp
@@ -669,8 +654,7 @@ ipintOp(_return_call_ref, macro()
669654 move cfr, a1
670655 loadi IPInt::TailCallRefMetadata::typeIndex[MC], a2
671656 move sp , a3
672- operationCall(macro () cCall4(_ipint_extern_prepare_call_ref) end )
673- btpz r1, _wasm_throw_from_slow_path_trampoline
657+ operationCallMayThrow(macro () cCall4(_ipint_extern_prepare_call_ref) end )
674658 loadq [sp ], IPIntCallCallee
675659 loadq 8 [sp ], IPIntCallFunctionSlot
676660 addq 16 , sp
@@ -888,7 +872,7 @@ ipintOp(_table_get, macro()
888872
889873 operationCallMayThrow(macro () cCall3(_ipint_extern_table_get) end )
890874
891- pushQuad(r1 )
875+ pushQuad(r0 )
892876
893877 loadb IPInt::Const32Metadata::instructionLength[MC], t0
894878
@@ -3100,7 +3084,7 @@ ipintOp(_ref_func, macro()
31003084 move wasmInstance, a0
31013085 loadi IPInt::Const32Metadata::value[MC], a1
31023086 operationCall(macro () cCall2(_ipint_extern_ref_func) end )
3103- pushQuad(r1 )
3087+ pushQuad(r0 )
31043088 loadb IPInt::Const32Metadata::instructionLength[MC], t0
31053089 advancePC(t0)
31063090 advanceMC(constexpr (sizeof(IPInt::Const32Metadata)))
@@ -3270,10 +3254,10 @@ ipintOp(_struct_new, macro()
32703254 loadp IPInt::StructNewMetadata::typeIndex[MC], a1 # type index
32713255 move sp , a2
32723256 operationCallMayThrow(macro () cCall3(_ipint_extern_struct_new) end )
3273- loadh IPInt::StructNewMetadata::params[MC], t0 # number of parameters popped
3274- mulq StackValueSize, t0
3275- addq t0 , sp
3276- pushQuad(r1 )
3257+ loadh IPInt::StructNewMetadata::params[MC], t1 # number of parameters popped
3258+ mulq StackValueSize, t1
3259+ addq t1 , sp
3260+ pushQuad(r0 )
32773261 loadb IPInt::StructNewMetadata::length[MC], t0
32783262 advancePCByReg(t0)
32793263 advanceMC(constexpr (sizeof(IPInt::StructNewMetadata)))
@@ -3283,7 +3267,7 @@ end)
32833267ipintOp (_struct_new_default, macro ()
32843268 loadp IPInt::StructNewDefaultMetadata::typeIndex[MC], a1 # type index
32853269 operationCallMayThrow(macro () cCall2(_ipint_extern_struct_new_default) end )
3286- pushQuad(r1 )
3270+ pushQuad(r0 )
32873271 loadb IPInt::StructNewDefaultMetadata::length[MC], t0
32883272 advancePCByReg(t0)
32893273 advanceMC(constexpr (sizeof(IPInt::StructNewDefaultMetadata)))
@@ -3294,7 +3278,7 @@ ipintOp(_struct_get, macro()
32943278 popQuad(a1 ) # object
32953279 loadi IPInt::StructGetSetMetadata::fieldIndex[MC], a2 # field index
32963280 operationCallMayThrow(macro () cCall3(_ipint_extern_struct_get) end )
3297- pushQuad(r1 )
3281+ pushQuad(r0 )
32983282
32993283 loadb IPInt::StructGetSetMetadata::length[MC], t0
33003284 advancePCByReg(t0)
@@ -3306,7 +3290,7 @@ ipintOp(_struct_get_s, macro()
33063290 popQuad(a1 ) # object
33073291 loadi IPInt::StructGetSetMetadata::fieldIndex[MC], a2 # field index
33083292 operationCallMayThrow(macro () cCall3(_ipint_extern_struct_get_s) end )
3309- pushQuad(r1 )
3293+ pushQuad(r0 )
33103294
33113295 loadb IPInt::StructGetSetMetadata::length[MC], t0
33123296 advancePCByReg(t0)
@@ -3318,7 +3302,7 @@ ipintOp(_struct_get_u, macro()
33183302 popQuad(a1 ) # object
33193303 loadi IPInt::StructGetSetMetadata::fieldIndex[MC], a2 # field index
33203304 operationCallMayThrow(macro () cCall3(_ipint_extern_struct_get) end )
3321- pushQuad(r1 )
3305+ pushQuad(r0 )
33223306
33233307 loadb IPInt::StructGetSetMetadata::length[MC], t0
33243308 advancePCByReg(t0)
@@ -3345,7 +3329,7 @@ ipintOp(_array_new, macro()
33453329 popQuad(a2 ) # default value
33463330 operationCallMayThrow(macro () cCall4(_ipint_extern_array_new) end )
33473331
3348- pushQuad(r1 )
3332+ pushQuad(r0 )
33493333
33503334 loadb IPInt::ArrayNewMetadata::length[MC], t0
33513335 advancePCByReg(t0)
@@ -3358,7 +3342,7 @@ ipintOp(_array_new_default, macro()
33583342 popInt32(a2 , t0) # length
33593343 operationCallMayThrow(macro () cCall3(_ipint_extern_array_new_default) end )
33603344
3361- pushQuad(r1 )
3345+ pushQuad(r0 )
33623346
33633347 loadb IPInt::ArrayNewMetadata::length[MC], t0
33643348 advancePCByReg(t0)
@@ -3377,7 +3361,7 @@ ipintOp(_array_new_fixed, macro()
33773361 lshifti StackValueShift, t3
33783362 addp t3, sp
33793363
3380- pushQuad(r1 )
3364+ pushQuad(r0 )
33813365
33823366 loadb IPInt::ArrayNewFixedMetadata::length[MC], t0
33833367 advancePCByReg(t0)
@@ -3391,7 +3375,7 @@ ipintOp(_array_new_data, macro()
33913375 popInt32(a2 , t0) # offset
33923376 operationCallMayThrow(macro () cCall4(_ipint_extern_array_new_data) end )
33933377
3394- pushQuad(r1 )
3378+ pushQuad(r0 )
33953379
33963380 loadb IPInt::ArrayNewDataMetadata::length[MC], t0
33973381 advancePCByReg(t0)
@@ -3405,7 +3389,7 @@ ipintOp(_array_new_elem, macro()
34053389 popInt32(a2 , t0) # offset
34063390 operationCallMayThrow(macro () cCall4(_ipint_extern_array_new_elem) end )
34073391
3408- pushQuad(r1 )
3392+ pushQuad(r0 )
34093393
34103394 loadb IPInt::ArrayNewElemMetadata::length[MC], t0
34113395 advancePCByReg(t0)
@@ -3419,7 +3403,7 @@ ipintOp(_array_get, macro()
34193403 popQuad(a2 ) # array
34203404 operationCallMayThrow(macro () cCall4(_ipint_extern_array_get) end )
34213405
3422- pushQuad(r1 )
3406+ pushQuad(r0 )
34233407
34243408 loadb IPInt::ArrayGetSetMetadata::length[MC], t0
34253409 advancePCByReg(t0)
@@ -3433,7 +3417,7 @@ ipintOp(_array_get_s, macro()
34333417 popQuad(a2 ) # array
34343418 operationCallMayThrow(macro () cCall4(_ipint_extern_array_get_s) end )
34353419
3436- pushQuad(r1 )
3420+ pushQuad(r0 )
34373421
34383422 loadb IPInt::ArrayGetSetMetadata::length[MC], t0
34393423 advancePCByReg(t0)
@@ -3447,7 +3431,7 @@ ipintOp(_array_get_u, macro()
34473431 popQuad(a2 ) # array
34483432 operationCallMayThrow(macro () cCall4(_ipint_extern_array_get) end )
34493433
3450- pushQuad(r1 )
3434+ pushQuad(r0 )
34513435
34523436 loadb IPInt::ArrayGetSetMetadata::length[MC], t0
34533437 advancePCByReg(t0)
@@ -3536,7 +3520,7 @@ ipintOp(_ref_test, macro()
35363520 popQuad(a3 )
35373521 operationCall(macro () cCall3(_ipint_extern_ref_test) end )
35383522
3539- pushInt32(r1 )
3523+ pushInt32(r0 )
35403524
35413525 loadb IPInt::RefTestCastMetadata::length[MC], t0
35423526 advancePCByReg(t0)
@@ -3550,7 +3534,7 @@ ipintOp(_ref_test_nullable, macro()
35503534 popQuad(a3 )
35513535 operationCall(macro () cCall3(_ipint_extern_ref_test) end )
35523536
3553- pushInt32(r1 )
3537+ pushInt32(r0 )
35543538
35553539 loadb IPInt::RefTestCastMetadata::length[MC], t0
35563540 advancePCByReg(t0)
@@ -3564,7 +3548,7 @@ ipintOp(_ref_cast, macro()
35643548 popQuad(a3 )
35653549 operationCallMayThrow(macro () cCall3(_ipint_extern_ref_cast) end )
35663550
3567- pushInt32(r1 )
3551+ pushInt32(r0 )
35683552
35693553 loadb IPInt::RefTestCastMetadata::length[MC], t0
35703554 advancePCByReg(t0)
@@ -3578,7 +3562,7 @@ ipintOp(_ref_cast_nullable, macro()
35783562 popQuad(a3 )
35793563 operationCallMayThrow(macro () cCall3(_ipint_extern_ref_cast) end )
35803564
3581- pushInt32(r1 )
3565+ pushInt32(r0 )
35823566
35833567 loadb IPInt::RefTestCastMetadata::length[MC], t0
35843568 advancePCByReg(t0)
@@ -3596,7 +3580,7 @@ ipintOp(_br_on_cast, macro()
35963580
35973581 advanceMC(constexpr (sizeof(IPInt::RefTestCastMetadata)))
35983582
3599- bineq r1 , 0 , _ipint_br
3583+ bineq r0 , 0 , _ipint_br
36003584 loadb IPInt::BranchMetadata::instructionLength[MC], t0
36013585 advanceMC(constexpr (sizeof(IPInt::BranchMetadata)))
36023586 advancePCByReg(t0)
@@ -3613,7 +3597,7 @@ ipintOp(_br_on_cast_fail, macro()
36133597
36143598 advanceMC(constexpr (sizeof(IPInt::RefTestCastMetadata)))
36153599
3616- bieq r1 , 0 , _ipint_br
3600+ bieq r0 , 0 , _ipint_br
36173601 loadb IPInt::BranchMetadata::instructionLength[MC], t0
36183602 advanceMC(constexpr (sizeof(IPInt::BranchMetadata)))
36193603 advancePCByReg(t0)
@@ -3623,7 +3607,7 @@ end)
36233607ipintOp (_any_convert_extern, macro ()
36243608 popQuad(a1 )
36253609 operationCall(macro () cCall2(_ipint_extern_any_convert_extern) end )
3626- pushQuad(r1 )
3610+ pushQuad(r0 )
36273611 advancePC(2 )
36283612 nextIPIntInstruction()
36293613end )
@@ -4104,7 +4088,7 @@ ipintOp(_table_grow, macro()
41044088 move MC, a2 # IPInt::tableGrowMetadata
41054089 operationCall(macro () cCall3(_ipint_extern_table_grow) end )
41064090 addp 2 *StackValueSize, sp
4107- pushQuad(t0 )
4091+ pushQuad(r0 )
41084092 loadb IPInt::TableGrowMetadata::instructionLength[MC], t0
41094093 advancePCByReg(t0)
41104094 advanceMC(constexpr (sizeof(IPInt::TableGrowMetadata)))
@@ -4115,7 +4099,7 @@ ipintOp(_table_size, macro()
41154099 # table.size
41164100 loadi IPInt::Const32Metadata::value[MC], a1
41174101 operationCall(macro () cCall2(_ipint_extern_table_size) end )
4118- pushQuad(t0 )
4102+ pushQuad(r0 )
41194103 loadb IPInt::Const32Metadata::instructionLength[MC], t0
41204104 advancePCByReg(t0)
41214105 advanceMC(constexpr (sizeof(IPInt::Const32Metadata)))
0 commit comments