+static const char LOCATE_standard___kernel___Int___abs[] = "kernel::Int::abs";
+val_t standard___kernel___Int___abs(val_t p0){
+ struct {struct stack_frame_t me;} fra;
+ val_t REGB0;
+ val_t REGB1;
+ val_t REGB2;
+ val_t tmp;
+ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
+ fra.me.file = LOCATE_standard___kernel;
+ fra.me.line = 361;
+ fra.me.meth = LOCATE_standard___kernel___Int___abs;
+ fra.me.has_broke = 0;
+ fra.me.REG_size = 0;
+ fra.me.nitni_local_ref_head = NULL;
+ REGB0 = p0;
+ /* ../lib/standard/kernel.nit:364 */
+ REGB1 = TAG_Int(0);
+ REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/;
+ if (UNTAG_Bool(REGB2)) {
+ } else {
+ nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0);
+ }
+ /* ../lib/standard/kernel.nit:236 */
+ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1));
+ /* ../lib/standard/kernel.nit:364 */
+ if (UNTAG_Bool(REGB1)) {
+ /* ../lib/standard/kernel.nit:366 */
+ REGB1 = REGB0;
+ goto label1;
+ } else {
+ /* ../lib/standard/kernel.nit:368 */
+ REGB2 = TAG_Int(1);
+ /* ../lib/standard/kernel.nit:239 */
+ REGB2 = TAG_Int(-UNTAG_Int(REGB2));
+ /* ../lib/standard/kernel.nit:241 */
+ REGB0 = TAG_Int(UNTAG_Int(REGB2)*UNTAG_Int(REGB0));
+ /* ../lib/standard/kernel.nit:368 */
+ REGB1 = REGB0;
+ goto label1;
+ }
+ label1: while(0);
+ stack_frame_head = fra.me.prev;
+ return REGB1;
+}
+static const char LOCATE_standard___kernel___Char___object_id[] = "kernel::Char::(kernel::Object::object_id)";