@@ -16,7 +16,7 @@ extern "C" CDECL void
16
16
rust_task_sleep (size_t time_in_us);
17
17
18
18
extern " C" void
19
- rust_intrinsic_2_vec_len (size_t *retptr,
19
+ rust_intrinsic_vec_len (size_t *retptr,
20
20
void *env,
21
21
type_desc *ty,
22
22
rust_vec **vp)
@@ -25,7 +25,7 @@ rust_intrinsic_2_vec_len(size_t *retptr,
25
25
}
26
26
27
27
extern " C" void
28
- rust_intrinsic_2_ptr_offset (void **retptr,
28
+ rust_intrinsic_ptr_offset (void **retptr,
29
29
void *env,
30
30
type_desc *ty,
31
31
void *ptr,
@@ -35,7 +35,7 @@ rust_intrinsic_2_ptr_offset(void **retptr,
35
35
}
36
36
37
37
extern " C" void
38
- rust_intrinsic_2_cast (void *retptr,
38
+ rust_intrinsic_cast (void *retptr,
39
39
void *env,
40
40
type_desc *t1,
41
41
type_desc *t2,
@@ -51,91 +51,97 @@ rust_intrinsic_2_cast(void *retptr,
51
51
}
52
52
53
53
extern " C" void
54
- rust_intrinsic_2_addr_of (void **retptr,
54
+ rust_intrinsic_addr_of (void **retptr,
55
55
void *env,
56
56
type_desc *ty,
57
57
void *valptr) {
58
58
*retptr = valptr;
59
59
}
60
60
61
61
extern " C" void
62
- rust_intrinsic_2_recv (void **retptr,
62
+ rust_intrinsic_recv (void **retptr,
63
63
void *env,
64
64
type_desc *ty,
65
65
rust_port *port) {
66
66
port_recv ((uintptr_t *)retptr, port);
67
67
}
68
68
69
69
extern " C" void
70
- rust_intrinsic_2_get_type_desc (void **retptr,
70
+ rust_intrinsic_get_type_desc (void **retptr,
71
71
void *env,
72
72
type_desc* ty) {
73
73
*(type_desc**)retptr = ty;
74
74
}
75
75
76
76
extern " C" void
77
- rust_intrinsic_2_task_sleep (void **retptr,
77
+ rust_intrinsic_task_sleep (void **retptr,
78
78
void *env,
79
79
size_t time_in_us) {
80
80
rust_task_sleep (time_in_us);
81
81
}
82
82
83
+
83
84
extern " C" void
84
- rust_intrinsic_vec_len ( void *task ,
85
- size_t *retptr ,
86
- type_desc *ty,
87
- rust_vec **vp)
85
+ rust_intrinsic_2_vec_len ( size_t *retptr ,
86
+ void *env ,
87
+ type_desc *ty,
88
+ rust_vec **vp)
88
89
{
89
- rust_intrinsic_2_vec_len ( retptr, NULL , ty, vp);
90
+ * retptr = (* vp)-> fill / ty-> size ;
90
91
}
91
92
92
93
extern " C" void
93
- rust_intrinsic_ptr_offset (void *task ,
94
- void **retptr ,
94
+ rust_intrinsic_2_ptr_offset (void **retptr ,
95
+ void *env ,
95
96
type_desc *ty,
96
97
void *ptr,
97
98
uintptr_t count)
98
99
{
99
- rust_intrinsic_2_ptr_offset ( retptr, NULL , ty, ptr, count) ;
100
+ * retptr = &(( uint8_t *) ptr)[ty-> size * count] ;
100
101
}
101
102
102
103
extern " C" void
103
- rust_intrinsic_cast (void *task ,
104
- void *retptr ,
104
+ rust_intrinsic_2_cast (void *retptr ,
105
+ void *env ,
105
106
type_desc *t1,
106
107
type_desc *t2,
107
108
void *src)
108
109
{
109
- rust_intrinsic_2_cast (retptr, NULL , t1, t2, src);
110
+ if (t1->size != t2->size ) {
111
+ upcall_fail (" attempt to cast values of differing sizes" ,
112
+ __FILE__, __LINE__);
113
+ return ;
114
+ }
115
+
116
+ memmove (retptr, src, t1->size );
110
117
}
111
118
112
119
extern " C" void
113
- rust_intrinsic_addr_of (void *task ,
114
- void **retptr ,
120
+ rust_intrinsic_2_addr_of (void **retptr ,
121
+ void *env ,
115
122
type_desc *ty,
116
123
void *valptr) {
117
- rust_intrinsic_2_addr_of ( retptr, NULL , ty, valptr) ;
124
+ * retptr = valptr;
118
125
}
119
126
120
127
extern " C" void
121
- rust_intrinsic_recv (void *task ,
122
- void **retptr ,
128
+ rust_intrinsic_2_recv (void **retptr ,
129
+ void *env ,
123
130
type_desc *ty,
124
131
rust_port *port) {
125
- rust_intrinsic_2_recv ( retptr, NULL , ty , port);
132
+ port_recv (( uintptr_t *) retptr, port);
126
133
}
127
134
128
135
extern " C" void
129
- rust_intrinsic_get_type_desc (void *task ,
130
- void **retptr ,
136
+ rust_intrinsic_2_get_type_desc (void **retptr ,
137
+ void *env ,
131
138
type_desc* ty) {
132
- rust_intrinsic_2_get_type_desc ( retptr, NULL , ty) ;
139
+ *(type_desc**) retptr = ty;
133
140
}
134
141
135
142
extern " C" void
136
- rust_intrinsic_task_sleep (void *task ,
137
- void **retptr ,
143
+ rust_intrinsic_2_task_sleep (void **retptr ,
144
+ void *env ,
138
145
size_t time_in_us) {
139
146
rust_task_sleep (time_in_us);
140
147
}
141
-
0 commit comments