- frame_register (frame, regnum, &optim, &unavail,
- &lval, &addr, &realnum, raw_buffer);
-
- reg_val = allocate_value (register_type (gdbarch, regnum));
-
- if (!optim && !unavail)
- memcpy (value_contents_raw (reg_val), raw_buffer,
- register_size (gdbarch, regnum));
- else
- memset (value_contents_raw (reg_val), 0,
- register_size (gdbarch, regnum));
-
- VALUE_LVAL (reg_val) = lval;
- set_value_address (reg_val, addr);
- VALUE_REGNUM (reg_val) = regnum;
- set_value_optimized_out (reg_val, optim);
- if (unavail)
- mark_value_bytes_unavailable (reg_val, 0, register_size (gdbarch, regnum));
- VALUE_FRAME_ID (reg_val) = get_frame_id (frame);