Okay, I will have a look at the assembly builtin. Thanks for your detailed 
information!

On Wednesday, August 7, 2024 at 6:35:25 PM UTC+8 [email protected] wrote:

> The code there converts an incoming Smi parameter to an int32 and writes 
> that int32 into a buffer on the stack. This buffer is then read in an 
> assembly builtin [1], where the int32 is loaded either into a register or 
> pushed on the stack. I think you actually have a bug in the assembly 
> builtin, not in the Torque builtin. 
>
> There is a fuzzer-like mjsunit test [2] that allows you to test this code 
> very well. If you set the `debug` variable at the beginning of the test to 
> true, you enable the output and increase the number of test cases. It's 
> very helpful to debug your implementation.
>
> Cheers, Andreas
>
> [1] 
> https://source.chromium.org/chromium/chromium/src/+/main:v8/src/builtins/loong64/builtins-loong64.cc;l=3037;drc=9b2c99f8734501549f5726bc187d3f05dfaa7af0
>
> [2] 
> https://source.chromium.org/chromium/chromium/src/+/main:v8/test/mjsunit/wasm/torque-wrapper.js;l=25;drc=b2df50672c06c070ecb137570d1072a3835ac4ca
>
> On Wed, Aug 7, 2024 at 12:02 PM Zhao Jiazhong <[email protected]> 
> wrote:
>
>> Losts of tests failed on loong64 *with* the `Unsigned`, and they would 
>> pass if I remove the `Unsigned` for loong64.
>>
>> It's because LoongArch64, MIPS64 and perhaps RISCV64 all generally need 
>> to sign-extend 32-bit values in 64-bit registers according to their calling 
>> convention. But the convert to unsigned then to intptr will generate a 
>> zero-extended 32-bit value, which caused the failue on loong64 port. Not 
>> sure why x64 needs the `Unsigned`.
>> On Wednesday, August 7, 2024 at 5:51:42 PM UTC+8 [email protected] wrote:
>>
>>> But will these tests not also fail on loong64 then? Why do you expect 
>>> different behavior there?
>>>
>>> On Wed, Aug 7, 2024 at 11:44 AM Zhao Jiazhong <[email protected]> 
>>> wrote:
>>>
>>>> Some tests like `wasm-spec-tests/address` failed on x64 if remove the 
>>>> `Unsigned`.
>>>>
>>>> On Wednesday, August 7, 2024 at 5:29:32 PM UTC+8 [email protected] 
>>>> wrote:
>>>>
>>>>> I think it should not be a problem to remove the `Unsigned` there for 
>>>>> other platforms as well, if it works. What's happening there is that a 
>>>>> Smi 
>>>>> gets converted into an int32 and then stored in a 64-bit slot on the 
>>>>> stack. 
>>>>> If the second half of the 64-bit slot gets filled with ones or with 
>>>>> zeroes 
>>>>> does not matter, I think. If it matters, then there are tests in place.
>>>>>
>>>>>
>>>>> On Wed, Aug 7, 2024 at 11:06 AM Zhao Jiazhong <[email protected]> 
>>>>> wrote:
>>>>>
>>>>>> It's a good idea, I will use this method. Thanks!
>>>>>>
>>>>>> On Wednesday, August 7, 2024 at 5:00:53 PM UTC+8 [email protected] 
>>>>>> wrote:
>>>>>>
>>>>>>> I would give this "condition" a name
>>>>>>> `@if(NEEDS_SPECIAL_INT32_TO_INT64_SIGN_EXTENSION)`
>>>>>>> (maybe find something more descriptive) and then set this build flag 
>>>>>>> for all architectures that need that.
>>>>>>>
>>>>>>> On Wed, Aug 7, 2024 at 10:52 AM Zhao Jiazhong <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi Nico,
>>>>>>>>
>>>>>>>> Thanks for your information, it indeed works!
>>>>>>>> But it seems that the @if and @ifnot annotations can't handle two 
>>>>>>>> conditions at once like `@if(V8_TARGET_ARCH_LOONG64 || 
>>>>>>>> V8_TARGET_ARCH_MIPS64)`, and I didn't find something like `@elif`.
>>>>>>>> I thinks MIPS64 is likely need this change too, but add @if(MIPS64) 
>>>>>>>> and @ifnot(MIPS64) in @ifnot(LOONG64) seems ugly. Do you have any 
>>>>>>>> suggestions? Thank you very much!
>>>>>>>>
>>>>>>>> Yours,
>>>>>>>> Zhao Jiazhong
>>>>>>>> On Wednesday, August 7, 2024 at 2:21:24 PM UTC+8 
>>>>>>>> [email protected] wrote:
>>>>>>>>
>>>>>>>>> Hi Zhao,
>>>>>>>>>
>>>>>>>>> you can use Torque's @if and @ifnot annotations to make such 
>>>>>>>>> distinctions (check @if(TAGGED_SIZE_8_BYTES) for an example). You 
>>>>>>>>> then need 
>>>>>>>>> to set this from the C++ side in torque-parser.cc 
>>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:v8/src/torque/torque-parser.cc;l=46;drc=35bb990bac45ef15807c9eab4d60b8078b65f038>
>>>>>>>>>  and 
>>>>>>>>> for that you can use the usual `V8_TARGET_ARCH_XXX`. The places where 
>>>>>>>>> you 
>>>>>>>>> can use such annotations are a bit restricted if I remember 
>>>>>>>>> correctly, but 
>>>>>>>>> it should be enough to support your case (maybe see this 
>>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/main:v8/src/builtins/promise-misc.tq;l=82;drc=7857eb34db42f339b337c6bdfb0d10deb14862f3>
>>>>>>>>>  
>>>>>>>>> for an example). Hope that helps.
>>>>>>>>>
>>>>>>>>> Cheers
>>>>>>>>> Nico
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Aug 7, 2024 at 4:18 AM Zhao Jiazhong <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi all,
>>>>>>>>>>
>>>>>>>>>> I'm porting JSPI to loong64 port, and find an issue that in 
>>>>>>>>>> JSToWasmWrapperHelper 
>>>>>>>>>> <https://source.chromium.org/chromium/chromium/src/+/refs/tags/119.0.6045.214:v8/src/builtins/js-to-wasm.tq;l=559>,
>>>>>>>>>>  
>>>>>>>>>> a 32-bit value is converted to unsigned then converted to intptr, 
>>>>>>>>>> which 
>>>>>>>>>> leading to a zero-extended value, but on LoongArch64, we need the 
>>>>>>>>>> 32-bit 
>>>>>>>>>> value to be sign-extended in 64-bit registers.
>>>>>>>>>>
>>>>>>>>>> I don't want to change the behavior on other arches, but the 
>>>>>>>>>> builtin is written in torque, I suppose I can't use 
>>>>>>>>>> `V8_TARGET_ARCH_XXX` 
>>>>>>>>>> macro in it, so is there a way to distinguish v8 target arch in 
>>>>>>>>>> torque builtins? Thanks!
>>>>>>>>>>
>>>>>>>>>> Yours,
>>>>>>>>>> Zhao Jiazhong
>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>>> -- 
>>>>>>>>>> v8-dev mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> http://groups.google.com/group/v8-dev
>>>>>>>>>> --- 
>>>>>>>>>> You received this message because you are subscribed to the 
>>>>>>>>>> Google Groups "v8-dev" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>>> send an email to [email protected].
>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>> https://groups.google.com/d/msgid/v8-dev/c2790cc7-513d-4296-8531-f620fe93e038n%40googlegroups.com
>>>>>>>>>>  
>>>>>>>>>> <https://groups.google.com/d/msgid/v8-dev/c2790cc7-513d-4296-8531-f620fe93e038n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>> .
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -- 
>>>>>>>>> Nico Hartmann | Software Engineer | [email protected] | Chrome 
>>>>>>>>> - V8
>>>>>>>>>
>>>>>>>> -- 
>>>>>>>> -- 
>>>>>>>> v8-dev mailing list
>>>>>>>> [email protected]
>>>>>>>> http://groups.google.com/group/v8-dev
>>>>>>>> --- 
>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>> Groups "v8-dev" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>> send an email to [email protected].
>>>>>>>>
>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/v8-dev/88402770-d013-4847-8688-cfdf6cf0793an%40googlegroups.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/v8-dev/88402770-d013-4847-8688-cfdf6cf0793an%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -- 
>>>>>>> Nico Hartmann | Software Engineer | [email protected] | Chrome - 
>>>>>>> V8
>>>>>>>
>>>>>> -- 
>>>>>> -- 
>>>>>> v8-dev mailing list
>>>>>> [email protected]
>>>>>> http://groups.google.com/group/v8-dev
>>>>>> --- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "v8-dev" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to [email protected].
>>>>>>
>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/v8-dev/3e4f56ab-a3ab-4e12-941b-9319c2e29a68n%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/v8-dev/3e4f56ab-a3ab-4e12-941b-9319c2e29a68n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>>
>>>>> Andreas Haas
>>>>>
>>>>> Software Engineer
>>>>>
>>>>> [email protected]
>>>>>
>>>>>
>>>>> Google Germany GmbH
>>>>>
>>>>> Erika-Mann-Straße 33
>>>>>
>>>>> 80636 München
>>>>>
>>>>>
>>>>> Geschäftsführer: Paul Manicle, Liana Sebastian
>>>>>
>>>>> Registergericht und -nummer: Hamburg, HRB 86891
>>>>>
>>>>> Sitz der Gesellschaft: Hamburg
>>>>>
>>>>>
>>>>> Diese E-Mail ist vertraulich. Falls Sie diese fälschlicherweise 
>>>>> erhalten haben sollten, leiten Sie diese bitte nicht an jemand anderes 
>>>>> weiter, löschen Sie alle Kopien und Anhänge davon und lassen Sie mich 
>>>>> bitte 
>>>>> wissen, dass die E-Mail an die falsche Person gesendet wurde. 
>>>>>
>>>>>     
>>>>>
>>>>> This e-mail is confidential. If you received this communication by 
>>>>> mistake, please don't forward it to anyone else, please erase all copies 
>>>>> and attachments, and please let me know that it has gone to the wrong 
>>>>> person.
>>>>>
>>>>> -- 
>>>> -- 
>>>> v8-dev mailing list
>>>> [email protected]
>>>> http://groups.google.com/group/v8-dev
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "v8-dev" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>>
>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/v8-dev/06ce8d10-ee9a-4993-946e-1c6bc3e352cdn%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/v8-dev/06ce8d10-ee9a-4993-946e-1c6bc3e352cdn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>
>>>
>>> -- 
>>>
>>> Andreas Haas
>>>
>>> Software Engineer
>>>
>>> [email protected]
>>>
>>>
>>> Google Germany GmbH
>>>
>>> Erika-Mann-Straße 33
>>>
>>> 80636 München
>>>
>>>
>>> Geschäftsführer: Paul Manicle, Liana Sebastian
>>>
>>> Registergericht und -nummer: Hamburg, HRB 86891
>>>
>>> Sitz der Gesellschaft: Hamburg
>>>
>>>
>>> Diese E-Mail ist vertraulich. Falls Sie diese fälschlicherweise erhalten 
>>> haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, 
>>> löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, 
>>> dass die E-Mail an die falsche Person gesendet wurde. 
>>>
>>>     
>>>
>>> This e-mail is confidential. If you received this communication by 
>>> mistake, please don't forward it to anyone else, please erase all copies 
>>> and attachments, and please let me know that it has gone to the wrong 
>>> person.
>>>
>>> -- 
>> -- 
>> v8-dev mailing list
>> [email protected]
>> http://groups.google.com/group/v8-dev
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "v8-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/v8-dev/6d148e25-963e-4c60-b7b5-5f7c11c64e2fn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/v8-dev/6d148e25-963e-4c60-b7b5-5f7c11c64e2fn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> -- 
>
> Andreas Haas
>
> Software Engineer
>
> [email protected]
>
>
> Google Germany GmbH
>
> Erika-Mann-Straße 33
>
> 80636 München
>
>
> Geschäftsführer: Paul Manicle, Liana Sebastian
>
> Registergericht und -nummer: Hamburg, HRB 86891
>
> Sitz der Gesellschaft: Hamburg
>
>
> Diese E-Mail ist vertraulich. Falls Sie diese fälschlicherweise erhalten 
> haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter, 
> löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen, 
> dass die E-Mail an die falsche Person gesendet wurde. 
>
>     
>
> This e-mail is confidential. If you received this communication by 
> mistake, please don't forward it to anyone else, please erase all copies 
> and attachments, and please let me know that it has gone to the wrong 
> person.
>
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/c2445c6c-0b6d-46bf-81d1-a1c4baf5a32fn%40googlegroups.com.

Reply via email to