GitLab will continue to be upgraded from 11.4.5-ce.0 on November 25th 2019 at 4.00pm (AEDT) to 5.00pm (AEDT) due to Critical Security Patch Availability. During the update, GitLab and Mattermost services will not be available.

Commit 8e883f6e authored by John Zhang's avatar John Zhang

uptr version of store a uint32 integer byte-by-byte and load as a whole added

parent 7ade62ce
Pipeline #117 failed with stage
in 16 minutes and 7 seconds
#include <stdint.h>
extern uint32_t test_fnc(uint32_t* pi32);
int entry() {
uint32_t i;
return test_fnc(&i);
}
// Compile with flag -std=c99
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <dlfcn.h>
#include "muapi.h"
#include "mu-fastimpl.h"
int main(int argc, char** argv) {
MuVM* mu_26;
MuCtx* ctx_26;
MuIRBuilder* bldr_26;
MuID id_355;
MuID id_356;
MuID id_357;
MuID id_358;
MuID id_359;
MuID id_360;
MuID id_361;
MuID id_362;
MuID id_363;
MuID id_364;
MuID id_365;
MuID id_366;
MuID id_367;
MuID id_368;
MuID id_369;
MuID id_370;
MuID id_371;
MuID id_372;
MuID id_373;
MuID id_374;
MuID id_375;
MuID id_376;
MuID id_377;
MuID id_378;
MuID id_379;
MuID id_380;
MuID id_381;
MuID id_382;
MuID id_383;
mu_26 = mu_fastimpl_new();
ctx_26 = mu_26->new_context(mu_26);
bldr_26 = ctx_26->new_ir_builder(ctx_26);
id_355 = bldr_26->gen_sym(bldr_26, "@i8");
bldr_26->new_type_int(bldr_26, id_355, 8);
id_356 = bldr_26->gen_sym(bldr_26, "@i32");
bldr_26->new_type_int(bldr_26, id_356, 32);
id_357 = bldr_26->gen_sym(bldr_26, "@pi8");
bldr_26->new_type_uptr(bldr_26, id_357, 8);
id_358 = bldr_26->gen_sym(bldr_26, "@pi32");
bldr_26->new_type_uptr(bldr_26, id_358, 32);
id_359 = bldr_26->gen_sym(bldr_26, "@1_i8");
bldr_26->new_const_int(bldr_26, id_359, id_355, 1);
id_360 = bldr_26->gen_sym(bldr_26, "@0x8d_i8");
bldr_26->new_const_int(bldr_26, id_360, id_355, 141);
id_361 = bldr_26->gen_sym(bldr_26, "@0x9f_i8");
bldr_26->new_const_int(bldr_26, id_361, id_355, 159);
id_362 = bldr_26->gen_sym(bldr_26, "@0x9c_i8");
bldr_26->new_const_int(bldr_26, id_362, id_355, 156);
id_363 = bldr_26->gen_sym(bldr_26, "@0x1d_i8");
bldr_26->new_const_int(bldr_26, id_363, id_355, 29);
id_364 = bldr_26->gen_sym(bldr_26, "@sig_pi32_i32");
bldr_26->new_funcsig(bldr_26, id_364, (MuTypeNode [1]){id_358}, 1, (MuTypeNode [1]){id_356}, 1);
id_365 = bldr_26->gen_sym(bldr_26, "@test_fnc");
bldr_26->new_func(bldr_26, id_365, id_364);
id_366 = bldr_26->gen_sym(bldr_26, "@test_fnc.v1");
id_367 = bldr_26->gen_sym(bldr_26, "@test_fnc.v1.blk0");
id_368 = bldr_26->gen_sym(bldr_26, "@test_fnc.v1.blk0.pi32x");
id_369 = bldr_26->gen_sym(bldr_26, "@test_fnc.v1.blk0.pi8x_0");
id_370 = bldr_26->gen_sym(bldr_26, "@test_fnc.v1.blk0.pi8x_1");
id_371 = bldr_26->gen_sym(bldr_26, "@test_fnc.v1.blk0.pi8x_2");
id_372 = bldr_26->gen_sym(bldr_26, "@test_fnc.v1.blk0.pi8x_3");
id_373 = bldr_26->gen_sym(bldr_26, "@test_fnc.v1.blk0.res");
id_374 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_conv(bldr_26, id_374, id_369, MU_CONV_PTRCAST, id_358, id_357, id_368);
id_375 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_store(bldr_26, id_375, true, MU_ORD_NOT_ATOMIC, id_355, id_369, id_363, MU_NO_ID);
id_376 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_shiftiref(bldr_26, id_376, id_370, true, id_355, id_355, id_369, id_359);
id_377 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_store(bldr_26, id_377, true, MU_ORD_NOT_ATOMIC, id_355, id_370, id_362, MU_NO_ID);
id_378 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_shiftiref(bldr_26, id_378, id_371, true, id_355, id_355, id_370, id_359);
id_379 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_store(bldr_26, id_379, true, MU_ORD_NOT_ATOMIC, id_355, id_371, id_361, MU_NO_ID);
id_380 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_shiftiref(bldr_26, id_380, id_372, true, id_355, id_355, id_371, id_359);
id_381 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_store(bldr_26, id_381, true, MU_ORD_NOT_ATOMIC, id_355, id_372, id_360, MU_NO_ID);
id_382 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_load(bldr_26, id_382, id_373, true, MU_ORD_NOT_ATOMIC, id_356, id_368, MU_NO_ID);
id_383 = bldr_26->gen_sym(bldr_26, NULL);
bldr_26->new_ret(bldr_26, id_383, (MuVarNode [1]){id_373}, 1);
bldr_26->new_bb(bldr_26, id_367, (MuID [1]){id_368}, (MuTypeNode [1]){id_358}, 1, MU_NO_ID, (MuInstNode [10]){id_374, id_375, id_376, id_377, id_378, id_379, id_380, id_381, id_382, id_383}, 10);
bldr_26->new_func_ver(bldr_26, id_366, id_365, (MuBBNode [1]){id_367}, 1);
bldr_26->load(bldr_26);
mu_26->compile_to_sharedlib(mu_26, "test_uptr_bytestore_load.dylib", (char**){&"entry_test_uptr_bytestore_load.c"}, 1);
printf("%s\n", "test_uptr_bytestore_load.dylib");
return 0;
}
from test_milestones import get_fncptr
import ctypes
def test_uptr_bytestore_load():
fn = get_fncptr("test_uptr_bytestore_load", "entry", restype=ctypes.c_uint32)
assert fn() == 0x8d9f9c1d
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment