catch possibly occurring trap with stores in the HP
This commit is contained in:
		
							parent
							
								
									3df72f4136
								
							
						
					
					
						commit
						eddb43c08e
					
				
					 2 changed files with 91 additions and 2 deletions
				
			
		|  | @ -1,10 +1,54 @@ | ||||||
| # | # | ||||||
|  | #include <em_abs.h> | ||||||
|  | 
 | ||||||
|  mes 2,EM_WSIZE,EM_PSIZE |  mes 2,EM_WSIZE,EM_PSIZE | ||||||
|  | 
 | ||||||
|  | .1 | ||||||
|  |  bss EM_PSIZE,0,0 | ||||||
|  | .2 | ||||||
|  |  bss EM_WSIZE,0,0 | ||||||
|  | 
 | ||||||
|  |  pro $ctch,0 | ||||||
|  |  lol 0 | ||||||
|  |  loc EHEAP | ||||||
|  |  beq *1 | ||||||
|  |  lae .1 | ||||||
|  |  loi EM_PSIZE | ||||||
|  |  sig | ||||||
|  |  asp EM_PSIZE | ||||||
|  |  lol 0 | ||||||
|  |  trp | ||||||
|  |  rtt | ||||||
|  | 1 | ||||||
|  |  loc 1 | ||||||
|  |  ste .2 | ||||||
|  |  rtt | ||||||
|  |  end | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  exp $brk |  exp $brk | ||||||
|  pro $brk,0 |  pro $brk,0 | ||||||
|  lal 0 |  lal 0 | ||||||
|  loi EM_PSIZE |  loi EM_PSIZE | ||||||
|  str 2          ; The - possibly - occurring traps should be caught |  lpi $ctch | ||||||
|  |  sig | ||||||
|  |  lae .1 | ||||||
|  |  sti EM_PSIZE | ||||||
|  |  loc 0 | ||||||
|  |  ste .2 | ||||||
|  |  str 2          ; The - possibly - occurring trap is caught | ||||||
|  |  lae .1 | ||||||
|  |  loi EM_PSIZE | ||||||
|  |  sig | ||||||
|  |  asp EM_PSIZE | ||||||
|  |  loe .2 | ||||||
|  |  zgt *1 | ||||||
|  zer EM_PSIZE |  zer EM_PSIZE | ||||||
|  ret EM_PSIZE |  ret EM_PSIZE | ||||||
|  | 1 | ||||||
|  |  loc -1 | ||||||
|  |  loc EM_WSIZE | ||||||
|  |  loc EM_PSIZE | ||||||
|  |  cii | ||||||
|  |  ret EM_PSIZE | ||||||
|  end |  end | ||||||
|  |  | ||||||
|  | @ -1,11 +1,56 @@ | ||||||
| # | # | ||||||
|  | #include <em_abs.h> | ||||||
|  | 
 | ||||||
|  mes 2,EM_WSIZE,EM_PSIZE |  mes 2,EM_WSIZE,EM_PSIZE | ||||||
|  | 
 | ||||||
|  | .1 | ||||||
|  |  bss EM_PSIZE,0,0 | ||||||
|  | .2 | ||||||
|  |  bss EM_WSIZE,0,0 | ||||||
|  | 
 | ||||||
|  |  pro $ctch,0 | ||||||
|  |  lol 0 | ||||||
|  |  loc EHEAP | ||||||
|  |  beq *1 | ||||||
|  |  lae .1 | ||||||
|  |  loi EM_PSIZE | ||||||
|  |  sig | ||||||
|  |  asp EM_PSIZE | ||||||
|  |  lol 0 | ||||||
|  |  trp | ||||||
|  |  rtt | ||||||
|  | 1 | ||||||
|  |  loc 1 | ||||||
|  |  ste .2 | ||||||
|  |  rtt | ||||||
|  |  end | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  exp $sbrk |  exp $sbrk | ||||||
|  pro $sbrk,0 |  pro $sbrk,0 | ||||||
|  lor 2 |  lor 2 | ||||||
|  lor 2 |  lor 2 | ||||||
|  |  lpi $ctch | ||||||
|  |  sig | ||||||
|  |  lae .1 | ||||||
|  |  sti EM_PSIZE | ||||||
|  |  loc 0 | ||||||
|  |  ste .2 | ||||||
|  lol 0 |  lol 0 | ||||||
|  ads EM_WSIZE |  ads EM_WSIZE | ||||||
|  str 2          ; The - possibly - occurring traps should be caught |  str 2          ; The - possibly - occurring trap is caught | ||||||
|  |  lae .1 | ||||||
|  |  loi EM_PSIZE | ||||||
|  |  sig | ||||||
|  |  asp EM_PSIZE | ||||||
|  |  loe .2 | ||||||
|  |  zgt *1 | ||||||
|  |  ret EM_PSIZE | ||||||
|  | 1 | ||||||
|  |  asp EM_PSIZE | ||||||
|  |  loc -1 | ||||||
|  |  loc EM_WSIZE | ||||||
|  |  loc EM_PSIZE | ||||||
|  |  cii | ||||||
|  ret EM_PSIZE |  ret EM_PSIZE | ||||||
|  end |  end | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue