File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed
Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -28,8 +28,14 @@ void inner_builder_callback(spidir_builder_handle_t builder, void* ctx) {
2828 spidir_builder_set_entry_block (builder , block );
2929 spidir_builder_set_block (builder , block );
3030 spidir_value_t param = spidir_builder_build_param_ref (builder , 0 );
31- spidir_value_t two =
32- spidir_builder_build_iconst (builder , SPIDIR_TYPE_I32 , 2 );
31+ spidir_value_t stackslot = spidir_builder_build_stackslot (builder , 8 , 8 );
32+ // The integer 2 interpreted as a float.
33+ spidir_value_t twof =
34+ spidir_builder_build_fconst64 (builder , 0x0.0000000000002p-1022 );
35+ spidir_builder_build_store (builder , SPIDIR_MEM_SIZE_8 , twof , stackslot );
36+ spidir_value_t two64 = spidir_builder_build_load (
37+ builder , SPIDIR_MEM_SIZE_8 , SPIDIR_TYPE_I64 , stackslot );
38+ spidir_value_t two = spidir_builder_build_itrunc (builder , two64 );
3339 spidir_value_t retval = spidir_builder_build_iadd (builder , param , two );
3440 spidir_builder_build_return (builder , retval );
3541}
You can’t perform that action at this time.
0 commit comments