rv64: Initialize reserved buffers with empty slices
71910687c2b488f2fa37549af8f8ea410cb4859575579ecf4126988743370f75
1 parent
01d930e3
lib/std/arch/rv64/emit.rad
+10 -15
| 201 | 201 | if debug { |
|
| 202 | 202 | set debugEntries = try alloc::allocSlice( |
|
| 203 | 203 | arena, @sizeOf(types::DebugEntry), @alignOf(types::DebugEntry), MAX_DEBUG_ENTRIES |
|
| 204 | 204 | ) as *mut [types::DebugEntry]; |
|
| 205 | 205 | } |
|
| 206 | - | let mut pendingBranchesBuf = pendingBranches as *mut [PendingBranch]; |
|
| 207 | - | let mut pendingCallsBuf = pendingCalls as *mut [PendingCall]; |
|
| 208 | - | let mut pendingJumpsBuf = pendingJumps as *mut [PendingJump]; |
|
| 209 | - | let mut pendingAddrLoadsBuf = pendingAddrLoads as *mut [PendingAddrLoad]; |
|
| 210 | - | let mut funcsBuf = funcs as *mut [types::FuncAddr]; |
|
| 211 | - | set pendingBranchesBuf.len = 0; |
|
| 212 | - | set pendingCallsBuf.len = 0; |
|
| 213 | - | set pendingJumpsBuf.len = 0; |
|
| 214 | - | set pendingAddrLoadsBuf.len = 0; |
|
| 215 | - | set funcsBuf.len = 0; |
|
| 206 | + | let pendingBranchesBuf = pendingBranches as *mut [PendingBranch]; |
|
| 207 | + | let pendingCallsBuf = pendingCalls as *mut [PendingCall]; |
|
| 208 | + | let pendingJumpsBuf = pendingJumps as *mut [PendingJump]; |
|
| 209 | + | let pendingAddrLoadsBuf = pendingAddrLoads as *mut [PendingAddrLoad]; |
|
| 210 | + | let funcsBuf = funcs as *mut [types::FuncAddr]; |
|
| 216 | 211 | return Emitter { |
|
| 217 | 212 | error: nil, |
|
| 218 | 213 | code: code as *mut [u32], |
|
| 219 | 214 | codeLen: 0, |
|
| 220 | - | pendingBranches: pendingBranchesBuf, |
|
| 221 | - | pendingCalls: pendingCallsBuf, |
|
| 222 | - | pendingJumps: pendingJumpsBuf, |
|
| 223 | - | pendingAddrLoads: pendingAddrLoadsBuf, |
|
| 215 | + | pendingBranches: &mut pendingBranchesBuf[..0], |
|
| 216 | + | pendingCalls: &mut pendingCallsBuf[..0], |
|
| 217 | + | pendingJumps: &mut pendingJumpsBuf[..0], |
|
| 218 | + | pendingAddrLoads: &mut pendingAddrLoadsBuf[..0], |
|
| 224 | 219 | labels: labels::init(blockOffsets as *mut [i32], funcEntries as *mut [dict::Entry]), |
|
| 225 | - | funcs: funcsBuf, |
|
| 220 | + | funcs: &mut funcsBuf[..0], |
|
| 226 | 221 | debugEntries, |
|
| 227 | 222 | debugEntriesLen: 0, |
|
| 228 | 223 | }; |
|
| 229 | 224 | } |
|
| 230 | 225 |
seed/radiance.rv64
+0 -0
Binary file changed.
seed/radiance.rv64.git
+1 -1
| 1 | - | cbc895eb5c6c569c7648e51c5e4ff0579de8b925415ceb368100d07370b9fd7e |
|
| 1 | + | dee95968ebbc34ae4674a5b576baf5f0c7b8f055b2fa45b36c2aca09c2cfe41c |