| 
									
										
										
										
											2009-09-08 22:56:28 -04:00
										 |  |  | USING: accessors compiler.cfg.debugger | 
					
						
							| 
									
										
										
										
											2009-09-09 14:44:54 -04:00
										 |  |  | compiler.cfg.instructions compiler.cfg.registers | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  | compiler.cfg.save-contexts kernel namespaces tools.test | 
					
						
							|  |  |  | cpu.x86.assembler.operands cpu.architecture ;
 | 
					
						
							| 
									
										
										
										
											2009-09-08 22:56:28 -04:00
										 |  |  | IN: compiler.cfg.save-contexts.tests | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-09 10:44:55 -04:00
										 |  |  | ! insns-needs-save-context? | 
					
						
							|  |  |  | { t f } [ | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         T{ ##call-gc } | 
					
						
							|  |  |  |     } insns-needs-save-context? | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         T{ ##add f 1 2 3 } | 
					
						
							|  |  |  |         T{ ##branch } | 
					
						
							|  |  |  |     } insns-needs-save-context? | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-09 14:44:54 -04:00
										 |  |  | H{ } clone representations set
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-08 22:56:28 -04:00
										 |  |  | V{ | 
					
						
							|  |  |  |     T{ ##add f 1 2 3 } | 
					
						
							|  |  |  |     T{ ##branch } | 
					
						
							|  |  |  | } 0 test-bb | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-12 09:03:09 -05:00
										 |  |  | 0 get [ insert-save-context ] change-instructions drop
 | 
					
						
							| 
									
										
										
										
											2009-09-08 22:56:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-09-08 22:56:28 -04:00
										 |  |  |     V{ | 
					
						
							|  |  |  |         T{ ##add f 1 2 3 } | 
					
						
							|  |  |  |         T{ ##branch } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | } [ | 
					
						
							| 
									
										
										
										
											2009-09-08 22:56:28 -04:00
										 |  |  |     0 get instructions>> | 
					
						
							|  |  |  | ] unit-test | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 4 vreg-counter set-global
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | V{ | 
					
						
							| 
									
										
										
										
											2015-08-13 18:23:10 -04:00
										 |  |  |     T{ ##inc f D: 3 } | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  |     T{ ##box f 4 3 "from_signed_4" int-rep | 
					
						
							|  |  |  |         T{ gc-map { scrub-d B{ 0 0 0 } } { scrub-r B{ } } { gc-roots { } } } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } 0 test-bb | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-12 09:03:09 -05:00
										 |  |  | 0 get [ insert-save-context ] change-instructions drop
 | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  |     V{ | 
					
						
							| 
									
										
										
										
											2015-08-13 18:23:10 -04:00
										 |  |  |         T{ ##inc f D: 3 } | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  |         T{ ##save-context f 5 6 } | 
					
						
							|  |  |  |         T{ ##box f 4 3 "from_signed_4" int-rep | 
					
						
							|  |  |  |             T{ gc-map { scrub-d B{ 0 0 0 } } { scrub-r B{ } } { gc-roots { } } } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | } [ | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  |     0 get instructions>> | 
					
						
							|  |  |  | ] unit-test | 
					
						
							| 
									
										
										
										
											2010-07-19 09:27:10 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | V{ | 
					
						
							|  |  |  |     T{ ##phi } | 
					
						
							| 
									
										
										
										
											2010-07-19 10:09:28 -04:00
										 |  |  |     T{ ##box } | 
					
						
							| 
									
										
										
										
											2010-07-19 09:27:10 -04:00
										 |  |  | } 0 test-bb | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-12 09:03:09 -05:00
										 |  |  | 0 get [ insert-save-context ] change-instructions drop
 | 
					
						
							| 
									
										
										
										
											2010-07-19 09:27:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-07-19 09:27:10 -04:00
										 |  |  |     V{ | 
					
						
							|  |  |  |         T{ ##phi } | 
					
						
							|  |  |  |         T{ ##save-context f 7 8 } | 
					
						
							| 
									
										
										
										
											2010-07-19 10:09:28 -04:00
										 |  |  |         T{ ##box } | 
					
						
							| 
									
										
										
										
											2010-07-19 09:27:10 -04:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-07-03 12:39:59 -04:00
										 |  |  | } [ | 
					
						
							| 
									
										
										
										
											2010-07-19 09:27:10 -04:00
										 |  |  |     0 get instructions>> | 
					
						
							|  |  |  | ] unit-test | 
					
						
							| 
									
										
										
										
											2014-12-12 09:03:09 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | { 3 } [ | 
					
						
							|  |  |  |     V{ | 
					
						
							|  |  |  |         T{ ##phi } | 
					
						
							|  |  |  |         T{ ##phi } | 
					
						
							|  |  |  |         T{ ##phi } | 
					
						
							|  |  |  |         T{ insn } | 
					
						
							|  |  |  |     } save-context-offset | 
					
						
							|  |  |  | ] unit-test |