| 
									
										
										
										
											2016-08-12 08:29:01 -04:00
										 |  |  | USING: accessors compiler.cfg.instructions compiler.cfg.registers | 
					
						
							|  |  |  | compiler.cfg.save-contexts compiler.test cpu.architecture kernel | 
					
						
							|  |  |  | namespaces tools.test ;
 | 
					
						
							| 
									
										
										
										
											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? | 
					
						
							| 
									
										
										
										
											2016-03-27 13:14:29 -04:00
										 |  |  | { f f t } [ | 
					
						
							| 
									
										
										
										
											2015-08-09 10:44:55 -04:00
										 |  |  |     { | 
					
						
							|  |  |  |         T{ ##call-gc } | 
					
						
							|  |  |  |     } insns-needs-save-context? | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         T{ ##add f 1 2 3 } | 
					
						
							|  |  |  |         T{ ##branch } | 
					
						
							|  |  |  |     } insns-needs-save-context? | 
					
						
							| 
									
										
										
										
											2016-03-27 13:14:29 -04:00
										 |  |  |     { T{ ##alien-invoke } } insns-needs-save-context? | 
					
						
							| 
									
										
										
										
											2015-08-09 10:44:55 -04:00
										 |  |  | ] 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 | 
					
						
							| 
									
										
										
										
											2016-09-11 14:34:44 -04:00
										 |  |  |        T{ gc-map { gc-roots { } } } | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | } 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 | 
					
						
							| 
									
										
										
										
											2016-09-11 14:34:44 -04:00
										 |  |  |             T{ gc-map { gc-roots { } } } | 
					
						
							| 
									
										
										
										
											2010-07-02 15:44:12 -04:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											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 |