Regroup asm blocks
This commit is contained in:
		
							parent
							
								
									8c1f860d25
								
							
						
					
					
						commit
						ef07d172ff
					
				
							
								
								
									
										12
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/main.rs
									
									
									
									
									
								
							|  | @ -17,6 +17,7 @@ unsafe extern "C" fn _enter() -> ! { | |||
|         // load hartid into t0; if t0 =/= 0, then jump to busy loop
 | ||||
|         "csrr t0, mhartid", | ||||
|         "bnez t0, 3f", | ||||
|         
 | ||||
|         // before we use the `la` pseudo-instruction for the first time,
 | ||||
|         // we need to set `gp` (look up linker relaxation)
 | ||||
|         ".option push", // pushes the current option stack
 | ||||
|  | @ -42,12 +43,13 @@ unsafe extern "C" fn _enter() -> ! { | |||
|     "2:", | ||||
|         // BSS is clear!
 | ||||
|         "j 4f", | ||||
|         // busy loop if hartid =/= 0
 | ||||
|     "3:", | ||||
|         "wfi", | ||||
|         "j 3b", | ||||
|     "4:", | ||||
|     
 | ||||
|     // busy loop if hartid =/= 0
 | ||||
|     "3:", | ||||
|         "wfi", // wait for interrupt (or nop)
 | ||||
|         "j 3b", | ||||
|     
 | ||||
|     "4:", | ||||
|         // "tail-call" to {start} (call without saving a return address)
 | ||||
|         "tail {start}", | ||||
|         start = sym start, // {start} refers to the function [start] below
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue